borgbackup 1.4.2__tar.gz → 1.4.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {borgbackup-1.4.2 → borgbackup-1.4.4}/CHANGES.rst +80 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/PKG-INFO +2 -3
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_templates/layout.html +1 -0
- borgbackup-1.4.4/docs/_templates/versionselector.html +29 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/binaries/00_README.txt +26 -11
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/borg_theme/css/borg.css +42 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/changes.rst +80 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/conf.py +1 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/development.rst +60 -12
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/faq.rst +15 -18
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/installation.rst +4 -4
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/data-structures.rst +1 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-benchmark-crud.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-benchmark.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-break-lock.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-check.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-common.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-compact.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-compression.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-config.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-create.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-delete.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-diff.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-export-tar.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-extract.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-import-tar.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-info.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-init.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-key-change-passphrase.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-key-export.1 +26 -20
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-key-import.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-key-migrate-to-repokey.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-key.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-list.1 +7 -8
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-mount.1 +11 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-patterns.1 +11 -13
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-placeholders.1 +9 -11
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-prune.1 +7 -8
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-recreate.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-rename.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-serve.1 +10 -12
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-umount.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-upgrade.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-version.1 +6 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-with-lock.1 +7 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg.1 +25 -32
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borgfs.1 +11 -6
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/quickstart.rst +2 -14
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/diff.rst.inc +1 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/help.rst.inc +2 -2
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/key_export.rst.inc +20 -14
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/list.rst.inc +1 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/mount.rst.inc +5 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/notes.rst +4 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/serve.rst.inc +2 -2
- {borgbackup-1.4.2 → borgbackup-1.4.4}/pyproject.toml +5 -15
- borgbackup-1.4.4/scripts/Dockerfile.linux-run +30 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/borg.exe.spec +1 -1
- borgbackup-1.4.4/scripts/linux-run +110 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/upload-pypi +2 -2
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/__init__.py +1 -2
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/_hashindex.c +36 -4
- borgbackup-1.4.4/src/borg/_version.py +1 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/algorithms/checksums.c +1507 -1297
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/archive.py +12 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/archiver.py +42 -26
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/chunker.c +1867 -1941
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/compress.c +3634 -4026
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/compress.pyx +2 -2
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/constants.py +1 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/low_level.c +2326 -2493
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/fuse.py +18 -2
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/hashindex.c +3032 -3099
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/hashindex.pyx +16 -15
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/fs.py +55 -13
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/item.c +4365 -4650
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/item.pyx +1 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/__init__.py +1 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/darwin.c +2185 -2173
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/freebsd.c +2345 -2348
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/linux.c +2501 -2556
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/posix.c +1777 -1701
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/syncfilerange.c +361 -503
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/windows.c +1458 -1364
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platformflags.py +5 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/repository.py +7 -3
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/__init__.py +51 -7
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/archiver.py +65 -31
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/compress.py +1 -1
- borgbackup-1.4.2/src/borg/testsuite/hashindex_stress.py → borgbackup-1.4.4/src/borg/testsuite/hashindex_pytest.py +31 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/helpers.py +4 -3
- borgbackup-1.4.4/src/borg/testsuite/issue_8535.py +109 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/patterns.py +8 -4
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/platform.py +1 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/repository.py +6 -3
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/xattr.py +3 -3
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borgbackup.egg-info/PKG-INFO +2 -3
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borgbackup.egg-info/SOURCES.txt +5 -1
- borgbackup-1.4.2/src/borg/_version.py +0 -1
- {borgbackup-1.4.2 → borgbackup-1.4.4}/.pre-commit-config.yaml +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/.readthedocs.yaml +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/AUTHORS +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/Brewfile +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/LICENSE +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/MANIFEST.in +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/README.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/README_WINDOWS.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/SECURITY.md +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/Makefile +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_static/Makefile +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_static/favicon.ico +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_static/logo.pdf +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_static/logo.png +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_static/logo.svg +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_static/logo_font.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_templates/globaltoc.html +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/_templates/logo-text.html +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/authors.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/book.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/deployment/automated-local.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/deployment/central-backup-server.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/deployment/hosting-repositories.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/deployment/image-backup.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/deployment/non-root-user.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/deployment/pull-backup.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/deployment.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/global.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/index.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/compaction.png +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/compaction.vsd +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/encryption.png +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/encryption.vsd +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/frontends.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/object-graph.png +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/object-graph.vsd +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/security.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/structure.png +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals/structure.vsd +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/internals.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/introduction.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man/borg-change-passphrase.1 +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/man_intro.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/README +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/Vagrantfile +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/advanced.json +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/advanced.tcl +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/basic.json +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/basic.tcl +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/install.json +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/install.tcl +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/asciinema/sample-wallpapers.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/benchmark-crud.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/borg-data-flow.png +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/borg-data-flow.vsd +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/create_chunker-params.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/internals-picture.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/logging.conf +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/misc/prune-example.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/quickstart_example.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/support.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/benchmark.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/benchmark_crud.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/borgfs.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/borgfs.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/break-lock.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/change-passphrase.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/check.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/check.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/common-options.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/compact.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/compact.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/config.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/config.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/create.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/create.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/debug.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/delete.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/delete.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/diff.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/export-tar.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/extract.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/extract.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/date-time.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/environment.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/file-metadata.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/file-systems.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/logging.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/positional-arguments.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/repository-locations.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/repository-urls.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/resources.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/return-codes.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general/units.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/general.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/help.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/import-tar.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/info.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/info.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/init.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/init.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/key.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/key_change-passphrase.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/key_import.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/key_migrate-to-repokey.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/list.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/lock.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/mount.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/prune.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/prune.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/recreate.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/recreate.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/rename.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/rename.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/serve.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/tar.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/umount.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/upgrade.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/upgrade.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/usage_general.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/version.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/version.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage/with-lock.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage.rst +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/docs/usage_general.rst.inc +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/requirements.d/development.lock.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/requirements.d/development.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/requirements.d/docs.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/errorlist.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/fetch-binaries +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/fuzz-cache-sync/HOWTO +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/fuzz-cache-sync/main.c +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/fuzz-cache-sync/testcase_dir/test_simple +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/glibc_check.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/hash_sizes.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/make.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/msys2-build +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/msys2-install-deps +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/sdist-sign +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/shell_completions/bash/borg +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/shell_completions/fish/borg.fish +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/shell_completions/zsh/_borg +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/scripts/sign-binaries +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/setup.cfg +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/setup.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/__main__.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/_chunker.c +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/_endian.h +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/_item.c +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/algorithms/__init__.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/algorithms/checksums.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/algorithms/crc32_clmul.c +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/algorithms/crc32_dispatch.c +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/algorithms/crc32_slice_by_8.c +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/cache.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/cache_sync/cache_sync.c +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/cache_sync/sysdep.h +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/cache_sync/unpack.h +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/cache_sync/unpack_define.h +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/cache_sync/unpack_template.h +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/chunker.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/__init__.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/_crypto_helpers.c +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/_crypto_helpers.h +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/file_integrity.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/key.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/keymanager.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/low_level.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/crypto/nonces.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/fuse_impl.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/__init__.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/checks.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/datastruct.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/errors.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/manifest.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/misc.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/msgpack.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/parseformat.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/process.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/progress.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/time.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/helpers/yes.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/locking.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/logger.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/lrucache.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/nanorst.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/paperkey.html +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/patterns.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/base.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/darwin.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/freebsd.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/linux.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/posix.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/syncfilerange.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/windows.pyx +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/platform/xattr.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/remote.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/selftest.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/shellpattern.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/archive.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/attic.tar.gz +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/benchmark.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/cache.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/checksums.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/chunker.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/chunker_pytest.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/chunker_slow.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/conftest.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/crypto.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/efficient_collection_queue.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/file_integrity.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/hashindex.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/item.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/key.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/locking.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/logger.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/lrucache.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/nanorst.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/nonces.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/remote.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/shellpattern.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/upgrader.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/testsuite/version.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/upgrader.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/version.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borg/xattr.py +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borgbackup.egg-info/dependency_links.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borgbackup.egg-info/entry_points.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borgbackup.egg-info/requires.txt +0 -0
- {borgbackup-1.4.2 → borgbackup-1.4.4}/src/borgbackup.egg-info/top_level.txt +0 -0
|
@@ -414,7 +414,7 @@ Compatibility notes:
|
|
|
414
414
|
Change Log
|
|
415
415
|
==========
|
|
416
416
|
|
|
417
|
-
Version 1.4.
|
|
417
|
+
Version 1.4.4 (2026-03-19)
|
|
418
418
|
--------------------------
|
|
419
419
|
|
|
420
420
|
For upgrade and compatibility hints, please also read the "Upgrade Notes" section
|
|
@@ -422,6 +422,85 @@ above.
|
|
|
422
422
|
|
|
423
423
|
New features:
|
|
424
424
|
|
|
425
|
+
- prune: added -v / --info output, #9262.
|
|
426
|
+
- mount: warn about symlinks pointing outside of the mount point, #9254.
|
|
427
|
+
- create/info: remember/show cwd at the time of archive creation, #6191.
|
|
428
|
+
|
|
429
|
+
Fixes:
|
|
430
|
+
|
|
431
|
+
- hashindex: fix memory leak, #9497.
|
|
432
|
+
- hashindex: check values in read HashHeader, #9485.
|
|
433
|
+
- hashindex_size: return int64_t, #9423.
|
|
434
|
+
- hashindex: fix iteritems segfaulting with non-existent marker, #9368.
|
|
435
|
+
Never happened in borg, because borg always gives existing markers to iteritems.
|
|
436
|
+
- compress: make Padme size obfuscation usable ("obfuscate,250,...").
|
|
437
|
+
- borgfs/mount: get_base_dir: avoid using incorrect HOME, #3395.
|
|
438
|
+
|
|
439
|
+
Other changes:
|
|
440
|
+
|
|
441
|
+
- PyInstaller binary: do not exclude SSL, needed for pyfuse3/trio, #9196.
|
|
442
|
+
- mount: FUSE FS performance improvement.
|
|
443
|
+
- warn when replaying segments, #9233.
|
|
444
|
+
- CI / tests:
|
|
445
|
+
|
|
446
|
+
- build Linux binaries with pyfuse3.
|
|
447
|
+
- use macOS 15 to build the binaries.
|
|
448
|
+
- scripts/linux-run: run commands (e.g. tox) in a Podman Linux container.
|
|
449
|
+
- fix race condition in test_with_lock, #8810.
|
|
450
|
+
- fix spurious sparse test failure on Win32, #7616.
|
|
451
|
+
- Cygwin: skip ~root base dir test.
|
|
452
|
+
- fix coverage collection for daemonized `borg mount`, #9448.
|
|
453
|
+
- docs:
|
|
454
|
+
|
|
455
|
+
- move RTD version selector to sidebar top-left, #8204.
|
|
456
|
+
- consolidate key backup info in `borg key export` help, #6204.
|
|
457
|
+
- clarify append-only != write-only, #9304.
|
|
458
|
+
- fix typos found by codespell.
|
|
459
|
+
- update binary README.
|
|
460
|
+
- GitHub: enhance pull request template.
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
Version 1.4.3 (2025-12-02)
|
|
464
|
+
--------------------------
|
|
465
|
+
|
|
466
|
+
New features:
|
|
467
|
+
|
|
468
|
+
- None.
|
|
469
|
+
|
|
470
|
+
Fixes:
|
|
471
|
+
|
|
472
|
+
- compact: replace AssertionError with a warning, #8535.
|
|
473
|
+
- compact: also fix segment hints data for lost segment files.
|
|
474
|
+
- CI: FUSE-related fixes and improvements, #9182:
|
|
475
|
+
|
|
476
|
+
- The Linux and FreeBSD binaries built on GitHub now include working
|
|
477
|
+
FUSE support (based on llfuse).
|
|
478
|
+
- We can't include FUSE support in the macOS binaries built on GitHub,
|
|
479
|
+
because we can't install macFUSE there; use our Homebrew tap for that.
|
|
480
|
+
|
|
481
|
+
Other changes:
|
|
482
|
+
|
|
483
|
+
- Drop Python 3.9 support (has reached end of life at python.org).
|
|
484
|
+
- CI:
|
|
485
|
+
|
|
486
|
+
- Install the correct FUSE library depending on the tox environment.
|
|
487
|
+
- PyInstaller binary building: build and upload early, then run CI tests.
|
|
488
|
+
- For now, use llfuse, as there is an issue with PyInstaller and pyfuse3.
|
|
489
|
+
- Backported vm_tests (FreeBSD/NetBSD/OpenBSD/Haiku) from the master branch.
|
|
490
|
+
- Dynamic code analysis (Address and Undefined Behavior Sanitizers), #6819.
|
|
491
|
+
- Add tag-based workflows and provenance attestation for GitHub-built
|
|
492
|
+
binaries, #9135, #9136.
|
|
493
|
+
- Docs:
|
|
494
|
+
|
|
495
|
+
- Some fixes and updates to the FAQ, #9188.
|
|
496
|
+
- Update binary README; release binaries are built on GitHub now.
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
Version 1.4.2 (2025-10-31)
|
|
500
|
+
--------------------------
|
|
501
|
+
|
|
502
|
+
New features:
|
|
503
|
+
|
|
425
504
|
- BORG_MSGPACK_VERSION_CHECK=no to optionally disable the msgpack version
|
|
426
505
|
check; default is "yes"; use at your own risk, #9109.
|
|
427
506
|
- fat binary builds on GitHub (see assets on the GitHub releases page):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: borgbackup
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.4
|
|
4
4
|
Summary: Deduplicated, encrypted, authenticated and compressed backups
|
|
5
5
|
Author: The Borg Collective (see AUTHORS file)
|
|
6
6
|
Maintainer-email: Thomas Waldmann <tw@waldmann-edv.de>
|
|
@@ -21,7 +21,6 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
21
21
|
Classifier: Operating System :: POSIX :: Linux
|
|
22
22
|
Classifier: Programming Language :: Python
|
|
23
23
|
Classifier: Programming Language :: Python :: 3
|
|
24
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.10
|
|
26
25
|
Classifier: Programming Language :: Python :: 3.11
|
|
27
26
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -29,7 +28,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
29
28
|
Classifier: Programming Language :: Python :: 3.14
|
|
30
29
|
Classifier: Topic :: Security :: Cryptography
|
|
31
30
|
Classifier: Topic :: System :: Archiving :: Backup
|
|
32
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.10
|
|
33
32
|
License-File: LICENSE
|
|
34
33
|
License-File: AUTHORS
|
|
35
34
|
Requires-Dist: msgpack<=1.1.2,>=1.0.3
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<div class="version-selector" id="borg-version-selector" style="display:none;">
|
|
2
|
+
<label for="version-select">Select your Borg version:</label>
|
|
3
|
+
<select id="version-select"></select>
|
|
4
|
+
</div>
|
|
5
|
+
<script type="text/javascript">
|
|
6
|
+
// Populate the version selector using ReadTheDocs data if available.
|
|
7
|
+
function borgInitVersionSelector(data) {
|
|
8
|
+
var versions = data && data.versions && data.versions.active;
|
|
9
|
+
if (!versions || !versions.length) return;
|
|
10
|
+
var current = data.versions && data.versions.current && data.versions.current.slug;
|
|
11
|
+
var select = document.getElementById("version-select");
|
|
12
|
+
if (!select) return;
|
|
13
|
+
versions.forEach(function(v) {
|
|
14
|
+
var opt = document.createElement("option");
|
|
15
|
+
opt.value = v.urls.documentation;
|
|
16
|
+
opt.textContent = v.slug;
|
|
17
|
+
if (v.slug === current) opt.selected = true;
|
|
18
|
+
select.appendChild(opt);
|
|
19
|
+
});
|
|
20
|
+
select.addEventListener("change", function() {
|
|
21
|
+
window.location.href = this.value;
|
|
22
|
+
});
|
|
23
|
+
document.getElementById("borg-version-selector").style.display = "";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
document.addEventListener("readthedocs-addons-data-ready", function(event) {
|
|
27
|
+
borgInitVersionSelector(event.detail.data());
|
|
28
|
+
});
|
|
29
|
+
</script>
|
|
@@ -34,32 +34,29 @@ Binaries built on GitHub servers
|
|
|
34
34
|
borg-linux-glibc235-x86_64-gh Linux AMD/Intel (built on Ubuntu 22.04 LTS with glibc 2.35)
|
|
35
35
|
borg-linux-glibc235-arm64-gh Linux ARM (built on Ubuntu 22.04 LTS with glibc 2.35)
|
|
36
36
|
|
|
37
|
-
borg-macos-
|
|
38
|
-
borg-macos-
|
|
37
|
+
borg-macos-15-arm64-gh macOS Apple Silicon (built on macOS 15 w/o FUSE support)
|
|
38
|
+
borg-macos-15-x86_64-gh macOS Intel (built on macOS 15 w/o FUSE support)
|
|
39
39
|
|
|
40
|
+
borg-freebsd-14-x86_64-gh FreeBSD AMD/Intel (built on FreeBSD 14)
|
|
40
41
|
|
|
41
42
|
Binaries built locally
|
|
42
43
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
43
44
|
|
|
44
|
-
borg-linux-glibc241-x86_64 Linux (built on Debian 13 "Trixie" with glibc 2.41)
|
|
45
|
-
borg-linux-glibc236-x86_64 Linux (built on Debian 12 "Bookworm" with glibc 2.36)
|
|
46
45
|
borg-linux-glibc231-x86_64 Linux (built on Debian 11 "Bullseye" with glibc 2.31)
|
|
47
46
|
|
|
48
|
-
|
|
49
|
-
borg-freebsd-14-x86_64 FreeBSD (built on FreeBSD 14)
|
|
47
|
+
Note: if you don't find a specific binary here, check release 1.4.1 or 1.2.9.
|
|
50
48
|
|
|
51
49
|
|
|
52
50
|
Verifying your download
|
|
53
51
|
-----------------------
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
built it.
|
|
53
|
+
I provide GPG signatures for files which I have built locally on my machines.
|
|
57
54
|
|
|
58
|
-
To check the GPG signature, download both the
|
|
59
|
-
*.asc file and then (on the shell) type, for example:
|
|
55
|
+
To check the GPG signature, download both the file and the corresponding
|
|
56
|
+
signature (*.asc file) and then (on the shell) type, for example:
|
|
60
57
|
|
|
61
58
|
gpg --recv-keys 9F88FB52FAF7B393
|
|
62
|
-
gpg --verify
|
|
59
|
+
gpg --verify borgbackup.tar.gz.asc borgbackup.tar.gz
|
|
63
60
|
|
|
64
61
|
The files are signed by:
|
|
65
62
|
|
|
@@ -69,6 +66,24 @@ GPG key fingerprint: 6D5B EF9A DD20 7580 5747 B70F 9F88 FB52 FAF7 B393
|
|
|
69
66
|
My fingerprint is also in the footer of all my BorgBackup mailing list posts.
|
|
70
67
|
|
|
71
68
|
|
|
69
|
+
Provenance attestations for GitHub-built binaries
|
|
70
|
+
-------------------------------------------------
|
|
71
|
+
|
|
72
|
+
For binaries built on GitHub (files with a "-gh" suffix in the name), we publish
|
|
73
|
+
an artifact provenance attestation that proves the binary was built by our
|
|
74
|
+
GitHub Actions workflow from a specific commit or tag. You can verify this using
|
|
75
|
+
the GitHub CLI (gh). Install it from https://cli.github.com/ and make sure you
|
|
76
|
+
use a recent version that supports "gh attestation".
|
|
77
|
+
|
|
78
|
+
Practical example (Linux, 1.4.3 tag):
|
|
79
|
+
|
|
80
|
+
curl -LO https://github.com/borgbackup/borg/releases/download/1.4.3/borg-linux-glibc235-x86_64-gh
|
|
81
|
+
gh attestation verify --repo borgbackup/borg --source-ref refs/tags/1.4.3 borg-linux-glibc235-x86_64-gh
|
|
82
|
+
|
|
83
|
+
If verification succeeds, gh prints a summary stating the subject (your file),
|
|
84
|
+
that it was attested by GitHub Actions, and the job/workflow reference.
|
|
85
|
+
|
|
86
|
+
|
|
72
87
|
Installing
|
|
73
88
|
----------
|
|
74
89
|
|
|
@@ -194,3 +194,45 @@ cite {
|
|
|
194
194
|
#common-options .option {
|
|
195
195
|
white-space: nowrap;
|
|
196
196
|
}
|
|
197
|
+
/* Remove the right-column max-width cap so content fills the full available width. */
|
|
198
|
+
#right-column {
|
|
199
|
+
max-width: none;
|
|
200
|
+
}
|
|
201
|
+
/* Hide the default RTD flyout since we show the version selector in the sidebar. */
|
|
202
|
+
readthedocs-flyout {
|
|
203
|
+
display: none !important;
|
|
204
|
+
}
|
|
205
|
+
/* Version selector in the sidebar. */
|
|
206
|
+
.version-selector {
|
|
207
|
+
padding: 0 22px;
|
|
208
|
+
margin: 7px 0 7px 0;
|
|
209
|
+
font-size: 14px;
|
|
210
|
+
}
|
|
211
|
+
.version-selector label {
|
|
212
|
+
display: block;
|
|
213
|
+
margin-bottom: 4px;
|
|
214
|
+
color: #000;
|
|
215
|
+
}
|
|
216
|
+
.version-selector select {
|
|
217
|
+
width: 100%;
|
|
218
|
+
padding: 4px;
|
|
219
|
+
background-color: #fafafa;
|
|
220
|
+
color: #000;
|
|
221
|
+
border: 1px solid #ccc;
|
|
222
|
+
border-radius: 3px;
|
|
223
|
+
}
|
|
224
|
+
.version-selector::after {
|
|
225
|
+
content: '';
|
|
226
|
+
display: block;
|
|
227
|
+
border-top: 1px solid #ccc;
|
|
228
|
+
margin: 7px 0 0 0;
|
|
229
|
+
}
|
|
230
|
+
/* Reduce top and bottom margin of searchbox block to 7px to match separator spacing. */
|
|
231
|
+
.sidebar-block:has(#main-search) {
|
|
232
|
+
margin-top: 7px;
|
|
233
|
+
margin-bottom: 7px;
|
|
234
|
+
}
|
|
235
|
+
/* Reduce the separator margin below the search block to 7px. */
|
|
236
|
+
.sphinxsidebar > .sidebar-block:has(#main-search):after {
|
|
237
|
+
margin: 7px 22px 0 22px;
|
|
238
|
+
}
|
|
@@ -414,7 +414,7 @@ Compatibility notes:
|
|
|
414
414
|
Change Log
|
|
415
415
|
==========
|
|
416
416
|
|
|
417
|
-
Version 1.4.
|
|
417
|
+
Version 1.4.4 (2026-03-19)
|
|
418
418
|
--------------------------
|
|
419
419
|
|
|
420
420
|
For upgrade and compatibility hints, please also read the "Upgrade Notes" section
|
|
@@ -422,6 +422,85 @@ above.
|
|
|
422
422
|
|
|
423
423
|
New features:
|
|
424
424
|
|
|
425
|
+
- prune: added -v / --info output, #9262.
|
|
426
|
+
- mount: warn about symlinks pointing outside of the mount point, #9254.
|
|
427
|
+
- create/info: remember/show cwd at the time of archive creation, #6191.
|
|
428
|
+
|
|
429
|
+
Fixes:
|
|
430
|
+
|
|
431
|
+
- hashindex: fix memory leak, #9497.
|
|
432
|
+
- hashindex: check values in read HashHeader, #9485.
|
|
433
|
+
- hashindex_size: return int64_t, #9423.
|
|
434
|
+
- hashindex: fix iteritems segfaulting with non-existent marker, #9368.
|
|
435
|
+
Never happened in borg, because borg always gives existing markers to iteritems.
|
|
436
|
+
- compress: make Padme size obfuscation usable ("obfuscate,250,...").
|
|
437
|
+
- borgfs/mount: get_base_dir: avoid using incorrect HOME, #3395.
|
|
438
|
+
|
|
439
|
+
Other changes:
|
|
440
|
+
|
|
441
|
+
- PyInstaller binary: do not exclude SSL, needed for pyfuse3/trio, #9196.
|
|
442
|
+
- mount: FUSE FS performance improvement.
|
|
443
|
+
- warn when replaying segments, #9233.
|
|
444
|
+
- CI / tests:
|
|
445
|
+
|
|
446
|
+
- build Linux binaries with pyfuse3.
|
|
447
|
+
- use macOS 15 to build the binaries.
|
|
448
|
+
- scripts/linux-run: run commands (e.g. tox) in a Podman Linux container.
|
|
449
|
+
- fix race condition in test_with_lock, #8810.
|
|
450
|
+
- fix spurious sparse test failure on Win32, #7616.
|
|
451
|
+
- Cygwin: skip ~root base dir test.
|
|
452
|
+
- fix coverage collection for daemonized `borg mount`, #9448.
|
|
453
|
+
- docs:
|
|
454
|
+
|
|
455
|
+
- move RTD version selector to sidebar top-left, #8204.
|
|
456
|
+
- consolidate key backup info in `borg key export` help, #6204.
|
|
457
|
+
- clarify append-only != write-only, #9304.
|
|
458
|
+
- fix typos found by codespell.
|
|
459
|
+
- update binary README.
|
|
460
|
+
- GitHub: enhance pull request template.
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
Version 1.4.3 (2025-12-02)
|
|
464
|
+
--------------------------
|
|
465
|
+
|
|
466
|
+
New features:
|
|
467
|
+
|
|
468
|
+
- None.
|
|
469
|
+
|
|
470
|
+
Fixes:
|
|
471
|
+
|
|
472
|
+
- compact: replace AssertionError with a warning, #8535.
|
|
473
|
+
- compact: also fix segment hints data for lost segment files.
|
|
474
|
+
- CI: FUSE-related fixes and improvements, #9182:
|
|
475
|
+
|
|
476
|
+
- The Linux and FreeBSD binaries built on GitHub now include working
|
|
477
|
+
FUSE support (based on llfuse).
|
|
478
|
+
- We can't include FUSE support in the macOS binaries built on GitHub,
|
|
479
|
+
because we can't install macFUSE there; use our Homebrew tap for that.
|
|
480
|
+
|
|
481
|
+
Other changes:
|
|
482
|
+
|
|
483
|
+
- Drop Python 3.9 support (has reached end of life at python.org).
|
|
484
|
+
- CI:
|
|
485
|
+
|
|
486
|
+
- Install the correct FUSE library depending on the tox environment.
|
|
487
|
+
- PyInstaller binary building: build and upload early, then run CI tests.
|
|
488
|
+
- For now, use llfuse, as there is an issue with PyInstaller and pyfuse3.
|
|
489
|
+
- Backported vm_tests (FreeBSD/NetBSD/OpenBSD/Haiku) from the master branch.
|
|
490
|
+
- Dynamic code analysis (Address and Undefined Behavior Sanitizers), #6819.
|
|
491
|
+
- Add tag-based workflows and provenance attestation for GitHub-built
|
|
492
|
+
binaries, #9135, #9136.
|
|
493
|
+
- Docs:
|
|
494
|
+
|
|
495
|
+
- Some fixes and updates to the FAQ, #9188.
|
|
496
|
+
- Update binary README; release binaries are built on GitHub now.
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
Version 1.4.2 (2025-10-31)
|
|
500
|
+
--------------------------
|
|
501
|
+
|
|
502
|
+
New features:
|
|
503
|
+
|
|
425
504
|
- BORG_MSGPACK_VERSION_CHECK=no to optionally disable the msgpack version
|
|
426
505
|
check; default is "yes"; use at your own risk, #9109.
|
|
427
506
|
- fat binary builds on GitHub (see assets on the GitHub releases page):
|
|
@@ -161,7 +161,7 @@ smartquotes_action = 'qe' # no D in there means "do not transform -- and ---"
|
|
|
161
161
|
|
|
162
162
|
# Custom sidebar templates, maps document names to template names.
|
|
163
163
|
html_sidebars = {
|
|
164
|
-
'**': ['logo-text.html', 'searchbox.html', 'globaltoc.html'],
|
|
164
|
+
'**': ['logo-text.html', "versionselector.html", 'searchbox.html', 'globaltoc.html'],
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
# Additional templates that should be rendered to pages, maps page names to
|
|
@@ -185,7 +185,7 @@ Some more advanced examples::
|
|
|
185
185
|
# verify a changed tox.ini (run this after any change to tox.ini):
|
|
186
186
|
fakeroot -u tox --recreate
|
|
187
187
|
|
|
188
|
-
fakeroot -u tox -e
|
|
188
|
+
fakeroot -u tox -e py310 # run all tests, but only on python 3.10
|
|
189
189
|
|
|
190
190
|
fakeroot -u tox borg.testsuite.locking # only run 1 test module
|
|
191
191
|
|
|
@@ -304,6 +304,50 @@ Usage::
|
|
|
304
304
|
# To copy files from the VM (in this case, the generated binary):
|
|
305
305
|
vagrant scp OS:/vagrant/borg/borg.exe .
|
|
306
306
|
|
|
307
|
+
Using Podman
|
|
308
|
+
------------
|
|
309
|
+
|
|
310
|
+
macOS-based developers (and others who prefer containers) can run the Linux test suite locally using Podman.
|
|
311
|
+
|
|
312
|
+
Prerequisites:
|
|
313
|
+
|
|
314
|
+
- Install Podman (e.g., ``brew install podman``).
|
|
315
|
+
- Initialize the Podman machine, only once: ``podman machine init``.
|
|
316
|
+
- Start the Podman machine, before using it: ``podman machine start``.
|
|
317
|
+
|
|
318
|
+
Usage::
|
|
319
|
+
|
|
320
|
+
# Open an interactive shell in the container (default if no command given):
|
|
321
|
+
./scripts/linux-run
|
|
322
|
+
|
|
323
|
+
# Run the default tox environment:
|
|
324
|
+
./scripts/linux-run tox
|
|
325
|
+
|
|
326
|
+
# Run a specific tox environment:
|
|
327
|
+
./scripts/linux-run tox -e py311-pyfuse3
|
|
328
|
+
|
|
329
|
+
# Pass arguments to pytest (e.g., run specific tests):
|
|
330
|
+
./scripts/linux-run tox -e py313-pyfuse3 -- -k mount
|
|
331
|
+
|
|
332
|
+
# Switch base image (temporarily):
|
|
333
|
+
./scripts/linux-run --image python:3.11-bookworm tox
|
|
334
|
+
|
|
335
|
+
Resource Usage
|
|
336
|
+
~~~~~~~~~~~~~~
|
|
337
|
+
|
|
338
|
+
The default Podman VM uses 2GB RAM and half your CPUs.
|
|
339
|
+
For heavy tests (parallel execution), this might be tight.
|
|
340
|
+
|
|
341
|
+
- **Check usage:** Run ``podman stats`` in another terminal while tests are running.
|
|
342
|
+
- **Increase resources:**
|
|
343
|
+
|
|
344
|
+
::
|
|
345
|
+
|
|
346
|
+
podman machine stop
|
|
347
|
+
podman machine set --cpus 6 --memory 4096
|
|
348
|
+
podman machine start
|
|
349
|
+
|
|
350
|
+
|
|
307
351
|
Creating standalone binaries
|
|
308
352
|
----------------------------
|
|
309
353
|
|
|
@@ -338,7 +382,7 @@ Checklist:
|
|
|
338
382
|
- Check version number of upcoming release in ``CHANGES.rst``.
|
|
339
383
|
- Render ``CHANGES.rst`` via ``make html`` and check for markup errors.
|
|
340
384
|
- Verify that ``MANIFEST.in``, ``pyproject.toml`` and ``setup.py`` are complete.
|
|
341
|
-
- Run these commands and commit::
|
|
385
|
+
- Run these commands, check git status for files that might need to be added, and commit::
|
|
342
386
|
|
|
343
387
|
python scripts/make.py build_usage
|
|
344
388
|
python scripts/make.py build_man
|
|
@@ -347,6 +391,8 @@ Checklist:
|
|
|
347
391
|
|
|
348
392
|
git tag -s -m "tagged/signed release X.Y.Z" X.Y.Z
|
|
349
393
|
|
|
394
|
+
- Push the release PR branch to GitHub, make a pull request.
|
|
395
|
+
- Also push the release tag.
|
|
350
396
|
- Create a clean repo and use it for the following steps::
|
|
351
397
|
|
|
352
398
|
git clone borg borg-clean
|
|
@@ -355,8 +401,9 @@ Checklist:
|
|
|
355
401
|
It will also reveal uncommitted required files.
|
|
356
402
|
Moreover, it makes sure the vagrant machines only get committed files and
|
|
357
403
|
do a fresh start based on that.
|
|
358
|
-
-
|
|
359
|
-
check for test failures.
|
|
404
|
+
- Optional: run tox and/or binary builds on all supported platforms via vagrant,
|
|
405
|
+
check for test failures. This is now optional as we do platform testing and
|
|
406
|
+
binary building on GitHub.
|
|
360
407
|
- Create sdist, sign it, upload release to (test) PyPi:
|
|
361
408
|
|
|
362
409
|
::
|
|
@@ -367,12 +414,13 @@ Checklist:
|
|
|
367
414
|
|
|
368
415
|
Note: the signature is not uploaded to PyPi any more, but we upload it to
|
|
369
416
|
github releases.
|
|
370
|
-
- Put binaries into dist/borg-OSNAME and sign them:
|
|
371
|
-
|
|
372
|
-
::
|
|
373
|
-
|
|
374
|
-
scripts/sign-binaries 201912312359
|
|
375
417
|
|
|
418
|
+
- When GitHub CI looks good on the release PR, merge it and then check "Actions":
|
|
419
|
+
GitHub will create binary assets after the release PR is merged within the
|
|
420
|
+
CI testing of the merge. Check the "Upload binaries" step on Ubuntu (AMD/Intel
|
|
421
|
+
and ARM64) and macOS (Intel and ARM64), fetch the ZIPs with the binaries.
|
|
422
|
+
- Unpack the ZIPs and test the binaries, upload the binaries to the GitHub
|
|
423
|
+
release page (borg-OS-SPEC-ARCH-gh and borg-OS-SPEC-ARCH-gh.tgz).
|
|
376
424
|
- Close the release milestone on GitHub.
|
|
377
425
|
- `Update borgbackup.org
|
|
378
426
|
<https://github.com/borgbackup/borgbackup.github.io/pull/53/files>`_ with the
|
|
@@ -388,7 +436,7 @@ Checklist:
|
|
|
388
436
|
- pypi dist package and signature
|
|
389
437
|
- Standalone binaries (see above for how to create them).
|
|
390
438
|
|
|
391
|
-
- For macOS, document the macFUSE version
|
|
392
|
-
macFUSE uses a kernel extension that needs
|
|
393
|
-
code contained in the binary.
|
|
439
|
+
- For macOS binaries **with** FUSE support, document the macFUSE version
|
|
440
|
+
in the README of the binaries. macFUSE uses a kernel extension that needs
|
|
441
|
+
to be compatible with the code contained in the binary.
|
|
394
442
|
- A link to ``CHANGES.rst``.
|
|
@@ -210,8 +210,8 @@ sure you have an up-to-date version of borgbackup if you want to continue
|
|
|
210
210
|
instead of retransferring a huge file. In some cases, there is only an outdated
|
|
211
211
|
version shipped with your distribution (e.g. Debian). See :ref:`installation`.
|
|
212
212
|
|
|
213
|
-
How can I
|
|
214
|
-
|
|
213
|
+
How can I back up huge file(s) over an unstable connection?
|
|
214
|
+
-----------------------------------------------------------
|
|
215
215
|
|
|
216
216
|
This is not a problem anymore.
|
|
217
217
|
|
|
@@ -381,9 +381,7 @@ Checking processors
|
|
|
381
381
|
operate hardware outside its specifications for productive use.
|
|
382
382
|
|
|
383
383
|
Tools to verify correct processor operation include Prime95 (mprime), linpack,
|
|
384
|
-
and
|
|
385
|
-
<https://downloadcenter.intel.com/download/19792/Intel-Processor-Diagnostic-Tool>`_
|
|
386
|
-
(applies only to Intel processors).
|
|
384
|
+
and stress-ng.
|
|
387
385
|
|
|
388
386
|
.. rubric:: Repairing a damaged repository
|
|
389
387
|
|
|
@@ -546,11 +544,10 @@ The Borg config directory has content that you should take care of:
|
|
|
546
544
|
recovered.
|
|
547
545
|
|
|
548
546
|
``keys`` subdirectory
|
|
549
|
-
All your borg keyfile keys are stored in this directory. Please note that
|
|
550
|
-
|
|
551
|
-
independent backup of
|
|
552
|
-
|
|
553
|
-
the corresponding keyfile (and the key passphrase) can extract it.
|
|
547
|
+
All your borg keyfile keys are stored in this directory. Please note that borg
|
|
548
|
+
repokey keys are stored inside the repository. In any case, you MUST make sure
|
|
549
|
+
to have an independent backup of the borg keys, see :ref:`borg_key_export` for
|
|
550
|
+
more details.
|
|
554
551
|
|
|
555
552
|
Make sure that only you have access to the Borg config directory.
|
|
556
553
|
|
|
@@ -706,7 +703,7 @@ all your files/dirs data and metadata are stored in their encrypted form
|
|
|
706
703
|
into the repository.
|
|
707
704
|
|
|
708
705
|
Yes, as an attacker with access to the remote server could delete (or
|
|
709
|
-
otherwise make unavailable) all your backups.
|
|
706
|
+
otherwise make unavailable) all your backups on that server.
|
|
710
707
|
|
|
711
708
|
How can I protect against a hacked backup client?
|
|
712
709
|
-------------------------------------------------
|
|
@@ -743,7 +740,7 @@ These are your options to protect against that:
|
|
|
743
740
|
How can I protect against theft, sabotage, lightning, fire, ...?
|
|
744
741
|
----------------------------------------------------------------
|
|
745
742
|
|
|
746
|
-
In general: if your only backup medium is nearby the
|
|
743
|
+
In general: if your only backup medium is nearby the backed-up machine and
|
|
747
744
|
always connected, you can easily get into trouble: they likely share the same
|
|
748
745
|
fate if something goes really wrong.
|
|
749
746
|
|
|
@@ -796,7 +793,7 @@ Common issues
|
|
|
796
793
|
There can be many causes of this error. E.g. you have incorrectly specified the repository path.
|
|
797
794
|
|
|
798
795
|
You will also get this error if you try to access a repository that uses the argon2 key algorithm using an old version of borg.
|
|
799
|
-
We recommend upgrading to the latest stable version and trying again. We are sorry. We should have thought
|
|
796
|
+
We recommend upgrading to the latest stable version and trying again. We are sorry. We should have thought about forward
|
|
800
797
|
compatibility and implemented a more helpful error message.
|
|
801
798
|
|
|
802
799
|
Why am I seeing idle borg serve processes on the repo server?
|
|
@@ -962,7 +959,7 @@ Then you do the backup and look at the log output:
|
|
|
962
959
|
|
|
963
960
|
When borg runs inside a virtual machine, there are some more things to look at:
|
|
964
961
|
|
|
965
|
-
Some hypervisors (e.g. kvm on proxmox) give some broadly compatible CPU type to the
|
|
962
|
+
Some hypervisors (e.g. kvm on older proxmox) give some broadly compatible CPU type to the
|
|
966
963
|
VM (usually to ease migration between VM hosts of potentially different hardware CPUs).
|
|
967
964
|
|
|
968
965
|
It is broadly compatible because they leave away modern CPU features that could be
|
|
@@ -970,8 +967,8 @@ not present in older or other CPUs, e.g. hardware acceleration for AES crypto, f
|
|
|
970
967
|
sha2 hashes, for (P)CLMUL(QDQ) computations useful for crc32.
|
|
971
968
|
|
|
972
969
|
So, basically you pay for compatibility with bad performance. If you prefer better
|
|
973
|
-
performance, you should try to
|
|
974
|
-
to the VM which runs borg.
|
|
970
|
+
performance, you should try to use the x86-64-v2-AES VCPU or the "host" VCPU,
|
|
971
|
+
exposing misc. hw acceleration features to the VM which runs borg.
|
|
975
972
|
|
|
976
973
|
On Linux, check ``/proc/cpuinfo`` for the CPU flags inside the VM.
|
|
977
974
|
For kvm check the docs about "Host model" and "Host passthrough".
|
|
@@ -1295,7 +1292,7 @@ Miscellaneous
|
|
|
1295
1292
|
macOS: borg mounts not shown in Finder's side bar
|
|
1296
1293
|
-------------------------------------------------
|
|
1297
1294
|
|
|
1298
|
-
https://github.com/
|
|
1295
|
+
https://github.com/macfuse/macfuse/wiki/Mount-options#local
|
|
1299
1296
|
|
|
1300
1297
|
Read the above first and use this on your own risk::
|
|
1301
1298
|
|
|
@@ -1415,7 +1412,7 @@ There are some caveats:
|
|
|
1415
1412
|
Why is my backup bigger than with attic?
|
|
1416
1413
|
----------------------------------------
|
|
1417
1414
|
|
|
1418
|
-
Attic was rather
|
|
1415
|
+
Attic was rather inflexible when it comes to compression, it always
|
|
1419
1416
|
compressed using zlib level 6 (no way to switch compression off or
|
|
1420
1417
|
adjust the level or algorithm).
|
|
1421
1418
|
|
|
@@ -158,7 +158,7 @@ To install Borg from a source package (including pip), you have to install the
|
|
|
158
158
|
following dependencies first. For the libraries you will also need their
|
|
159
159
|
development header files (sometimes in a separate `-dev` or `-devel` package).
|
|
160
160
|
|
|
161
|
-
* `Python 3`_ >= 3.
|
|
161
|
+
* `Python 3`_ >= 3.10.0
|
|
162
162
|
* OpenSSL_ >= 1.0.0
|
|
163
163
|
* libacl_ (which depends on libattr_)
|
|
164
164
|
* libxxhash_ >= 0.8.1
|
|
@@ -424,9 +424,9 @@ If you need to use a different version of Python you can install this using ``py
|
|
|
424
424
|
|
|
425
425
|
...
|
|
426
426
|
# create a virtual environment
|
|
427
|
-
pyenv install 3.
|
|
428
|
-
pyenv global 3.
|
|
429
|
-
pyenv local 3.
|
|
427
|
+
pyenv install 3.10.0 # minimum, preferably use something more recent!
|
|
428
|
+
pyenv global 3.10.0
|
|
429
|
+
pyenv local 3.10.0
|
|
430
430
|
virtualenv --python=${pyenv which python} borg-env
|
|
431
431
|
source borg-env/bin/activate # always before using!
|
|
432
432
|
...
|
|
@@ -818,7 +818,7 @@ bucket is reached.
|
|
|
818
818
|
This particular mode of operation is open addressing with linear probing.
|
|
819
819
|
|
|
820
820
|
When the hash table is filled to 75%, its size is grown. When it's
|
|
821
|
-
emptied to 25%, its size is
|
|
821
|
+
emptied to 25%, its size is shrunk. Operations on it have a variable
|
|
822
822
|
complexity between constant and linear with low factor, and memory overhead
|
|
823
823
|
varies between 33% and 300%.
|
|
824
824
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
.\" Man page generated from reStructuredText
|
|
1
|
+
.\" Man page generated from reStructuredText
|
|
2
|
+
.\" by the Docutils 0.22.4 manpage writer.
|
|
2
3
|
.
|
|
3
4
|
.
|
|
4
5
|
.nr rst2man-indent-level 0
|
|
@@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
|
27
28
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
28
29
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
|
29
30
|
..
|
|
30
|
-
.TH "
|
|
31
|
-
.SH
|
|
31
|
+
.TH "borg-benchmark-crud" "1" "2026-03-18" "" "borg backup tool"
|
|
32
|
+
.SH Name
|
|
32
33
|
borg-benchmark-crud \- Benchmark Create, Read, Update, Delete for archives.
|
|
33
34
|
.SH SYNOPSIS
|
|
34
35
|
.sp
|
|
@@ -95,7 +96,6 @@ path where to create benchmark input data
|
|
|
95
96
|
.SH SEE ALSO
|
|
96
97
|
.sp
|
|
97
98
|
\fIborg\-common(1)\fP
|
|
98
|
-
.SH
|
|
99
|
+
.SH Author
|
|
99
100
|
The Borg Collective
|
|
100
|
-
.\"
|
|
101
|
-
.
|
|
101
|
+
.\" End of generated man page.
|