[PATCH] gnu: deja-dup: Update to 40.6.

DoneSubmitted by Brice Waegeneire.
Details
2 participants
  • Brice Waegeneire
  • Marius Bakke
Owner
unassigned
Severity
normal
B
B
Brice Waegeneire wrote on 22 May 2020 10:19
(address . guix-patches@gnu.org)
20200522081920.32300-1-brice@waegenei.re
* gnu/packages/gnome.scm (deja-dup): Update to 40.6.
[origin]: Use gitlab.gnome.org since the project migrated away from
launchpad.
[home-page]: Use 'wiki.gnome.org' instead of 'launchpad.net'.
[build-system]: Switch to 'meson-build-system' because upstream removed
cmake support.
[arguments]: TODO!!!
[inputs]: Remove 'libpeas', 'gobject-introspection'. Replace 'python-2'
and 'python2-pygobject' with python-3 versions. Add 'json-glib',
'libsoup' and 'libgpg-error'.
[native-inputs]: Remove 'cmake-minimal'. Add 'appstream-glib',
'desktop-file-utils', 'glib:bin' and 'gobject-introspection'.
* gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch: Delete
file.
---
gnu/packages/gnome.scm | 106 +++++++++---------
.../deja-dup-use-ref-keyword-for-iter.patch | 41 -------
2 files changed, 53 insertions(+), 94 deletions(-)
delete mode 100644 gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch

