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.scm214
1 files changed, 211 insertions, 3 deletions
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 574bb11816..069baa88da 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -18,13 +18,25 @@
 
 (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)
   #:use-module (gnu packages)
-  #:use-module (gnu packages python)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages dejagnu)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages mcrypt)
+  #:use-module (gnu packages nettle)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages python)
+  #: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
@@ -68,4 +80,200 @@ 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
+    (name "hdup")
+    (version "2.0.14")
+    (source
+     (origin
+      (method url-fetch)
+      ;; Source tarballs are not versioned
+      (uri "http://archive.miek.nl/projects/hdup2/hdup.tar.bz2")
+      (sha256
+       (base32
+        "02bnczg01cyhajmm4rhbnc0ja0dd9ikv9fwv28asxh1rlx9yr0b7"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("tar" ,tar)
+       ("lzop" ,lzop)
+       ("mcrypt" ,mcrypt)
+       ("openssh" ,openssh)
+       ("gnupg" ,gnupg-1)))
+    (arguments
+     `(#:configure-flags
+       `(,(string-append "--sbindir=" (assoc-ref %outputs "out") "/bin"))
+       #:tests? #f))
+    (home-page "http://archive.miek.nl/projects/hdup/index.html")
+    (synopsis "Simple incremental backup tool")
+    (description
+     "Hdup2 is a backup utilty, its aim is to make backup really simple.  The
+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 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
+    (name "rdup")
+    (version "1.1.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://archive.miek.nl/projects/rdup/rdup-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32
+         "0aklwd9v7ix0m4ayl762sil685f42cwljzx3jz5skrnjaq32npmj"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("dejagnu" ,dejagnu)))
+    (inputs
+     `(("glib" ,glib)
+       ("pcre" ,pcre)
+       ("libarchive" ,libarchive)
+       ("nettle" ,nettle)))
+    (arguments
+     `(#:parallel-build? #f             ;race conditions
+       #:phases (alist-cons-before
+                 'build 'remove-Werror
+                 ;; rdup uses a deprecated function from libarchive
+                 (lambda _
+                   (substitute* "GNUmakefile"
+                     (("^(CFLAGS=.*)-Werror" _ front) front)))
+                 %standard-phases)))
+    (home-page "http://archive.miek.nl/projects/rdup/index.html")
+    (synopsis "Provide a list of files to backup")
+    (description
+     "Rdup is a utility inspired by rsync and the plan9 way of doing backups.
+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 license:gpl3+)))
+
+(define-public btar
+  (package
+    (name "btar")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://vicerveza.homeunix.net/~viric/soft/btar/"
+                           "btar-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0miklk4bqblpyzh1bni4x6lqn88fa8fjn15x1k1n8bxkx60nlymd"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("librsync" ,librsync)))
+    (arguments
+     `(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
+                      "CC=gcc")
+       #:tests? #f                      ;test input not distributed
+       #:phases
+       (alist-delete
+        'configure                      ;no configure phase
+        %standard-phases)))
+    (home-page "http://viric.name/cgi-bin/btar/doc/trunk/doc/home.wiki")
+    (synopsis "Tar-compatible archiver")
+    (description
+     "Btar is a tar-compatible archiver which allows arbitrary compression and
+ciphering, redundancy, differential backup, indexed extraction, multicore
+compression, input and output serialisation, and tolerance to partial archive
+errors.")
+    (license license:gpl3+)))
+
+(define-public rdiff-backup
+  (package
+    (name "rdiff-backup")
+    (version "1.2.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://savannah/rdiff-backup/rdiff-backup-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1nwmmh816f96h0ff1jxk95ad38ilbhbdl5dgibx1d4cl81dsi48d"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python2-setuptools" ,python2-setuptools)))
+    (inputs
+     `(("python" ,python-2)
+       ("librsync" ,librsync)))
+    (arguments
+     `(#:python ,python-2
+       #:tests? #f))
+    (home-page "http://www.nongnu.org/rdiff-backup/")
+    (synopsis "Local/remote mirroring+incremental backup")
+    (description
+     "Rdiff-backup backs up one directory to another, possibly over a network.
+The target directory ends up a copy of the source directory, but extra reverse
+diffs are stored in a special subdirectory of that target directory, so you
+can still recover files lost some time ago.  The idea is to combine the best
+features of a mirror and an incremental backup.  Rdiff-backup also preserves
+subdirectories, hard links, dev files, permissions, uid/gid ownership,
+modification times, extended attributes, acls, and resource forks.  Also,
+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 license:gpl2+)))