diff options
Diffstat (limited to 'gnu/packages/backup.scm')
-rw-r--r-- | gnu/packages/backup.scm | 61 |
1 files changed, 54 insertions, 7 deletions
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index a2dcffaab6..882042d81f 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> -;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Christine Lemmer-Webber <cwebber@dustycloud.org> @@ -80,6 +80,7 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rsync) + #:use-module (gnu packages serialization) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) @@ -88,7 +89,7 @@ (define-public duplicity (package (name "duplicity") - (version "0.8.20") + (version "0.8.21") (source (origin (method url-fetch) @@ -97,7 +98,7 @@ "-series/" version "/+download/duplicity-" version ".tar.gz")) (sha256 - (base32 "0d125mxknpn44xwgqzzak9y5ydigscrpjv9d63126mfc6yfngr5v")))) + (base32 "0ld4bhsi6iv4bvy99pblbr7vlwy9jbgfd6flyvb8qwbl8rvadzjp")))) (build-system python-build-system) (native-inputs `(("gettext" ,gettext-minimal) ; for msgfmt @@ -138,8 +139,7 @@ "/bin/dbus-launch']"))) (substitute* '("testing/functional/__init__.py" "testing/overrides/bin/lftp") - (("/bin/sh") (which "sh"))) - #t)) + (("/bin/sh") (which "sh"))))) (add-before 'check 'set-up-tests (lambda* (#:key inputs #:allow-other-keys) (setenv "HOME" (getcwd)) ; gpg needs to write to $HOME @@ -147,8 +147,7 @@ (search-input-directory inputs "share/zoneinfo")) ;; Some things respect TMPDIR, others hard-code /tmp, and the ;; defaults don't match up, breaking test_restart. Fix it. - (setenv "TMPDIR" "/tmp") - #t))))) + (setenv "TMPDIR" "/tmp")))))) (home-page "https://duplicity.gitlab.io/duplicity-web/") (synopsis "Encrypted backup using rsync algorithm") (description @@ -1170,3 +1169,51 @@ original files. For example, a software archive made using tar and Gzip will need to describe the order of files in the tarball and the compression parameters used by Gzip.") (license license:gpl3+))) + +(define-public borgmatic + (package + (name "borgmatic") + (version "1.5.20") + (source + (origin + (method url-fetch) + (uri (pypi-uri "borgmatic" version)) + (sha256 + (base32 "1rdpj1mii4fbyprg56krf5k0xsd97ghybaabr7zdhsrcsxf719ha")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Set absolute store path to borg. + (substitute* "borgmatic/commands/borgmatic.py" + (("location\\.get\\('local_path', 'borg'\\)") + (string-append "location.get('local_path', '" + (assoc-ref inputs "borg") "/bin/borg" + "')"))))) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + ;; Tests require the installed executable. + (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin" + ":" (getenv "PATH"))) + (invoke "pytest"))))))) + (inputs + `(("borg" ,borg) + ("python-colorama" ,python-colorama) + ("python-jsonschema" ,python-jsonschema) + ("python-requests" ,python-requests) + ("python-ruamel.yaml" ,python-ruamel.yaml))) + (native-inputs + `(("python-flexmock" ,python-flexmock) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov))) + (home-page "https://torsion.org/borgmatic/") + (synopsis "Simple, configuration-driven backup software") + (description + "borgmatic is simple, configuration-driven backup software for servers +and workstations. Protect your files with client-side encryption. Backup +your databases too. Monitor it all with integrated third-party services. +borgmatic is powered by borg.") + (license license:gpl3+))) |