Portmod - Mod Manager

Learn about OpenMW mod compatibility, check for problematic mods, discuss issues, and give us feedback about your experience with modded OpenMW.
User avatar
bmw
Posts: 23
Joined: 04 Jan 2019, 19:42
Contact:

Portmod - Mod Manager

Post by bmw » 09 Apr 2019, 04:10

Portmod
https://gitlab.com/portmod/portmod

Previously known as OpenMMM v2.0, Portmod is an in-development command line mod manager that automatically downloads, configures and installs mods. The original thread for OpenMMM can be found here: viewtopic.php?f=40&t=5672

Large amounts of credit goes to Gentoo’s Portage project (https://wiki.gentoo.org/wiki/Project:Portage), which this is heavily based on. While I considered forking Portage, I decided instead on building from scratch a version supporting a subset of Portage’s features (though I have on occasion borrowed code), due to the size and complexity of the Portage codebase and the fact that many of its features will not be used in Portmod.

Mod descriptions, and information Portmod uses to install them, are stored in a the OpenMW Mods Repository. The repository contains one or more build files for each mod, each in a pybuild format, a variation on Portage’s ebuild format that is expressed as python code, as well as files storing repository metadata.

Current State:
The project is more or less functional, albeit lacking in mods to actually install (as of last count there are ~120).

The latest release is v2.0_alpha2 and can be found on the releases page, pypi and the Arch AUR.

There is partially complete documentation on the project wiki: https://gitlab.com/portmod/portmod/wikis/home

Reporting Bugs
Please report any bugs you find on the GitLab issue tracker.
https://gitlab.com/portmod/portmod/issues
You can also email [email protected] if you don't have a gitlab account.

Old News
Spoiler: Show
Last edited by bmw on 12 Aug 2019, 04:13, edited 2 times in total.

darkbasic
Posts: 87
Joined: 18 Apr 2016, 15:45
Contact:

Re: Portmod - Mod Manager

Post by darkbasic » 09 Apr 2019, 12:03

Wow, a mod package manager inspired by Gentoo's ebuilds is like a dream come true :shock:
Last edited by darkbasic on 09 Apr 2019, 12:46, edited 1 time in total.

darkbasic
Posts: 87
Joined: 18 Apr 2016, 15:45
Contact:

Re: Portmod - Mod Manager

Post by darkbasic » 09 Apr 2019, 12:05

Also, do you plan to support use cases like "if mod A is installed then I need to apply patch C to mod B"?

User avatar
bmw
Posts: 23
Joined: 04 Jan 2019, 19:42
Contact:

Re: Portmod - Mod Manager

Post by bmw » 09 Apr 2019, 15:35

darkbasic wrote:
09 Apr 2019, 12:05
Also, do you plan to support use cases like "if mod A is installed then I need to apply patch C to mod B"?
Definitely. In fact, it's already partially supported using use flags. For example, the master-index tribunal journal fix is included in the master index pybuild and is automatically applied if the tribunal global use flag is enabled. I say that this is partial support as doing this with use flags is for patches that are optional (as technically the master-index is still usable if tribunal is installed but the patch is not). On the other hand, for patches that resolve conflicts that would otherwise break things, you would mark the two mods as conflicting and mark the patch as resolving the conflict. Conflicts are already implemented, but marking directories/files as resolving conflicts is not yet.

Edit: I also feel I should mention that in general I'm using the convention that patches are included with the mods they patch, rather than separately in the repository, except for the case of patches that are not for specific mods such as omwllf.

ModdingOpenMWdotcom
Posts: 29
Joined: 12 Jul 2018, 04:25
Contact:

Re: Portmod - Mod Manager

Post by ModdingOpenMWdotcom » 10 Apr 2019, 18:40

darkbasic wrote:
09 Apr 2019, 12:03
Wow, a mod package manager inspired by Gentoo's ebuilds is like a dream come true :shock:
Agreed! Huge thanks to Ben for his awesome work on this. I look forward to growing that repository.

User avatar
Jemolk
Posts: 180
Joined: 20 Mar 2017, 02:12
Location: Sadrith Mora

Re: Portmod - Mod Manager

Post by Jemolk » 10 Apr 2019, 18:49

bmw wrote:
09 Apr 2019, 04:10
Preferential Features:
I mentioned in a previous update that I’m planning functionality to handle mod ordering choices for when a user wants to prefer a certain mod over another conflicting mod (a situation where there is no “right” way to do it, essentially).
I’ve given further thought to this and came up with the idea of using a flag system, lets call them “feature” flags (admittedly the term is overloaded enough already, but I can’t think of a better name at the moment), where, for each feature flag that occurs in multiple mods you have installed, you are required to decide which mod you want to handle that feature.

For example: you might have two magic mods installed with the following flags:
mod1: magic_effects magic_spells
mod2: magic_effects magic_spells magic_potions
[...]
Unfortunately while this is relatively easy when it comes to assets (you can just remove the files that are not needed), picking and choosing features from a mod would be more difficult when those features are locked inside plugins, and short of writing mod-specific patches, the best solution would be to indicate that the mod can only provide certain features at the same time and throw an error if a certain configuration cannot be resolved.
(Emphasis mine)
Wrye Bash's Bashed Patch feature could provide ideas for implementation here. It basically creates a plugin that merges features from various mods into one file so that they don't conflict, and you can control what gets imported with bash tags, which are basically exactly the same idea as the flags you're talking about and get placed in the mod's file header, and with check boxes on the GUI screen when you build the Bashed Patch. Generally it's used for merging changes to the same record from multiple mods when they're tinkering with different subrecords, but it can also be used to selectively have portions of one mod override another that's technically loaded later. Wrye Bash was originally an Oblivion utility, upgraded over Wrye Mash, the Morrowind utility written by Wrye, which doesn't, IIRC, have the same patching functionality.

User avatar
AnyOldName3
Posts: 1500
Joined: 26 Nov 2015, 03:25

Re: Portmod - Mod Manager

Post by AnyOldName3 » 10 Apr 2019, 20:25

Mator Smash is now the recommended utility instead of Wrye Bash for making that kind of patch for the games it supports. It might be getting Morrowind support soon now TES3Edit exists/is about to exist.
AnyOldName3, Master of Shadows

User avatar
bmw
Posts: 23
Joined: 04 Jan 2019, 19:42
Contact:

Re: Portmod - Mod Manager

Post by bmw » 10 Apr 2019, 21:47

I hadn't actually made the connection to the Bashed Patch, thanks, that's a good point.
It would still be a lot of work to integrate such a thing though, given the lack of Morrowind support and the fact that neither Wrye Bash nor Mator Smash seem to be designed to integrate with other software. I could probably hack out the important parts though, or just use them as a basis for a implementing whatever ends up going into Portmod. Either way, I think it's currently at the bottom of my list of things to do, which admittedly does mean there's plenty of time to discuss the idea and figure out exactly the best way to implement it.

BaronPampa
Posts: 19
Joined: 04 Aug 2017, 12:50

Re: Portmod - Mod Manager

Post by BaronPampa » 13 Apr 2019, 13:37

Seems fantastic. I'd love the ability to get massive mod compilations installed with one script, instead of doing all the manual work myself. Also, I've got a list of some mods which provide permission to redistribute:

Morrowind Optimization Patch
Correct Meshes
Correct UV Mudcrabs
Ingredients Mesh Replacer
RR Mod Series - Better Meshes
Better Meshes plus Optimization
PikachunoTMs Mesh Artifact Improvements and Replacers
HD Vanilla Textures

You can download all of them here: https://www.mediafire.com/file/1br1gbvb ... M.7z/file-
In each folder there's a "permission.txt." file, which contains a quote from the author and link to prove that redistribution is allowed.

User avatar
Jemolk
Posts: 180
Joined: 20 Mar 2017, 02:12
Location: Sadrith Mora

Re: Portmod - Mod Manager

Post by Jemolk » 14 Apr 2019, 00:11

AnyOldName3 wrote:
10 Apr 2019, 20:25
Mator Smash is now the recommended utility instead of Wrye Bash for making that kind of patch for the games it supports.
Only because Wrye Bash doesn't support all the relevant records for those games. Mator Smash doesn't support merging mods into the patch entirely as Wrye Bash does, nor does it have the tweaks functionality of Wrye Bash. It's not that Mator Smash is better than Wrye Bash, but that Mator Smash supports newer files than Wrye Bash but with less features and capabilities.

Post Reply