borgbackup 1.4.0b1__tar.gz → 1.4.0rc1__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.0b1 → borgbackup-1.4.0rc1}/Brewfile +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/CHANGES.rst +113 -27
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/PKG-INFO +2 -35
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/borg_theme/css/borg.css +1 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/changes.rst +113 -27
- borgbackup-1.4.0rc1/docs/deployment/non-root-user.rst +66 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment.rst +1 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/development.rst +38 -3
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/global.rst.inc +0 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/installation.rst +3 -3
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-benchmark-crud.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-benchmark.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-break-lock.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-check.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-common.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-compact.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-compression.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-config.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-create.1 +24 -3
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-delete.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-diff.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-export-tar.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-extract.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-import-tar.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-info.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-init.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key-change-passphrase.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key-export.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key-import.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key-migrate-to-repokey.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-list.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-mount.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-patterns.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-placeholders.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-prune.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-recreate.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-rename.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-serve.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-umount.1 +3 -4
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-upgrade.1 +8 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-version.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-with-lock.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg.1 +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borgfs.1 +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/check.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/compact.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/config.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/create.rst +3 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/create.rst.inc +25 -5
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/delete.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/diff.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/export-tar.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/extract.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/import-tar.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/info.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/init.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key_export.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key_import.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/list.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/mount.rst +2 -3
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/mount.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/prune.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/recreate.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/serve.rst.inc +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/upgrade.rst.inc +30 -24
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/pyproject.toml +4 -5
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/requirements.d/development.lock.txt +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/fetch-binaries +0 -1
- borgbackup-1.4.0b1/setup_docs.py → borgbackup-1.4.0rc1/scripts/make.py +72 -42
- borgbackup-1.4.0rc1/setup.py +237 -0
- borgbackup-1.4.0rc1/src/borg/_version.py +1 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/checksums.c +68 -50
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/checksums.pyx +1 -1
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/archive.py +45 -16
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/archiver.py +165 -91
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/chunker.c +56 -31
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/compress.c +52 -35
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/compress.pyx +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/key.py +3 -3
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/low_level.c +78 -61
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/hashindex.c +68 -47
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/__init__.py +12 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/fs.py +15 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/msgpack.py +2 -2
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/process.py +18 -4
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/item.c +73 -41
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/darwin.c +1578 -917
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/darwin.pyx +13 -7
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/freebsd.c +2400 -912
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/freebsd.pyx +50 -25
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/linux.c +1721 -793
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/linux.pyx +44 -29
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/posix.c +45 -27
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/syncfilerange.c +44 -26
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/windows.c +45 -27
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/repository.py +6 -6
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/archiver.py +25 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/platform.py +75 -35
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/PKG-INFO +2 -35
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/SOURCES.txt +2 -91
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/requires.txt +1 -1
- borgbackup-1.4.0b1/setup.py +0 -236
- borgbackup-1.4.0b1/setup_checksums.py +0 -42
- borgbackup-1.4.0b1/setup_compress.py +0 -135
- borgbackup-1.4.0b1/setup_crypto.py +0 -32
- borgbackup-1.4.0b1/src/borg/_version.py +0 -1
- borgbackup-1.4.0b1/src/borg/algorithms/lz4/lib/lz4.c +0 -2398
- borgbackup-1.4.0b1/src/borg/algorithms/lz4/lib/lz4.h +0 -764
- borgbackup-1.4.0b1/src/borg/algorithms/lz4-libselect.h +0 -5
- borgbackup-1.4.0b1/src/borg/algorithms/xxh64/xxhash.c +0 -43
- borgbackup-1.4.0b1/src/borg/algorithms/xxh64/xxhash.h +0 -5580
- borgbackup-1.4.0b1/src/borg/algorithms/xxhash-libselect.h +0 -5
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/bitstream.h +0 -454
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/compiler.h +0 -175
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/cpu.h +0 -215
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/debug.c +0 -24
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/debug.h +0 -114
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/entropy_common.c +0 -216
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/error_private.c +0 -55
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/error_private.h +0 -80
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/fse.h +0 -688
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/fse_decompress.c +0 -286
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/huf.h +0 -340
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/mem.h +0 -453
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/pool.c +0 -344
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/pool.h +0 -84
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/threading.c +0 -121
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/threading.h +0 -155
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/xxhash.c +0 -864
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/xxhash.h +0 -285
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_common.c +0 -83
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_errors.h +0 -94
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_internal.h +0 -447
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/fse_compress.c +0 -698
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/hist.c +0 -183
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/hist.h +0 -75
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/huf_compress.c +0 -798
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress.c +0 -4278
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_internal.h +0 -1125
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_literals.c +0 -158
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_literals.h +0 -29
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_sequences.c +0 -419
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_sequences.h +0 -54
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_superblock.c +0 -845
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_superblock.h +0 -32
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_cwksp.h +0 -525
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_double_fast.c +0 -521
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_double_fast.h +0 -38
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_fast.c +0 -496
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_fast.h +0 -37
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_lazy.c +0 -1138
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_lazy.h +0 -67
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_ldm.c +0 -619
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_ldm.h +0 -110
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_opt.c +0 -1200
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_opt.h +0 -56
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstdmt_compress.c +0 -2143
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstdmt_compress.h +0 -192
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/huf_decompress.c +0 -1248
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_ddict.c +0 -244
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_ddict.h +0 -44
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress.c +0 -1885
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_block.c +0 -1432
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_block.h +0 -59
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_internal.h +0 -189
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff.h +0 -214
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_common.c +0 -26
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_compress.c +0 -147
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_decompress.c +0 -75
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/cover.c +0 -1236
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/cover.h +0 -157
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/divsufsort.c +0 -1913
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/divsufsort.h +0 -67
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/fastcover.c +0 -757
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/zdict.c +0 -1135
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/zdict.h +0 -305
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_legacy.h +0 -415
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v01.c +0 -2158
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v01.h +0 -94
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v02.c +0 -3518
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v02.h +0 -93
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v03.c +0 -3160
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v03.h +0 -93
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v04.c +0 -3647
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v04.h +0 -142
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v05.c +0 -4050
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v05.h +0 -162
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v06.c +0 -4154
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v06.h +0 -172
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v07.c +0 -4541
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v07.h +0 -187
- borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/zstd.h +0 -2090
- borgbackup-1.4.0b1/src/borg/algorithms/zstd-libselect.h +0 -5
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/.coveragerc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/.pre-commit-config.yaml +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/.readthedocs.yaml +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/AUTHORS +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/LICENSE +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/MANIFEST.in +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/README.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/README_WINDOWS.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/SECURITY.md +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/3rd_party/README +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/3rd_party/lz4/LICENSE +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/3rd_party/zstd/LICENSE +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/Makefile +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/Makefile +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/favicon.ico +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/logo.pdf +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/logo.png +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/logo.svg +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/logo_font.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_templates/globaltoc.html +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_templates/logo-text.html +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/authors.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/book.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/conf.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/automated-local.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/central-backup-server.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/hosting-repositories.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/image-backup.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/pull-backup.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/faq.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/index.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/compaction.png +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/compaction.vsd +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/data-structures.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/encryption.png +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/encryption.vsd +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/frontends.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/object-graph.png +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/object-graph.vsd +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/security.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/structure.png +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/structure.vsd +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/introduction.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-change-passphrase.1 +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man_intro.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/README +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/Vagrantfile +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/advanced.json +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/advanced.tcl +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/basic.json +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/basic.tcl +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/install.json +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/install.tcl +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/sample-wallpapers.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/benchmark-crud.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/borg-data-flow.png +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/borg-data-flow.vsd +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/create_chunker-params.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/internals-picture.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/logging.conf +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/prune-example.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/quickstart.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/quickstart_example.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/support.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/benchmark.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/benchmark_crud.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/borgfs.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/borgfs.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/break-lock.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/change-passphrase.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/check.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/common-options.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/compact.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/config.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/debug.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/delete.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/diff.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/extract.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/date-time.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/environment.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/file-metadata.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/file-systems.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/logging.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/positional-arguments.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/repository-locations.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/repository-urls.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/resources.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/return-codes.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/units.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/help.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/help.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/info.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/init.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key_change-passphrase.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key_migrate-to-repokey.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/list.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/lock.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/notes.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/prune.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/recreate.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/rename.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/rename.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/serve.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/tar.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/umount.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/upgrade.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/usage_general.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/version.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/version.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/with-lock.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage.rst +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage_general.rst.inc +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/requirements.d/development.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/requirements.d/docs.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/borg.exe.spec +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/errorlist.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/fuzz-cache-sync/HOWTO +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/fuzz-cache-sync/main.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/fuzz-cache-sync/testcase_dir/test_simple +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/glibc_check.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/hash_sizes.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/msys2-build +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/msys2-install-deps +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/sdist-sign +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/shell_completions/bash/borg +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/shell_completions/fish/borg.fish +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/shell_completions/zsh/_borg +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/sign-binaries +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/upload-pypi +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/setup.cfg +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/__init__.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/__main__.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/_chunker.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/_endian.h +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/_hashindex.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/_item.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/__init__.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/crc32_clmul.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/crc32_dispatch.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/crc32_slice_by_8.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/cache_sync.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/sysdep.h +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/unpack.h +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/unpack_define.h +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/unpack_template.h +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/chunker.pyx +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/constants.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/__init__.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/_crypto_helpers.c +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/_crypto_helpers.h +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/file_integrity.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/keymanager.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/low_level.pyx +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/nonces.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/fuse.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/fuse_impl.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/hashindex.pyx +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/checks.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/datastruct.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/errors.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/manifest.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/misc.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/parseformat.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/progress.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/time.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/yes.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/item.pyx +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/locking.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/logger.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/lrucache.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/nanorst.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/paperkey.html +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/patterns.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/__init__.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/base.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/posix.pyx +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/syncfilerange.pyx +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/windows.pyx +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/xattr.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platformflags.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/remote.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/selftest.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/shellpattern.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/__init__.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/archive.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/attic.tar.gz +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/benchmark.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/cache.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/checksums.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/chunker.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/chunker_pytest.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/chunker_slow.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/compress.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/conftest.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/crypto.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/efficient_collection_queue.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/file_integrity.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/hashindex.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/hashindex_stress.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/helpers.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/item.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/key.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/locking.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/logger.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/lrucache.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/nanorst.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/nonces.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/patterns.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/remote.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/repository.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/shellpattern.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/upgrader.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/version.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/xattr.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/upgrader.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/version.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/xattr.py +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/dependency_links.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/entry_points.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/top_level.txt +0 -0
- {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/tox.ini +0 -0
@@ -29,49 +29,63 @@ places. Borg now considers archives without TAM as garbage or an attack.
|
|
29
29
|
|
30
30
|
We are not aware of others having discovered, disclosed or exploited this vulnerability.
|
31
31
|
|
32
|
-
Below, if we speak of borg 1.2.
|
33
|
-
borg version that has the relevant
|
32
|
+
Below, if we speak of borg 1.2.8, we mean a borg version >= 1.2.8 **or** a
|
33
|
+
borg version that has the relevant patches for this vulnerability applied
|
34
34
|
(could be also an older version in that case).
|
35
35
|
|
36
36
|
Steps you must take to upgrade a repository (this applies to all kinds of repos
|
37
37
|
no matter what encryption mode they use, including "none"):
|
38
38
|
|
39
|
-
1. Upgrade all clients using this repository to borg 1.2.
|
39
|
+
1. Upgrade all clients using this repository to borg 1.2.8.
|
40
40
|
Note: it is not required to upgrade a server, except if the server-side borg
|
41
41
|
is also used as a client (and not just for "borg serve").
|
42
42
|
|
43
|
-
Do **not** run ``borg check`` with borg 1.2.
|
43
|
+
Do **not** run ``borg check`` with borg > 1.2.4 before completing the upgrade steps:
|
44
44
|
|
45
45
|
- ``borg check`` would complain about archives without a valid archive TAM.
|
46
46
|
- ``borg check --repair`` would remove such archives!
|
47
|
-
2.
|
47
|
+
2. Do this step on every client using this repo: ``borg upgrade --show-rc --check-tam <repo>``
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
``borg upgrade --tam --force <repository>`` *on every client*.
|
49
|
+
This will check the manifest TAM authentication setup in the repo and on this client.
|
50
|
+
The command will exit with rc=0 if all is OK, otherwise with rc=1.
|
52
51
|
|
53
|
-
|
52
|
+
a) If you get "Manifest authentication setup OK for this client and this repository."
|
53
|
+
and rc=0, continue with 3.
|
54
|
+
b) If you get some warnings and rc=1, run:
|
55
|
+
``borg upgrade --tam --force <repository>``
|
54
56
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
3. Run: ``borg upgrade --show-rc --check-archives-tam <repo>``
|
58
|
+
|
59
|
+
This will create a report about the TAM status for all archives.
|
60
|
+
In the last line(s) of the report, it will also report the overall status.
|
61
|
+
The command will exit with rc=0 if all archives are TAM authenticated or with rc=1
|
62
|
+
if there are some archives with TAM issues.
|
63
|
+
|
64
|
+
If there are no issues and all archives are TAM authenticated, continue with 5.
|
65
|
+
|
66
|
+
Archive TAM issues are expected for:
|
67
|
+
|
68
|
+
- archives created by borg <1.0.9.
|
69
|
+
- archives resulting from a borg rename or borg recreate operation (see #7791)
|
70
|
+
|
71
|
+
But, important, archive TAM issues could also come from archives created by an attacker.
|
72
|
+
You should verify that archives with TAM issues are authentic and not malicious
|
61
73
|
(== have good content, have correct timestamp, can be extracted successfully).
|
62
74
|
In case you find crappy/malicious archives, you must delete them before proceeding.
|
75
|
+
|
63
76
|
In low-risk, trusted environments, you may decide on your own risk to skip step 3
|
64
77
|
and just trust in everything being OK.
|
65
78
|
|
66
|
-
4. If there are no
|
67
|
-
|
79
|
+
4. If there are no archives with TAM issues left at this point, you can skip this step.
|
80
|
+
|
81
|
+
Run ``borg upgrade --archives-tam <repo>``.
|
82
|
+
|
68
83
|
This will unconditionally add a correct archive TAM to all archives not having one.
|
69
84
|
``borg check`` would consider TAM-less or invalid-TAM archives as garbage or a potential attack.
|
70
|
-
To see that all archives now are "tam:verified" run: ``borg list --consider-checkpoints --format='{name} {time} tam:{tam}{NL}' <repo>``
|
71
85
|
|
72
|
-
|
73
|
-
|
74
|
-
|
86
|
+
To see that all archives are OK now, you can optionally repeat the command from step 3.
|
87
|
+
|
88
|
+
5. Done. Manifest and archives are TAM authenticated now.
|
75
89
|
|
76
90
|
Vulnerability time line:
|
77
91
|
|
@@ -305,10 +319,13 @@ Compatibility notes:
|
|
305
319
|
By default, borg 1.4 will behave quite similar to borg 1.2 (it was forked off
|
306
320
|
from 1.2-maint branch at 1.2.7).
|
307
321
|
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
322
|
+
- the slashdot hack: be careful not to accidentally give paths containing /./
|
323
|
+
to "borg create" if you do not want to trigger this feature (which strips the
|
324
|
+
left part of the path from archived items).
|
325
|
+
- BORG_EXIT_CODES=modern is a feature that borg script, wrapper and GUI authors
|
326
|
+
may want to use to get more specific error and warning return codes from borg.
|
327
|
+
In that case, of course they will need to make sure to correctly deal with these
|
328
|
+
new codes, see the internals/frontends docs.
|
312
329
|
|
313
330
|
borg 1.1.x to 1.2.x
|
314
331
|
-------------------
|
@@ -394,14 +411,83 @@ Compatibility notes:
|
|
394
411
|
Change Log
|
395
412
|
==========
|
396
413
|
|
397
|
-
|
398
|
-
|
414
|
+
|
415
|
+
Version 1.4.0rc1 (2024-05-26)
|
416
|
+
-----------------------------
|
399
417
|
|
400
418
|
For upgrade and compatibility hints, please also read the section "Upgrade Notes"
|
401
419
|
above.
|
402
420
|
|
403
421
|
Fixes:
|
404
422
|
|
423
|
+
- setup.py: fix import error reporting for cythonize import, #8208
|
424
|
+
- setup.py: detect noexec build fs issue, #8208
|
425
|
+
|
426
|
+
Other changes:
|
427
|
+
|
428
|
+
- changed insufficiently reserved length for log message, #8152
|
429
|
+
- use Python 3.11.9, Cython 3.0.10 and PyInstaller 6.7.0 for binary builds
|
430
|
+
- docs:
|
431
|
+
|
432
|
+
- use python 3.9 in cygwin install docs, fixes #8196
|
433
|
+
- recreate: remove experimental status
|
434
|
+
- github CI: fix PKG_CONFIG_PATH for openssl 3.0
|
435
|
+
- vagrant:
|
436
|
+
|
437
|
+
- add a ubuntu noble (24.04) VM
|
438
|
+
- drop buster VM, fixes #8171
|
439
|
+
|
440
|
+
|
441
|
+
Version 1.4.0b2 (2024-03-31)
|
442
|
+
----------------------------
|
443
|
+
|
444
|
+
Fixes:
|
445
|
+
|
446
|
+
- check: fix return code for index entry value discrepancies
|
447
|
+
- benchmark: inherit options --rsh --remote-path, #8099
|
448
|
+
- sdist: dynamically compute readme (long_description)
|
449
|
+
- create: deal with EBUSY, #8123
|
450
|
+
- No need to use OpenSSL 3.0 on OpenBSD, use LibreSSL.
|
451
|
+
- fix Ctrl-C / SIGINT behaviour for pyinstaller-made binaries, #8155
|
452
|
+
|
453
|
+
New features:
|
454
|
+
|
455
|
+
- create: add the slashdot hack, update docs, #4685
|
456
|
+
- upgrade --check-tam: check manifest TAM auth, exit with rc=1 if there are issues.
|
457
|
+
- upgrade --check-archives-tam: check archives TAM auth, exit with rc=1 if there are issues.
|
458
|
+
|
459
|
+
Other changes:
|
460
|
+
|
461
|
+
- improve acl_get / acl_set error handling, improved/added tests, #8125
|
462
|
+
- remove bundled lz4/zstd/xxhash code (require the respective libs/headers),
|
463
|
+
simplify setup.py, remove support for all BORG_USE_BUNDLED_*=YES, #8094
|
464
|
+
- require Cython 3.0.3 at least (fixes py312 memory leak), #8133
|
465
|
+
- allow msgpack 1.0.8, #8133
|
466
|
+
- init: better borg key export instructions
|
467
|
+
- init: remove compatibility warning for borg <=1.0.8
|
468
|
+
The warning refers to a compatibility issue not relevant any
|
469
|
+
more since borg 1.0.9 (released 2016-12).
|
470
|
+
- locate libacl via pkgconfig
|
471
|
+
- scripts/make.py: move clean, build_man, build_usage to there,
|
472
|
+
so we do not need to invoke setup.py directly, update docs
|
473
|
+
- docs:
|
474
|
+
|
475
|
+
- how to run the testsuite using the dist package
|
476
|
+
- add non-root deployment strategy (systemd / capabilities)
|
477
|
+
- simplify TAM-related upgrade docs using the new commands
|
478
|
+
- vagrant:
|
479
|
+
|
480
|
+
- use python 3.11.8
|
481
|
+
- use pyinstaller 6.5.0
|
482
|
+
- add xxhash for macOS, add libxxhash-dev for debianoid systems
|
483
|
+
- use openindiana/hipster box
|
484
|
+
|
485
|
+
|
486
|
+
Version 1.4.0b1 (2024-01-21)
|
487
|
+
----------------------------
|
488
|
+
|
489
|
+
Fixes:
|
490
|
+
|
405
491
|
- fix CommandError args, #8029
|
406
492
|
|
407
493
|
New features:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: borgbackup
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.0rc1
|
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>
|
@@ -29,10 +29,9 @@ Classifier: Programming Language :: Python :: 3.12
|
|
29
29
|
Classifier: Topic :: Security :: Cryptography
|
30
30
|
Classifier: Topic :: System :: Archiving :: Backup
|
31
31
|
Requires-Python: >=3.9
|
32
|
-
Description-Content-Type: text/x-rst
|
33
32
|
License-File: LICENSE
|
34
33
|
License-File: AUTHORS
|
35
|
-
Requires-Dist: msgpack<=1.0
|
34
|
+
Requires-Dist: msgpack<=1.1.0,>=1.0.3
|
36
35
|
Requires-Dist: packaging
|
37
36
|
Provides-Extra: llfuse
|
38
37
|
Requires-Dist: llfuse>=1.3.8; extra == "llfuse"
|
@@ -40,9 +39,6 @@ Provides-Extra: pyfuse3
|
|
40
39
|
Requires-Dist: pyfuse3>=3.1.1; extra == "pyfuse3"
|
41
40
|
Provides-Extra: nofuse
|
42
41
|
|
43
|
-
|screencast_basic|
|
44
|
-
|
45
|
-
More screencasts: `installation`_, `advanced usage`_
|
46
42
|
|
47
43
|
What is BorgBackup?
|
48
44
|
-------------------
|
@@ -211,33 +207,4 @@ THIS IS SOFTWARE IN DEVELOPMENT, DECIDE YOURSELF WHETHER IT FITS YOUR NEEDS.
|
|
211
207
|
Security issues should be reported to the `Security contact`_ (or
|
212
208
|
see ``docs/support.rst`` in the source distribution).
|
213
209
|
|
214
|
-
.. start-badges
|
215
|
-
|
216
|
-
|doc| |build| |coverage| |bestpractices|
|
217
|
-
|
218
|
-
.. |doc| image:: https://readthedocs.org/projects/borgbackup/badge/?version=stable
|
219
|
-
:alt: Documentation
|
220
|
-
:target: https://borgbackup.readthedocs.org/en/stable/
|
221
|
-
|
222
|
-
.. |build| image:: https://github.com/borgbackup/borg/workflows/CI/badge.svg?branch=master
|
223
|
-
:alt: Build Status (master)
|
224
|
-
:target: https://github.com/borgbackup/borg/actions
|
225
|
-
|
226
|
-
.. |coverage| image:: https://codecov.io/github/borgbackup/borg/coverage.svg?branch=master
|
227
|
-
:alt: Test Coverage
|
228
|
-
:target: https://codecov.io/github/borgbackup/borg?branch=master
|
229
|
-
|
230
|
-
.. |screencast_basic| image:: https://asciinema.org/a/133292.png
|
231
|
-
:alt: BorgBackup Basic Usage
|
232
|
-
:target: https://asciinema.org/a/133292?autoplay=1&speed=1
|
233
|
-
:width: 100%
|
234
|
-
|
235
|
-
.. _installation: https://asciinema.org/a/133291?autoplay=1&speed=1
|
236
|
-
|
237
|
-
.. _advanced usage: https://asciinema.org/a/133293?autoplay=1&speed=1
|
238
|
-
|
239
|
-
.. |bestpractices| image:: https://bestpractices.coreinfrastructure.org/projects/271/badge
|
240
|
-
:alt: Best Practices Score
|
241
|
-
:target: https://bestpractices.coreinfrastructure.org/projects/271
|
242
210
|
|
243
|
-
.. end-badges
|
@@ -52,8 +52,7 @@ h1 {
|
|
52
52
|
}
|
53
53
|
|
54
54
|
.container.experimental,
|
55
|
-
#debugging-facilities
|
56
|
-
#borg-recreate {
|
55
|
+
#debugging-facilities {
|
57
56
|
/* don't change text dimensions */
|
58
57
|
margin: 0 -30px; /* padding below + border width */
|
59
58
|
padding: 0 10px; /* 10 px visual margin between edge of text and the border */
|
@@ -29,49 +29,63 @@ places. Borg now considers archives without TAM as garbage or an attack.
|
|
29
29
|
|
30
30
|
We are not aware of others having discovered, disclosed or exploited this vulnerability.
|
31
31
|
|
32
|
-
Below, if we speak of borg 1.2.
|
33
|
-
borg version that has the relevant
|
32
|
+
Below, if we speak of borg 1.2.8, we mean a borg version >= 1.2.8 **or** a
|
33
|
+
borg version that has the relevant patches for this vulnerability applied
|
34
34
|
(could be also an older version in that case).
|
35
35
|
|
36
36
|
Steps you must take to upgrade a repository (this applies to all kinds of repos
|
37
37
|
no matter what encryption mode they use, including "none"):
|
38
38
|
|
39
|
-
1. Upgrade all clients using this repository to borg 1.2.
|
39
|
+
1. Upgrade all clients using this repository to borg 1.2.8.
|
40
40
|
Note: it is not required to upgrade a server, except if the server-side borg
|
41
41
|
is also used as a client (and not just for "borg serve").
|
42
42
|
|
43
|
-
Do **not** run ``borg check`` with borg 1.2.
|
43
|
+
Do **not** run ``borg check`` with borg > 1.2.4 before completing the upgrade steps:
|
44
44
|
|
45
45
|
- ``borg check`` would complain about archives without a valid archive TAM.
|
46
46
|
- ``borg check --repair`` would remove such archives!
|
47
|
-
2.
|
47
|
+
2. Do this step on every client using this repo: ``borg upgrade --show-rc --check-tam <repo>``
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
``borg upgrade --tam --force <repository>`` *on every client*.
|
49
|
+
This will check the manifest TAM authentication setup in the repo and on this client.
|
50
|
+
The command will exit with rc=0 if all is OK, otherwise with rc=1.
|
52
51
|
|
53
|
-
|
52
|
+
a) If you get "Manifest authentication setup OK for this client and this repository."
|
53
|
+
and rc=0, continue with 3.
|
54
|
+
b) If you get some warnings and rc=1, run:
|
55
|
+
``borg upgrade --tam --force <repository>``
|
54
56
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
3. Run: ``borg upgrade --show-rc --check-archives-tam <repo>``
|
58
|
+
|
59
|
+
This will create a report about the TAM status for all archives.
|
60
|
+
In the last line(s) of the report, it will also report the overall status.
|
61
|
+
The command will exit with rc=0 if all archives are TAM authenticated or with rc=1
|
62
|
+
if there are some archives with TAM issues.
|
63
|
+
|
64
|
+
If there are no issues and all archives are TAM authenticated, continue with 5.
|
65
|
+
|
66
|
+
Archive TAM issues are expected for:
|
67
|
+
|
68
|
+
- archives created by borg <1.0.9.
|
69
|
+
- archives resulting from a borg rename or borg recreate operation (see #7791)
|
70
|
+
|
71
|
+
But, important, archive TAM issues could also come from archives created by an attacker.
|
72
|
+
You should verify that archives with TAM issues are authentic and not malicious
|
61
73
|
(== have good content, have correct timestamp, can be extracted successfully).
|
62
74
|
In case you find crappy/malicious archives, you must delete them before proceeding.
|
75
|
+
|
63
76
|
In low-risk, trusted environments, you may decide on your own risk to skip step 3
|
64
77
|
and just trust in everything being OK.
|
65
78
|
|
66
|
-
4. If there are no
|
67
|
-
|
79
|
+
4. If there are no archives with TAM issues left at this point, you can skip this step.
|
80
|
+
|
81
|
+
Run ``borg upgrade --archives-tam <repo>``.
|
82
|
+
|
68
83
|
This will unconditionally add a correct archive TAM to all archives not having one.
|
69
84
|
``borg check`` would consider TAM-less or invalid-TAM archives as garbage or a potential attack.
|
70
|
-
To see that all archives now are "tam:verified" run: ``borg list --consider-checkpoints --format='{name} {time} tam:{tam}{NL}' <repo>``
|
71
85
|
|
72
|
-
|
73
|
-
|
74
|
-
|
86
|
+
To see that all archives are OK now, you can optionally repeat the command from step 3.
|
87
|
+
|
88
|
+
5. Done. Manifest and archives are TAM authenticated now.
|
75
89
|
|
76
90
|
Vulnerability time line:
|
77
91
|
|
@@ -305,10 +319,13 @@ Compatibility notes:
|
|
305
319
|
By default, borg 1.4 will behave quite similar to borg 1.2 (it was forked off
|
306
320
|
from 1.2-maint branch at 1.2.7).
|
307
321
|
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
322
|
+
- the slashdot hack: be careful not to accidentally give paths containing /./
|
323
|
+
to "borg create" if you do not want to trigger this feature (which strips the
|
324
|
+
left part of the path from archived items).
|
325
|
+
- BORG_EXIT_CODES=modern is a feature that borg script, wrapper and GUI authors
|
326
|
+
may want to use to get more specific error and warning return codes from borg.
|
327
|
+
In that case, of course they will need to make sure to correctly deal with these
|
328
|
+
new codes, see the internals/frontends docs.
|
312
329
|
|
313
330
|
borg 1.1.x to 1.2.x
|
314
331
|
-------------------
|
@@ -394,14 +411,83 @@ Compatibility notes:
|
|
394
411
|
Change Log
|
395
412
|
==========
|
396
413
|
|
397
|
-
|
398
|
-
|
414
|
+
|
415
|
+
Version 1.4.0rc1 (2024-05-26)
|
416
|
+
-----------------------------
|
399
417
|
|
400
418
|
For upgrade and compatibility hints, please also read the section "Upgrade Notes"
|
401
419
|
above.
|
402
420
|
|
403
421
|
Fixes:
|
404
422
|
|
423
|
+
- setup.py: fix import error reporting for cythonize import, #8208
|
424
|
+
- setup.py: detect noexec build fs issue, #8208
|
425
|
+
|
426
|
+
Other changes:
|
427
|
+
|
428
|
+
- changed insufficiently reserved length for log message, #8152
|
429
|
+
- use Python 3.11.9, Cython 3.0.10 and PyInstaller 6.7.0 for binary builds
|
430
|
+
- docs:
|
431
|
+
|
432
|
+
- use python 3.9 in cygwin install docs, fixes #8196
|
433
|
+
- recreate: remove experimental status
|
434
|
+
- github CI: fix PKG_CONFIG_PATH for openssl 3.0
|
435
|
+
- vagrant:
|
436
|
+
|
437
|
+
- add a ubuntu noble (24.04) VM
|
438
|
+
- drop buster VM, fixes #8171
|
439
|
+
|
440
|
+
|
441
|
+
Version 1.4.0b2 (2024-03-31)
|
442
|
+
----------------------------
|
443
|
+
|
444
|
+
Fixes:
|
445
|
+
|
446
|
+
- check: fix return code for index entry value discrepancies
|
447
|
+
- benchmark: inherit options --rsh --remote-path, #8099
|
448
|
+
- sdist: dynamically compute readme (long_description)
|
449
|
+
- create: deal with EBUSY, #8123
|
450
|
+
- No need to use OpenSSL 3.0 on OpenBSD, use LibreSSL.
|
451
|
+
- fix Ctrl-C / SIGINT behaviour for pyinstaller-made binaries, #8155
|
452
|
+
|
453
|
+
New features:
|
454
|
+
|
455
|
+
- create: add the slashdot hack, update docs, #4685
|
456
|
+
- upgrade --check-tam: check manifest TAM auth, exit with rc=1 if there are issues.
|
457
|
+
- upgrade --check-archives-tam: check archives TAM auth, exit with rc=1 if there are issues.
|
458
|
+
|
459
|
+
Other changes:
|
460
|
+
|
461
|
+
- improve acl_get / acl_set error handling, improved/added tests, #8125
|
462
|
+
- remove bundled lz4/zstd/xxhash code (require the respective libs/headers),
|
463
|
+
simplify setup.py, remove support for all BORG_USE_BUNDLED_*=YES, #8094
|
464
|
+
- require Cython 3.0.3 at least (fixes py312 memory leak), #8133
|
465
|
+
- allow msgpack 1.0.8, #8133
|
466
|
+
- init: better borg key export instructions
|
467
|
+
- init: remove compatibility warning for borg <=1.0.8
|
468
|
+
The warning refers to a compatibility issue not relevant any
|
469
|
+
more since borg 1.0.9 (released 2016-12).
|
470
|
+
- locate libacl via pkgconfig
|
471
|
+
- scripts/make.py: move clean, build_man, build_usage to there,
|
472
|
+
so we do not need to invoke setup.py directly, update docs
|
473
|
+
- docs:
|
474
|
+
|
475
|
+
- how to run the testsuite using the dist package
|
476
|
+
- add non-root deployment strategy (systemd / capabilities)
|
477
|
+
- simplify TAM-related upgrade docs using the new commands
|
478
|
+
- vagrant:
|
479
|
+
|
480
|
+
- use python 3.11.8
|
481
|
+
- use pyinstaller 6.5.0
|
482
|
+
- add xxhash for macOS, add libxxhash-dev for debianoid systems
|
483
|
+
- use openindiana/hipster box
|
484
|
+
|
485
|
+
|
486
|
+
Version 1.4.0b1 (2024-01-21)
|
487
|
+
----------------------------
|
488
|
+
|
489
|
+
Fixes:
|
490
|
+
|
405
491
|
- fix CommandError args, #8029
|
406
492
|
|
407
493
|
New features:
|
@@ -0,0 +1,66 @@
|
|
1
|
+
.. include:: ../global.rst.inc
|
2
|
+
.. highlight:: none
|
3
|
+
.. _non_root_user:
|
4
|
+
|
5
|
+
================================
|
6
|
+
Backing up using a non-root user
|
7
|
+
================================
|
8
|
+
|
9
|
+
This section describes how to run borg as a non-root user and still be able to
|
10
|
+
backup every file on the system.
|
11
|
+
|
12
|
+
Normally borg is run as the root user to bypass all filesystem permissions and
|
13
|
+
be able to read all files. But in theory this also allows borg to modify or
|
14
|
+
delete files on your system, in case of a bug for example.
|
15
|
+
|
16
|
+
To eliminate this possibility, we can run borg as a non-root user and give it read-only
|
17
|
+
permissions to all files on the system.
|
18
|
+
|
19
|
+
|
20
|
+
Using Linux capabilities inside a systemd service
|
21
|
+
=================================================
|
22
|
+
|
23
|
+
One way to do so, is to use linux `capabilities
|
24
|
+
<https://man7.org/linux/man-pages/man7/capabilities.7.html>`_ within a systemd
|
25
|
+
service.
|
26
|
+
|
27
|
+
Linux capabilities allow us to give parts of the privileges the root user has to
|
28
|
+
a non-root user. This works on a per-thread level and does not give the permission
|
29
|
+
to the non-root user as a whole.
|
30
|
+
|
31
|
+
For this we need to run our backup script from a systemd service and use the `AmbientCapabilities
|
32
|
+
<https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#AmbientCapabilities=>`_
|
33
|
+
option added in systemd 229.
|
34
|
+
|
35
|
+
A very basic unit file would look like this:
|
36
|
+
|
37
|
+
::
|
38
|
+
|
39
|
+
[Unit]
|
40
|
+
Description=Borg Backup
|
41
|
+
|
42
|
+
[Service]
|
43
|
+
Type=oneshot
|
44
|
+
User=borg
|
45
|
+
ExecStart=/usr/local/sbin/backup.sh
|
46
|
+
|
47
|
+
AmbientCapabilities=CAP_DAC_READ_SEARCH
|
48
|
+
|
49
|
+
The ``CAP_DAC_READ_SEARCH`` capability gives borg read-only access to all files and directories on the system.
|
50
|
+
|
51
|
+
This service can then be started manually using ``systemctl start``, a systemd timer or other methods.
|
52
|
+
|
53
|
+
Restore considerations
|
54
|
+
======================
|
55
|
+
|
56
|
+
When restoring files, the root user should be used. When using the non-root user, borg extract will
|
57
|
+
change all files to be owned by the non-root user. Using borg mount will not allow the non-root user
|
58
|
+
to access files that it would not have access to on the system itself.
|
59
|
+
|
60
|
+
Other than that, the same restore process, that would be used when running the backup as root, can be used.
|
61
|
+
|
62
|
+
.. warning::
|
63
|
+
|
64
|
+
When using a local repo and running borg commands as root, make sure to only use commands that do not
|
65
|
+
modify the repo itself, like extract or mount. Modifying the repo using the root user will break
|
66
|
+
the repo for the non-root user, since some files inside the repo will now be owned by root.
|
@@ -199,6 +199,37 @@ Important notes:
|
|
199
199
|
- When using ``--`` to give options to py.test, you MUST also give ``borg.testsuite[.module]``.
|
200
200
|
|
201
201
|
|
202
|
+
Running the tests (using the pypi package)
|
203
|
+
------------------------------------------
|
204
|
+
|
205
|
+
Since borg 1.4, it is also possible to run the tests without a development
|
206
|
+
environment, using the borgbackup dist package (downloaded from pypi.org or
|
207
|
+
github releases page)::
|
208
|
+
|
209
|
+
# optional: create and use a virtual env:
|
210
|
+
python3 -m venv env
|
211
|
+
. env/bin/activate
|
212
|
+
|
213
|
+
# install packages
|
214
|
+
pip install borgbackup
|
215
|
+
pip install pytest pytest-benchmark
|
216
|
+
|
217
|
+
# method A: use a pytest.ini
|
218
|
+
|
219
|
+
cat >pytest.ini <<<EOF
|
220
|
+
[pytest]
|
221
|
+
python_files = testsuite/*.py
|
222
|
+
markers = allow_cache_wipe
|
223
|
+
addopts = -rs --benchmark-skip
|
224
|
+
EOF
|
225
|
+
|
226
|
+
pytest --pyargs borg.testsuite
|
227
|
+
|
228
|
+
# method B: give the options via the cmdline (each time you invoke the tests):
|
229
|
+
|
230
|
+
pytest -rs --benchmark-skip -o 'python_files=testsuite/*.py' -o 'markers=allow_cache_wipe' --pyargs borg.testsuite
|
231
|
+
|
232
|
+
|
202
233
|
Adding a compression algorithm
|
203
234
|
------------------------------
|
204
235
|
|
@@ -220,8 +251,8 @@ for easier use by packagers downstream.
|
|
220
251
|
When a command is added, a command line flag changed, added or removed,
|
221
252
|
the usage docs need to be rebuilt as well::
|
222
253
|
|
223
|
-
python
|
224
|
-
python
|
254
|
+
python scripts/make.py build_usage
|
255
|
+
python scripts/make.py build_man
|
225
256
|
|
226
257
|
However, we prefer to do this as part of our :ref:`releasing`
|
227
258
|
preparations, so it is generally not necessary to update these when
|
@@ -311,7 +342,11 @@ Checklist:
|
|
311
342
|
- Check version number of upcoming release in ``CHANGES.rst``.
|
312
343
|
- Render ``CHANGES.rst`` via ``make html`` and check for markup errors.
|
313
344
|
- Verify that ``MANIFEST.in``, ``pyproject.toml`` and ``setup.py`` are complete.
|
314
|
-
-
|
345
|
+
- Run these commands and commit::
|
346
|
+
|
347
|
+
python scripts/make.py build_usage
|
348
|
+
python scripts/make.py build_man
|
349
|
+
|
315
350
|
- Tag the release::
|
316
351
|
|
317
352
|
git tag -s -m "tagged/signed release X.Y.Z" X.Y.Z
|
@@ -15,7 +15,6 @@
|
|
15
15
|
.. _libattr: https://savannah.nongnu.org/projects/attr/
|
16
16
|
.. _liblz4: https://github.com/Cyan4973/lz4
|
17
17
|
.. _libzstd: https://github.com/facebook/zstd
|
18
|
-
.. _libb2: https://github.com/BLAKE2/libb2
|
19
18
|
.. _OpenSSL: https://www.openssl.org/
|
20
19
|
.. _`Python 3`: https://www.python.org/
|
21
20
|
.. _Buzhash: https://en.wikipedia.org/wiki/Buzhash
|
@@ -180,7 +180,7 @@ following dependencies first:
|
|
180
180
|
|
181
181
|
- Either pyfuse3_ (preferably, newer and maintained) or llfuse_ (older,
|
182
182
|
unmaintained now). See also the BORG_FUSE_IMPL env variable.
|
183
|
-
- See
|
183
|
+
- See pyproject.toml about the version requirements.
|
184
184
|
|
185
185
|
If you have troubles finding the right package names, have a look at the
|
186
186
|
distribution specific sections below or the Vagrantfile in the git repository,
|
@@ -316,8 +316,8 @@ Cygwin
|
|
316
316
|
|
317
317
|
Use the Cygwin installer to install the dependencies::
|
318
318
|
|
319
|
-
|
320
|
-
|
319
|
+
python39 python39-devel python39-pkgconfig
|
320
|
+
python39-setuptools python39-pip python39-wheel python39-virtualenv
|
321
321
|
libssl-devel libxxhash-devel liblz4-devel libzstd-devel
|
322
322
|
binutils gcc-g++ git make openssh
|
323
323
|
|
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
27
27
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
28
28
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
29
29
|
..
|
30
|
-
.TH "BORG-BENCHMARK-CRUD" 1 "2024-
|
30
|
+
.TH "BORG-BENCHMARK-CRUD" 1 "2024-05-26" "" "borg backup tool"
|
31
31
|
.SH NAME
|
32
32
|
borg-benchmark-crud \- Benchmark Create, Read, Update, Delete for archives.
|
33
33
|
.SH SYNOPSIS
|
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
27
27
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
28
28
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
29
29
|
..
|
30
|
-
.TH "BORG-BENCHMARK" 1 "2024-
|
30
|
+
.TH "BORG-BENCHMARK" 1 "2024-05-26" "" "borg backup tool"
|
31
31
|
.SH NAME
|
32
32
|
borg-benchmark \- benchmark command
|
33
33
|
.SH SYNOPSIS
|
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
27
27
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
28
28
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
29
29
|
..
|
30
|
-
.TH "BORG-BREAK-LOCK" 1 "2024-
|
30
|
+
.TH "BORG-BREAK-LOCK" 1 "2024-05-26" "" "borg backup tool"
|
31
31
|
.SH NAME
|
32
32
|
borg-break-lock \- Break the repository lock (e.g. in case it was left by a dead borg.
|
33
33
|
.SH SYNOPSIS
|