postmarketOS in 2025-05: Continuous testing, downstream split, niri, os-installer

June 02, 202523 min. read

a collage of photos from events, screenshots from the esim manager app and pmbootstrap and the sxmo + gshock watch

Two months after the last "monthly" blog post, it's time for another double-feature. We have a lot to talk about, but let's start with what you can see in the header image. At the center is fdlamotte's Pixel 3a running SXMO and it is connected to… a G-Shock B2100! He wrote a great blog post showing how he sends notifications to the three-character-screen on the watch as well as configuring the watch (alarms etc.) from SXMO menus.

In three corners we have photos from events. The top left one is from the Plasma Sprint 2025 that took place in Graz, Austria, "co-hosted with Grazer Linuxtage where we had a KDE booth on Saturday. We show-cased KDE Plasma running on SteamDeck, Krita with drawing tablet support on Wayland, HDR support and of-course Plasma Mobile running on OnePlus 6" as Bhushan writes on his blog. Devin and Luis were there as well and wrote separate posts. Another event in Austria was the permacomputing & postmarketOS residency (photo bottom left) from Chaline.

In Argentina, the FLISoL (Latin American Free Software Installation Festival) took place where Val held a talk "Sustainability and sovereignty in your pocket with postmarketOS". She writes in #6: "It was great! There was no recording, but I could share the audience selfie I took with the motorola-nora I brought with me :D It's lower resolution than the front camera itself due to pipewire/snapshot shenanigans, but let's say its lo-fi quality in general is a privacy measure designed to thwart facial recognition :p"

Speaking of talks, Pablo also did one called "postmarketOS: opportunities and challenges of a mobile-first platform" at Linux App Summit and he was interviewed by the Association for Progressive Communications (APC) along with Clayton and Oliver.

Organizational

Continuous testing and monitoring

Our GitLab now has a new postmarketOS/continuous-testing group. We have moved the upstream-compat check there that ensures postmarketOS stays compatible with Alpine, raising errors if postmarketOS packages depend on Alpine packages that no longer exist or forked packages (such as our cross compilers) have different versions than the ones in Alpine. We plan to add more continuous tests there, for example for booting into the various UIs we have packaged and checking that we don't see any failed services, have specific programs running and so on. With CI-tron we will be able to run these tests not only in QEMU, but also on hardware (see our previous blog post Hardware testing automation: a status update for more information).

Relatedly we have been working on notifications for upstream-compat and future continuous-testing jobs, as well as our package build infrastructure and the continuous release upgrade testing. When any of these have errors, notifications like the following get sent to the postmarketos-devel room:

postmarketOS monitoring showing a matrix message with one failed build

On the server-side we use Icinga to collect monitoring data from our jobs and to send the matrix messages. To ensure the channel doesn't get flooded, we only send notifications directly if the status for one job changes between 0|1|>=2 errors or if 12 hours have passed.

Having these notifications has already lead to lots of amazing folks in our community who happened to be online to investigate the errors and make fixes for them. Before we had the notifications, fewer people would notice the errors, it wasn't as clear which merge requests would fix them (now they are directly linked from the notifications too) and so it would take a lot longer to get the errors fixed.

Related patches are in !18, !19, !20, !20, !21, !21, !22 and !6466.

Thanks Oliver, Luca, Ferass!

Downstream ports have been split into their own category

new device selection in pmbootstrap init

"At our post-FOSDEM hackathon this year, we discussed how to make it easier to distinguish between the generally more useful close-to-mainline ports and the generally barely usable downstream ports. We reached the conclusion that we will create a new device category called "downstream" where all downstream ports will go. The "testing" category will be repurposed to only include mainline ports."

This is the description of milestone 30, which has seen significant progress towards the abovely stated goal. The downstream ports were split into a separate pmaports directory (!6491, !6516, !6519), and pmbootstrap's device selection now displays the category next to each device as shown in the screenshot above (!2549). It also shows a warning when selecting a downstream port:

WARNING: samsung-a20 is a downstream port! Expect missing and broken features. See https://wiki.postmarketos.org/wiki/Downstream_kernel_specific_package

Continue? (y/n) [n]:

Regarding the device category colorization Stefan wrote: "Maybe I've played too much Borderlands over the years, but to me magenta feels more special than green. Switching them around would be strange to me. But honestly, I have no idea how one is supposed to map quality to colour. Surely someone must've done some actual research on this somewhere."

While tweaking and moving device ports around for this effort, we found that several archived and downstream kernels don't build anymore and we were wondering if we should just not provide binary packages for those anymore to reduce maintainer load. This is being discussed in #109, the current conclusion is that we will keep binaries for downstream kernels, but not for archived kernels, and move downstream kernels to archived if they stop building and nobody is fixing them. Feel free to jump into the discussion if you have an opinion on this.

Thanks Luca, Stefan, Pablo!

pmbootstrap

New ports

This time we have 8 new device ports:

New mainline ports

Additionally two existing devices got support for mainline kernels:

New generic ports

Devices with MSM8956/MSM8976 SoCs got a generic port (!5694). Thanks Barnabás!

Kernel packaging

As usually here is the long list of kernel packaging related merge requests. The list below only has the names who made the merge request, but our thanks also go out to everybody who contributes in the git repositories that are packaged there, or who contributes in another way such as testing or reviewing. Without you this would not be possible!

systemd

pmaports

Screenshot of os-installer

buffybox

Vladimir has been consistently improving our low-level suite of graphical applications that is buffybox and cleaning up the project.

Big improvements:

…as well as small improvements and maintenance tasks:

Thanks Vladimir for the work and Johannes for all the reviews!

mrhlpr

The project to support maintainers on merging and working with gitlab merge requests saw some small improvements:

Homepage

Misc

eSIM Manager lpa-gtk 0.2

And what's next?

Help wanted