aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/backup.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/backup.scm')
-rw-r--r--gnu/packages/backup.scm203
1 files changed, 100 insertions, 103 deletions
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 3725e3ff01..fd17992ab3 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
@@ -633,117 +633,114 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
- (version "1.2.1")
+ (version "1.2.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
- (base32 "0cy6chpa053rlvy4448vf9klb5v0v1vq3l76gqa3mcrwjb8y574z"))
+ (base32 "0q3jwmwwa3jlb02cbkcgh5a9cvwg64vawaypn41bdgpi8ds6hc6p"))
(modules '((guix build utils)))
(snippet
- '(begin
- ;; Delete files generated by Cython. We used to have a regex
- ;; that created the list of generated files but Borg has
- ;; added new non-generated C files that cause the regex to
- ;; generate the wrong list.
- (for-each delete-file
- '("src/borg/algorithms/checksums.c"
- "src/borg/chunker.c"
- "src/borg/compress.c"
- "src/borg/crypto/low_level.c"
- "src/borg/hashindex.c"
- "src/borg/item.c"
- "src/borg/platform/darwin.c"
- "src/borg/platform/freebsd.c"
- "src/borg/platform/linux.c"
- "src/borg/platform/posix.c"
- "src/borg/platform/syncfilerange.c"
- "src/borg/platform/windows.c"))
- ;; Remove bundled shared libraries.
- (with-directory-excursion "src/borg/algorithms"
- (for-each delete-file-recursively
- (list "lz4" "xxh64" "zstd")))
- #t))))
+ #~(begin
+ ;; Delete files generated by Cython. We used to have a regex that
+ ;; created the list of generated files but Borg has added new
+ ;; non-generated C files that cause the regex to generate the
+ ;; wrong list.
+ (for-each delete-file
+ '("src/borg/algorithms/checksums.c"
+ "src/borg/chunker.c"
+ "src/borg/compress.c"
+ "src/borg/crypto/low_level.c"
+ "src/borg/hashindex.c"
+ "src/borg/item.c"
+ "src/borg/platform/darwin.c"
+ "src/borg/platform/freebsd.c"
+ "src/borg/platform/linux.c"
+ "src/borg/platform/posix.c"
+ "src/borg/platform/syncfilerange.c"
+ "src/borg/platform/windows.c"))
+ ;; Remove bundled shared libraries.
+ (with-directory-excursion "src/borg/algorithms"
+ (for-each delete-file-recursively
+ (list "lz4" "xxh64" "zstd")))))))
(build-system python-build-system)
(arguments
- `(#:modules ((srfi srfi-26) ; for cut
+ (list
+ #:modules '((srfi srfi-26) ; for cut
(guix build utils)
(guix build python-build-system))
- #: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"))
- (xxhash (assoc-ref inputs "xxhash"))
- (zstd (assoc-ref inputs "zstd")))
- (setenv "BORG_OPENSSL_PREFIX" openssl)
- (setenv "BORG_LIBLZ4_PREFIX" lz4)
- (setenv "BORG_LIBXXHASH_PREFIX" xxhash)
- (setenv "BORG_LIBZSTD_PREFIX" zstd)
- (setenv "PYTHON_EGG_CACHE" "/tmp")
- ;; The test 'test_return_codes[python]' fails when
- ;; HOME=/homeless-shelter.
- (setenv "HOME" "/tmp")
- #t)))
- ;; The tests need to be run after Borg is installed.
- (delete 'check)
- (add-after 'install 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (when tests?
- ;; Make the installed package available for the test suite.
- (add-installed-pythonpath inputs outputs)
- ;; The tests should be run in an empty directory.
- (mkdir-p "tests")
- (with-directory-excursion "tests"
- (invoke "py.test" "-v" "--pyargs" "borg.testsuite" "-k"
- (string-append
- ;; These tests need to write to '/var'.
- "not test_get_cache_dir "
- "and not test_get_config_dir "
- "and not test_get_keys_dir "
- "and not test_get_security_dir "
- ;; These tests assume there is a root user in '/etc/passwd'.
- "and not test_access_acl "
- "and not test_default_acl "
- "and not test_get_item_uid_gid "
- "and not test_non_ascii_acl "
- "and not test_create_content_from_command "
- "and not test_create_content_from_command_with_failed_command "
- "and not test_create_stdin "
- ;; We don't need to run benchmarks
- "and not benchmark "
- ;; These tests assume the kernel supports FUSE.
- "and not test_fuse "
- "and not test_fuse_allow_damaged_files "
- "and not test_mount_hardlinks "
- "and not test_readonly_mount "
- "and not test_fuse_versions_view "
- "and not test_migrate_lock_alive"))))))
- (add-after 'install 'install-doc
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (man (string-append out "/share/man/man1"))
- (misc (string-append out "/share/borg/misc")))
- (for-each (cut install-file <> misc)
- '("docs/misc/create_chunker-params.txt"
- "docs/misc/borg-data-flow.png"
- "docs/misc/internals-picture.txt"
- "docs/misc/prune-example.txt"))
- (copy-recursively "docs/man" man))))
- (add-after 'install-docs 'install-shell-completions
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (etc (string-append out "/etc"))
- (share (string-append out "/share")))
- (with-directory-excursion "scripts/shell_completions"
- (install-file "bash/borg"
- (string-append etc "/bash_completion.d"))
- (install-file "zsh/_borg"
- (string-append share "/zsh/site-functions"))
- (install-file "fish/borg.fish"
- (string-append share "/fish/vendor_completions.d")))))))))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-env
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((openssl #$(this-package-input "openssl"))
+ (lz4 #$(this-package-input "lz4"))
+ (xxhash #$(this-package-input "xxhash"))
+ (zstd #$(this-package-input "zstd")))
+ (setenv "BORG_OPENSSL_PREFIX" openssl)
+ (setenv "BORG_LIBLZ4_PREFIX" lz4)
+ (setenv "BORG_LIBXXHASH_PREFIX" xxhash)
+ (setenv "BORG_LIBZSTD_PREFIX" zstd)
+ (setenv "PYTHON_EGG_CACHE" "/tmp")
+ ;; The test 'test_return_codes[python]' fails when
+ ;; HOME=/homeless-shelter.
+ (setenv "HOME" "/tmp"))))
+ ;; The tests need to be run after Borg is installed.
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ ;; Make the installed package available for the test suite.
+ (add-installed-pythonpath inputs outputs)
+ ;; The tests should be run in an empty directory.
+ (mkdir-p "tests")
+ (with-directory-excursion "tests"
+ (invoke "py.test" "-v" "--pyargs" "borg.testsuite" "-k"
+ (string-append
+ ;; These tests need to write to '/var'.
+ "not test_get_cache_dir "
+ "and not test_get_config_dir "
+ "and not test_get_keys_dir "
+ "and not test_get_security_dir "
+ ;; These tests assume there is a root user in '/etc/passwd'.
+ "and not test_access_acl "
+ "and not test_default_acl "
+ "and not test_get_item_uid_gid "
+ "and not test_non_ascii_acl "
+ "and not test_create_content_from_command "
+ "and not test_create_content_from_command_with_failed_command "
+ "and not test_create_stdin "
+ ;; We don't need to run benchmarks
+ "and not benchmark "
+ ;; These tests assume the kernel supports FUSE.
+ "and not test_fuse "
+ "and not test_fuse_allow_damaged_files "
+ "and not test_mount_hardlinks "
+ "and not test_readonly_mount "
+ "and not test_fuse_versions_view "
+ "and not test_migrate_lock_alive"))))))
+ (add-after 'install 'install-doc
+ (lambda _
+ (let ((man (string-append #$output "/share/man/man1"))
+ (misc (string-append #$output "/share/borg/misc")))
+ (for-each (cut install-file <> misc)
+ '("docs/misc/create_chunker-params.txt"
+ "docs/misc/borg-data-flow.png"
+ "docs/misc/internals-picture.txt"
+ "docs/misc/prune-example.txt"))
+ (copy-recursively "docs/man" man))))
+ (add-after 'install-docs 'install-shell-completions
+ (lambda _
+ (let ((etc (string-append #$output "/etc"))
+ (share (string-append #$output "/share")))
+ (with-directory-excursion "scripts/shell_completions"
+ (install-file "bash/borg"
+ (string-append etc "/bash_completion.d"))
+ (install-file "zsh/_borg"
+ (string-append share "/zsh/site-functions"))
+ (install-file "fish/borg.fish"
+ (string-append share "/fish/vendor_completions.d")))))))))
(native-inputs
(list python-cython python-dateutil python-setuptools-scm python-pytest))
(inputs
@@ -755,8 +752,8 @@ detection, and lossless compression.")
;; FUSE 3 isn't working well, so we stick with FUSE 2 for now:
;; <https://issues.guix.gnu.org/53407>
python-llfuse
- `(,zstd "lib")
- xxhash))
+ xxhash
+ `(,zstd "lib")))
(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