>From 5e43672e45e6b9bbe7c0ed0d954a44285e55b173 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: References: From: Leo Famulari Date: Mon, 14 Mar 2016 19:34:25 -0400 Subject: [PATCH 5/6] gnu: Add borg. * gnu/packages/backup.scm (borg): New variable. --- gnu/packages/backup.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 4a69b7a..0993c76 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Eric Bavier ;;; Copyright © 2014 Ian Denhardt -;;; Copyright © 2015 Leo Famulari +;;; Copyright © 2015, 2016 Leo Famulari ;;; ;;; 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 detection, and lossless compression.") (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 'docs + (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))) -- 2.7.3