From 9581aeb15d532e1c9e0da24930446675ff16cd10 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Thu, 28 May 2026 11:54:37 +0200 Subject: [PATCH] adapt for and require borgstore 0.5.x --- pyproject.toml | 10 +++++----- src/borg/repository.py | 16 ++++++++-------- src/borg/testsuite/storelocking_test.py | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f330feaeb..649faeca6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ license = "BSD-3-Clause" license-files = ["LICENSE", "AUTHORS"] dependencies = [ "borghash ~= 0.1.0", - "borgstore ~= 0.4.0", + "borgstore ~= 0.5.0", "msgpack >=1.0.3, <=1.1.2", "packaging", "platformdirs >=3.0.0, <5.0.0; sys_platform == 'darwin'", # for macOS: breaking changes in 3.0.0. @@ -51,10 +51,10 @@ mfusepy = ["mfusepy >= 3.1.0, <4.0.0"] # fuse 2+3, high-level # a pypi release of borgbackup can't contain a dependency on github! # mfusepym = ["mfusepy @ git+https://github.com/mxmlnkn/mfusepy.git@master"] nofuse = [] -s3 = ["borgstore[s3] ~= 0.4.0"] -sftp = ["borgstore[sftp] ~= 0.4.0"] -rclone = ["borgstore[rclone] ~= 0.4.0"] -rest = ["borgstore[rest] ~= 0.4.0"] +s3 = ["borgstore[s3] ~= 0.5.0"] +sftp = ["borgstore[sftp] ~= 0.5.0"] +rclone = ["borgstore[rclone] ~= 0.5.0"] +rest = ["borgstore[rest] ~= 0.5.0"] cockpit = ["textual>=6.8.0"] # might also work with older versions, untested [project.urls] diff --git a/src/borg/repository.py b/src/borg/repository.py index a3f8aa8cc..0a3716395 100644 --- a/src/borg/repository.py +++ b/src/borg/repository.py @@ -117,13 +117,13 @@ class Repository: self.url = url # lots of stuff in data: use 2 levels by default (data/00/00/ .. data/ff/ff/ dirs)! data_levels = int(os.environ.get("BORG_STORE_DATA_LEVELS", "2")) - levels_config = { - "archives/": [0], - "cache/": [0], - "config/": [0], - "data/": [data_levels], - "keys/": [0], - "locks/": [0], + ns_config = { + "archives/": {"levels": [0]}, + "cache/": {"levels": [0]}, + "config/": {"levels": [0]}, + "data/": {"levels": [data_levels]}, + "keys/": {"levels": [0]}, + "locks/": {"levels": [0]}, } # Get permissions from parameter or environment variable permissions = permissions if permissions is not None else os.environ.get("BORG_REPO_PERMISSIONS", "all") @@ -159,7 +159,7 @@ class Repository: ) try: - self.store = Store(url, levels=levels_config, permissions=permissions) + self.store = Store(url, config=ns_config, permissions=permissions) except StoreBackendError as e: raise Error(str(e)) self.store_opened = False diff --git a/src/borg/testsuite/storelocking_test.py b/src/borg/testsuite/storelocking_test.py index 143a99a0e..8667d7934 100644 --- a/src/borg/testsuite/storelocking_test.py +++ b/src/borg/testsuite/storelocking_test.py @@ -13,7 +13,7 @@ ID2 = "bar", 2, 2 @pytest.fixture() def lockstore(tmp_path): - store = Store(Path(tmp_path / "lockstore").as_uri(), levels={"locks/": [0]}) + store = Store(Path(tmp_path / "lockstore").as_uri(), config={"locks/": {"levels": [0]}}) store.create() with store: yield store