Subject: [PATCH 2/2] gnu: eog: Fix build with libportal-0.5

From: Daniel Meißner<[email-masked]>
Date: Mon, 10 Jan 2022 16:37:15 +0100

After the update to libportal-0.5 in 294476022f19139e290acb448d4575de0f851673
eog fails with:

../eog-40.3/src/eog-util.c:48:10: fatal error: libportal/portal-gtk3.h: No such file or directory

This was already fixed upstream and this commits extracts the patch.

* gnu/packages/patches/eog-update-libportal-usage.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/gnome.scm(eog)[origin]: Add new patch.
---
 gnu/local.mk                                  |  2 +
 gnu/packages/gnome.scm                        |  5 ++-
 .../patches/eog-update-libportal-usage.patch  | 40 +++++++++++++++++++
 3 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/eog-update-libportal-usage.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index fe21cf8062..cc83c87282 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -47,6 +47,7 @@
 # Copyright © 2021 Dmitry Polyakov <[email-masked]>
 # Copyright © 2021 Andrew Tropin <[email-masked]>
 # Copyright © 2021 Simon Tournier <[email-masked]>
+# Copyright © 2022 Daniel Meißner <[email-masked]>
 #
 # This file is part of GNU Guix.
 #
@@ -1027,6 +1028,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch	\
   %D%/packages/patches/enjarify-setup-py.patch			\
   %D%/packages/patches/enlightenment-fix-setuid-path.patch	\
+  %D%/packages/patches/eog-update-libportal-usage.patch		\
   %D%/packages/patches/erlang-man-path.patch			\
   %D%/packages/patches/esmtp-add-lesmtp.patch		\
   %D%/packages/patches/eudev-rules-directory.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 429b17c00e..c8e82f811b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -65,6 +65,7 @@
 ;;; Copyright © 2021 Maxime Devos <[email-masked]>
 ;;; Copyright © 2021 Josselin Poiret <[email-masked]>
 ;;; Copyright © 2021 Mathieu Othacehe <[email-masked]>
+;;; Copyright © 2022 Daniel Meißner <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -6427,7 +6428,9 @@ (define-public eog
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))))
+              "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))
+            ;; XXX: Remove when upgrading to 42.0
+            (patches (search-patches "eog-update-libportal-usage.patch"))))
    (build-system meson-build-system)
    (arguments
     `(#:meson ,meson-0.59         ;positional arguments error with meson 0.60
diff --git a/gnu/packages/patches/eog-update-libportal-usage.patch b/gnu/packages/patches/eog-update-libportal-usage.patch
new file mode 100644
index 0000000000..220a16ddc4
--- /dev/null
+++ b/gnu/packages/patches/eog-update-libportal-usage.patch
@@ -0,0 +1,40 @@
+Fix eog to work with libportal-0.5
+
+This patch is extracted from upstream, see here
+https://gitlab.gnome.org/GNOME/eog/-/commit/a06e6325907e136678b0bbe7058c25d688034afd
+
+diff --git a/meson.build b/meson.build
+index 9a32e4bb..9d49aa45 100644
+--- a/meson.build
++++ b/meson.build
+@@ -165,10 +165,14 @@ config_h.set('HAVE_EXEMPI', enable_xmp)
+ # xdg-desktop-portal support with libportal (optional)
+ enable_libportal = get_option('libportal')
+ if enable_libportal
+-  libportal_dep = dependency('libportal', version: '>= 0.3', required: false)
++  libportal_dep = dependency('libportal', version: '>= 0.5', required: false)
+   assert(libportal_dep.found() and cc.has_header('libportal/portal.h', dependencies: libportal_dep),
+          'xdg-desktop-portal support requested but library not found. Please use -Dlibportal=false')
+ 
+-  common_deps += libportal_dep
++  libportal_gtk3_dep = dependency('libportal-gtk3', version: '>= 0.5', required: false)
++  assert(libportal_gtk3_dep.found() and cc.has_header('libportal-gtk3/portal-gtk3.h', dependencies: libportal_gtk3_dep),
++         'xdg-desktop-portal support requested but library not found. Please use -Dlibportal=false')
++
++  common_deps += [libportal_dep, libportal_gtk3_dep]
+ endif
+ config_h.set('HAVE_LIBPORTAL', enable_libportal)
+
+diff --git a/src/eog-util.c b/src/eog-util.c
+index 90b9768e..56d23472 100644
+--- a/src/eog-util.c
++++ b/src/eog-util.c
+@@ -45,7 +45,7 @@
+ #include <glib/gi18n.h>
+ #ifdef HAVE_LIBPORTAL
+ #include <libportal/portal.h>
+-#include <libportal/portal-gtk3.h>
++#include <libportal-gtk3/portal-gtk3.h>
+ #endif
+ 
+ void
-- 
2.34.0