As discussed in matrix, it might be worth investigating the possibility of applying GTK+ patches on master/edge as well and not just on stable. This would encourage users to stay on edge if they're ok with the instability while not being actually behind in some UI features, and might make it easier to fork away later stable releases.
Edited
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
Maybe we can create an extra apk repository for packages that need phosh patches, so we could avoid them for all other UIs. This needs infrastructure changes though (bpo, pmbootstrap, ...).
Bad idea. I've played through the idea some more in my head, and it would be a lot of effort. To do it properly, we would need to change the directory structure of the binary package mirror and pmaports to allow for multiple subdirs and all (or if we don't change it, it would be very confusing)... it's just not worth it.
If we want to keep it "edge", this involves a lot of work. The Purism patches are always for a specific version of the program or library, and it won't be easy to always just backport it to the latest GTK release in Alpine. I'm not a fan.
After giving this a lot of though, I think we should just apply the patches on master too. Let me explain.
Recap
Concept of stable channel
The idea of the stable channel was, to provide a stable snapshot of the edge branch of postmarketOS. All patches go through edge first. A new release is branches from edge, then updated with cherry picking from edge.
Why ship patched GTK packages at all
We really do need the GTK+3.0 and GNOME application (gnome-software, ...) patches in postmarketOS. That is, because Phosh is basically the most usable smartphone UI in postmarketOS as of today (Plasma Mobile is second, but performance is really not great on pmOS) and usability in Phosh suffers greatly when used without these patches. If we did not want those patches, we should not have chosen to ship the postmarketOS PinePhone CE with Phosh pre-installed.
Why they were applied only to stable
What we have done with the Purism GTK+3.0 related patches, is directly applying them to the stable channel. At that point I thought it would not be feasible to apply them to edge too, because:
Constant rebasing of purism patches on top of current version of the programs in alpine?
Why this is bad
Everybody who uses the edge stable (basically all devices except for the PinePhone at this point!) get a unexpected and confusingly bad experience with Phosh on postmarketOS due to the missing patches.
After explaining that the patches are only applied to the stable channel, this leads to people thinking that it's fine to apply patches directly to the stable channel. But this is just one big exception, not the original purpose of the stable channel.
This makes it hard to establish proper guidelines about applying patches in postmarketOS.
Analyzing potential problems
Desktop usage is worse with these patches
How bad is it?
I just did a GNOME install with qemu-amd64 on the stable branch to see how inconvenient the installation becomes.
The file open and close dialogs are a bit inconvenient now on desktop, but they are not unusable. One needs to find and click the button in the lower left corner to get to the sidebar, which would be shown by default in regular GNOME. (1, 2, 3, 4)
GNOME software looks a bit weird (like a mobile page displayed on a desktop computer), but again, it is still usable. (1, 2)
GNOME calculator looks like it should on desktop. (1)
The GNOME settings window has a small width by default and looks like the mobile version, but can be maximized and uses the full space then. (1, 2, 3, 4)
All in all, it makes a few UIs a bit inconvenient, but they can still be used.
Do we care?
postmarketOS is about smartphones first, this is where our priority should be. It's nice that it runs on some notebooks too (notabley the Pinebook Pro), but if we have to decide between:
a) make the Phosh experience work well with smartphones, and GNOME experience slightly worse for desktops
b) make the Phosh experience very much worse for smartphones, and GNOME experience work best with desktops
..then it should be clear that we go with a).
The more I think about it, the more absurd the idea of making just edge and not stable work well with desktops becomes. That's like saying, we have to add these patches to stable as workaround so it works nicely with the PinePhone, but what we really want is having desktops look nice, so we don't apply them on edge... what?
So to make it clear, this desktop argument does not hold up.
Do we need to constantly rebase Purism's patches on Alpine edge's current versions?
Apparently we don't. We could just keep using the latest version of the Phosh fork of gtk+3.0 and related forks (gnome-settings, gnome-calculator, gnome-software), even if there was a newer version in Alpine edge.
Let's look at the provides of gtk+3.0. The sonames are all at .0. Only if they change, the programs in Alpine edge linking against gtk+3.0 would not be compatible anymore with the Purism fork. But according to "Versioning and long term stability promise in GTK+", this soname will not be increased in the stable GTK releases that Alpine is following in edge (current: v3.24.22). It is only increased in the development versions leading up to GTK+4 (current: v3.99.0), and Alpine is not packaging these development versions.
A new problem that appeared after rolling out the patches to the stable channel, is #694 (closed): gtk+3.0 is getting downgraded from our version (with Purism patches) to Alpine's, although we set the pkgver to 9999. As I wrote in that issue, I think I know how to fix it.
Conclusion
Once #694 (closed) is fixed, let's put the patches on master too.
Looking forward to feedback, anything I'm missing?
After a long discussion, @afontain, @craftyguy, @MartijnBraam, @PureTryOut, @z3ntu and I decided in the last team meeting that we go ahead and have all patches go through edge before going to stable.
Most importantly, because stable should be a snapshot of edge.
This means, we will go ahead and put all the phosh related patches onto master too: !1546 (closed)
(EDIT: the idea to move phosh related forks from "temp" to "phosh" was scrapped: !1530 (closed))