[RFC] Get rid of stale "temp" GNOME forks
Right now, there are several GNOME projects which have been forked in temp
for quite a while. Most of those come from adaptivity patches that Purism developed for the apps to work on phones. Although lots of work was pushed upstream, there is a non-trivial amount of non-upstreamable patches and hacks in those projects. Additionally, the feeling is that Purism is only supporting stable releases with those, and therefore, the maintenance effort on our side slowly but steadily grows.
The more serious problem is that GNOME 42 brings a big amount of refactoring, with many apps ported to GTK4, g-c-c finally updating its app-id, several changes to adwaita-icon-theme
and more things I have likely missed. In consequence, rebasing many of the patches has simply become impossible without serious amount of effort. Also, failing to update the apps timely with the alpine merge (which @Newbyte and me are taking care of) will likely create lots of issues.
Given all the above, I hope it's clear that we have to get rid of the forks. Otherwise, lots of effort will be needed to get them in shape, instead of putting that same effort into solving the problems upstream. So the relevant forks and the possibilities I can think of for each of them:
-
epiphany
: it only has one patch to avoid fullscreen in phones, which is very hard to exit on phone once enabled. The patch wasn't really working for a long time until tinydm was patched to export XDG_SESSION_DESKTOP and nobody complained about it, so probably just dropping this fork should be fine. Alternatively, Epiphany 42 is still GTK3, so it is possible to rebase the patch easily. We could also probably carry it in alpine until Epiphany 43, when the app is likely to be ported to GTK4. -
evince
: has a couple of patches, many of which should be considered hacks instead and didn't go upstream. Fortunately, evince only saw some maintenance in 42 cycle and is still GTK3, so we could keep the fork here until 43. I have some staged work locally to solve the most relevant issue (the headerbar not fitting in small screens) which hopefully I'll be able to get in upstream before 43. If that works, then we should be able to drop the fork in 43 cycle with small regressions. There is also the option to drop the fork here and move the headerbar patch to alpine, since it can detect phosh vs. gnome. -
gnome-contacts
: the patch we carry didn't get merged upstream and the app was ported to GTK4, so it no longer applies. Either somebody moves the MR forward upstream and rebases the patch, or we should drop the fork. That means, the calling and sms buttons in contacts will no longer be available, but no other serious regressions. Keeping the GNOME 41 version here for a while is unfortunately not an option unless somebody wants to commit lots of maintenance time, since at least icons and interaction with Settings would have to be patched. -
gnome-control-center
: this was also ported to GTK4 in this cycle, which fixed lots of the issues we were patching downstream. Unfortunately, the GTK4 move also means that the big patch from Purism which makes the connection editor usable on phones can't be used anymore. That is likely a serious regression, but unless Purism, some other distro or somebody here can fix it, it is likely unavoidable. Also, keeping version 41 around is simply impossible because too many other apps integrate with it, and things will break scattered across the stack. There are some other minor regressions expected, for some of which there are MRs upstream. I am now the maintainer in alpine, so I will backport fixes regularly. -
gnome-software
andgnome-software-plugin-apk
: there's work in the plugin left until we can upgrade to 42. Once that is done, the app moved to GTK4 in 42, so we can likely drop the forks and use alpine version. In the meanwhile, I can take care of the icons that will likely break when updatinglibadwaita-icon-theme
. -
gtk+3.0
: this fork is a mess and right now it doesn't even build rebased: !2848 (closed). Still, it makes lots of GTK3 things adaptive (like print and about dialogs). I suggest we drop it once all GTK3 apps we care about migrate to GTK4. My personal list would be: evince, gnome-calendar, gnome-maps, gnome-clocks, nautilus. Out of those, calendar and clocks are already in GTK4 and the others expected to be in GNOME 43. But this is just my personal take
Shorter assessment:
-
epiphany
: drop in 42 (and maybe patch in alpine) or 43 -
evince
:drop in 44 or once the port to GTK4 is finishedMoved to alpine -
gnome-contacts
: drop in 42. Somebody should take care of patch upstream -
gnome-control-center
: drop in 42. Backport fixes to alpine when possible -
gnome-software
: keep around until we port plugin to 42. Drop afterwards. WIP here -
gtk+3.0
: keep around until all GTK apps we care about migrate to GTK4:-
dino? -
evince -
calculator -
clocks -
software -
console? -
phosh? -
bluetooth -
(gnome-)control-center -
eog (GTK 3), replaced by loupe -
portfolio
-