diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-07-18 16:05:21 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-07-18 19:50:01 +0200 |
commit | 0e47fcced442d8e7c1b05184fdc1c14f10ed04ec (patch) | |
tree | 4ae844bc0ec3c670f8697bdc24362c122fa718ad /gnu/packages/backup.scm | |
parent | e4b70bc55a538569465bcedee19d1f2607308e65 (diff) | |
parent | 8b1bde7bb3936a64244824500ffe60f123704437 (diff) | |
download | guix-0e47fcced442d8e7c1b05184fdc1c14f10ed04ec.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/backup.scm')
-rw-r--r-- | gnu/packages/backup.scm | 78 |
1 files changed, 65 insertions, 13 deletions
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 7bfbffe48c..ee15836451 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com> +;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,12 +81,13 @@ #:use-module (gnu packages rsync) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) + #:use-module (gnu packages valgrind) #:use-module (gnu packages xml)) (define-public duplicity (package (name "duplicity") - (version "0.8.19") + (version "0.8.20") (source (origin (method url-fetch) @@ -94,7 +96,7 @@ "-series/" version "/+download/duplicity-" version ".tar.gz")) (sha256 - (base32 "1c03rp4gw97gz3dzrbrray3dh4q5an3gdq0cmxbhw3qa1nw8ni4c")))) + (base32 "0d125mxknpn44xwgqzzak9y5ydigscrpjv9d63126mfc6yfngr5v")))) (build-system python-build-system) (native-inputs `(("gettext" ,gettext-minimal) ; for msgfmt @@ -381,6 +383,65 @@ file names to standard output. Auxiliary scripts are needed that act on this list and implement the backup strategy.") (license license:gpl3+))) +(define-public snapraid + (package + (name "snapraid") + (version "11.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/amadvance/snapraid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dlhdsmq5l208zldfr9z9g0p67wry81dr0r23lpybb5c9fm2f2rm")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--enable-valgrind" + "--with-blkid") + #:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'set-version + (lambda _ + (setenv "VERSION" ,version) + (patch-shebang "autover.sh")))))) + (native-inputs + `(("automake" ,automake) + ("autoconf" ,autoconf) + + ;; For the tests. + ("valgrind" ,valgrind))) + (inputs + `(("util-linux" ,util-linux "lib"))) ; libblkid + (home-page "https://www.snapraid.it/") + (synopsis "Efficient backups using parity snapshots across disk arrays") + (description + "SnapRAID backs up files stored across multiple storage devices, such as +disk arrays, in an efficient way reminiscent of its namesake @acronym{RAID, +Redundant Array of Independent Disks} level 4. + +Instead of creating a complete copy of the data like classic backups do, it +saves space by calculating one or more sets of parity information that's a +fraction of the size. Each parity set is stored on an additional device the +size of the largest single storage volume, and protects against the loss of any +one device, up to a total of six. If more devices fail than there are parity +sets, (only) the files they contained are lost, not the entire array. Data +corruption by unreliable devices can also be detected and repaired. + +SnapRAID is distinct from actual RAID in that it operates on files and creates +distinct snapshots only when run. It mainly targets large collections of big +files that rarely change, like home media centers. One disadvantage is that +@emph{all} data not in the latest snapshot may be lost if one device fails. An +advantage is that accidentally deleted files can be recovered, which is not the +case with RAID. + +It's also more flexible than true RAID: devices can have different sizes and +more can be added without disturbing others. Devices that are not in use can +remain fully idle, saving power and producing less noise.") + (license license:gpl3+))) + (define-public btar (package (name "btar") @@ -466,15 +527,6 @@ rdiff-backup is easy to use and settings have sensible defaults.") (modify-phases %standard-phases (replace 'check (lambda _ - (substitute* '("t/cmd-post_pre-exec/conf/pre-true-post-true.conf" - "t/backup_exec/conf/backup_exec_fail.conf" - "t/backup_exec/conf/backup_exec.conf") - (("/bin/true") (which "true")) - (("/bin/false") (which "false"))) - - ;; Disable a test that tries to connect to localhost on port 22. - (delete-file "t/ssh_args/ssh_args.t.in") - (invoke "make" "test")))))) (inputs `(("perl" ,perl) @@ -575,13 +627,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.1.16") + (version "1.1.17") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 - (base32 "0l1dqfwrd9l34rg30cmzmq5bs6yha6kg4vy313jq611jsqj94mmw")) + (base32 "0x0ncy0b0bmf586hbdgrif3gjmkdw760vfnfxndr493v07y29fbs")) (modules '((guix build utils))) (snippet '(begin |