Channels.cfg reference

From postmarketOS
Jump to navigation Jump to search

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 channel
branch_pmaports=master
branch_aports=master
mirrordir_alpine=edge

[stable]
description=Stable release channel (first beta v20.05, does not have many devices yet)
branch_pmaports=v20.05
branch_aports=3.12-stable
mirrordir_alpine=v3.12

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. Initially this will be edge, until stable is ready, then we switch to stable. edge, stable

edge, stable, stable-next, legacy

Channel sections, for which it will be possible to install postmarketOS. edge and stable will always be present, stable-next and legacy only during transition phases from one release to the next one.

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