State of GTK for nekoware -
Raion - 03-07-2025
So I've been banging out nekoware related deps for a hot minute, and I've gotten a pretty clear picture of what's needed by what to upgrade as a result:
This post will be organized into four sections:
Dependency Chain for GTK2, and thus Firefox and others:
GTK2 at minimum (e.g. 2.12 or higher) depends on: Cairo, libpixman1, pango, atk, glib2
Cairo depends on: freetype2, fontconfig, glib2
libpixman1 depends libpng
Pango depends on Cairo, xft (later versions harfbuzz), perl, and glib2
atk depends on glib2, gettext, libiconv
glib2 depends on gettext, libiconv, libffi, python 2 (for build) and in newer versions, Meson. I chose 2.32.4 to start with. A few versions beyond what's in nekoware, and patched so I can try to get a later GTK running.
xft depends on nothing
gettext I try to not use in base. But it is a nothing
iconv is a nothing
libffi is a nothing
Python2 (or tauthon) is in optxeno
Perl I have not been excited to build.
Dilemmas:
if I build a C++ lib like harfbuzz with GCC, then I'm forced to build everything with GCC.
If I build with GCC, it is a hard dependency for all glib2 and gcc programs to use GCC practically
GCC 6.5.0 builds with the gnu linker, which has a nasty tendency to break stuff for mipspro in weird ways (I had a libffi C library installed that broke glib with a cryptic error)
Pango post 1.29 ish doesn't support XFT and needs harfbuzz which means harfbuzz, which is C++ and nasty to deal with, as well as SLOW. This may limit our GTK2 version.
Progress
glib2 was fixed, Diegel was blocked on this for ages. Onre found the issue years ago. If I had to guess, glib2 will be the first to block bumping into 2.24
cairo 1.12.18 (2014 circa) built easily
ATK was no problem, but a custom define macro had to be added.
libpixman circa 2022 (0.42.2) was built easily
Pango was a real pain.
GTK built actually pretty smoothly.
So yeah, we got GTK 2.20, ATK 1.32.
I'll need someone to volunteer to test and build an app from nekoware historical against it when I pack it up. I am running headless, and this is the last of GTK I wanna see for a good while. Maybe someone can help out and maintain it?
Diegel? Pls!???