No description
- C 97.8%
- M4 1%
- Makefile 0.6%
- Python 0.3%
- Shell 0.1%
- Other 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .gitlab-ci | ||
| build | ||
| debian | ||
| demos | ||
| docs | ||
| examples | ||
| gdk | ||
| gtk | ||
| m4 | ||
| m4macros | ||
| modules | ||
| perf | ||
| po | ||
| po-properties | ||
| tests | ||
| .gitlab-ci.yml | ||
| ABOUT-NLS | ||
| acinclude.m4 | ||
| AUTHORS | ||
| autogen.sh | ||
| ChangeLog.gtk-async-file-chooser | ||
| ChangeLog.gtk-printing | ||
| ChangeLog.pre-1-0 | ||
| ChangeLog.pre-1-2 | ||
| ChangeLog.pre-2-0 | ||
| ChangeLog.pre-2-2 | ||
| ChangeLog.pre-2-4 | ||
| ChangeLog.pre-2-6 | ||
| ChangeLog.pre-2-8 | ||
| ChangeLog.pre-2-10 | ||
| ChangeLog.pre-2-12 | ||
| ChangeLog.pre-2-14 | ||
| ChangeLog.pre-2-16 | ||
| config.h.win32.in | ||
| config.rpath | ||
| configure.ac | ||
| COPYING | ||
| gail-uninstalled.pc.in | ||
| gail.pc.in | ||
| gdk-2.0-uninstalled.pc.in | ||
| gdk-2.0.pc.in | ||
| git.mk | ||
| gtk+-2.0-uninstalled.pc.in | ||
| gtk+-2.0.pc.in | ||
| gtk+-unix-print-2.0.pc.in | ||
| gtk+.spec.in | ||
| gtk-config-2.0.in | ||
| gtk-doc.make | ||
| gtk-engine-check-abi.sh | ||
| gtk-zip.sh.in | ||
| HACKING | ||
| INSTALL.in | ||
| MAINTAINERS | ||
| makecopyright | ||
| Makefile.am | ||
| Makefile.decl | ||
| makefile.msc | ||
| NEWS | ||
| NEWS.pre-1-0 | ||
| NEWS.pre-2-24-34 | ||
| README.commits | ||
| README.in | ||
| README.md | ||
| README.win32 | ||
| sanitize-la.sh | ||
| sanity_check | ||
GTK2-NG — Modern Community Fork of GTK+ 2.24
Unofficial, community-maintained fork keeping GTK2 alive and usable on modern 64-bit Linux systems.
This fork focuses on modern compatibility while preserving stability, performance, ABI compatibility, and original behavior as much as possible. X11-first, no forced Wayland migration.
Backed by the devuanusers.com community and The Lateral Tech Foundation.
Recent Development News
- Build scripts to automate local testing - https://git.devuan.org/greenjeans/gtk2-ng-test-scripts
- Testing iso (Daedalus) - https://sourceforge.net/projects/vuu-do/files/Vuu-do-5.03/5.03-gtk2ng-testing/
- Deb packages (Daedalus, Excalibur) - https://git.devuan.org/SteveM/gtk2-ng_debs
- Win32 build scripts - https://git.devuan.org/lmemsm/bldgtk
- Successfully built for EasyOS and KLV-Airedale - https://forum.puppylinux.com/viewtopic.php?p=171842#p171842
- EasyOS 7.4 released featuring gtk2-ng - https://distrowatch.com/?newsid=12874
- Available in the AUR for Archlinux - https://aur.archlinux.org/packages/gtk2-ng-git
- The Lateral Tech Foundation formed - https://lateraltechfoundation.com/
Highlights
- Conservative GTK+ 2.24 maintenance with ABI compatibility as a priority
- Existing GTK2 applications should continue to run without recompilation
- X11-first approach with no forced Wayland migration
- Modern build-system cleanup for current Autoconf, Automake, Libtool and gtk-doc
- Compatibility fixes for current GCC and Clang versions
- Selected safe patches from AUR, BSDs, Gentoo, Fedora and GTK2 maintenance forks
- Internal Y2038-related time-handling improvements where ABI-safe
- Modernized private-data handling in many GTK/GDK classes
- Fixed many compiler and deprecation warnings without removing features
- Improved GtkFileChooser with optional icon view
- Classic list view remains available
- Better icon handling and reduced unnecessary overhead in the file chooser
- Preserved GTK2 theming, theme engines, input modules and print backends
- Preserved legacy configuration and module lookup behaviour
- Continued focus on performance, low overhead and responsiveness
- Community-driven maintenance backed by devuanusers.com and lateraltechfoundation.com
Roadmap
- Continue removing deprecated internal API usage where safe
- Improve file chooser responsiveness for large and network directories
- Add best-effort thumbnail generation and optional preview support
- Improve compatibility with traditional GTK2 themes and engines
- Add XDG-aware config, theme and icon lookup paths while keeping legacy paths
- Review Ardour's YTK GTK2 fork for portable, ABI-safe improvements
- Review further GTK2 maintenance forks for useful fixes
- Preserve CUPS/PPD printing workflows and add libppd support for newer CUPS
- Keep GTK2 useful on modern Unix-like systems without breaking existing apps
- Choose a better long-term project name
Build Instructions (Linux)
Safe test install (strongly recommended)
autoreconf -fvi
./configure --prefix=/tmp/gtk2-ng-test --with-xinput=yes
make -j$(nproc)
make install
Run apps against the test build
export GTK2_TESTDIR=/tmp/gtk2-ng-test
export LD_LIBRARY_PATH="$GTK2_TESTDIR/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$GTK2_TESTDIR/lib/pkgconfig:$PKG_CONFIG_PATH"
export GTK_EXE_PREFIX="$GTK2_TESTDIR"
export GTK_DATA_PREFIX="$GTK2_TESTDIR"
export GTK_PATH="$GTK2_TESTDIR/lib/gtk-2.0"
leafpad # or any other GTK2 app
System-wide install
autoreconf -fvi
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-xinput=yes
make -j$(nproc)
sudo make install
Dependencies (Debian/Devuan/Ubuntu)
sudo apt install \
build-essential git \
autoconf automake libtool pkg-config gtk-doc-tools gobject-introspection \
libglib2.0-dev libpango1.0-dev libatk1.0-dev libcairo2-dev libgdk-pixbuf-2.0-dev \
libfontconfig1-dev libfreetype-dev libharfbuzz-dev libfribidi-dev libpng-dev \
libx11-dev libxext-dev libxrender-dev libxrandr-dev libxcursor-dev \
libxinerama-dev libxi-dev libxfixes-dev libxcomposite-dev libxdamage-dev \
libcups2-dev gettext autopoint
Dependencies (Arch/Artix/Manjaro)
sudo pacman -S --needed \
base-devel git \
autoconf automake libtool pkgconf make gcc binutils \
gtk-doc gobject-introspection \
glib2 glib2-devel \
pango cairo atk gdk-pixbuf2 \
fontconfig freetype2 harfbuzz fribidi libpng pixman \
libx11 libxext libxrender libxrandr libxcursor libxinerama libxi libxfixes \
libxcomposite libxdamage libxft \
cups
Dependencies (Gentoo)
emerge --ask --oneshot \
dev-vcs/git \
sys-devel/gcc sys-devel/binutils dev-build/make \
dev-build/autoconf dev-build/automake dev-build/libtool \
dev-util/pkgconf dev-util/ccache \
dev-util/gtk-doc dev-libs/gobject-introspection \
dev-libs/glib dev-libs/atk \
x11-libs/pango x11-libs/cairo x11-libs/gdk-pixbuf \
media-libs/fontconfig media-libs/freetype \
media-libs/harfbuzz dev-libs/fribidi media-libs/libpng x11-libs/pixman \
x11-libs/libX11 x11-libs/libXext x11-libs/libXrender x11-libs/libXrandr \
x11-libs/libXcursor x11-libs/libXinerama x11-libs/libXi x11-libs/libXfixes \
net-print/cups
GTK2-ng requires Cairo with Xlib support. If configure reports that cairo-xlib is missing, enable the X USE flag for Cairo (Gentoo)
echo 'x11-libs/cairo X' >> /etc/portage/package.use/gtk2-ng
emerge --ask --oneshot x11-libs/cairo
If Pango or Freetype dependency resolution requires Harfbuzz support, enable it for Freetype: (Gentoo)
echo 'media-libs/freetype harfbuzz' >> /etc/portage/package.use/gtk2-ng
emerge --ask --oneshot media-libs/freetype x11-libs/pango
How to Contribute
Join the main discussion here:
https://devuanusers.com/thread-gtk2-revival-thread--80
Test apps, report issues, submit patches!
License
LGPL v2.1 or later (same as original GTK+)