~ruther/guix-local

d61a894bfa3670c0742e72222af02ede820fd6cd — Christopher Baines 9 years ago e956ae1
gnu: gnome: Add deja-dup.

* gnu/packages/gnome.scm (deja-dup): New variable.
* gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patch file entry.
M gnu/local.mk => gnu/local.mk +1 -0
@@ 565,6 565,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch		\
  %D%/packages/patches/dblatex-remove-multirow.patch		\
  %D%/packages/patches/dbus-helper-search-path.patch		\
  %D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch	\
  %D%/packages/patches/dfu-programmer-fix-libusb.patch		\
  %D%/packages/patches/diffutils-gets-undeclared.patch		\
  %D%/packages/patches/doc++-include-directives.patch		\

M gnu/packages/gnome.scm => gnu/packages/gnome.scm +78 -0
@@ 61,6 61,7 @@
  #:use-module (gnu packages bison)
  #:use-module (gnu packages calendar)
  #:use-module (gnu packages check)
  #:use-module (gnu packages cmake)
  #:use-module (gnu packages cups)
  #:use-module (gnu packages curl)
  #:use-module (gnu packages cyrus-sasl)


@@ 193,6 194,83 @@ Desktop.  It is designed to be as simple as possible and has some unique
features to enable users to create their discs easily and quickly.")
    (license license:gpl2+)))

(define-public deja-dup
  (package
    (name "deja-dup")
    (version "34.3")
    (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)
    (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))
       #: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))))))
    (inputs
     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
       ("gobject-introspection" ,gobject-introspection)
       ("duplicity" ,duplicity)
       ("python" ,python2-minimal)
       ("python-pygobject" ,python2-pygobject)
       ("gtk+" ,gtk+)
       ("libnotify" ,libnotify)
       ("libpeas" ,libpeas)
       ("libsecret" ,libsecret)
       ("packagekit" ,packagekit)))
    (native-inputs
     `(("pkg-config" ,pkg-config)
       ("vala" ,vala)
       ("gettext" ,gettext-minimal)
       ("itstool" ,itstool)
       ("intltool" ,intltool)
       ("cmake", cmake)))
    (home-page "https://launchpad.net/deja-dup")
    (synopsis "Simple backup tool, for regular encrypted backups")
    (description
     "Déjà Dup is a simple backup tool, for regular encrypted backups.  It
uses duplicity as the backend, which supports incremental backups and storage
either on a local, or remote machine via a number of methods.")
    (license license:gpl3+)))

(define-public dia
  ;; This version from GNOME's repository includes fixes for compiling with
  ;; recent versions of the build tools.  The latest activity on the

A gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch => gnu/packages/patches/deja-dup-use-ref-keyword-for-iter.patch +41 -0
@@ 0,0 1,41 @@
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