Skip to main content

A CLI package manager for mods

Project description

Portmod

pipeline Build status coverage PyPI Code style: black Supported Python versions Chat

A cross-platform cli package manager for mods. Based on Gentoo's Portage package manager.

Currently the only supported game is OpenMW, via the openmw-mods repository.

See the Wiki for details on Installation and Setup.

Features

  • Automatic Downloads (where possible): If direct links are available to mod archive files, portmod will fetch them automatically. As many mods have restrictive licenses and are distributed via sites which do not provide direct links, this is not always possible.
  • Automatic patching: Mods are organized into packages which contain both the base mod and any necessary patches. Patches can be configured (in the package) to only be installed when certain other packages are installed, so that all you need to do when installing packages is choose the ones you want and all necessary patches will be included automatically.
  • Automatic Configuration: Mod packages can declare optional features (called Use Flags), which can either be independently enabled/disabled (local flags), or enabled/disabled along with other packages which share the same feature (global flags).
  • Structure Awareness: Portmod's package files contain information about the directory structure of the archives which explain precisely how the mod should be installed.
  • Automatic sorting: The install order and the load order of plugin and fallback archive files are sorted automatically based on rules defined in the packages. These rules can be customized with user rules.
  • Automatic updates: When mod updates are released and new package files are created in the portmod repository, you can find and update all your installed mods using a single command. Due to portmod requiring more information than upstream sources usually provide, will be a delay after the upstream mod is updated while new package files are created.
  • Dependencies: Portmod will automatically install dependencies for the mods you ask it to install.
  • Mod collections: Portmod supports both metapackages (packages containing lists of other packages which are distributed in the repository), as well as custom package sets (easy to set-up package lists that exist in the user's configuration).

Basic Usage

There are a number of executables installed with Portmod, however for the most part you only need to use the omwmerge executable.

Mods can be installed by passing the relevant atoms as command line arguments. E.g.: omwmerge omwllf

You can search for mods using the --search/-s (searches name only) and --searchdesc/-S (searches name and description) options.

Specific versions of mods can be installed by including the version number: omwmerge abandoned-flat-2.0

Specified mods will be automatically be downloaded, configured and installed.

The -c/--depclean flag will remove the specified mods and all mods that depend on, or are dependencies of, the specified mods.

The -C/--unmerge flag will remove the specified mods, ignoring dependencies

You can view useful information about your current setup using omwmerge --info.

You can update all installed mods (including dependencies and dependency changes) using the command omwmerge --update --deep --newuse @world (or omwmerge -uDN @world)

After updates, you should clean unneeded dependencies using omwmerge --depclean (without any arguments). This can also be done during updates using the --auto-depclean/-x flag, however you should carefully examine the transaction list to make sure that it isn't removing anything you wanted to keep.

Future Plans

This list is updated infrequently. See the Issues for up-to-date information.

  • Support for other game engines and multiple games: Support for other engines is already feasible (portmod's implementation is fairly generic), but restricted by the lack of support for installing into a single data directory. Currently games must support per-mod data directories. There is also not yet a way to distinguish between mods installed for different game engines.
  • Mod packaging and submission: Support for build files being distributed with mods and automatically submitted to a repository using a cli tool.

Communication

Release announcements and other major news will be posted to the announcement mailing list). This list is read-only (see below for the list you can contact).

There are a number of ways to communicate with the developers and with other users:

Packaging status

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

portmod-2.0b9.tar.gz (166.5 kB view details)

Uploaded Source

Built Distributions

portmod-2.0b9-cp38-cp38-win_amd64.whl (859.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

portmod-2.0b9-cp38-cp38-manylinux1_x86_64.whl (939.9 kB view details)

Uploaded CPython 3.8

portmod-2.0b9-cp38-cp38-macosx_10_15_x86_64.whl (894.5 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

portmod-2.0b9-cp37-cp37m-win_amd64.whl (859.3 kB view details)

Uploaded CPython 3.7m Windows x86-64

portmod-2.0b9-cp37-cp37m-manylinux1_x86_64.whl (939.8 kB view details)

Uploaded CPython 3.7m

portmod-2.0b9-cp37-cp37m-macosx_10_15_x86_64.whl (894.6 kB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

portmod-2.0b9-cp36-cp36m-win_amd64.whl (859.7 kB view details)

Uploaded CPython 3.6m Windows x86-64

portmod-2.0b9-cp36-cp36m-manylinux1_x86_64.whl (940.0 kB view details)

Uploaded CPython 3.6m

portmod-2.0b9-cp36-cp36m-macosx_10_15_x86_64.whl (894.9 kB view details)

Uploaded CPython 3.6m macOS 10.15+ x86-64

File details

Details for the file portmod-2.0b9.tar.gz.

File metadata

  • Download URL: portmod-2.0b9.tar.gz
  • Upload date:
  • Size: 166.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.6.12

File hashes

Hashes for portmod-2.0b9.tar.gz
Algorithm Hash digest
SHA256 dde70f58e6eb99444942e0495da484ac642195d0d86a506ad867653a3deb10fa
MD5 b262f32f13ef38364eef15ce61889f0a
BLAKE2b-256 0c3099ee2fb9176a1367053f653122d1a65e2c78c21a325e7d0ecb5686a34f21

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 859.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.6

File hashes

Hashes for portmod-2.0b9-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 4b9c639c009d967d8ca2b72334bd026f6dd1e8a1a144f855ea784a4c3873b941
MD5 cc34af9d9e467c64686fdce3028f96c3
BLAKE2b-256 512752606e4ed4f6bdec0c776c67a8f4b45ac15369a4f74793b1e1a23b775dd7

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 939.9 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.6.12

File hashes

Hashes for portmod-2.0b9-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b5543d746e88d0b918fcbbdb2a9ed4457caf3c224c8709aa706d83976f10caeb
MD5 a46967991201a243dcd687e37d70dbd9
BLAKE2b-256 b5fedc34447785ad623b012f808d65cc1820c36ca2c0b3760983120cc9c16b66

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 894.5 kB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3

File hashes

Hashes for portmod-2.0b9-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 959aed5788d10cae4784ad37b035931c71ab7cb293bd8f7a83c2cbac16130a86
MD5 df2706b2174ffd6ac357a3e39530215d
BLAKE2b-256 f54046719eaa4a38a75075e2945d6db7575f5a142d12244199e47f27eaea35c5

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 859.3 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.6

File hashes

Hashes for portmod-2.0b9-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 65bf81fc8a5f738ad3972f57845aecdcb64fb950d158fb7d635cc557bf423cda
MD5 2bd8b1543cc722410c5f678b548cccd3
BLAKE2b-256 88ee0fc40a62c85e803951a5d1e78211d006ba37331bb53e189c5525ddafb0be

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 939.8 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.6.12

File hashes

Hashes for portmod-2.0b9-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ad4e02de22fa4be9450686f7572df528a573a2b8f9b244b52a801b3754a72847
MD5 da6916fa27ca2fabc8702834c30ad435
BLAKE2b-256 b423f0e22ded4acaa3fcd2f790e3f01f935504e768753e7a0ca43e0596ffb178

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 894.6 kB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3

File hashes

Hashes for portmod-2.0b9-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fedf292c8a14a0588987b413e6fbbafb6946a165888bfb68939db1a51f7ea81d
MD5 31da97b64ab9fda270ce4d450f52a734
BLAKE2b-256 9cb225a10e472b58feac9072425cdf3b100f7403b3d6a74dbf4b140663686e54

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 859.7 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.6

File hashes

Hashes for portmod-2.0b9-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 df4177b0ccca3e4efe506a04a78231996ea89e2a933b0e5ec4990500a103c90d
MD5 cbc079d1d2d16cafbfa628e71cd8e6b7
BLAKE2b-256 a1c0f404b0a2791fa7e75afc821a67e6965d6287eba4eccbaa729c4930ef3543

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 940.0 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.6.12

File hashes

Hashes for portmod-2.0b9-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d03e3465630baae1fd0f16523d0614a0fe43b260693c6e6013804d8ad1eebcf0
MD5 cce9a936d741673af7d8000d447b04ec
BLAKE2b-256 1c307bba5b308ddc59afb47f89a5cb6c2b42761cde0e9fd0c02c70c1f24e2d95

See more details on using hashes here.

File details

Details for the file portmod-2.0b9-cp36-cp36m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: portmod-2.0b9-cp36-cp36m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 894.9 kB
  • Tags: CPython 3.6m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3

File hashes

Hashes for portmod-2.0b9-cp36-cp36m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ec6b74f43850941dc56ed8524416d4fb1eaa7bb942e7fe88283c70a3e42c36e6
MD5 1492702f25dd4c2827f3a087b95d83aa
BLAKE2b-256 cdc2f74243bfddb226d6fc4bc24a647a5678107890d49e4115df1cdaad511a83

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page