x11-libs/gtk+: add 3.24.48

This release is recommended for GIMP as it fixes some crashes they reported;
I've also included a backport from the 3.24 branch that didn't make it into
3.24.48 which looked useful anyway but also turns out to be reported from
GIMP.

I'd noticed some releases the other week but I'd seen commits on the
branch involving CI + the release process and when I couldn't fetch the tarball,
I'd assumed perhaps there was teething trouble there so didn't look at it
further. It turns the files are now in the 'gtk' directory, not 'gtk+'.

This release may also have compatibility improvements for KDE Plasma
on Wayland, referenced in the bug.

Bug: https://bugs.gentoo.org/949641
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2025-02-16 07:13:06 +00:00
parent 490dacbc01
commit be08015743
3 changed files with 246 additions and 0 deletions

View File

@@ -2,3 +2,4 @@ DIST gtk+-2.24.33.tar.xz 12661828 BLAKE2B f3488b220aaee54bf36fa77e2112d060152e57
DIST gtk+-3.24.35.tar.xz 17913328 BLAKE2B 3beea3cbda7247357238ad133c951e69d5670d68e06efb4de09fae7141b141f4eb17a8c79661cab928a3db427f7b32b518875d0951254941e76b1a7aab60e34f SHA512 3a1ec35756fe12f5be3cfe33ef332d583690458327572e69bffad8b4095059d2a744a4a53b2fd31bab5da2ca7b41a2a38fbbd8ba541a45fa8cc0d00eae005ade
DIST gtk+-3.24.41.tar.xz 13188312 BLAKE2B fbded114fe2b5c1c7bffe79d0a22d559f97081eb972baf31b5c9bd7190bd1ea2875f1c632d3f3be8233377299f1df15bbffbe45d50cc7ff588e034eb41eb8f6e SHA512 aaf061d846fac592e71089feace302bdef1bb64bb2ad6ff30d51d90000da9084cad2fa5bf88cb75adcd789c911d94231ae60a2ca7cf97a2f5720687369a3da98
DIST gtk+-3.24.42.tar.xz 13226980 BLAKE2B 04675abfa056d19a8324c8310789227e661458cfa356b670ba79d61a9498fa1c65161d19799d33d717742912cdddc3400a548573809d5dd4e0f289d0c75e88d9 SHA512 53e86e35d33f82384f1d40bd91feee67be68bc9003abd095842991441b1f2ee11a5b431168963270d3ffc0c653d26673ca97cdd55a8f577ef21dbd5d6004b643
DIST gtk-3.24.48.tar.xz 13414436 BLAKE2B d5201f434d2045feb68bf9cdbf1e254eba8377a17fcc1d32daf3298338cd3482b5f26158f1c498d70dc122451da45dfdbcea3a39ecd0b074a3659a362a4eb3ea SHA512 aea1c4e2c5c7415692ffedc238321a58c6fc1a56000694e00f7bfe374c6e52fde89f510c1bcccfe3713f8f645e5a117323186e4bb1cffc62855caa5ab08e6b1f

View File

