summary refs log tree commit diff
path: root/gnu/packages/backup.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/backup.scm')
-rw-r--r--gnu/packages/backup.scm68
1 files changed, 62 insertions, 6 deletions
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 4cbeec5b3b..069baa88da 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -18,7 +18,8 @@
 
 (define-module (gnu packages backup)
   #:use-module (guix packages)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
@@ -35,6 +36,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages ssh)
+  #:use-module (gnu packages xml)
   #:use-module (srfi srfi-1))
 
 (define-public duplicity
@@ -78,7 +80,7 @@ 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 gpl2+)))
+    (license license:gpl2+)))
 
 (define-public hdup
   (package
@@ -112,7 +114,61 @@ spying and/or modification by the server.")
 backup scheduling is done by means of a cron job.  It supports an
 include/exclude mechanism, remote backups, encrypted backups and split
 backups (called chunks) to allow easy burning to CD/DVD.")
-    (license gpl2)))
+    (license license:gpl2)))
+
+(define-public libarchive
+  (package
+    (name "libarchive")
+    (version "3.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://libarchive.org/downloads/libarchive-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0pixqnrcf35dnqgv0lp7qlcw7k13620qkhgxr288v7p4iz6ym1zb"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("zlib" ,zlib)
+       ("nettle" ,nettle)
+       ("lzo" ,lzo)
+       ("bzip2" ,bzip2)
+       ("libxml2" ,libxml2)
+       ("xz" ,xz)))
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'build 'patch-pwd
+        (lambda _
+          (substitute* "Makefile"
+            (("/bin/pwd") (which "pwd"))))
+        (alist-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.
+           ;;
+           ;; The tests allow one to disable tests matching a globbing pattern.
+           (and (zero? (system* "make"
+                                "libarchive_test" "bsdcpio_test" "bsdtar_test"))
+                ;; XXX: This glob disables too much.
+                (zero? (system* "./libarchive_test" "^test_*_disk*"))
+                (zero? (system* "./bsdcpio_test" "^test_owner_parse"))
+                (zero? (system* "./bsdtar_test"))))
+         %standard-phases))))
+    (home-page "http://libarchive.org/")
+    (synopsis "Multi-format archive and compression library")
+    (description
+     "Libarchive provides a flexible interface for reading and writing
+archives in various formats such as tar and cpio.  Libarchive also supports
+reading and writing archives compressed using various compression filters such
+as gzip and bzip2.  The library is inherently stream-oriented; readers
+serially iterate through the archive, writers serially add things to the
+archive. In particular, note that there is currently no built-in support for
+random access nor for in-place modification.")
+    (license license:bsd-2)))
 
 (define-public rdup
   (package
@@ -151,7 +207,7 @@ backups (called chunks) to allow easy burning to CD/DVD.")
 Rdup itself does not backup anything, it only print a list of absolute
 filenames to standard output.  Auxiliary scripts are needed that act on this
 list and implement the backup strategy.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public btar
   (package
@@ -183,7 +239,7 @@ list and implement the backup strategy.")
 ciphering, redundancy, differential backup, indexed extraction, multicore
 compression, input and output serialisation, and tolerance to partial archive
 errors.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public rdiff-backup
   (package
@@ -220,4 +276,4 @@ rdiff-backup can operate in a bandwidth efficient manner over a pipe, like
 rsync.  Thus you can use rdiff-backup and ssh to securely back a hard drive up
 to a remote location, and only the differences will be transmitted.  Finally,
 rdiff-backup is easy to use and settings have sensical defaults.")
-    (license gpl2+)))
+    (license license:gpl2+)))