summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am2
-rw-r--r--gnu/packages/backup.scm19
-rw-r--r--gnu/packages/patches/duplicity-piped-password.patch20
-rw-r--r--gnu/packages/patches/duplicity-test_selection-tmp.patch18
4 files changed, 54 insertions, 5 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 126f4e341d..bb944fbf9e 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -321,6 +321,8 @@ dist_patch_DATA =						\
   gnu/packages/patches/diffutils-gets-undeclared.patch		\
   gnu/packages/patches/doxygen-test.patch			\
   gnu/packages/patches/doxygen-tmake.patch			\
+  gnu/packages/patches/duplicity-piped-password.patch		\
+  gnu/packages/patches/duplicity-test_selection-tmp.patch	\
   gnu/packages/patches/emacs-configure-sh.patch			\
   gnu/packages/patches/eudev-rules-directory.patch		\
   gnu/packages/patches/file-CVE-2014-3587.patch			\
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 6fd7306d6c..f4f6d0c42c 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -29,6 +29,7 @@
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages mcrypt)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages pcre)
@@ -53,7 +54,9 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "0l14nrhbgkyjgvh339bbhnm6hrdwrjadphq1jmpi0mcgcdbdfh8x"))))
+        "0l14nrhbgkyjgvh339bbhnm6hrdwrjadphq1jmpi0mcgcdbdfh8x"))
+      (patches (list (search-patch "duplicity-piped-password.patch")
+                     (search-patch "duplicity-test_selection-tmp.patch")))))
     (build-system python-build-system)
     (native-inputs
      `(("python2-setuptools" ,python2-setuptools)
@@ -63,15 +66,21 @@
        ("librsync" ,librsync)
        ("mock" ,python2-mock)           ;for testing
        ("lockfile" ,python2-lockfile)
-       ("gnupg" ,gnupg-1)))             ;gpg executable needed
+       ("gnupg" ,gnupg-1)               ;gpg executable needed
+       ("util-linux" ,util-linux)       ;for setsid
+       ("tzdata" ,tzdata)))
     (arguments
      `(#:python ,python-2               ;setup assumes Python 2
        #:test-target "test"
        #:phases (alist-cons-before
-                 'check 'patch-tests
-                 (lambda _
+                 'check 'check-setup
+                 (lambda* (#:key inputs #:allow-other-keys)
                    (substitute* "testing/functional/__init__.py"
-                     (("/bin/sh") (which "sh"))))
+                     (("/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)))
     (home-page "http://duplicity.nongnu.org/index.html")
     (synopsis "Encrypted backup using rsync algorithm")
diff --git a/gnu/packages/patches/duplicity-piped-password.patch b/gnu/packages/patches/duplicity-piped-password.patch
new file mode 100644
index 0000000000..db50f5df32
--- /dev/null
+++ b/gnu/packages/patches/duplicity-piped-password.patch
@@ -0,0 +1,20 @@
+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
new file mode 100644
index 0000000000..8f66be4dcc
--- /dev/null
+++ b/gnu/packages/patches/duplicity-test_selection-tmp.patch
@@ -0,0 +1,18 @@
+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()