May as well put my name on this now that I have 2 packages in
backup.scm. The test_selection patch is no longer needed, as the patch
is already in the code. The piped password-patch I'm less sure about. It
seemed to work fine without. Is this the kind of thing that would fail
on Hydra but not in a interactive terminal? Maybe it is needed.
>From 88a87a8c6ba19ba66f2a7cfb2efe9fd707d4d9e2 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley <brendan.tildes...@openmailbox.org>
Date: Tue, 20 Sep 2016 20:41:30 +1000
Subject: [PATCH 3/3] gnu: Update duplicity.

* gnu/packages/backup.scm (duplicity): Update to 0.7.10.
* gnu/packages/patches/duplicity-piped-password.patch: Deleted.
* gnu/packages/patches/duplicity-test_selection-tmp.patch: Deleted.
---
 gnu/packages/backup.scm                            | 82 +++++++++++++---------
 .../patches/duplicity-piped-password.patch         | 20 ------
 .../patches/duplicity-test_selection-tmp.patch     | 18 -----
 3 files changed, 47 insertions(+), 73 deletions(-)
 delete mode 100644 gnu/packages/patches/duplicity-piped-password.patch
 delete mode 100644 gnu/packages/patches/duplicity-test_selection-tmp.patch

diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index e77c4f2..408389a 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2014, 2015 Eric Bavier <bav...@member.fsf.org>
 ;;; Copyright © 2014 Ian Denhardt <i...@zenhack.net>
 ;;; Copyright © 2015, 2016 Leo Famulari <l...@famulari.name>
+;;; Copyright © 2016 Brendan Tildesley <brendan.tildes...@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dejagnu)
+  #:use-module (gnu packages ftp)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gperf)
@@ -51,53 +53,63 @@
 (define-public duplicity
   (package
     (name "duplicity")
-    (version "0.6.26")
+    (version "0.7.10")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "https://code.launchpad.net/duplicity/";
-                          (version-major+minor version)
-                          "-series/" version "/+download/duplicity-"
-                          version ".tar.gz"))
-      (sha256
-       (base32
-        "0jh79syhr8n3l81jxlwsmwm1pklb4d923m2lgqbswyavh1fqmvwb"))
-      (patches (search-patches "duplicity-piped-password.patch"
-                               "duplicity-test_selection-tmp.patch"))))
+       (method url-fetch)
+       (uri (string-append "https://code.launchpad.net/duplicity/";
+                           (version-major+minor version)
+                           "-series/" version "/+download/duplicity-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0hj8451gpndyqdfxwhbxwr9ddxvc47g0iv003q33q5kda8ayyps8"))))
     (build-system python-build-system)
     (native-inputs
      `(("python2-setuptools" ,python2-setuptools)
-       ("util-linux" ,util-linux)))     ;setsid command, for the tests
+       ("python2-mock" ,python2-mock)
+       ("util-linux" ,util-linux))) ; setsid command, for the tests
     (inputs
      `(("python" ,python-2)
        ("librsync" ,librsync)
-       ("mock" ,python2-mock)           ;for testing
-       ("lockfile" ,python2-lockfile)
-       ("gnupg" ,gnupg-1)               ;gpg executable needed
-       ("util-linux" ,util-linux)       ;for setsid
-       ("tzdata" ,tzdata)))
+       ("python2-lockfile" ,python2-lockfile)
+       ("python2-pexpect" ,python2-pexpect)
+       ("python2-paramiko" ,python2-paramiko)
+       ("python2-pycrypto" ,python2-pycrypto)
+       ("python2-botocore" ,python2-botocore)
+       ("python2-dropbox" ,python2-dropbox)
+       ("lftp" ,lftp)
+       ("gnupg" ,gnupg-1)
+       ("ncftp" ,ncftp)
+       ("tzdata" ,tzdata)
+       ("par2cmdline" ,par2cmdline)))
     (arguments
-     `(#:python ,python-2               ;setup assumes Python 2
+     `(#:python ,python-2
        #:test-target "test"
-       #:phases (alist-cons-before
-                 'check 'check-setup
-                 (lambda* (#:key inputs #:allow-other-keys)
-                   (substitute* "testing/functional/__init__.py"
-                     (("/bin/sh") (which "sh")))
-                   (setenv "HOME" (getcwd)) ;gpg needs to write to $HOME
-                   (setenv "TZDIR"          ;some timestamp checks need TZDIR
-                           (string-append (assoc-ref inputs "tzdata")
-                                          "/share/zoneinfo")))
-                 %standard-phases)))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* '("testing/functional/__init__.py"
+                            "testing/overrides/bin/lftp")
+               (("/bin/sh") (which "sh")))
+             (setenv "HOME" (getcwd))
+             ;; RUN_CODE_TESTS can be set to enable unessential PEP8, 2to3 and pylint
+             ;; tests that currently fail due to lacking dependencies
+             ;; (setenv "RUN_CODE_TESTS" "1")
+             ;;
+             ;; Backup filenames embed TZ data.
+             ;; See testing/unit/test_statistics.py test_get_stats_string(self)
+             (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
+                                            "/share/zoneinfo")))))))
     (home-page "http://duplicity.nongnu.org/index.html";)
     (synopsis "Encrypted backup using rsync algorithm")
