Jump to content

Portmod - Package Manager - v2.5.7


Recommended Posts


Homepage: https://gitlab.com/portmod/portmod
Wiki: https://gitlab.com/portmod/portmod/-/wikis/KSP/KSP (KSP-specific info and guides, not much at the moment)
Documentation: https://portmod.readthedocs.org/ (specific to the portmod tool itself)
License: GPL-3

Portmod is a general-purpose package manager for Linux, macOS and Windows, targeting game mods. It's been under development since the beginning of 2019, primarily targeting OpenMW, but now also provides support for Kerbal Space Program using the metadata from CKAN-meta (and a conversion script).

It's currently CLI-only, though work on a GUI is in-progress.

Current State of KSP Support

There are a couple of outstanding issues related to KSP support and the limitations of the CKAN conversion:

  • Portmod doesn't support variable game engine versioning, so a rougher approach is taken instead and a game architecture is set up for each minor version. Patch versions are considered compatible with each other, which may not always be true. Proper support for game engine versions is in progress.
  • CKAN's version format is more permissive than Portmod's. In practice this means that a handful of packages are omitted from the repository due to versions which cannot be parsed. It's also possible that some packages are ordered incorrectly due to the conversion being fairly rough.

Benefits compared to CKAN
Portmod primarily was created to target modding ecosystems which lack package managers entirely, however KSP's mature packaging ecosystem gave an opportunity for portmod to support a large number of packages which were created for a different system.

Compared to CKAN, Portmod's primary benefits, aside from interface preferences, are in its highly extensible package format.

Portmod's packages are Python scripts (sandboxed for security) and support just about whatever installation method is needed. Support for CKAN's package intallation, for example, is implemented through one such script and inherited by all packages converted from CKAN metadata.

Note that despite being a source-based package manager, Portmod generally still handles binaries instead of compiling packages from source, to avoid having to package the entire build environment, though building packages from source should be possible.

The package format also supports optional build features, based on Portage's USE flag system (with a few small modifications). This allows patches to handle conflicts with other packages, or alternative configurations, to be handled within a single package.

Obviously, relying on CKAN-meta for packages means that package format features which CKAN lacks go unused, however they may be useful for supporting mods which can't be properly supported by CKAN, or if there is interest in setting up KSP packages specifically made for Portmod.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...