commit:     13e7cc29573344822488e3bb78f798b99ef97688
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Sun Jul  7 22:41:13 2024 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Mon Jul  8 03:18:39 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13e7cc29

gnome-base/gnome-shell: backport fix for strict-aliasing with USE=pipewire

Closes: https://bugs.gentoo.org/919853
Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 .../37e49e8a22c223b030297f9607bdb748c219e060.patch | 42 ++++++++++++++++++++++
 ...hell-45.6.ebuild => gnome-shell-45.6-r1.ebuild} |  2 ++
 2 files changed, 44 insertions(+)

diff --git 
a/gnome-base/gnome-shell/files/37e49e8a22c223b030297f9607bdb748c219e060.patch 
b/gnome-base/gnome-shell/files/37e49e8a22c223b030297f9607bdb748c219e060.patch
new file mode 100644
index 000000000000..d56db89bbacd
--- /dev/null
+++ 
b/gnome-base/gnome-shell/files/37e49e8a22c223b030297f9607bdb748c219e060.patch
@@ -0,0 +1,42 @@
+From 37e49e8a22c223b030297f9607bdb748c219e060 Mon Sep 17 00:00:00 2001
+From: Philip Withnall <[email protected]>
+Date: Tue, 28 May 2024 18:08:27 +0100
+Subject: [PATCH] shell-camera-monitor: Fix warning about strict aliasing
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Changing type when casting a double pointer is not strictly allowed in
+C. In order to fix compilation with `-fstrict-aliasing`, don’t use
+`g_clear_pointer()` for clearing this pointer where the type expected by
+the destroy notify function does not match the type stored in the
+`ShellCameraMonitor` struct.
+
+This introduces no functional changes.
+
+Signed-off-by: Philip Withnall <[email protected]>
+Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3351>
+---
+ src/shell-camera-monitor.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/shell-camera-monitor.c b/src/shell-camera-monitor.c
+index 1e2e0f14569..b2e6e0b2af2 100644
+--- a/src/shell-camera-monitor.c
++++ b/src/shell-camera-monitor.c
+@@ -298,7 +298,11 @@ shell_camera_monitor_disconnect_core (ShellCameraMonitor 
*monitor)
+   g_clear_handle_id (&monitor->delayed_disable_id, g_source_remove);
+ 
+   spa_hook_remove (&monitor->registry_listener);
+-  g_clear_pointer ((struct pw_proxy**) &monitor->registry, pw_proxy_destroy);
++  if (monitor->registry != NULL)
++    {
++      pw_proxy_destroy ((struct pw_proxy *) monitor->registry);
++      monitor->registry = NULL;
++    }
+   spa_hook_remove (&monitor->core_listener);
+   g_clear_pointer (&monitor->core, pw_core_disconnect);
+ }
+-- 
+GitLab
+

diff --git a/gnome-base/gnome-shell/gnome-shell-45.6.ebuild 
b/gnome-base/gnome-shell/gnome-shell-45.6-r1.ebuild
similarity index 98%
rename from gnome-base/gnome-shell/gnome-shell-45.6.ebuild
rename to gnome-base/gnome-shell/gnome-shell-45.6-r1.ebuild
index 92b6670d0970..c9c3acd73caa 100644
--- a/gnome-base/gnome-shell/gnome-shell-45.6.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-45.6-r1.ebuild
@@ -134,6 +134,8 @@ BDEPEND="
 PATCHES=(
        # Change favorites defaults, bug #479918
        "${FILESDIR}"/40.0-defaults.patch
+       # backport fix for strict-aliasing violation with USE=pipewire
+       "${FILESDIR}"/37e49e8a22c223b030297f9607bdb748c219e060.patch
 )
 
 src_prepare() {

Reply via email to