From d2201dd6729815e09fd6eb32db07b50325b7ca01 Mon Sep 17 00:00:00 2001 From: Olli Helenius Date: Mon, 16 Feb 2026 18:56:45 +0200 Subject: [PATCH] libcanberra: use a local copy of the `GdkDisplay` patch The patch is no longer available from git.0pointer.net. --- ...-all-GdkDisplays-are-GdkX11Displays-.patch | 52 +++++++++++++++++++ pkgs/by-name/li/libcanberra/package.nix | 6 +-- 2 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 pkgs/by-name/li/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch diff --git a/pkgs/by-name/li/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch b/pkgs/by-name/li/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch new file mode 100644 index 000000000000..8ca3625e356c --- /dev/null +++ b/pkgs/by-name/li/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch @@ -0,0 +1,52 @@ +--- a/src/canberra-gtk-module.c ++++ b/src/canberra-gtk-module.c +@@ -307,6 +307,11 @@ + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, +@@ -335,6 +340,11 @@ + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, +@@ -365,6 +375,11 @@ + gboolean ret = FALSE; + Atom xembed; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return FALSE; ++#endif ++ + /* Gnome Panel applets are XEMBED windows. We need to make sure we + * ignore them */ + +--- a/src/canberra-gtk.c ++++ b/src/canberra-gtk.c +@@ -185,6 +185,11 @@ + guchar *data = NULL; + gint ret = -1; + ++#ifdef GDK_IS_X11_DISPLAY ++ if (!GDK_IS_X11_DISPLAY(d)) ++ return 0; ++#endif ++ + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), + gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, diff --git a/pkgs/by-name/li/libcanberra/package.nix b/pkgs/by-name/li/libcanberra/package.nix index a50d86da82fb..a708a18d70ee 100644 --- a/pkgs/by-name/li/libcanberra/package.nix +++ b/pkgs/by-name/li/libcanberra/package.nix @@ -55,11 +55,7 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional stdenv.hostPlatform.isLinux "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"; patches = [ - (fetchpatch { - name = "0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch"; - url = "http://git.0pointer.net/libcanberra.git/patch/?id=c0620e432650e81062c1967cc669829dbd29b310"; - sha256 = "0rc7zwn39yxzxp37qh329g7375r5ywcqcaak8ryd0dgvg8m5hcx9"; - }) + ./0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ (fetchpatch {