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.
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:
- The developer creates Debian packaging for the software, testing it locally to ensure that it works.
- 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.
- 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.
- The Continuous Integration (CI) server runs the build scripts from the deb-build-jobs repository to produce packages.
- Packages for signed releases are included in the PureOS package repository.
- The Librem 5 system image is built using software from the repository using information from the librem5-base 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.