diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-03-19 09:51:52 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-03-19 09:51:52 +0000 |
commit | 0c85a1b87ef11b3ce7a16517aa56ec35e5a56607 (patch) | |
tree | 930a6ef37b44e05851d189abd5d3052ca0bb950b /x11-libs | |
parent | dbd22e546d5a122957bde9948bfe48af799dce5e (diff) |
x11-libs/gtk+ : version bump
Diffstat (limited to 'x11-libs')
-rw-r--r-- | x11-libs/gtk+/Manifest | 2 | ||||
-rw-r--r-- | x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch | 90 | ||||
-rw-r--r-- | x11-libs/gtk+/files/gtk+-3.24.48-signal-handler.patch | 31 | ||||
-rw-r--r-- | x11-libs/gtk+/gtk+-3.24.48.ebuild (renamed from x11-libs/gtk+/gtk+-3.24.41-r6.ebuild) | 20 |
4 files changed, 139 insertions, 4 deletions
diff --git a/x11-libs/gtk+/Manifest b/x11-libs/gtk+/Manifest index 4cf0e2c5..6bc800e6 100644 --- a/x11-libs/gtk+/Manifest +++ b/x11-libs/gtk+/Manifest @@ -1,2 +1,2 @@ DIST gtk+-2.24.33.tar.xz 12661828 BLAKE2B f3488b220aaee54bf36fa77e2112d060152e57938845d240014a7d43a5743b1d4de19cc09c683d9d238fd1967cd67cc3c493f2475e4e481f6709f5cdc652c65c SHA512 71b588797c81f727dfac8dcb1be193f7436f717d30ecf18eae2d3aeb0f445b3be4743400acac16435490db8f564f01032065d3f42d27871317f80c98aef929d5 -DIST gtk+-3.24.41.tar.xz 13188312 BLAKE2B fbded114fe2b5c1c7bffe79d0a22d559f97081eb972baf31b5c9bd7190bd1ea2875f1c632d3f3be8233377299f1df15bbffbe45d50cc7ff588e034eb41eb8f6e SHA512 aaf061d846fac592e71089feace302bdef1bb64bb2ad6ff30d51d90000da9084cad2fa5bf88cb75adcd789c911d94231ae60a2ca7cf97a2f5720687369a3da98 +DIST gtk-3.24.48.tar.xz 13414436 BLAKE2B d5201f434d2045feb68bf9cdbf1e254eba8377a17fcc1d32daf3298338cd3482b5f26158f1c498d70dc122451da45dfdbcea3a39ecd0b074a3659a362a4eb3ea SHA512 aea1c4e2c5c7415692ffedc238321a58c6fc1a56000694e00f7bfe374c6e52fde89f510c1bcccfe3713f8f645e5a117323186e4bb1cffc62855caa5ab08e6b1f diff --git a/x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch b/x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch new file mode 100644 index 00000000..26c56b86 --- /dev/null +++ b/x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch @@ -0,0 +1,90 @@ +From 25bdad805bb9e16032baf4480e9c1e432ddef49b Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwartz93@gmail.com> +Date: Wed, 19 Jun 2024 21:28:31 -0400 +Subject: [PATCH] gdk: add a "poison" macro to hide GDK_WINDOWING_* + +Many packages perform automagic dependencies on gdk's backend +implementations by checking if the macro is defined and then using the +code it unlocks, rather than having a buildsystem option such as +-Dwayland=true. + +It's unfeasible to patch every such package's source code to add +configure options and respect them. Instead add a truly filthy hack and +permit gtk itself to selectively show or hide the windowing system in +use. + +By default, we assume this macro is never defined. It should only ever +be defined inside an ebuild, as such: + +``` +use wayland || append-cflags -DGENTOO_GTK_HIDE_WAYLAND +use X || append-cflags -DGENTOO_GTK_HIDE_X11 +``` + +When seen, this will prevent code using "#ifdef GDK_WINDOWING_*" from +seeing the define, so the automagic dependency won't be picked up. It +will also cause any attempt to #include the backend-specific headers to +bug out. + +Bug: https://bugs.gentoo.org/624960 +Signed-off-by: Eli Schwartz <eschwartz93@gmail.com> +--- + gdk/gdkconfig.h.meson | 7 +++++++ + gdk/wayland/gdkwayland.h | 4 ++++ + gdk/x11/gdkx.h | 4 ++++ + 3 files changed, 15 insertions(+) + +diff --git a/gdk/gdkconfig.h.meson b/gdk/gdkconfig.h.meson +index 7db19e0470..6bee207e94 100644 +--- a/gdk/gdkconfig.h.meson ++++ b/gdk/gdkconfig.h.meson +@@ -10,9 +10,16 @@ + G_BEGIN_DECLS + + ++#ifndef GENTOO_GTK_HIDE_X11 + #mesondefine GDK_WINDOWING_X11 ++#endif ++ + #mesondefine GDK_WINDOWING_BROADWAY ++ ++#ifndef GENTOO_GTK_HIDE_WAYLAND + #mesondefine GDK_WINDOWING_WAYLAND ++#endif ++ + #mesondefine GDK_WINDOWING_WIN32 + #mesondefine GDK_WINDOWING_QUARTZ + +diff --git a/gdk/wayland/gdkwayland.h b/gdk/wayland/gdkwayland.h +index 2b79295add..5f0e9cfa81 100644 +--- a/gdk/wayland/gdkwayland.h ++++ b/gdk/wayland/gdkwayland.h +@@ -25,6 +25,10 @@ + #ifndef __GDK_WAYLAND_H__ + #define __GDK_WAYLAND_H__ + ++#ifdef GENTOO_GTK_HIDE_WAYLAND ++ #error "A Gentoo ebuild has hidden wayland and it cannot be used in this compilation unit. Please file a bug if you see this error." ++#endif ++ + #include <gdk/gdk.h> + + #define __GDKWAYLAND_H_INSIDE__ +diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx.h +index 1f64bccb6d..256c83015e 100644 +--- a/gdk/x11/gdkx.h ++++ b/gdk/x11/gdkx.h +@@ -25,6 +25,10 @@ + #ifndef __GDK_X_H__ + #define __GDK_X_H__ + ++#ifdef GENTOO_GTK_HIDE_X11 ++ #error "A Gentoo ebuild has hidden x11 and it cannot be used in this compilation unit. Please file a bug if you see this error." ++#endif ++ + #include <gdk/gdk.h> + + #include <X11/Xlib.h> +-- +2.44.2 + 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 00000000..40ca24d9 --- /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 <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 diff --git a/x11-libs/gtk+/gtk+-3.24.41-r6.ebuild b/x11-libs/gtk+/gtk+-3.24.48.ebuild index 8e646b38..6192c794 100644 --- a/x11-libs/gtk+/gtk+-3.24.41-r6.ebuild +++ b/x11-libs/gtk+/gtk+-3.24.48.ebuild @@ -1,8 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# 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 +" @@ -18,7 +19,7 @@ REQUIRED_USE=" " RESTRICT="!test? ( test )" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris" +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}] @@ -37,7 +38,6 @@ COMMON_DEPEND=" 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:= ) - sysprof? ( >=dev-util/sysprof-capture-3.33.2:3[${MULTILIB_USEDEP}] ) wayland? ( >=dev-libs/wayland-1.14.91[${MULTILIB_USEDEP}] >=dev-libs/wayland-protocols-1.32 @@ -58,6 +58,7 @@ COMMON_DEPEND=" ) " DEPEND="${COMMON_DEPEND} + sysprof? ( >=dev-util/sysprof-capture-3.33.2:4[${MULTILIB_USEDEP}] ) X? ( x11-base/xorg-proto ) " RDEPEND="${COMMON_DEPEND} @@ -95,11 +96,24 @@ MULTILIB_CHOST_TOOLS=( 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 |