Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / backup.scm
index fc43f93..e663cdc 100644 (file)
@@ -14,6 +14,7 @@
 ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -230,24 +231,34 @@ backups (called chunks) to allow easy burning to CD/DVD.")
                (("/bin/pwd") (which "pwd")))
              #t))
          (replace 'check
-           (lambda _
-             ;; XXX: The test_owner_parse, test_read_disk, and
-             ;; test_write_disk_lookup tests expect user 'root' to exist, but
-             ;; the chroot's /etc/passwd doesn't have it.  Turn off those tests.
-             ;;
-             ;; XXX: Adjust test that fails with zstd 1.4.1 because the default
-             ;; options compresses two bytes better than this test expects.
-             ;; https://github.com/libarchive/libarchive/issues/1226
-             (substitute* "libarchive/test/test_write_filter_zstd.c"
-               (("compression-level\", \"6\"")
-                "compression-level\", \"7\""))
-
-             ;; The tests allow one to disable tests matching a globbing pattern.
-             (invoke "make" "libarchive_test" "bsdcpio_test" "bsdtar_test")
-             ;; XXX: This glob disables too much.
-             (invoke "./libarchive_test" "^test_*_disk*")
-             (invoke "./bsdcpio_test" "^test_owner_parse")
-             (invoke "./bsdtar_test")))
+           (lambda* (#:key (tests? #t) #:allow-other-keys)
+             (if tests?
+                ;; XXX: The test_owner_parse, test_read_disk, and
+                ;; test_write_disk_lookup tests expect user 'root' to
+                ;; exist, but the chroot's /etc/passwd doesn't have
+                ;; it.  Turn off those tests.
+                ;;
+                ;; XXX: Adjust test that fails with zstd 1.4.1
+                ;; because the default options compresses two bytes
+                ;; better than this test expects.
+                ;; https://github.com/libarchive/libarchive/issues/1226
+                 (begin
+                   (substitute* "libarchive/test/test_write_filter_zstd.c"
+                    (("compression-level\", \"6\"")
+                     "compression-level\", \"7\""))
+
+                  ;; The tests allow one to disable tests matching a globbing pattern.
+                  (invoke "make"
+                          "libarchive_test"
+                          "bsdcpio_test"
+                          "bsdtar_test")
+
+                  ;; XXX: This glob disables too much.
+                  (invoke "./libarchive_test" "^test_*_disk*")
+                  (invoke "./bsdcpio_test" "^test_owner_parse")
+                  (invoke "./bsdtar_test"))
+                 ;; Tests may be disabled if cross-compiling.
+                 (format #t "Test suite not run.~%"))))
          (add-after 'install 'add--L-in-libarchive-pc
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out     (assoc-ref outputs "out"))
@@ -292,13 +303,13 @@ random access nor for in-place modification.")
     (version "1.1.15")
     (source
      (origin
-       (method url-fetch)
-       (file-name (string-append name "-" version ".tar.gz"))
-       (uri (string-append "https://github.com/miekg/rdup/archive/"
-                           version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/miekg/rdup.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1jr91hgcf0rrpanqlwws72ql9db6d6grs2i122ki1s4bx0vqqyvq"))))
+        (base32 "0bzyv6qmnivxnv9nw7lnfn46k0m1dlxcjj53zcva6v8y8084l1iw"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -308,11 +319,14 @@ random access nor for in-place modification.")
        ;; For tests.
        ("dejagnu" ,dejagnu)))
     (inputs
+     ;; XXX Compiling with nettle (encryption) support requires patching out
+     ;; -Werror from GNUmakefile.in.  Then, rdup-tr-{en,de}crypt tests fail:
+     ;; free(): invalid pointer
+     ;; ** rdup-tr: SIGPIPE received, exiting
      `(("glib" ,glib)
        ("pcre" ,pcre)
        ("libarchive" ,libarchive)
-       ("mcrypt" ,mcrypt)
-       ("nettle" ,nettle)))
+       ("mcrypt" ,mcrypt)))
     (arguments
      `(#:parallel-build? #f             ;race conditions
        #:phases
@@ -328,6 +342,13 @@ random access nor for in-place modification.")
                ;; Avoid frivolous dependency on ‘which’ with a shell builtin.
                (("which") "command -v"))
              #t))
+         (add-before 'check 'disable-encryption-tests
+           (lambda _
+             (for-each delete-file
+                       (list "testsuite/rdup/rdup.rdup-tr-crypt.exp"
+                             "testsuite/rdup/rdup.rdup-tr-decrypt.exp"
+                             "testsuite/rdup/rdup.rdup-tr-encrypt.exp"))
+             #t))
          (add-before 'check 'pre-check
            (lambda _
              (setenv "HOME" (getcwd))
@@ -821,7 +842,7 @@ is like a time machine for your data. ")
 (define-public restic
   (package
     (name "restic")
-    (version "0.9.5")
+    (version "0.9.6")
     ;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/'
     ;; directory.
     (source (origin
@@ -832,7 +853,7 @@ is like a time machine for your data. ")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0afl3dv7gzwdc9klikk3fsb57d0px2fwihb0xxb7zq7d8vlhh8p2"))))
+                "1zmh42aah32ah8w5n6ilz9bci0y2xrf8p7qshy3yf1lzm5gnbj0w"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/restic/restic"