OSes
Debian 14 plans to ax Gtk2 – and hard pruning stimulates fresh growth
An effort to revive and reinvigorate the 2002 Gtk2 GUI
programming toolkit is growing and gaining interest… as we predicted would happen a
few months ago.
The gtk2-ng
project is reviving and modernizing Gtk2 version 2, which the GNOME
developers declared dead back in 2020. We held off on reporting this for
a while to see if the idea would gain some support, and it does seem to
winning interest and followers.
Reviving a 24-year-old toolkit that reached its official end-of-life
six years ago is a retrospective sort of undertaking, and as such, it
appeals to some modern-but-nostalgic development projects. Development
is hosted on the Git instance of the Devuan project, the systemd-free
fork of Debian. (Last year, Devuan
announced its support of Xlibre, the X.org fork that aims to
re-invigorate X11 development.) However, developer Daemonratte announced
the fork in a thread on the forums of the Pale Moon browser: GTK2
revival. Pale Moon, as we described
in 2021, is a continuing fork of an early version of Firefox.
Back in February, when we covered the news that Debian
14 planned to drop Gtk2, we mentioned that this might provide the
impetus for a fork.
This isn’t the first such fork, and we mentioned then that the Ardour
digital audio workstation we last looked
at in 2022 maintains its own internal version called YTK.
Daemonratte says that they’ve already incorporated some fixes from that,
and also from an earlier
fork by stefan11111 which has been inactive for a couple of years.
They then outline the current goals:
Current status:
-
Making it Y2K38-safe
-
Getting rid of all deprecation warnings
-
Patching it for NetBSD and backporting NetBSD-specific
patches -
Testing it on all kinds of hardware
-
Further modernization without breaking ABI
Future plans:
-
Implement touch support and smooth scrolling from Ardour’s ytk
without breaking ABI, so Ardour can be compiled against gtk2
again -
Heavily lobby for its adoption in the BSD and systemdfree Linux
world -
Reimplement GtkMozEmbed for UXP, so this wonderful engine can be
used in gtk2 projects
Gtk originally stood for GIMP Tool Kit: 30 years ago,
when the GIMP image editor made its public début, Gtk was the set of
tools GIMP’s authors created to make it easier to write GUI apps in C.
Six years later, GTK+
2.0.0 appeared. The new plus symbol in its name represented a new object-oriented
design.
When Miguel de Icaza announced
the GNOME desktop project in 1997, it adopted Gtk instead of the
then-semi-commercial Qt that KDE used. Since then, Gtk has been
developed along with GNOME. GIMP development is relatively slow: the
team finally
released version 3.0 a year ago, and it uses Gtk 3. (Last month, it
released version
3.2.4.) Since launch, though, the GNOME project has released 39
numbered versions, and in recent decades Gtk has kept pace with GNOME,
not GIMP.
The last version of Gtk 2 was GTK+
2.24.0 in 2012. The GNOME developers officially said it was
end-of-life with the release of Gtk 4 in
2020.
Gtk2-ng is far from the only project to fork and revive an older
version of a project which has since been superseded by newer versions
from the original team. One of the obvious ones is the MATE
desktop, which Argentinian developer Perberos
announced in 2011. Saying that, though, Daemonratte stated:
“The ultimate vision of this fork is to keep gtk2 alive for software
using it right now and to revive gtk2 versions of […] Gnome2 […]. Yes, I
don’t have to do this alone and no, Mate is not an option, because they
use gtk3 now.”
It is very much not alone. We have been covering releases of KDE 3
fork the Trinity desktop
environment since version
14.0.11 in 2021. This vulture used KDE 1.x back when it was the
state of the Linux art, and for us, KDE 3.x was already too big and
complicated.
For the KDE project’s 20th anniversary in 2016, Brazilian developer
Helio
Chissini de Castro modernized KDE 1 so that it would build
and run on Fedora 25. We didn’t realize this had become an ongoing
effort, but it has. From later
in the Gtk-ng thread, we learned about MiDesktop, a continuing
project based on Osiris, a modernized Qt
2. ®