bpo

From postmarketOS Wiki


Official packages and images for postmarketOS are built with pmbootstrap at build.postmarketos.org, in short bpo.

Find the sourcecode here.

Image configuration

The images to build are configured in bpo/config/const/images.py. Create a merge request if you would like to change it, e.g. to start building images for your device.

Try to make it consistent with existing entries, e.g. by sorting devices alphabetically.

See also the rules for which device categories may have official images.

Adding a new device

To add a new device, add the pretty name to the devices dict. Then add it to the images dict, typically like this:

"put-the-device-codename-here": {
        "branches": [
            "master",
        ],
        "branch_configs": {
            "all": {
                "ui":  [
                    "console",
                ],
            },
        },
    },

If you omit a key, the default from branch_config_default will be used. So if you do not specify the UIs, then as of writing, images will be built for "gnome-mobile", "phosh", "plasma-mobile", "sxmo-de-sway".

Please update your device's wiki page to mention that the image is available by adding prebuiltimages=yes to your device's infobox. (This step is not necessary if your device is in main or community, the template will automatically assume that a pre-built image is available.)

Setting a different interval

As of writing, all images are built weekly. It may make sense in the future to build e.g. testing images less often, if we wanted that we would set date-interval to something other than 7.

Displaying device on postmarketos.org/download

The image download table on postmarketos.org is hard-coded, so a patch to postmarketos.org/config/download.py is required before images for a given device show up on the website.