pmaports.git

From postmarketOS

pmaports.git (GitLab) holds the package build recipes of postmarketOS, in the APKBUILD format. It is automatically checked out by pmbootstrap during pmbootstrap init (unless overridden with --aports). The default location of the local checkout is ~/.local/var/pmbootstrap/cache_git/pmaports:

$ pmbootstrap config aports
/home/user/.local/var/pmbootstrap/cache_git/pmaports

Remember the pmbootstrap status command, it will print this path as well as the checked out branch and some other useful status information.

Naming

pmaports stands for postmarketOS aports, and aports in turn are the Alpine ports. The name pmaports was chosen when pmaports.git was split from pmbootstrap.git in 2018 (#383), to make obvious that this is not a fork of Alpine's aports.git repository. Before that, it was a subdirectory called aports in the pmbootstrap.git repository. Therefore pmbootstrap sometimes refers to pmaports as "aports" (e.g. pmbootstrap config aports and pmbootstrap --aports are both about pmaports, not Alpine's aports).

Differences to Alpine's aports

  • pmaports support an arbitrary amount of subdirectories. All packages created will end up in the same index file (postmarketos/APKINDEX.tar.gz), whereas in Alpine's aports, the contents of each directory (main, community, ...) will end up in a separate index (and deeper directory levels are not supported). This was chosen so users only need to download one additional APKINDEX.tar.gz for all of the postmarketOS packages, while still having a flexible directory structure in the git repository.
  • pmaports has metadata about compatibility with pmbootstrap in pmaports.cfg
  • pmaports has metadata about release channels in channels.cfg (master branch only)