diff options
Diffstat (limited to 'gnu/packages/backup.scm')
-rw-r--r-- | gnu/packages/backup.scm | 214 |
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+))) |