summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <leio@gentoo.org>2018-12-25 17:42:30 +0200
committerMart Raudsepp <leio@gentoo.org>2018-12-25 17:50:36 +0200
commit8403a13490ce4e7f9c8a6c956ac11ee1289bab97 (patch)
treec0b51055cb18a08273bbc859450ae259c05ffc01
parentwww-servers/nginx: bump to v1.15.8 mainline (diff)
downloadgentoo-8403a13490ce4e7f9c8a6c956ac11ee1289bab97.tar.gz
gentoo-8403a13490ce4e7f9c8a6c956ac11ee1289bab97.tar.bz2
gentoo-8403a13490ce4e7f9c8a6c956ac11ee1289bab97.zip
gnome-base/gnome-settings-daemon: fix build with glib-2.58
New glib does typeof() checking on g_clear_pointer macro calls, which fails with code that passed something unsuitable as g_clear_pointer destroy parameter. notify_notification_close takes a second parameter, which is not a valid function signature for g_clear_pointer, thus it errors now. Add upstream patch to fix that. Because in practice the destroy func call worked out fine with earlier glib, without any known problems, there is no revbump by considering it only a build fix (which strictly it's not). Closes: https://bugs.gentoo.org/673706 Signed-off-by: Mart Raudsepp <leio@gentoo.org> Package-Manager: Portage-2.3.52, Repoman-2.3.11
-rw-r--r--gnome-base/gnome-settings-daemon/files/glib-2.58-compat.patch33
-rw-r--r--gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.24.4.ebuild3
-rw-r--r--gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.26.2-r1.ebuild1
3 files changed, 36 insertions, 1 deletions
diff --git a/gnome-base/gnome-settings-daemon/files/glib-2.58-compat.patch b/gnome-base/gnome-settings-daemon/files/glib-2.58-compat.patch
new file mode 100644
index 000000000000..94e1cad666e3
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/files/glib-2.58-compat.patch
@@ -0,0 +1,33 @@
+From 3110457f72f70b2d283c1ad2f27b91b95d75d92f Mon Sep 17 00:00:00 2001
+From: Christian Hergert <chergert@redhat.com>
+Date: Wed, 18 Jul 2018 19:31:17 -0700
+Subject: [PATCH] housekeeping: fix improper notify_notification_close() usage
+
+notify_notification_close() expects that a parameter will be available for
+the error location, which could be a dangling pointer in a register or
+on the stack in the case of some architectures.
+
+This was caught by GNOME/glib#1425 which allows us to check proper type
+parameters.
+---
+ plugins/housekeeping/gsd-disk-space.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/plugins/housekeeping/gsd-disk-space.c b/plugins/housekeeping/gsd-disk-space.c
+index 0ae40193..0eee94ea 100644
+--- a/plugins/housekeeping/gsd-disk-space.c
++++ b/plugins/housekeeping/gsd-disk-space.c
+@@ -1017,7 +1017,9 @@ gsd_ldsm_clean (void)
+ g_clear_object (&ldsm_monitor);
+ g_clear_object (&settings);
+ g_clear_object (&privacy_settings);
+- g_clear_pointer (&notification, notify_notification_close);
++ /* NotifyNotification::closed callback will drop reference */
++ if (notification != NULL)
++ notify_notification_close (notification, NULL);
+ g_slist_free_full (ignore_paths, g_free);
+ ignore_paths = NULL;
+ }
+--
+2.17.0
+
diff --git a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.24.4.ebuild b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.24.4.ebuild
index 30c725168566..dbde38ea9373 100644
--- a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.24.4.ebuild
+++ b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.24.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -103,6 +103,7 @@ PATCHES=(
# Reduce memory usage by using a fake CSS theme instead of full Adwaita for GTK+ needing plugins; requires eautoreconf
# Fix build system to require gudev with wayland, bug #627966
"${WORKDIR}"/patches/
+ "${FILESDIR}"/glib-2.58-compat.patch
)
python_check_deps() {
diff --git a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.26.2-r1.ebuild b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.26.2-r1.ebuild
index fc862199ab3e..b7c6a9990f9d 100644
--- a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.26.2-r1.ebuild
+++ b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.26.2-r1.ebuild
@@ -98,6 +98,7 @@ PATCHES=(
# Allow specifying udevrulesdir via configure, bug 509484; requires eautoreconf
# Fix build system to require gudev with wayland, bug #627966; requires eautoreconf
"${WORKDIR}"/patches/
+ "${FILESDIR}"/glib-2.58-compat.patch # included in 3.29.1+, might be backported to 3.28 too
)
python_check_deps() {