Subject: [bug#67623] [PATCH 1/3] gnu: gtk+: Require zlib in gdk-3.0.pc.

From: Jean-Pierre De Jesus DIAZ <[email-masked]>
Date: Mon, 4 Dec 2023 14:39:31 +0100

* gnu/packages/gtk.scm (gtk+) <inputs>: Add zlib.

* gnu/packages/gtk.scm (gtk+) <arguments>: Add 'add-zlib-to-gdk-3.0.pc
  phase.

Change-Id: I5efadebded159e0bd495ec07020b431413bd6e10
---
 gnu/packages/gtk.scm | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 47d4c1808f..752c9f456d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1032,7 +1032,9 @@ (define-public gtk+
            mesa
            pango
            wayland
-           wayland-protocols))
+           wayland-protocols
+           ;; When broadway backend is enabled gdk-3.0 requires zlib.
+           zlib))
     (inputs
      (list colord-minimal               ;to prevent a cycle with inkscape
            cups
@@ -1087,6 +1089,15 @@ (define-public gtk+
           (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
             (assoc-ref glib-or-gtk:%standard-phases
                        'generate-gdk-pixbuf-loaders-cache-file))
+          (add-after 'unpack 'add-zlib-to-gdk-3.0.pc
+            (lambda _
+              ;; When -Dbroadway_backend=true zlib is added as a dependency to
+              ;; gdk-3.0 but isn't done correctly and can cause pkg-config to
+              ;; not add the correct -L...-zlib/lib flag.
+              (substitute* "meson.build"
+                (("pc_gdk_extra_libs += \\['-lz'\\]") "")
+                (("^gdk_packages \\+= cairo_packages" all)
+                 (string-append all "\ngdk_packages += ' zlib'\n")))))
           (add-before 'check 'pre-check
             (lambda _
               ;; Tests require a running X server.
-- 
2.41.0