commit: be0801574372e31550daa195bbf79b8204ac92d4 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sun Feb 16 07:13:06 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Feb 16 07:13:06 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=be080157
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 <AT> gentoo.org> x11-libs/gtk+/Manifest | 1 + .../gtk+/files/gtk+-3.24.48-signal-handler.patch | 31 +++ x11-libs/gtk+/gtk+-3.24.48.ebuild | 214 +++++++++++++++++++++ 3 files changed, 246 insertions(+) diff --git a/x11-libs/gtk+/Manifest b/x11-libs/gtk+/Manifest index 227cb690f62d..3617011e7455 100644 --- a/x11-libs/gtk+/Manifest +++ b/x11-libs/gtk+/Manifest @@ -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 diff --git a/x11-libs/gtk+/files/gtk+-3.24.48-signal-handler.patch b/x11-libs/gtk+/files/gtk+-3.24.48-signal-handler.patch new file mode 100644 index 000000000000..40ca24d90093 --- /dev/null +++ b/x11-libs/gtk+/files/gtk+-3.24.48-signal-handler.patch @@ -0,0 +1,31 @@ +https://gitlab.gnome.org/GNOME/gtk/-/commit/32381771b1cfa55770036e525a6c53c70be6c920 + +From 32381771b1cfa55770036e525a6c53c70be6c920 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen <[email protected]> +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 diff --git a/x11-libs/gtk+/gtk+-3.24.48.ebuild b/x11-libs/gtk+/gtk+-3.24.48.ebuild new file mode 100644 index 000000000000..6192c794e833 --- /dev/null +++ b/x11-libs/gtk+/gtk+-3.24.48.ebuild @@ -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 +}
