Channels.cfg reference

From postmarketOS

channels.cfg is in the master branch of pmaports.git and maps postmarketOS pmaports branches to Alpine Linux aports branches for each release channel.

Example

# Reference: https://postmarketos.org/channels.cfg
[channels.cfg]
recommended=edge

[edge]
description=Rolling release / Most devices / Occasional breakage: https://postmarketos.org/edge
branch_pmaports=master
branch_aports=master
mirrordir_alpine=edge

[v21.06]
description=Latest release / Recommended for best stability
branch_pmaports=v21.06
branch_aports=3.14-stable
mirrordir_alpine=v3.14

[v21.03]
description=Old release (unsupported)
branch_pmaports=v21.03
branch_aports=3.13-stable
mirrordir_alpine=v3.13

Sections

channels.cfg

Metadata that does not belong in a channel section.

Variable Description Possibles values
recommended What pmbootstrap will recommend to install for new users. This was introduced to have the possibility to let pmbootstrap suggest a stable release instead of edge... but this doesn't make sense anymore, we'll keep it on edge. Reasoning is that now we have pre-built images for stable releases and suggest using them on the download page instead of edge releases. On the other hand, pmbootstrap is for developers so it makes sense there to have the bleeding edge variant by default, where we have more devices. edge, v21.06, ...

edge, v21.06, ...

Channel sections, each of them maps to one postmarketOS release.

Variable Description Possibles values
description Text displayed next to the branch in pmbootstrap init. May have hints that a branch is not meant to be used yet.
branch_pmaports Branch of postmarketOS pmaports.git and postmarketOS binary packages mirror directory name (as found here). master, v20.05, ...
branch_aports Branch of Alpine Linux aports.git master, 3.12-stable, ...
mirrordir_alpine Alpine binary packages mirror directory name, as found here. (This is referred to as branch in the Alpine releases page, but it is not the same as the aports branch.) edge, v3.12, ...

Location

pmbootstrap reads the file from the master/origin branch of pmaports.git. This way, it will always use the latest fetched version, even if the last checked out master branch (master without the origin/ infront) is not up-to-date. This is likely to happen if a release branch was checked out, as a git pull would then only update the reference from the release branch related to origin's release branch, master's reference would not change.

Release branches do not have a copy of the file, this would just require us to needlessly keep them all in sync.

View it with:

$ cd $(pmbootstrap config aports) # change directory to local checkout of pmaports.git
$ git show origin/master:channels.cfg

For development and testing, it is possible to override the path with --config-channels:

$ pmbootstrap --config-channels /tmp/channels.cfg status

History

In an earlier iteration of the channels.cfg file, the idea was to use stable, stable-next and legacy as channel names. This was changed in #2015. Now the channel names are the same as the release names (edge, v21.06, v21.03, ...).