@@ -0,0 +1,31 @@
https://gitlab.gnome.org/GNOME/gtk/-/commit/32381771b1cfa55770036e525a6c53c70be6c920
From 32381771b1cfa55770036e525a6c53c70be6c920 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Wed, 12 Feb 2025 12:16:34 +0100
Subject: [PATCH] im: Fix signal handler signature
This was causing crashes, probably since 2019 :(
Fixes: #7306
Fixes: #7331
---
gtk/gtkimmulticontext.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gtk/gtkimmulticontext.c b/gtk/gtkimmulticontext.c
index 50363559d7b..2d70cdeda06 100644
--- a/gtk/gtkimmulticontext.c
+++ b/gtk/gtkimmulticontext.c
@@ -282,7 +282,8 @@ gtk_im_multicontext_get_slave (GtkIMMulticontext *multicontext)
}
static void
-im_module_setting_changed (GtkSettings *settings,
+im_module_setting_changed (GtkSettings *settings,
+ GParamSpec *pspec,
GtkIMMulticontext *self)
{
gtk_im_multicontext_set_slave (self, NULL, FALSE);
--
GitLab

View File

@@ -0,0 +1,214 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
GNOME_ORG_MODULE=gtk
inherit gnome2 meson-multilib multilib toolchain-funcs virtualx
DESCRIPTION="Gimp ToolKit +"
HOMEPAGE="https://www.gtk.org/"
LICENSE="LGPL-2+"
SLOT="3"
IUSE="aqua broadway cloudproviders colord cups examples gtk-doc +introspection sysprof test vim-syntax wayland +X xinerama"
REQUIRED_USE="
|| ( aqua wayland X )
test? ( X )
xinerama? ( X )
"
RESTRICT="!test? ( test )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris"
COMMON_DEPEND="
>=app-accessibility/at-spi2-core-2.46.0[introspection?,${MULTILIB_USEDEP}]
>=dev-libs/fribidi-0.19.7[${MULTILIB_USEDEP}]
>=dev-libs/glib-2.57.2:2[${MULTILIB_USEDEP}]
media-libs/fontconfig[${MULTILIB_USEDEP}]
>=media-libs/harfbuzz-2.2.0:=
>=media-libs/libepoxy-1.4[X(+)?,egl(+),${MULTILIB_USEDEP}]
virtual/libintl[${MULTILIB_USEDEP}]
>=x11-libs/cairo-1.14[aqua?,glib,svg(+),X?,${MULTILIB_USEDEP}]
>=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}]
>=x11-libs/pango-1.44.0[introspection?,${MULTILIB_USEDEP}]
x11-misc/shared-mime-info
cloudproviders? ( net-libs/libcloudproviders[${MULTILIB_USEDEP}] )
colord? ( >=x11-misc/colord-0.1.9:0=[${MULTILIB_USEDEP}] )
cups? ( >=net-print/cups-2.0[${MULTILIB_USEDEP}] )
introspection? ( >=dev-libs/gobject-introspection-1.39:= )
wayland? (
>=dev-libs/wayland-1.14.91[${MULTILIB_USEDEP}]
>=dev-libs/wayland-protocols-1.32
media-libs/mesa[wayland,${MULTILIB_USEDEP}]
>=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}]
)
X? (
media-libs/libglvnd[X(+),${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXcomposite[${MULTILIB_USEDEP}]
x11-libs/libXcursor[${MULTILIB_USEDEP}]
x11-libs/libXdamage[${MULTILIB_USEDEP}]
x11-libs/libXext[${MULTILIB_USEDEP}]
x11-libs/libXfixes[${MULTILIB_USEDEP}]
>=x11-libs/libXi-1.8[${MULTILIB_USEDEP}]
>=x11-libs/libXrandr-1.5[${MULTILIB_USEDEP}]
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
)
"
DEPEND="${COMMON_DEPEND}
sysprof? ( >=dev-util/sysprof-capture-3.33.2:4[${MULTILIB_USEDEP}] )
X? ( x11-base/xorg-proto )
"
RDEPEND="${COMMON_DEPEND}
>=dev-util/gtk-update-icon-cache-3
"
# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710
PDEPEND="
gnome-base/librsvg[${MULTILIB_USEDEP}]
>=x11-themes/adwaita-icon-theme-3.14
vim-syntax? ( app-vim/gtk-syntax )
"
BDEPEND="
app-text/docbook-xml-dtd:4.1.2
app-text/docbook-xsl-stylesheets
dev-libs/gobject-introspection-common
dev-libs/libxslt
>=dev-util/gdbus-codegen-2.48
dev-util/glib-utils
>=dev-build/gtk-doc-am-1.20
wayland? ( dev-util/wayland-scanner )
>=sys-devel/gettext-0.19.7
virtual/pkgconfig
x11-libs/gdk-pixbuf:2
gtk-doc? (
app-text/docbook-xml-dtd:4.3
>=dev-util/gtk-doc-1.20
)
test? ( sys-apps/dbus )
"
MULTILIB_CHOST_TOOLS=(
/usr/bin/gtk-query-immodules-3.0$(get_exeext)
)
PATCHES=(
# gtk-update-icon-cache is installed by dev-util/gtk-update-icon-cache
"${FILESDIR}"/${PN}-3.24.36-update-icon-cache.patch
# Gentoo-specific patch to add a "poison" macro support, allowing other ebuilds
# with USE="-wayland -X" to trick gtk into claiming that it wasn't built with
# such support.
# https://bugs.gentoo.org/624960
"${FILESDIR}"/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch
# Backport from 3.24 branch
"${FILESDIR}"/${P}-signal-handler.patch
)
src_prepare() {
default
# Force sysprof-capture-4 instead of checking sysprof-capture-3 first; either is
# fine as far as deps are concerned, as it static links, but sysprof-capture-3
# links to glib which would be done statically if there's glib[static-libs],
# making the whole of gtk+ static link to glib instead of dynamic linking to glib.
sed -i -e "s/'sysprof-capture-3'/'sysprof-capture-4'/g" meson.build || die
# The border-image-excess-size.ui test is known to fail on big-endian platforms
# See https://gitlab.gnome.org/GNOME/gtk/-/issues/5904
if [[ $(tc-endian) == big ]]; then
sed -i \
-e "/border-image-excess-size.ui/d" \
-e "/^xfails =/a 'border-image-excess-size.ui'," \
testsuite/reftests/meson.build || die
fi
}
multilib_src_configure() {
local emesonargs=(
$(meson_use aqua quartz_backend)
$(meson_use broadway broadway_backend)
$(meson_use cloudproviders)
$(meson_use examples demos)
$(meson_use examples)
$(meson_native_use_bool gtk-doc gtk_doc)
$(meson_native_use_bool introspection)
$(meson_use sysprof profiler)
$(meson_use wayland wayland_backend)
$(meson_use X x11_backend)
-Dcolord=$(usex colord yes no)
-Dprint_backends=$(usex cups cups,file,lpr file,lpr)
-Dxinerama=$(usex xinerama yes no)
# Include backend immodules into gtk itself, to avoid problems like
# https://gitlab.gnome.org/GNOME/gnome-shell/issues/109 from a
# user overridden GTK_IM_MODULE envvar
-Dbuiltin_immodules=backend
-Dman=true
$(meson_use test tests)
-Dtracker3=false
)
meson_src_configure
}
multilib_src_compile() {
meson_src_compile
}
multilib_src_test() {
virtx dbus-run-session meson test -C "${BUILD_DIR}" --timeout-multiplier 4 || die
}
multilib_src_install() {
meson_src_install
}
multilib_src_install_all() {
insinto /etc/gtk-3.0
doins "${FILESDIR}"/settings.ini
# Skip README.win32.md that would get installed by default
DOCS=( NEWS README.md )
einstalldocs
}
pkg_preinst() {
gnome2_pkg_preinst
multilib_pkg_preinst() {
# Make immodules.cache belongs to gtk+ alone
local cache="/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache"
if [[ -e ${EROOT}${cache} ]]; then
cp "${EROOT}${cache}" "${ED}${cache}" || die
else
touch "${ED}${cache}" || die
fi
}
multilib_parallel_foreach_abi multilib_pkg_preinst
}
pkg_postinst() {
gnome2_pkg_postinst
multilib_pkg_postinst() {
gnome2_query_immodules_gtk3 \
|| die "Update immodules cache failed (for ${ABI})"
}
multilib_parallel_foreach_abi multilib_pkg_postinst
if ! has_version "app-text/evince"; then
elog "Please install app-text/evince for print preview functionality."
elog "Alternatively, check \"gtk-print-preview-command\" documentation and"
elog "add it to your settings.ini file."
fi
}
pkg_postrm() {
gnome2_pkg_postrm
if [[ -z ${REPLACED_BY_VERSION} ]]; then
multilib_pkg_postrm() {
rm -f "${EROOT}/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache"
}
multilib_foreach_abi multilib_pkg_postrm
fi
}