gnu: Add borg.

* gnu/packages/backup.scm (borg): New variable.
This commit is contained in:
Leo Famulari 2016-03-14 19:34:25 -04:00
parent 5a39b07f8a
commit 6fc5c11b81
1 changed files with 54 additions and 1 deletions

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -406,3 +406,56 @@ compression, and more. The library itself implements storage techniques such
as content-addressable storage, content hash keys, Merkle trees, similarity as content-addressable storage, content hash keys, Merkle trees, similarity
detection, and lossless compression.") detection, and lossless compression.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public borg
(package
(name "borg")
(version "1.0.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
(base32
"0wa6cvqs3rni5nwrgagigchcly8a53rxk56z0zn8iaii2cqrw2sh"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-env
(lambda* (#:key inputs #:allow-other-keys)
(let ((openssl (assoc-ref inputs "openssl"))
(lz4 (assoc-ref inputs "lz4")))
(setenv "BORG_OPENSSL_PREFIX" openssl)
(setenv "BORG_LZ4_PREFIX" lz4)
(setenv "PYTHON_EGG_CACHE" "/tmp")
#t)))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man/man1")))
(and
(zero? (system* "python3" "setup.py" "build_ext" "--inplace"))
(zero? (system* "make" "-C" "docs" "man"))
(begin
(install-file "docs/_build/man/borg.1" man)
#t))))))))
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)
;; For generating the documentation.
("python-sphinx" ,python-sphinx)
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
(inputs
`(("acl" ,acl)
("lz4" ,lz4)
("openssl" ,openssl)
("python-llfuse" ,python-llfuse)
("python-msgpack" ,python-msgpack)))
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
(description "Borg is a deduplicating backup program. Optionally, it
supports compression and authenticated encryption. The main goal of Borg is to
provide an efficient and secure way to backup data. The data deduplication
technique used makes Borg suitable for daily backups since only changes are
stored. The authenticated encryption technique makes it suitable for backups
to not fully trusted targets. Borg is a fork of Attic.")
(home-page "https://borgbackup.github.io/borgbackup/")
(license license:bsd-3)))