summaryrefslogtreecommitdiff
path: root/x11-libs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-03-19 09:51:52 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-03-19 09:51:52 +0000
commit0c85a1b87ef11b3ce7a16517aa56ec35e5a56607 (patch)
tree930a6ef37b44e05851d189abd5d3052ca0bb950b /x11-libs
parentdbd22e546d5a122957bde9948bfe48af799dce5e (diff)
x11-libs/gtk+ : version bump
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/gtk+/Manifest2
-rw-r--r--x11-libs/gtk+/files/0001-gdk-add-a-poison-macro-to-hide-GDK_WINDOWING_.patch90
-rw-r--r--x11-libs/gtk+/files/gtk+-3.24.48-signal-handler.patch31
-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