Core Workflow

Software that is supplied with the phone is built using a process that aims to automate as much as possible. The process is summarized in the overview below.

If you are building standalone applications for distribution, you may find the Building Debian Packages and Building Flatpaks guides to be more relevant and useful.


Software that should be included in system images or supplied as Debian packages is built and packaged using a multi-stage process, using different systems to test the software at each stage. The following steps describe how software is processed:

  1. The developer creates Debian packaging for the software, testing it locally to ensure that it works.

  2. The developer adds information about the public repository containing the software to the deb-build-jobs repository via a merge request. This is covered by the Core Package Building section of this guide.

  3. The developer tags a release using a signed git tag to ensure that it is published in the PureOS package repository. This is covered by the Uploading Packages to PureOS section of this guide.

  4. The Continuous Integration (CI) server runs the build scripts from the deb-build-jobs repository to produce packages.

  5. Packages for signed releases are included in the PureOS package repository.

  6. The Librem 5 system image is built using software from the repository using information from the librem5-base repository.

Packages can be downloaded from the page containing Debian Package Builds for the Librem 5 and are also available from the CI scratch repository.

Only packages built from commits with signed tags are published in the PureOS package repository. These packages are often referred to as “blessed” builds by the core team, and they are built using a separate CI server.

Packages that need to be included in Librem 5 System Images must be added to the package lists in the librem5-base repository. This is described in the Adding Base Packages section.