commit: 3738e90d57374e7b7b7a9becbd36638963ec8643 Author: Pacho Ramos <pacho <AT> gentoo <DOT> org> AuthorDate: Sun Oct 12 09:32:22 2025 +0000 Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org> CommitDate: Sun Oct 12 09:48:14 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3738e90d
x11-libs/libwnck: drop 43.0-r1 Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org> x11-libs/libwnck/Manifest | 1 - ...libwnck-43.0-segfault_in_invalidate_icons.patch | 29 -- .../files/libwnck-43.0-xres-extension.patch | 380 --------------------- x11-libs/libwnck/libwnck-43.0-r1.ebuild | 60 ---- 4 files changed, 470 deletions(-) diff --git a/x11-libs/libwnck/Manifest b/x11-libs/libwnck/Manifest index c4004e742d68..1e550ba13c38 100644 --- a/x11-libs/libwnck/Manifest +++ b/x11-libs/libwnck/Manifest @@ -1,3 +1,2 @@ -DIST libwnck-43.0.tar.xz 455464 BLAKE2B 591b7a9016f5149a2493d36ed8ec8a7e2a59b13043aed23bf87ef67520954d2e5cab0edb6f427c36f33fe80478ad363c9db6f4dacbc7c6d4295e79191e7f5043 SHA512 f6c14b0a650c6d5ab4d4013e6add3972a0f0bcdedfb9785f64199c9a65713d11c9d936e8b04d0f04707c3d165dd345bfa806f654bf82eabb765546b8914d68d2 DIST libwnck-43.2.tar.xz 455644 BLAKE2B 22008fe01284066722fb2c31451870266cc44eae81c03d2be8d424700224150fcfcc411c392b2fe784e7ff4da6f8d3560897a91999ba06ae14d9165401258231 SHA512 c2f327f3aa757d9120a12de3d87d91ac452ea4a06abfa6de8145548df5175c0445e30fd93045c0e869d80efddc954cde0e25f4247be422801cd92bed40057e5b DIST libwnck-43.3.tar.xz 455776 BLAKE2B ecce2a705d0775ca0c8f5941c8ce97217897f21ae89b06c58c49fa0f0482a2dbfc3c045c3038dc4fa89bbf44496f342cbf2d561a772363e1435866fb6452f6f8 SHA512 51304ab6ad543d10e8542257b24964dbce454eb1bedfa26fc926797b01373b9effad8097fe0f18216439d0339525377abb9e3c88b58cc2e7ed04832cb40a27ed diff --git a/x11-libs/libwnck/files/libwnck-43.0-segfault_in_invalidate_icons.patch b/x11-libs/libwnck/files/libwnck-43.0-segfault_in_invalidate_icons.patch deleted file mode 100644 index d107f25d97c6..000000000000 --- a/x11-libs/libwnck/files/libwnck-43.0-segfault_in_invalidate_icons.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6ceb684442eb26e3bdb8a38bf52264ad55f96a7b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <[email protected]> -Date: Tue, 20 Sep 2022 15:40:22 +0300 -Subject: [PATCH] handle: avoid segfault in invalidate_icons - -Screens variable won't be initialized if default icon sizes are -set/changed before using wnck_screen_get_default. - -https://bugs.launchpad.net/ubuntu/+source/libwnck3/+bug/1990263 ---- - libwnck/wnck-handle.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/libwnck/wnck-handle.c b/libwnck/wnck-handle.c -index e12ff882..8d5da45c 100644 ---- a/libwnck/wnck-handle.c -+++ b/libwnck/wnck-handle.c -@@ -70,6 +70,9 @@ invalidate_icons (WnckHandle *self) - Display *xdisplay; - int i; - -+ if (self->screens == NULL) -+ return; -+ - xdisplay = _wnck_get_default_display (); - - for (i = 0; i < ScreenCount (xdisplay); ++i) --- - diff --git a/x11-libs/libwnck/files/libwnck-43.0-xres-extension.patch b/x11-libs/libwnck/files/libwnck-43.0-xres-extension.patch deleted file mode 100644 index 2003c7df59ab..000000000000 --- a/x11-libs/libwnck/files/libwnck-43.0-xres-extension.patch +++ /dev/null @@ -1,380 +0,0 @@ -From 4ee0ab2b0665da5cb0ad16d6d163ad20549b7ba6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <[email protected]> -Date: Fri, 30 Sep 2022 17:32:09 +0300 -Subject: [PATCH 1/4] handle: init XRes extension - -XResQueryClientIds needs XRes 1.2 or newer. ---- - libwnck/wnck-handle-private.h | 2 ++ - libwnck/wnck-handle.c | 48 +++++++++++++++++++++++++++++++++++ - meson.build | 2 +- - 3 files changed, 51 insertions(+), 1 deletion(-) - -diff --git a/libwnck/wnck-handle-private.h b/libwnck/wnck-handle-private.h -index c4217cef..06331040 100644 ---- a/libwnck/wnck-handle-private.h -+++ b/libwnck/wnck-handle-private.h -@@ -26,6 +26,8 @@ G_BEGIN_DECLS - - WnckClientType _wnck_handle_get_client_type (WnckHandle *self); - -+gboolean _wnck_handle_has_xres (WnckHandle *self); -+ - gsize _wnck_handle_get_default_icon_size (WnckHandle *self); - - gsize _wnck_handle_get_default_mini_icon_size (WnckHandle *self); -diff --git a/libwnck/wnck-handle.c b/libwnck/wnck-handle.c -index e12ff882..710b7548 100644 ---- a/libwnck/wnck-handle.c -+++ b/libwnck/wnck-handle.c -@@ -29,6 +29,11 @@ - #include "config.h" - #include "wnck-handle-private.h" - -+#include <X11/Xlib.h> -+#ifdef HAVE_XRES -+#include <X11/extensions/XRes.h> -+#endif -+ - #include "private.h" - #include "screen.h" - #include "window.h" -@@ -43,6 +48,8 @@ struct _WnckHandle - - WnckClientType client_type; - -+ gboolean have_xres; -+ - gsize default_icon_size; - gsize default_mini_icon_size; - -@@ -164,6 +171,40 @@ filter_func (GdkXEvent *gdkxevent, - return GDK_FILTER_CONTINUE; - } - -+static void -+init_xres (WnckHandle *self) -+{ -+#ifdef HAVE_XRES -+ Display *xdisplay; -+ int event_base; -+ int error_base; -+ int major; -+ int minor; -+ -+ xdisplay = _wnck_get_default_display (); -+ event_base = error_base = major = minor = 0; -+ -+ if (XResQueryExtension (xdisplay, &event_base, &error_base) && -+ XResQueryVersion (xdisplay, &major, &minor) == 1) -+ { -+ if (major > 1 || (major == 1 && minor >= 2)) -+ self->have_xres = TRUE; -+ } -+#endif -+} -+ -+static void -+wnck_handle_constructed (GObject *object) -+{ -+ WnckHandle *self; -+ -+ self = WNCK_HANDLE (object); -+ -+ G_OBJECT_CLASS (wnck_handle_parent_class)->constructed (object); -+ -+ init_xres (self); -+} -+ - static void - wnck_handle_finalize (GObject *object) - { -@@ -290,6 +331,7 @@ wnck_handle_class_init (WnckHandleClass *self_class) - - object_class = G_OBJECT_CLASS (self_class); - -+ object_class->constructed = wnck_handle_constructed; - object_class->finalize = wnck_handle_finalize; - object_class->get_property = wnck_handle_get_property; - object_class->set_property = wnck_handle_set_property; -@@ -343,6 +385,12 @@ _wnck_handle_get_client_type (WnckHandle *self) - return self->client_type; - } - -+gboolean -+_wnck_handle_has_xres (WnckHandle *self) -+{ -+ return self->have_xres; -+} -+ - /** - * wnck_handle_get_default_screen: - * @self: a #WnckHandle -diff --git a/meson.build b/meson.build -index 6b0eea97..907fdf26 100644 ---- a/meson.build -+++ b/meson.build -@@ -45,7 +45,7 @@ pkg_deps = [ - {'name': 'gtk+-3.0', 'version': '>= 3.22.0' }, - {'name': STARTUP_NOTIFICATION_PACKAGE, 'version': '>= 0.4', 'required': get_option('startup_notification')}, - {'name': X11_PACKAGE }, -- {'name': XRES_PACKAGE, 'required': false}, -+ {'name': XRES_PACKAGE, 'version': '>= 1.2', 'required': false}, - ] - - foreach p: pkg_deps --- -GitLab - - -From f6b973b1f15ac1d8b8203972195d9a1765c75ba2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <[email protected]> -Date: Fri, 30 Sep 2022 18:07:55 +0300 -Subject: [PATCH 2/4] xutils: move XRes code to separate function - ---- - libwnck/xutils.c | 28 ++++++++++++++++++++-------- - 1 file changed, 20 insertions(+), 8 deletions(-) - -diff --git a/libwnck/xutils.c b/libwnck/xutils.c -index 60ae7b25..d120ff16 100644 ---- a/libwnck/xutils.c -+++ b/libwnck/xutils.c -@@ -1145,13 +1145,12 @@ _wnck_get_session_id (Screen *screen, - _wnck_atom_get ("SM_CLIENT_ID")); - } - --int --_wnck_get_pid (Screen *screen, -- Window xwindow) -+#ifdef HAVE_XRES -+static int -+xres_get_pid (Screen *screen, -+ Window xwindow) - { - int pid = -1; -- --#ifdef HAVE_XRES - XResClientIdSpec client_spec; - long client_id_count = 0; - XResClientIdValue *client_ids = NULL; -@@ -1172,10 +1171,23 @@ _wnck_get_pid (Screen *screen, - } - - XResClientIdsDestroy (client_id_count, client_ids); -- -- if (pid != -1) -- return pid; - } -+ -+ return pid; -+} -+#endif -+ -+int -+_wnck_get_pid (Screen *screen, -+ Window xwindow) -+{ -+ int pid = -1; -+ -+#ifdef HAVE_XRES -+ pid = xres_get_pid (screen, xwindow); -+ -+ if (pid != -1) -+ return pid; - #endif - - if (!_wnck_get_cardinal (screen, xwindow, --- -GitLab - - -From 6e61e5ef2ad6726cf607ea70c011f49e269472e7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <[email protected]> -Date: Fri, 30 Sep 2022 18:39:00 +0300 -Subject: [PATCH 3/4] xutils: use WnckScreen in _wnck_get_pid - ---- - libwnck/application.c | 2 +- - libwnck/window.c | 2 +- - libwnck/wnck-resource-usage.c | 26 +++++++++++++------------- - libwnck/xutils.c | 16 ++++++++++------ - libwnck/xutils.h | 4 ++-- - 5 files changed, 27 insertions(+), 23 deletions(-) - -diff --git a/libwnck/application.c b/libwnck/application.c -index 9ab7f489..31005ba4 100644 ---- a/libwnck/application.c -+++ b/libwnck/application.c -@@ -524,7 +524,7 @@ _wnck_application_create (Window xwindow, - if (application->priv->name) - application->priv->name_from_leader = TRUE; - -- application->priv->pid = _wnck_get_pid (xscreen, -+ application->priv->pid = _wnck_get_pid (screen, - application->priv->xwindow); - - application->priv->startup_id = _wnck_get_utf8_property (xscreen, -diff --git a/libwnck/window.c b/libwnck/window.c -index 35bb37c1..229b4cb1 100644 ---- a/libwnck/window.c -+++ b/libwnck/window.c -@@ -510,7 +510,7 @@ _wnck_window_create (Window xwindow, - _wnck_get_session_id (xscreen, window->priv->xwindow); - - window->priv->pid = -- _wnck_get_pid (xscreen, window->priv->xwindow); -+ _wnck_get_pid (screen, window->priv->xwindow); - - window->priv->x = 0; - window->priv->y = 0; -diff --git a/libwnck/wnck-resource-usage.c b/libwnck/wnck-resource-usage.c -index a845d82b..1d81c283 100644 ---- a/libwnck/wnck-resource-usage.c -+++ b/libwnck/wnck-resource-usage.c -@@ -126,10 +126,10 @@ wnck_gulong_equal (gconstpointer a, - } - - static gulong --wnck_check_window_for_pid (Screen *screen, -- Window win, -- XID match_xid, -- XID mask) -+wnck_check_window_for_pid (WnckScreen *screen, -+ Window win, -+ XID match_xid, -+ XID mask) - { - if ((win & ~mask) == match_xid) - return _wnck_get_pid (screen, win); -@@ -138,13 +138,13 @@ wnck_check_window_for_pid (Screen *screen, - } - - static void --wnck_find_pid_for_resource_r (Display *xdisplay, -- Screen *screen, -- Window win_top, -- XID match_xid, -- XID mask, -- gulong *xid, -- gulong *pid) -+wnck_find_pid_for_resource_r (Display *xdisplay, -+ WnckScreen *screen, -+ Window win_top, -+ XID match_xid, -+ XID mask, -+ gulong *xid, -+ gulong *pid) - { - Status qtres; - int err; -@@ -250,10 +250,10 @@ wnck_pid_read_resource_usage_fill_cache (struct xresclient_state *state) - - for (i = 0; i < ScreenCount (state->xdisplay); i++) - { -- Screen *screen; -+ WnckScreen *screen; - Window root; - -- screen = ScreenOfDisplay (state->xdisplay, i); -+ screen = wnck_handle_get_screen (_wnck_get_handle (), i); - root = RootWindow (state->xdisplay, i); - - if (root == None) -diff --git a/libwnck/xutils.c b/libwnck/xutils.c -index d120ff16..08be8aa9 100644 ---- a/libwnck/xutils.c -+++ b/libwnck/xutils.c -@@ -1147,18 +1147,21 @@ _wnck_get_session_id (Screen *screen, - - #ifdef HAVE_XRES - static int --xres_get_pid (Screen *screen, -- Window xwindow) -+xres_get_pid (WnckScreen *screen, -+ Window xwindow) - { - int pid = -1; -+ Screen *xscreen; - XResClientIdSpec client_spec; - long client_id_count = 0; - XResClientIdValue *client_ids = NULL; - -+ xscreen = _wnck_screen_get_xscreen (screen); -+ - client_spec.client = xwindow; - client_spec.mask = XRES_CLIENT_ID_PID_MASK; - -- if (XResQueryClientIds (DisplayOfScreen (screen), 1, &client_spec, -+ if (XResQueryClientIds (DisplayOfScreen (xscreen), 1, &client_spec, - &client_id_count, &client_ids) == Success) - { - long i; -@@ -1178,8 +1181,8 @@ xres_get_pid (Screen *screen, - #endif - - int --_wnck_get_pid (Screen *screen, -- Window xwindow) -+_wnck_get_pid (WnckScreen *screen, -+ Window xwindow) - { - int pid = -1; - -@@ -1190,7 +1193,8 @@ _wnck_get_pid (Screen *screen, - return pid; - #endif - -- if (!_wnck_get_cardinal (screen, xwindow, -+ if (!_wnck_get_cardinal (_wnck_screen_get_xscreen (screen), -+ xwindow, - _wnck_atom_get ("_NET_WM_PID"), - &pid)) - return 0; -diff --git a/libwnck/xutils.h b/libwnck/xutils.h -index 4e5c6204..700832a4 100644 ---- a/libwnck/xutils.h -+++ b/libwnck/xutils.h -@@ -123,8 +123,8 @@ void _wnck_change_viewport (Screen *screen, - - char* _wnck_get_session_id (Screen *screen, - Window xwindow); --int _wnck_get_pid (Screen *screen, -- Window xwindow); -+int _wnck_get_pid (WnckScreen *screen, -+ Window xwindow); - char* _wnck_get_name (Screen *screen, - Window xwindow); - char* _wnck_get_icon_name (Screen *screen, --- -GitLab - - -From dde756bc7788488f07b674cbe218943a62eb82e6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <[email protected]> -Date: Fri, 30 Sep 2022 18:43:07 +0300 -Subject: [PATCH 4/4] xutils: check if XRes is available before using - XResQueryClientIds - -https://gitlab.gnome.org/GNOME/libwnck/-/issues/154 ---- - libwnck/xutils.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/libwnck/xutils.c b/libwnck/xutils.c -index 08be8aa9..91c2d50e 100644 ---- a/libwnck/xutils.c -+++ b/libwnck/xutils.c -@@ -1156,6 +1156,9 @@ xres_get_pid (WnckScreen *screen, - long client_id_count = 0; - XResClientIdValue *client_ids = NULL; - -+ if (!_wnck_handle_has_xres (wnck_screen_get_handle (screen))) -+ return -1; -+ - xscreen = _wnck_screen_get_xscreen (screen); - - client_spec.client = xwindow; --- -GitLab - diff --git a/x11-libs/libwnck/libwnck-43.0-r1.ebuild b/x11-libs/libwnck/libwnck-43.0-r1.ebuild deleted file mode 100644 index 4794a203adb1..000000000000 --- a/x11-libs/libwnck/libwnck-43.0-r1.ebuild +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit gnome.org meson xdg - -DESCRIPTION="A window navigation construction kit" -HOMEPAGE="https://developer.gnome.org/libwnck/stable/" - -LICENSE="LGPL-2+" -SLOT="3" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-solaris" - -IUSE="gtk-doc +introspection startup-notification tools" - -RDEPEND=" - x11-libs/cairo[X] - >=dev-libs/glib-2.44:2 - >=x11-libs/gtk+-3.22:3[X,introspection?] - startup-notification? ( >=x11-libs/startup-notification-0.4 ) - x11-libs/libX11 - x11-libs/libXres - introspection? ( >=dev-libs/gobject-introspection-1.56:= ) -" -# libXi header used by wnckprop.c, which is compiled even with USE=-tools (just not installed then) -DEPEND="${RDEPEND} - x11-libs/libXi" -BDEPEND=" - gtk-doc? ( >=dev-util/gtk-doc-1.9 - app-text/docbook-xml-dtd:4.1.2 ) - >=sys-devel/gettext-0.19.8 - virtual/pkgconfig -" - -PATCHES=( - # https://gitlab.gnome.org/GNOME/libwnck/-/issues/154 - "${FILESDIR}/${P}-xres-extension.patch" - - # https://gitlab.gnome.org/GNOME/libwnck/-/issues/155 - "${FILESDIR}/${P}-segfault_in_invalidate_icons.patch" -) - -src_prepare() { - default - xdg_environment_reset - # Don't collide with SLOT=1 with USE=tools - sed -e "s|executable(prog|executable(prog + '-3'|" -i libwnck/meson.build || die -} - -src_configure() { - local emesonargs=( - -Ddeprecation_flags=false - $(meson_use tools install_tools) - $(meson_feature startup-notification startup_notification) - $(meson_feature introspection) - $(meson_use gtk-doc gtk_doc) - ) - meson_src_configure -}