-    (description
-     "Duplicity backs up directories by producing encrypted tar-format volumes
-and uploading them to a remote or local file server.  Because duplicity uses
-librsync, the incremental archives are space efficient and only record the
-parts of files that have changed since the last backup.  Because duplicity
-uses GnuPG to encrypt and/or sign these archives, they will be safe from
-spying and/or modification by the server.")
+    (description "Duplicity backs up directories by producing encrypted
+tar-format volumes and uploading them to a remote or local file server.  
+Because duplicity uses librsync, the incremental archives are space efficient
+and only record the parts of files that have changed since the last backup.  
+Because duplicity uses GnuPG to encrypt and/or sign these archives, they will
+be safe from spying and/or modification by the server.")
     (license license:gpl2+)))
 
 (define-public par2cmdline
diff --git a/gnu/packages/patches/duplicity-piped-password.patch b/gnu/packages/patches/duplicity-piped-password.patch
deleted file mode 100644
index db50f5d..0000000
--- a/gnu/packages/patches/duplicity-piped-password.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-This test, on three occasions, is failing with the error:
-
-  EOF: End Of File (EOF) in read_nonblocking(). Braindead platform.
-
---- duplicity-0.6.24/testing/functional/test_final.py	2014-09-28 13:14:52.146001614 -0500
-+++ duplicity-0.6.24/testing/functional/test_final.py	2014-09-28 13:13:20.333546342 -0500
-@@ -156,13 +156,6 @@
-         self.run_duplicity(options=["remove-older-than", "50000", "--force", self.backend_url])
-         self.assertEqual(self.get_backend_files(), second_chain)
- 
--    def test_piped_password(self):
--        """Make sure that prompting for a password works"""
--        self.set_environ("PASSPHRASE", None)
--        self.backup("full", "testfiles/empty_dir",
--                    passphrase_input=[self.sign_passphrase, self.sign_passphrase])
--        self.restore(passphrase_input=[self.sign_passphrase])
--
- 
- class OldFilenamesFinalTest(FinalTest):
- 
diff --git a/gnu/packages/patches/duplicity-test_selection-tmp.patch b/gnu/packages/patches/duplicity-test_selection-tmp.patch
deleted file mode 100644
index 8f66be4..0000000
--- a/gnu/packages/patches/duplicity-test_selection-tmp.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Reported upstream at https://bugs.launchpad.net/duplicity/+bug/1375019
-
---- duplicity-0.6.24/testing/unit/test_selection.py	2014-05-09 08:27:40.000000000 -0500
-+++ duplicity-0.6.24/testing/unit/test_selection.py	2014-09-28 12:28:53.932324380 -0500
-@@ -431,10 +431,10 @@
-                        [(), ('1',), ('1', '1'), ('1', '2'), ('1', '3')])
- 
-         self.root = Path("/")
--        self.ParseTest([("--exclude", "/home/*"),
--                        ("--include", "/home"),
-+        self.ParseTest([("--exclude", "/tmp/*"),
-+                        ("--include", "/tmp"),
-                         ("--exclude", "/")],
--                       [(), ("home",)])
-+                       [(), ("tmp",)])
- 
- if __name__ == "__main__":
-     unittest.main()
-- 
2.9.3

Reply via email to