Install this version:
emerge -a =dev-python/pygtk-2.24.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =dev-python/pygtk-2.24.0
Or alternatively:
emerge --autounmask-write -a =dev-python/pygtk-2.24.0
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
GNOME_TARBALL_SUFFIX="bz2"
_PYTHON_ALLOW_PY27=1
PYTHON_COMPAT=( python2_7 )
inherit autotools flag-o-matic gnome2 python-r1_py2 virtualx
DESCRIPTION="GTK+2 bindings for Python"
HOMEPAGE="https://gitlab.gnome.org/Archive/pygtk"
LICENSE="LGPL-2.1"
SLOT="2"
KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="doc examples test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
RDEPEND="dev-lang/python:2.7
>=dev-libs/glib-2.8:2
>=x11-libs/pango-1.16
>=app-accessibility/at-spi2-core-2.46.0
>=x11-libs/gtk+-2.24:2
dev-python/pycairo-python2[${PYTHON_USEDEP}]
>=dev-python/pygobject-2.26.8-r53:2[${PYTHON_USEDEP}]
>=gnome-base/libglade-2.5:2.0
"
DEPEND="${RDEPEND}
virtual/pkgconfig
doc? (
dev-libs/libxslt
>=app-text/docbook-xsl-stylesheets-1.70.1 )
"
PATCHES=(
# libdir-pc must precede codegen-location, which uses its ${libdir}.
"${FILESDIR}/${PN}-2.14.1-libdir-pc.patch"
# ${pyexecdir} expands an empty PYTHON_EXEC_PREFIX in pkg-config; ${libdir}
# yields the correct /usr path on split-usr. # verified 2026-05-05
"${FILESDIR}/${PN}-2.13.0-fix-codegen-location.patch"
"${FILESDIR}/${PN}-2.24.0-fix-leaks.patch"
"${FILESDIR}/${PN}-2.24.0-test-fail.patch"
"${FILESDIR}/${P}-test_dialog.patch"
"${FILESDIR}/${PN}-2.24.0-quartz-objc.patch"
"${FILESDIR}/${PN}-2.24.0-pango-1.44.patch"
# Drop bindings removed by Pango 1.50 so generated code still links.
"${FILESDIR}/${PN}-2.24.0-pango-1.50.patch"
)
src_prepare() {
default
# Install examples only through USE=examples below.
sed -e 's/\(SUBDIRS = .* \)examples/\1/' \
-i Makefile.am Makefile.in || die
sed -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' \
-i configure.ac || die
AT_M4DIR="m4" eautoreconf
setup_pygtk() {
mkdir -p "${BUILD_DIR}" || die
}
python_foreach_impl setup_pygtk
}
src_configure() {
use hppa && append-flags -ffunction-sections
configure_pygtk() {
ECONF_SOURCE="${S}" gnome2_src_configure \
$(use_enable doc docs) \
--disable-numpy \
--with-glade \
--enable-thread
}
python_foreach_impl run_in_build_dir configure_pygtk
}
src_compile() {
python_foreach_impl run_in_build_dir gnome2_src_compile
}
src_test() {
# Avoid test permission failures (Gentoo bug 245103).
gnome2_environment_reset
unset DBUS_SESSION_BUS_ADDRESS
testing() {
cd tests
virtx emake check-local
}
python_foreach_impl run_in_build_dir testing
}
src_install() {
dodoc AUTHORS ChangeLog INSTALL MAPPING NEWS README THREADS TODO
if use examples; then
rm examples/Makefile* || die
dodoc -r examples
fi
python_foreach_impl run_in_build_dir gnome2_src_install
find "${D}" -name '*.la' -type f -delete || die
}
Manage flags for this package:
euse -i <flag> -p dev-python/pygtk |
euse -E <flag> -p dev-python/pygtk |
euse -D <flag> -p dev-python/pygtk
dev-lang/python:2.7 >=dev-libs/glib-2.8:2 >=x11-libs/pango-1.16 >=app-accessibility/at-spi2-core-2.46.0 >=x11-libs/gtk+-2.24:2 dev-python/pycairo-python2[] >=dev-python/pygobject-2.26.8-r53:2[] >=gnome-base/libglade-2.5:2.0 virtual/pkgconfig doc? ( dev-libs/libxslt >=app-text/docbook-xsl-stylesheets-1.70.1 )
dev-lang/python:2.7 >=dev-libs/glib-2.8:2 >=x11-libs/pango-1.16 >=app-accessibility/at-spi2-core-2.46.0 >=x11-libs/gtk+-2.24:2 dev-python/pycairo-python2[] >=dev-python/pygobject-2.26.8-r53:2[] >=gnome-base/libglade-2.5:2.0