~ruther/guix-local

3c2a70604706363668d9a4b04fbfe5105ae70381 — Maxim Cournoyer 3 years ago 0e5d693
gnu: eog: Update to 42.2.

* gnu/packages/gnome.scm (eog): Update to 42.2.
[source]: Delete patches.
[configure-flags]: Use gexps.
[phases]: Likewise.
{skip-gtk-update-icon-cache}: New phase.
{wrap-eog}: Use search-input-file.
[native-inputs]: Replace intltool with gettext-minimal.
[inputs]: Add libhandy and gtk.
* gnu/packages/patches/eog-update-libportal-usage.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): De-register it.
3 files changed, 55 insertions(+), 98 deletions(-)

M gnu/local.mk
M gnu/packages/gnome.scm
D gnu/packages/patches/eog-update-libportal-usage.patch
M gnu/local.mk => gnu/local.mk +0 -1
@@ 1052,7 1052,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/emacs-yasnippet-fix-tests.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		\

M gnu/packages/gnome.scm => gnu/packages/gnome.scm +55 -57
@@ 6572,67 6572,65 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
   (license license:gpl2+)))

(define-public eog
 (package
   (name "eog")
   (version "40.3")
   (source (origin
            (method url-fetch)
            (uri (string-append "mirror://gnome/sources/" name "/"
                                (version-major version) "/"
                                name "-" version ".tar.xz"))
            (sha256
             (base32
              "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))
            ;; XXX: Remove when upgrading to 42.0
            (patches (search-patches "eog-update-libportal-usage.patch"))))
   (build-system meson-build-system)
   (arguments
    `(#:glib-or-gtk? #t
      #:meson ,meson-0.60
  (package
    (name "eog")
    (version "42.2")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  (version-major version) "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
                "0ph4b05cjlkzbn8vil4hjkwvfr1cp819yi2qifp418p15rm4lk8f"))))
    (build-system meson-build-system)
    (arguments
     (list
      #:glib-or-gtk? #t
      #:configure-flags
      ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
      (list (string-append "-Dc_link_args=-Wl,-rpath="
                           (assoc-ref %outputs "out") "/lib/eog"))
      #~(list (string-append "-Dc_link_args=-Wl,-rpath="
                             #$output "/lib/eog"))
      #:phases
      (modify-phases %standard-phases
         (add-after 'unpack 'skip-gtk-update-icon-cache
           ;; Don't create 'icon-theme.cache'.
           (lambda _
             (substitute* "meson_post_install.py"
               (("gtk-update-icon-cache") "true"))))
        (add-after 'install 'wrap-eog
          (lambda* (#:key outputs #:allow-other-keys)
            (let ((out               (assoc-ref outputs "out"))
                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
              (wrap-program (string-append out "/bin/eog")
                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
   (propagated-inputs
    (list dconf))
   (native-inputs
    `(("intltool" ,intltool)
      ("itstool" ,itstool)
      ("glib" ,glib "bin")
      ("gobject-introspection" ,gobject-introspection)
      ("pkg-config" ,pkg-config)
      ("xmllint" ,libxml2)))
   (inputs
    `(("gnome-desktop" ,gnome-desktop)
      ("shared-mime-info" ,shared-mime-info)
      ("adwaita-icon-theme" ,adwaita-icon-theme)
      ("exempi" ,exempi)
      ("lcms" ,lcms)
      ("libexif" ,libexif)
      ("libpeas" ,libpeas)
      ("libportal" ,libportal)
      ("libjpeg" ,libjpeg-turbo)
      ("librsvg" ,librsvg)
      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
      ("gtk+" ,gtk+)))
   (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
   (synopsis "GNOME image viewer")
   (description "Eye of GNOME is the GNOME image viewer.  It
      #~(modify-phases %standard-phases
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "meson.build"
                (("gtk_update_icon_cache: true")
                 "gtk_update_icon_cache: false"))))
          (add-after 'install 'wrap-eog
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
                (wrap-program (search-input-file outputs "bin/eog")
                  `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
    (propagated-inputs
     (list dconf))
    (native-inputs
     (list gettext-minimal
           itstool
           `(,glib "bin")
           gobject-introspection
           pkg-config
           libxml2))
    (inputs
     (list gnome-desktop
           shared-mime-info
           adwaita-icon-theme
           exempi
           lcms
           libexif
           libhandy
           libpeas
           libportal
           libjpeg-turbo
           librsvg
           gtk))
    (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
    (synopsis "GNOME image viewer")
    (description "Eye of GNOME is the GNOME image viewer.  It
supports image conversion, rotation, and slideshows.")
   (license license:gpl2+)))
    (license license:gpl2+)))

(define-public eog-plugins
  ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as

D gnu/packages/patches/eog-update-libportal-usage.patch => gnu/packages/patches/eog-update-libportal-usage.patch +0 -40
@@ 1,40 0,0 @@
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