aboutsummaryrefslogtreecommitdiff
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()