thanks everyone who helped make the new #postmarketOS release! they just get better and better every time.

i continue to be more and more hopeful that we will deliver on our mission to build a production ready OS, made by and for the community that continue to contribute (whether through code, reports, debugging, or donations).

we are not stopping with systemd... next up will be factory reset support, update rollbacks, EFI on qualcomm phones, immutability, and huge tooling improvements

embedded edition is also on my mind, we need better ways to build and maintain embedded systems and we absolutely have the raw ingredients

https://postmarketos.org/blog/2025/06/22/v25.06-release/

v25.06: the one with systemd

Aiming for a 10 year life-cycle for smartphones

postmarketOS
@cas Awesome work ❤️
@cas oh no not immutability 
@luana @cas it will be optional of course, but to give a phone
to a random person on the street, immutability will be a key part of postmaketos' stability

@luana im determined that we can do it right, that it will make development easier rather than harder and just require a few workflow changes for developers

we'll accomplish this probably through overlayfs, sysexts, and some other trickery

and for users, if you want to turn on "advanced mode" or whatever to be able to install packages system-wide then that should be possible too (via overlayfs and some package repository tricks, this will be harder to implement though)

and if you just want to make your installation fully mutable and use it as you did before then you can do that too, with the added benefit that you'll be able to factory reset without a full reinstall

@cas @fossdd Uhhhh idk I really hate how most immutable distros do immutability. Like, openSUSE Aeon doesn’t even let you change DEs.  

I hope y’all manage to make it right tho, it’s definitely possible.

Like, NixOS is technically immutable for some definition of immutable (it has all advantages anyway), but has none of the awful implementation disadvantages most distros have.
It’s even like the best diatro to do stuff most immutable distros don’t let you do, bc you can actually see what you’re doing (unlike regular distros) while still being “immutable” with all the advantages.
You can even get an imaged system for systemd boot measuring without needing to resort to a crazy static OS like that gnome one, bc it just generates an image automatically when you change the config.

In fact I’ve been thinking about how I’d use pmOS when I get a compatible phone. Configuring everything non-declaratively would be a nightmare, specially when reinstalling, so I was wondering wether I should make a NixOS module that can generate a ready pmbootstrap config with everything I want to be flashed (with the drawback of needing a PC to flash every time I change the config) or just trying to make nix system-manager work on pmOS (with the drawback of potentially more limited configuration). I also considered whether I’d port the pmOS patches to nixos but I really wanna use pmOS so I probably won’t do that (would probably be a lot of work too).
Having an immutable system would actually help on the pmbootstrap idea, since it’d avoid accidental non-declarative changes, tho it might make the system-manager one impossible.

(Also I wouldn’t be afraid of reinstalling, reinstalling is easy when your system just goes right back to the previous config (& I wouldn’t want a factory reset anyway))

But yeah please don’t go the “you installed the system and now you can no longer change DEs bc immutable” path (which’s the 1st thing I think when I read immutable), there are better ways :(

@luana @fossdd

some safeguards need to be in place (like if you enable the overlayfs to modify stuff in /usr or install packages any changes would be lost on system upgrade (but we can re-install the packages probably)) but it should totally be possible to switch UIs just by switching update channel

regarding image building stuff, i am hoping we'll switch to mkosi for this at some point in the future, which would make it more or less fully declarative.

the main blocker for being 100% declarative is that Alpine repos don't keep around old versions of packages. I'd like to see if this is something we could add so that you could be like "hey build an image using the package versions at *this* aports commit" and it would do it, just like nixpkgs does.