gnu: borg: Update to 1.1.4.
* gnu/packages/backup.scm (borg): Update to 1.1.4. [source]: Remove obsolete patch. Remove bundled lz4 and zstd. [inputs]: Add zstd. [arguments]: Build with input versions of lz4 and zstd. * gnu/packages/patches/borg-fix-archive-corruption-bug.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it.
This commit is contained in:
parent
50d22ef15d
commit
c4556777d9
|
@ -557,7 +557,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/binutils-ld-new-dtags.patch \
|
%D%/packages/patches/binutils-ld-new-dtags.patch \
|
||||||
%D%/packages/patches/binutils-loongson-workaround.patch \
|
%D%/packages/patches/binutils-loongson-workaround.patch \
|
||||||
%D%/packages/patches/blast+-fix-makefile.patch \
|
%D%/packages/patches/blast+-fix-makefile.patch \
|
||||||
%D%/packages/patches/borg-fix-archive-corruption-bug.patch \
|
|
||||||
%D%/packages/patches/byobu-writable-status.patch \
|
%D%/packages/patches/byobu-writable-status.patch \
|
||||||
%D%/packages/patches/cairo-CVE-2016-9082.patch \
|
%D%/packages/patches/cairo-CVE-2016-9082.patch \
|
||||||
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
||||||
|
|
|
@ -468,18 +468,22 @@ detection, and lossless compression.")
|
||||||
(define-public borg
|
(define-public borg
|
||||||
(package
|
(package
|
||||||
(name "borg")
|
(name "borg")
|
||||||
(version "1.1.3")
|
(version "1.1.4")
|
||||||
(source (origin
|
(source
|
||||||
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "borgbackup" version))
|
(uri (pypi-uri "borgbackup" version))
|
||||||
(patches (search-patches "borg-fix-archive-corruption-bug.patch"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "1cicqwh85wfp65y00qaq6q4i4jcyy9b66qz5gpl80qc880wab912"))
|
||||||
"1rvn8b6clzd1r317r9jkvk34r31risi0dxfjc7jffhnwasck4anc"))
|
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(for-each
|
'(begin
|
||||||
delete-file (find-files "borg" "^(c|h|p).*\\.c$")))))
|
(for-each delete-file
|
||||||
|
(find-files "borg" "^(c|h|p).*\\.c$"))
|
||||||
|
;; Remove bundled shared libraries.
|
||||||
|
(with-directory-excursion "src/borg/algorithms"
|
||||||
|
(for-each delete-file-recursively
|
||||||
|
(list "lz4" "zstd")))))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:modules ((srfi srfi-26) ; for cut
|
`(#:modules ((srfi srfi-26) ; for cut
|
||||||
|
@ -490,9 +494,11 @@ detection, and lossless compression.")
|
||||||
(add-after 'unpack 'set-env
|
(add-after 'unpack 'set-env
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(let ((openssl (assoc-ref inputs "openssl"))
|
(let ((openssl (assoc-ref inputs "openssl"))
|
||||||
(lz4 (assoc-ref inputs "lz4")))
|
(lz4 (assoc-ref inputs "lz4"))
|
||||||
|
(zstd (assoc-ref inputs "zstd")))
|
||||||
(setenv "BORG_OPENSSL_PREFIX" openssl)
|
(setenv "BORG_OPENSSL_PREFIX" openssl)
|
||||||
(setenv "BORG_LZ4_PREFIX" lz4)
|
(setenv "BORG_LIBLZ4_PREFIX" lz4)
|
||||||
|
(setenv "BORG_LIBZSTD_PREFIX" zstd)
|
||||||
(setenv "PYTHON_EGG_CACHE" "/tmp")
|
(setenv "PYTHON_EGG_CACHE" "/tmp")
|
||||||
;; The test 'test_return_codes[python]' fails when
|
;; The test 'test_return_codes[python]' fails when
|
||||||
;; HOME=/homeless-shelter.
|
;; HOME=/homeless-shelter.
|
||||||
|
@ -544,8 +550,8 @@ detection, and lossless compression.")
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-cython" ,python-cython)
|
`(("python-cython" ,python-cython)
|
||||||
("python-setuptools-scm" ,python-setuptools-scm)
|
("python-setuptools-scm" ,python-setuptools-scm)
|
||||||
;; Borg 1.0.8's test suite uses 'tmpdir_factory', which was introduced in
|
;; Borg >=1.0.8's test suite uses 'tmpdir_factory', which was introduced
|
||||||
;; pytest 2.8.
|
;; in pytest 2.8.
|
||||||
("python-pytest" ,python-pytest-3.0)
|
("python-pytest" ,python-pytest-3.0)
|
||||||
;; For generating the documentation.
|
;; For generating the documentation.
|
||||||
("python-sphinx" ,python-sphinx)
|
("python-sphinx" ,python-sphinx)
|
||||||
|
@ -555,7 +561,8 @@ detection, and lossless compression.")
|
||||||
("lz4" ,lz4)
|
("lz4" ,lz4)
|
||||||
("openssl" ,openssl)
|
("openssl" ,openssl)
|
||||||
("python-llfuse" ,python-llfuse)
|
("python-llfuse" ,python-llfuse)
|
||||||
("python-msgpack" ,python-msgpack)))
|
("python-msgpack" ,python-msgpack)
|
||||||
|
("zstd" ,zstd)))
|
||||||
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
|
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
|
||||||
(description "Borg is a deduplicating backup program. Optionally, it
|
(description "Borg is a deduplicating backup program. Optionally, it
|
||||||
supports compression and authenticated encryption. The main goal of Borg is to
|
supports compression and authenticated encryption. The main goal of Borg is to
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
Fix a bug in `borg check --repair` that corrupts existing archives:
|
|
||||||
|
|
||||||
https://github.com/borgbackup/borg/issues/3444
|
|
||||||
|
|
||||||
Patches copied from upstream source repository:
|
|
||||||
|
|
||||||
https://github.com/borgbackup/borg/commit/e09892caec8a63d59e909518c4e9c230dbd69774
|
|
||||||
https://github.com/borgbackup/borg/commit/a68d28bfa4db30561150c83eb6a0dca5efa4d9e8
|
|
||||||
|
|
||||||
From a68d28bfa4db30561150c83eb6a0dca5efa4d9e8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Waldmann <tw@waldmann-edv.de>
|
|
||||||
Date: Sat, 16 Dec 2017 01:11:40 +0100
|
|
||||||
Subject: [PATCH 1/2] modify borg check unit test so it "hangs", see #3444
|
|
||||||
|
|
||||||
it doesn't infinitely hang, but slows down considerably.
|
|
||||||
---
|
|
||||||
src/borg/testsuite/archiver.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/borg/testsuite/archiver.py b/src/borg/testsuite/archiver.py
|
|
||||||
index c7def2c7..b3383e97 100644
|
|
||||||
--- a/src/borg/testsuite/archiver.py
|
|
||||||
+++ b/src/borg/testsuite/archiver.py
|
|
||||||
@@ -3006,7 +3006,7 @@ def test_missing_file_chunk(self):
|
|
||||||
def test_missing_archive_item_chunk(self):
|
|
||||||
archive, repository = self.open_archive('archive1')
|
|
||||||
with repository:
|
|
||||||
- repository.delete(archive.metadata.items[-5])
|
|
||||||
+ repository.delete(archive.metadata.items[0])
|
|
||||||
repository.commit()
|
|
||||||
self.cmd('check', self.repository_location, exit_code=1)
|
|
||||||
self.cmd('check', '--repair', self.repository_location, exit_code=0)
|
|
||||||
--
|
|
||||||
2.15.1
|
|
||||||
|
|
||||||
|
|
||||||
From e09892caec8a63d59e909518c4e9c230dbd69774 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Waldmann <tw@waldmann-edv.de>
|
|
||||||
Date: Sat, 16 Dec 2017 01:16:05 +0100
|
|
||||||
Subject: [PATCH 2/2] check --repair: fix malfunctioning validator, fixes #3444
|
|
||||||
|
|
||||||
the major problem was the ('path' in item) expression.
|
|
||||||
the dict has bytes-typed keys there, so it never succeeded as it
|
|
||||||
looked for a str key. this is a 1.1 regression, 1.0 was fine.
|
|
||||||
|
|
||||||
the dict -> StableDict change is just for being more specific,
|
|
||||||
the check triggered correctly as StableDict subclasses dict,
|
|
||||||
it was just a bit too general.
|
|
||||||
---
|
|
||||||
src/borg/archive.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/borg/archive.py b/src/borg/archive.py
|
|
||||||
index 239d00b7..be086800 100644
|
|
||||||
--- a/src/borg/archive.py
|
|
||||||
+++ b/src/borg/archive.py
|
|
||||||
@@ -1457,7 +1457,7 @@ def robust_iterator(archive):
|
|
||||||
"""
|
|
||||||
item_keys = frozenset(key.encode() for key in self.manifest.item_keys)
|
|
||||||
required_item_keys = frozenset(key.encode() for key in REQUIRED_ITEM_KEYS)
|
|
||||||
- unpacker = RobustUnpacker(lambda item: isinstance(item, dict) and 'path' in item,
|
|
||||||
+ unpacker = RobustUnpacker(lambda item: isinstance(item, StableDict) and b'path' in item,
|
|
||||||
self.manifest.item_keys)
|
|
||||||
_state = 0
|
|
||||||
|
|
||||||
--
|
|
||||||
2.15.1
|
|
||||||
|
|
Loading…
Reference in New Issue