Toggle diff (180 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index afd40ac725..eb66e38473 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -878,73 +878,73 @@ configuration files for the GNOME menu, as well as a simple menu editor.")
 (define-public deja-dup
   (package
     (name "deja-dup")
-    (version "34.3")
+    (version "40.6")
     (source (origin
-             (method url-fetch)
-             (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
-             (sha256
-              (base32
-               "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
-             (patches
-               (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
-    (build-system glib-or-gtk-build-system)
+              (method url-fetch)
+              (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
+                                  version "/deja-dup-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
+    (build-system meson-build-system)
     (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  ((guix build cmake-build-system) #:prefix cmake:)
-                  (guix build glib-or-gtk-build-system)
-                  (guix build utils))
-       #:imported-modules (,@%glib-or-gtk-build-system-modules
-                           (guix build cmake-build-system))
-       #:test-target "test"
-       #:configure-flags (list (string-append
-                                "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
-                               (string-append
-                                "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
+     `(#:glib-or-gtk? #t
+       #:configure-flags
+       (list
+        ;; Otherwise, the RUNPATH will lack the final path component.
+        (string-append "-Dc_link_args=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib/deja-dup"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-lockfile-deletion
-           (lambda rest
-             (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
-               (("/bin/rm")
-                (which "rm")))))
-         (replace 'configure
-           (assoc-ref cmake:%standard-phases 'configure))
-         (delete 'check) ;; Fails due to issues with DBus
-         (add-after 'install 'wrap-deja-dup
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((python      (assoc-ref inputs "python"))
-                   (python-path (getenv "PYTHONPATH"))
-                   (duplicity   (assoc-ref inputs "duplicity"))
-                   (out         (assoc-ref outputs "out")))
-               (for-each
-                (lambda (program)
-                  (wrap-program program
-                    `("PATH" ":" prefix (,(string-append python "/bin")
-                                         ,(string-append duplicity "/bin"))))
-                  (wrap-program program
-                    `("PYTHONPATH" ":" prefix (,python-path))))
-
-                (find-files (string-append out "/bin")))
-               #t))))))
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((python (assoc-ref inputs "python")))
+               (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
+                              "libdeja/tests/scripts/instance-error.test")
+                 (("/bin/rm")
+                  (which "rm")))
+               (substitute* "libdeja/tests/runner.vala"
+                 (("/bin/sh")
+                  (which "sh")))
+               (substitute* "libdeja/tests/scripts/instance-error.test"
+                 (("`which python3`")
+                  (string-append python "/bin/python3"))))))
+         (add-after 'unpack 'patch-libgpg-error
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
+               (substitute* "meson.build"
+                 (("(gpgerror_libs = ).*" _ var)
+                  (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
+             #t))
+         (add-after 'unpack 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "data/post-install.sh"
+               (("gtk-update-icon-cache") "true"))
+             #t)))))
     (inputs
      `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gobject-introspection" ,gobject-introspection)
        ("duplicity" ,duplicity)
-       ("python" ,python-2)
-       ("python-pygobject" ,python2-pygobject)
+       ("python" ,python)
+       ("python-pygobject" ,python-pygobject)
        ("gtk+" ,gtk+)
+       ("json-glib" ,json-glib)
        ("libnotify" ,libnotify)
-       ("libpeas" ,libpeas)
+       ("libgpg-error" ,libgpg-error)
        ("libsecret" ,libsecret)
+       ("libsoup" ,libsoup)
        ("packagekit" ,packagekit)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("vala" ,vala)
+     `(("appstream-glib" ,appstream-glib)
+       ("desktop-file-utils" ,desktop-file-utils)
        ("gettext" ,gettext-minimal)
-       ("itstool" ,itstool)
+       ("glib" ,glib "bin")             ; for glib-compile-schemas.
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
-       ("cmake" ,cmake-minimal)))
-    (home-page "https://launchpad.net/deja-dup")
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
+    (home-page "https://wiki.gnome.org/Apps/DejaDup")
     (synopsis "Simple backup tool, for regular encrypted backups")
     (description
      "Déjà Dup is a simple backup tool, for regular encrypted backups.  It
diff --git a/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch b/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch
deleted file mode 100644
index a03e0c5481..0000000000
--- a/gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 5676766be5e845ccb6cdf46cfa8722497f151752 Mon Sep 17 00:00:00 2001
-From: Jeremy Bicha <jbicha@ubuntu.com>
-Date: Fri, 16 Jun 2017 15:11:37 -0400
-Subject: Use 'ref' keyword for iter, requires vala 0.36
-
-
-diff --git a/deja-dup/widgets/ConfigList.vala b/deja-dup/widgets/ConfigList.vala
-index 15de2d6..02cd81a 100644
---- a/deja-dup/widgets/ConfigList.vala
-+++ b/deja-dup/widgets/ConfigList.vala
-@@ -333,7 +333,7 @@ public class ConfigList : ConfigWidget
- 
-     model.row_deleted.disconnect(write_to_config);
-     foreach (Gtk.TreeIter iter in iters) {
--      (model as Gtk.ListStore).remove(iter);
-+      (model as Gtk.ListStore).remove(ref iter);
-     }
-     model.row_deleted.connect(write_to_config);
- 
-diff --git a/deja-dup/widgets/ConfigLocation.vala b/deja-dup/widgets/ConfigLocation.vala
-index 869e2a8..d21c556 100644
---- a/deja-dup/widgets/ConfigLocation.vala
-+++ b/deja-dup/widgets/ConfigLocation.vala
-@@ -397,12 +397,12 @@ public class ConfigLocation : ConfigWidget
-     if (uuid == saved_uuid)
-       return;
- 
--    store.remove(iter);
-+    store.remove(ref iter);
- 
-     if (--num_volumes == 0) {
-       Gtk.TreeIter sep_iter;
-       if (store.get_iter_from_string(out sep_iter, index_vol_sep.to_string())) {
--        store.remove(sep_iter);
-+        store.remove(ref sep_iter);
-         index_vol_sep = -2;
-       }
-     }
--- 
-cgit v0.10.2
-
-- 
2.26.2
M
M
Marius Bakke wrote on 23 May 2020 20:01
87367q8r8r.fsf@devup.no
Brice Waegeneire <brice@waegenei.re> writes:

Toggle quote (15 lines)
> * gnu/packages/gnome.scm (deja-dup): Update to 40.6.
> [origin]: Use gitlab.gnome.org since the project migrated away from
> launchpad.
> [home-page]: Use 'wiki.gnome.org' instead of 'launchpad.net'.
> [build-system]: Switch to 'meson-build-system' because upstream removed
> cmake support.
> [arguments]: TODO!!!
> [inputs]: Remove 'libpeas', 'gobject-introspection'. Replace 'python-2'
> and 'python2-pygobject' with python-3 versions. Add 'json-glib',
> 'libsoup' and 'libgpg-error'.
> [native-inputs]: Remove 'cmake-minimal'. Add 'appstream-glib',
> 'desktop-file-utils', 'glib:bin' and 'gobject-introspection'.
> * gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch: Delete
> file.

Woooow. LGTM, with that TODO resolved!

By the way, GNOME packages are getting rid of intltool in favor of
plain gettext, can you check if that is the case here too? (intltool
propagates gettext which is why we don't notice.)

Thanks!
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl7JZRQACgkQoqBt8qM6
VPoPTQgAr4htn2US3CxhvYegb2NIG646P9l+f6RPn1B3HHOCsXFpnW7R5TfUN078
FgF5D5qpgAjv792wQ4IT59Uch1qMz3bZi37Fkb4JkA7RsiseuUxWfL67EEago7So
/1WWTKvIM9chof7GQfF9OMxHsenVEQgNBCCv1Ja7LcchzKyewt7YhZAsPh96SdBB
m2w92Z4SbIk+AhsIm09LDJldjLenI9/4eU1RLxNVfsmcEBnkduL5ZQl+QPARN4OM
O8xZ4CZ43jzjQTHCfb73xrdbXmDEeCqEixMAIF+iNzmh00ic+GhhBGIabeB/0UcW
GgQtp4MB5ttzCcACfDMoYB9Elv8oIQ==
=d9jO
-----END PGP SIGNATURE-----

B
B
Brice Waegeneire wrote on 23 May 2020 21:55
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 41448@debbugs.gnu.org)
7590ce71198568df8f3b6ab48e1dc2e2@waegenei.re
On 2020-05-23 18:01, Marius Bakke wrote:
Toggle quote (27 lines)
> Brice Waegeneire <brice@waegenei.re> writes:
>
>> * gnu/packages/gnome.scm (deja-dup): Update to 40.6.
>> [origin]: Use gitlab.gnome.org since the project migrated away from
>> launchpad.
>> [home-page]: Use 'wiki.gnome.org' instead of 'launchpad.net'.
>> [build-system]: Switch to 'meson-build-system' because upstream
>> removed
>> cmake support.
>> [arguments]: TODO!!!
>> [inputs]: Remove 'libpeas', 'gobject-introspection'. Replace
>> 'python-2'
>> and 'python2-pygobject' with python-3 versions. Add 'json-glib',
>> 'libsoup' and 'libgpg-error'.
>> [native-inputs]: Remove 'cmake-minimal'. Add 'appstream-glib',
>> 'desktop-file-utils', 'glib:bin' and 'gobject-introspection'.
>> * gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch: Delete
>> file.
>
> Woooow. LGTM, with that TODO resolved!
>
> By the way, GNOME packages are getting rid of intltool in favor of
> plain gettext, can you check if that is the case here too? (intltool
> propagates gettext which is why we don't notice.)
>
> Thanks!

I have resolved the TODO and removed intltool as asked. Pushed as
899ffa1381afbf5f955aeba4839e920b3d910953.

Thank you for the reviews Marius!
B
B
Brice Waegeneire wrote on 23 May 2020 22:07
Close #41448
(address . control@debbugs.gnu.org)
9397b32641250f06b10779eb12504e48@waegenei.re
close 41448
quit
?
Your comment

This issue is archived.

To comment on this conversation send email to 41448@debbugs.gnu.org