If you are using PureOS or any other GNU/Linux distribution you’re probably already familiar with Flatpaks, but if not, here’s a short introduction: Flatpak is a convenient way to distribute apps on GNU/Linux. It allows for a much faster development cycle compared to other distribution systems and it increases security, because software runs inside a sandbox and therefore has limited access to the host system.
Flatpak is built on top of libostree. You can imagine it to be a system similar to git but for binary system files. You can install different versions (e.g. development and stable) of an app and easily move back to a previous release. To download apps as Flatpak, we need a repository containing apps called a Flatpak remote, and a runtime that offers us the core system components that normally would be offered by the host system (e.g. GLib, GTK, Libadwaita, and so on).
PureOS now has its own runtime and repository for distributing applications. The focus is on apps that work well on mobile (especially on our Librem 5), and of course we are still (and this will never change) committed to shipping only Free Software to our users.
Over the past few months I’ve set up the infrastructure to build our own Flatpak runtime and applications for the PureOS Flatpak repository. I took a lot of inspiration from Flathub for the architecture, but builds are done using Purism’s pre-existing infrastructure.
Ideally we would depend directly on an existing Flatpak SDK, like the org.gnome.Sdk, but for the time being we need a few changes to GTK3 and GTK4 to make apps work better on mobile devices. Our custom runtime is built on top of the GNOME one, with the patches we need for mobile. Of course, we’re working to upstream on the relevant modules towards removing the need for these patches medium-term, but currently this is the most practical solution for our users.
From a developer’s point of view, it should be enough to exchange the GNOME runtime with the PureOS runtime and expect everything to work just fine.
As mentioned earlier, our infrastructure is heavily inspired by Flathub, since it didn’t make sense to reinvent the wheel. A big advantage of this is that developers don’t need to learn a new process to publish applications for our Flatpak remote. The process for submitting a new application is kept intentionally similar to Flathub.
To kickstart the new repository, we’re also currently importing some apps (mainly mobile-ready ones) directly from Flathub and rebuilding them with the PureOS runtime instead of the GNOME one. Eventually we hope that the upstream authors will submit their apps to PureOS store directly, which will enable them to also receive donations via our upcoming payment system.
If you are on the latest version of PureOS, you should already see Flatpaks in PureOS Store. You can also check via the terminal if the Flatpak remote is installed
flatpak remote-ls pureos. If Flatpaks don’t show up, make sure the package
pureos-flatpak-defaults is installed via apt-get on your system.
If you are not on PureOS you can still use our Flatpak remote by manually adding it:
flatpak remote-add PureOS https://store.puri.sm/repo/stable/pureos.flatpakrepo --user
We aren’t abandoning Debian packages, but the introduction of Flatpaks gives our users access to the latest version of many modern adaptive GTK apps that were previously inaccessible on PureOS.
This also gives us a clear path towards atomic updates for the OS, which we’re hoping to move to medium-term.
|Librem Mini||In Stock||10 days|
|Librem Servers||Coming Soon||--|
|Librem Key||In Stock||10 days|
|Librem 14||In Stock||10 days|
|Librem 5 USA||In Stock||10 days|
|Librem 5||Currently shipping backlogs||20 weeks|