Welcome back! In our June update, we discussed PureOS’s downstream relationship with Debian. Just as PureOS Crimson is based on Debian Bookworm, PureOS Dawn is based on Debian Trixie.
We modify many Debian packages for PureOS to provide the best experience on all Librem devices. Often, when we reach a new Debian release, there will be packages with changes on both sides, creating a conflict.
PureOS incorporates most packages from Debian, but we also make changes to many packages. When that happens, we say we’ve forked the package. The package’s maintenance history has split, with PureOS going one way, and Debian possibly going another.
For example, take a look at GNOME Clocks. Debian Bookworm has GNOME Clocks 43.0-1. That means it is based on the GNOME Clocks 43.0 release, and Debian has released it one time (“-1”).
In PureOS Crimson, we have a few changes to integrate GNOME Clocks more fully with the OS. So Crimson has GNOME Clocks 43.0-1pureos2 – we took the Debian package (“43.0-1”), we added some changes for PureOS (“pureos”), and we have released that twice (“2”).
Debian continues work on the package as well. In Debian Trixie now has GNOME Clocks 48.0-2. The path of GNOME Clocks has now forked.
As we continue down the road, we need to resolve the fork in PureOS Dawn. We need the combination of both changes to complete the OS.
Usually, this means we reapply the PureOS changes to the new Debian package. Often, the changes need some adjustments for the new package. Sometimes, we might need to recreate the changes entirely if the package has changed significantly, and there could be new changes needed as well. In the best case, our changes from PureOS have now reached Debian, and we can simply drop the PureOS fork.
In the case of GNOME Clocks, we merged work from the Mobian project, another Debian distribution for mobile devices, which included everything. It is based on GNOME Clocks 48.0, includes the changes we previously imported, and it even contains new changes to wake from sleep for alarms and more.
As a result, PureOS Dawn now has GNOME Clocks 48.0-2+pureos1. We’ll continue to carry those patches for now.
Our focus in July was on resolving all of these package forks for Dawn. We released 28 packages combining new upstream versions with downstream changes in PureOS. This touched many parts of the OS for both PCs and the Librem 5, including essential functionality like plymouth, gnome-desktop, and flash-kernel, as well as quality of life applications like gnome-screenshot, gnome-contacts, and gnome-initial-setup.
Our goal isn’t to carry patches to essential packages. The purpose of PureOS is to provide the best experience on your Librem devices, even if that isn’t yet possible in other distributions. Our goal in the long term is to bring those changes upstream, so all distributions and devices benefit from the work. This is our vision – to empower you to use the software of your choice, even if it isn’t PureOS.
With that goal in mind, the best possible result of a fork is to drop it. That means the changes we were carrying are no longer needed. Usually, that means upstreams have applied them. It can also mean that they just aren’t needed any more, like a change to work around a problem in another package that is now fixed.
That’s the path to our vision, where we are on the same track as Debian, and you can get the best experience on your Librem with any OS.
In July, we dropped 31 forks that are no longer needed in Dawn! Again, this touched the foundations of the OS in packages like dpkg, wlroots, and pulseaudio, as well as applications including gnome-calendar, gnome-console, and geary.
With 59 forks addressed in July, PureOS Dawn is now within a few packages of parity with Debian Trixie. As we press on, we’re integrating the latest software into PureOS. Thanks to all of our customers and PureOS Subscribers for joining us on our journey!