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.
Files changed (419) hide show
  1. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/Brewfile +1 -1
  2. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/CHANGES.rst +113 -27
  3. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/PKG-INFO +2 -35
  4. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/borg_theme/css/borg.css +1 -2
  5. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/changes.rst +113 -27
  6. borgbackup-1.4.0rc1/docs/deployment/non-root-user.rst +66 -0
  7. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment.rst +1 -0
  8. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/development.rst +38 -3
  9. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/global.rst.inc +0 -1
  10. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/installation.rst +3 -3
  11. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-benchmark-crud.1 +1 -1
  12. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-benchmark.1 +1 -1
  13. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-break-lock.1 +1 -1
  14. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-check.1 +2 -2
  15. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-common.1 +1 -1
  16. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-compact.1 +2 -2
  17. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-compression.1 +1 -1
  18. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-config.1 +2 -2
  19. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-create.1 +24 -3
  20. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-delete.1 +2 -2
  21. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-diff.1 +2 -2
  22. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-export-tar.1 +2 -2
  23. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-extract.1 +2 -2
  24. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-import-tar.1 +2 -2
  25. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-info.1 +2 -2
  26. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-init.1 +2 -2
  27. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key-change-passphrase.1 +1 -1
  28. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key-export.1 +2 -2
  29. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key-import.1 +2 -2
  30. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key-migrate-to-repokey.1 +1 -1
  31. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-key.1 +1 -1
  32. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-list.1 +2 -2
  33. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-mount.1 +2 -2
  34. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-patterns.1 +1 -1
  35. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-placeholders.1 +1 -1
  36. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-prune.1 +2 -2
  37. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-recreate.1 +2 -2
  38. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-rename.1 +1 -1
  39. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-serve.1 +2 -2
  40. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-umount.1 +3 -4
  41. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-upgrade.1 +8 -2
  42. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-version.1 +1 -1
  43. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-with-lock.1 +1 -1
  44. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg.1 +1 -1
  45. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borgfs.1 +2 -2
  46. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/check.rst.inc +2 -2
  47. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/compact.rst.inc +2 -2
  48. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/config.rst.inc +2 -2
  49. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/create.rst +3 -0
  50. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/create.rst.inc +25 -5
  51. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/delete.rst.inc +2 -2
  52. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/diff.rst.inc +2 -2
  53. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/export-tar.rst.inc +2 -2
  54. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/extract.rst.inc +2 -2
  55. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/import-tar.rst.inc +2 -2
  56. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/info.rst.inc +2 -2
  57. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/init.rst.inc +2 -2
  58. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key_export.rst.inc +2 -2
  59. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key_import.rst.inc +2 -2
  60. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/list.rst.inc +2 -2
  61. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/mount.rst +2 -3
  62. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/mount.rst.inc +2 -2
  63. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/prune.rst.inc +2 -2
  64. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/recreate.rst.inc +2 -2
  65. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/serve.rst.inc +2 -2
  66. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/upgrade.rst.inc +30 -24
  67. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/pyproject.toml +4 -5
  68. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/requirements.d/development.lock.txt +1 -1
  69. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/fetch-binaries +0 -1
  70. borgbackup-1.4.0b1/setup_docs.py → borgbackup-1.4.0rc1/scripts/make.py +72 -42
  71. borgbackup-1.4.0rc1/setup.py +237 -0
  72. borgbackup-1.4.0rc1/src/borg/_version.py +1 -0
  73. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/checksums.c +68 -50
  74. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/checksums.pyx +1 -1
  75. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/archive.py +45 -16
  76. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/archiver.py +165 -91
  77. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/chunker.c +56 -31
  78. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/compress.c +52 -35
  79. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/compress.pyx +2 -2
  80. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/key.py +3 -3
  81. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/low_level.c +78 -61
  82. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/hashindex.c +68 -47
  83. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/__init__.py +12 -0
  84. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/fs.py +15 -0
  85. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/msgpack.py +2 -2
  86. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/process.py +18 -4
  87. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/item.c +73 -41
  88. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/darwin.c +1578 -917
  89. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/darwin.pyx +13 -7
  90. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/freebsd.c +2400 -912
  91. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/freebsd.pyx +50 -25
  92. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/linux.c +1721 -793
  93. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/linux.pyx +44 -29
  94. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/posix.c +45 -27
  95. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/syncfilerange.c +44 -26
  96. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/windows.c +45 -27
  97. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/repository.py +6 -6
  98. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/archiver.py +25 -0
  99. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/platform.py +75 -35
  100. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/PKG-INFO +2 -35
  101. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/SOURCES.txt +2 -91
  102. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/requires.txt +1 -1
  103. borgbackup-1.4.0b1/setup.py +0 -236
  104. borgbackup-1.4.0b1/setup_checksums.py +0 -42
  105. borgbackup-1.4.0b1/setup_compress.py +0 -135
  106. borgbackup-1.4.0b1/setup_crypto.py +0 -32
  107. borgbackup-1.4.0b1/src/borg/_version.py +0 -1
  108. borgbackup-1.4.0b1/src/borg/algorithms/lz4/lib/lz4.c +0 -2398
  109. borgbackup-1.4.0b1/src/borg/algorithms/lz4/lib/lz4.h +0 -764
  110. borgbackup-1.4.0b1/src/borg/algorithms/lz4-libselect.h +0 -5
  111. borgbackup-1.4.0b1/src/borg/algorithms/xxh64/xxhash.c +0 -43
  112. borgbackup-1.4.0b1/src/borg/algorithms/xxh64/xxhash.h +0 -5580
  113. borgbackup-1.4.0b1/src/borg/algorithms/xxhash-libselect.h +0 -5
  114. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/bitstream.h +0 -454
  115. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/compiler.h +0 -175
  116. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/cpu.h +0 -215
  117. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/debug.c +0 -24
  118. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/debug.h +0 -114
  119. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/entropy_common.c +0 -216
  120. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/error_private.c +0 -55
  121. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/error_private.h +0 -80
  122. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/fse.h +0 -688
  123. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/fse_decompress.c +0 -286
  124. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/huf.h +0 -340
  125. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/mem.h +0 -453
  126. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/pool.c +0 -344
  127. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/pool.h +0 -84
  128. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/threading.c +0 -121
  129. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/threading.h +0 -155
  130. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/xxhash.c +0 -864
  131. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/xxhash.h +0 -285
  132. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_common.c +0 -83
  133. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_errors.h +0 -94
  134. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_internal.h +0 -447
  135. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/fse_compress.c +0 -698
  136. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/hist.c +0 -183
  137. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/hist.h +0 -75
  138. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/huf_compress.c +0 -798
  139. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress.c +0 -4278
  140. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_internal.h +0 -1125
  141. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_literals.c +0 -158
  142. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_literals.h +0 -29
  143. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_sequences.c +0 -419
  144. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_sequences.h +0 -54
  145. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_superblock.c +0 -845
  146. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_superblock.h +0 -32
  147. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_cwksp.h +0 -525
  148. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_double_fast.c +0 -521
  149. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_double_fast.h +0 -38
  150. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_fast.c +0 -496
  151. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_fast.h +0 -37
  152. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_lazy.c +0 -1138
  153. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_lazy.h +0 -67
  154. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_ldm.c +0 -619
  155. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_ldm.h +0 -110
  156. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_opt.c +0 -1200
  157. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_opt.h +0 -56
  158. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstdmt_compress.c +0 -2143
  159. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstdmt_compress.h +0 -192
  160. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/huf_decompress.c +0 -1248
  161. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_ddict.c +0 -244
  162. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_ddict.h +0 -44
  163. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress.c +0 -1885
  164. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_block.c +0 -1432
  165. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_block.h +0 -59
  166. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_internal.h +0 -189
  167. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff.h +0 -214
  168. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_common.c +0 -26
  169. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_compress.c +0 -147
  170. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_decompress.c +0 -75
  171. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/cover.c +0 -1236
  172. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/cover.h +0 -157
  173. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/divsufsort.c +0 -1913
  174. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/divsufsort.h +0 -67
  175. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/fastcover.c +0 -757
  176. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/zdict.c +0 -1135
  177. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/zdict.h +0 -305
  178. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_legacy.h +0 -415
  179. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v01.c +0 -2158
  180. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v01.h +0 -94
  181. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v02.c +0 -3518
  182. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v02.h +0 -93
  183. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v03.c +0 -3160
  184. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v03.h +0 -93
  185. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v04.c +0 -3647
  186. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v04.h +0 -142
  187. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v05.c +0 -4050
  188. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v05.h +0 -162
  189. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v06.c +0 -4154
  190. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v06.h +0 -172
  191. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v07.c +0 -4541
  192. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v07.h +0 -187
  193. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/zstd.h +0 -2090
  194. borgbackup-1.4.0b1/src/borg/algorithms/zstd-libselect.h +0 -5
  195. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/.coveragerc +0 -0
  196. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/.pre-commit-config.yaml +0 -0
  197. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/.readthedocs.yaml +0 -0
  198. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/AUTHORS +0 -0
  199. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/LICENSE +0 -0
  200. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/MANIFEST.in +0 -0
  201. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/README.rst +0 -0
  202. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/README_WINDOWS.rst +0 -0
  203. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/SECURITY.md +0 -0
  204. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/3rd_party/README +0 -0
  205. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/3rd_party/lz4/LICENSE +0 -0
  206. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/3rd_party/zstd/LICENSE +0 -0
  207. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/Makefile +0 -0
  208. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/Makefile +0 -0
  209. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/favicon.ico +0 -0
  210. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/logo.pdf +0 -0
  211. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/logo.png +0 -0
  212. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/logo.svg +0 -0
  213. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_static/logo_font.txt +0 -0
  214. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_templates/globaltoc.html +0 -0
  215. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/_templates/logo-text.html +0 -0
  216. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/authors.rst +0 -0
  217. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/book.rst +0 -0
  218. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/conf.py +0 -0
  219. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/automated-local.rst +0 -0
  220. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/central-backup-server.rst +0 -0
  221. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/hosting-repositories.rst +0 -0
  222. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/image-backup.rst +0 -0
  223. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/deployment/pull-backup.rst +0 -0
  224. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/faq.rst +0 -0
  225. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/index.rst +0 -0
  226. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/compaction.png +0 -0
  227. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/compaction.vsd +0 -0
  228. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/data-structures.rst +0 -0
  229. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/encryption.png +0 -0
  230. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/encryption.vsd +0 -0
  231. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/frontends.rst +0 -0
  232. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/object-graph.png +0 -0
  233. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/object-graph.vsd +0 -0
  234. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/security.rst +0 -0
  235. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/structure.png +0 -0
  236. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals/structure.vsd +0 -0
  237. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/internals.rst +0 -0
  238. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/introduction.rst +0 -0
  239. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man/borg-change-passphrase.1 +0 -0
  240. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/man_intro.rst +0 -0
  241. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/README +0 -0
  242. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/Vagrantfile +0 -0
  243. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/advanced.json +0 -0
  244. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/advanced.tcl +0 -0
  245. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/basic.json +0 -0
  246. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/basic.tcl +0 -0
  247. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/install.json +0 -0
  248. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/install.tcl +0 -0
  249. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/asciinema/sample-wallpapers.txt +0 -0
  250. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/benchmark-crud.txt +0 -0
  251. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/borg-data-flow.png +0 -0
  252. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/borg-data-flow.vsd +0 -0
  253. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/create_chunker-params.txt +0 -0
  254. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/internals-picture.txt +0 -0
  255. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/logging.conf +0 -0
  256. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/misc/prune-example.txt +0 -0
  257. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/quickstart.rst +0 -0
  258. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/quickstart_example.rst.inc +0 -0
  259. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/support.rst +0 -0
  260. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/benchmark.rst +0 -0
  261. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/benchmark_crud.rst.inc +0 -0
  262. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/borgfs.rst +0 -0
  263. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/borgfs.rst.inc +0 -0
  264. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/break-lock.rst.inc +0 -0
  265. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/change-passphrase.rst.inc +0 -0
  266. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/check.rst +0 -0
  267. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/common-options.rst.inc +0 -0
  268. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/compact.rst +0 -0
  269. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/config.rst +0 -0
  270. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/debug.rst +0 -0
  271. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/delete.rst +0 -0
  272. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/diff.rst +0 -0
  273. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/extract.rst +0 -0
  274. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/date-time.rst.inc +0 -0
  275. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/environment.rst.inc +0 -0
  276. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/file-metadata.rst.inc +0 -0
  277. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/file-systems.rst.inc +0 -0
  278. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/logging.rst.inc +0 -0
  279. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/positional-arguments.rst.inc +0 -0
  280. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/repository-locations.rst.inc +0 -0
  281. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/repository-urls.rst.inc +0 -0
  282. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/resources.rst.inc +0 -0
  283. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/return-codes.rst.inc +0 -0
  284. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general/units.rst.inc +0 -0
  285. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/general.rst +0 -0
  286. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/help.rst +0 -0
  287. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/help.rst.inc +0 -0
  288. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/info.rst +0 -0
  289. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/init.rst +0 -0
  290. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key.rst +0 -0
  291. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key_change-passphrase.rst.inc +0 -0
  292. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/key_migrate-to-repokey.rst.inc +0 -0
  293. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/list.rst +0 -0
  294. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/lock.rst +0 -0
  295. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/notes.rst +0 -0
  296. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/prune.rst +0 -0
  297. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/recreate.rst +0 -0
  298. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/rename.rst +0 -0
  299. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/rename.rst.inc +0 -0
  300. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/serve.rst +0 -0
  301. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/tar.rst +0 -0
  302. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/umount.rst.inc +0 -0
  303. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/upgrade.rst +0 -0
  304. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/usage_general.rst.inc +0 -0
  305. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/version.rst +0 -0
  306. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/version.rst.inc +0 -0
  307. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage/with-lock.rst.inc +0 -0
  308. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage.rst +0 -0
  309. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/docs/usage_general.rst.inc +0 -0
  310. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/requirements.d/development.txt +0 -0
  311. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/requirements.d/docs.txt +0 -0
  312. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/borg.exe.spec +0 -0
  313. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/errorlist.py +0 -0
  314. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/fuzz-cache-sync/HOWTO +0 -0
  315. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/fuzz-cache-sync/main.c +0 -0
  316. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/fuzz-cache-sync/testcase_dir/test_simple +0 -0
  317. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/glibc_check.py +0 -0
  318. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/hash_sizes.py +0 -0
  319. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/msys2-build +0 -0
  320. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/msys2-install-deps +0 -0
  321. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/sdist-sign +0 -0
  322. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/shell_completions/bash/borg +0 -0
  323. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/shell_completions/fish/borg.fish +0 -0
  324. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/shell_completions/zsh/_borg +0 -0
  325. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/sign-binaries +0 -0
  326. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/scripts/upload-pypi +0 -0
  327. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/setup.cfg +0 -0
  328. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/__init__.py +0 -0
  329. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/__main__.py +0 -0
  330. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/_chunker.c +0 -0
  331. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/_endian.h +0 -0
  332. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/_hashindex.c +0 -0
  333. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/_item.c +0 -0
  334. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/__init__.py +0 -0
  335. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/crc32_clmul.c +0 -0
  336. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/crc32_dispatch.c +0 -0
  337. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/algorithms/crc32_slice_by_8.c +0 -0
  338. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache.py +0 -0
  339. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/cache_sync.c +0 -0
  340. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/sysdep.h +0 -0
  341. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/unpack.h +0 -0
  342. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/unpack_define.h +0 -0
  343. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/cache_sync/unpack_template.h +0 -0
  344. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/chunker.pyx +0 -0
  345. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/constants.py +0 -0
  346. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/__init__.py +0 -0
  347. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/_crypto_helpers.c +0 -0
  348. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/_crypto_helpers.h +0 -0
  349. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/file_integrity.py +0 -0
  350. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/keymanager.py +0 -0
  351. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/low_level.pyx +0 -0
  352. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/crypto/nonces.py +0 -0
  353. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/fuse.py +0 -0
  354. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/fuse_impl.py +0 -0
  355. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/hashindex.pyx +0 -0
  356. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/checks.py +0 -0
  357. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/datastruct.py +0 -0
  358. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/errors.py +0 -0
  359. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/manifest.py +0 -0
  360. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/misc.py +0 -0
  361. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/parseformat.py +0 -0
  362. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/progress.py +0 -0
  363. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/time.py +0 -0
  364. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/helpers/yes.py +0 -0
  365. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/item.pyx +0 -0
  366. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/locking.py +0 -0
  367. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/logger.py +0 -0
  368. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/lrucache.py +0 -0
  369. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/nanorst.py +0 -0
  370. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/paperkey.html +0 -0
  371. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/patterns.py +0 -0
  372. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/__init__.py +0 -0
  373. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/base.py +0 -0
  374. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/posix.pyx +0 -0
  375. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/syncfilerange.pyx +0 -0
  376. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/windows.pyx +0 -0
  377. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platform/xattr.py +0 -0
  378. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/platformflags.py +0 -0
  379. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/remote.py +0 -0
  380. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/selftest.py +0 -0
  381. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/shellpattern.py +0 -0
  382. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/__init__.py +0 -0
  383. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/archive.py +0 -0
  384. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/attic.tar.gz +0 -0
  385. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/benchmark.py +0 -0
  386. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/cache.py +0 -0
  387. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/checksums.py +0 -0
  388. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/chunker.py +0 -0
  389. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/chunker_pytest.py +0 -0
  390. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/chunker_slow.py +0 -0
  391. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/compress.py +0 -0
  392. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/conftest.py +0 -0
  393. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/crypto.py +0 -0
  394. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/efficient_collection_queue.py +0 -0
  395. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/file_integrity.py +0 -0
  396. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/hashindex.py +0 -0
  397. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/hashindex_stress.py +0 -0
  398. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/helpers.py +0 -0
  399. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/item.py +0 -0
  400. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/key.py +0 -0
  401. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/locking.py +0 -0
  402. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/logger.py +0 -0
  403. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/lrucache.py +0 -0
  404. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/nanorst.py +0 -0
  405. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/nonces.py +0 -0
  406. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/patterns.py +0 -0
  407. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/remote.py +0 -0
  408. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/repository.py +0 -0
  409. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/shellpattern.py +0 -0
  410. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/upgrader.py +0 -0
  411. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/version.py +0 -0
  412. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/testsuite/xattr.py +0 -0
  413. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/upgrader.py +0 -0
  414. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/version.py +0 -0
  415. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borg/xattr.py +0 -0
  416. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/dependency_links.txt +0 -0
  417. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/entry_points.txt +0 -0
  418. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/src/borgbackup.egg-info/top_level.txt +0 -0
  419. {borgbackup-1.4.0b1 → borgbackup-1.4.0rc1}/tox.ini +0 -0
@@ -2,7 +2,7 @@ brew 'pkg-config'
2
2
  brew 'zstd'
3
3
  brew 'lz4'
4
4
  brew 'xxhash'
5
- brew 'openssl@1.1'
5
+ brew 'openssl@3.0'
6
6
 
7
7
  # osxfuse (aka macFUSE) is only required for "borg mount",
8
8
  # but won't work on github actions' workers.
@@ -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.6, we mean a borg version >= 1.2.6 **or** a
33
- borg version that has the relevant security patches for this vulnerability applied
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.6.
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.6 before completing the upgrade steps:
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. Run: ``BORG_WORKAROUNDS=ignore_invalid_archive_tam borg info --debug <repo> 2>&1 | grep TAM | grep -i manifest``
47
+ 2. Do this step on every client using this repo: ``borg upgrade --show-rc --check-tam <repo>``
48
48
 
49
- a) If you get "TAM-verified manifest", continue with 3.
50
- b) If you get "Manifest TAM not found and not required", run
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
- 3. Run: ``BORG_WORKAROUNDS=ignore_invalid_archive_tam borg list --consider-checkpoints --format='{name} {time} tam:{tam}{NL}' <repo>``
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
- "tam:verified" means that the archive has a valid TAM authentication.
56
- "tam:none" is expected as output for archives created by borg <1.0.9.
57
- "tam:none" is also expected for archives resulting from a borg rename
58
- or borg recreate operation (see #7791).
59
- "tam:none" could also come from archives created by an attacker.
60
- You should verify that "tam:none" archives are authentic and not malicious
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 tam:none archives left at this point, you can skip this step.
67
- Run ``BORG_WORKAROUNDS=ignore_invalid_archive_tam borg upgrade --archives-tam <repo>``.
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
- 5. Please note that you should never use BORG_WORKAROUNDS=ignore_invalid_archive_tam
73
- for normal production operations - it is only needed once to get the archives in a
74
- repository into a good state. All archives have a valid TAM now.
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
- For better error handling in your scripts, wrappers or GUI frontends, you may
309
- want to use BORG_EXIT_CODES=modern - in that case you of course will need to
310
- make sure these deal with the new error and warning exit codes, see
311
- internals/frontends docs.
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
- Version 1.4.0b1 (2024-01-21)
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.0b1
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.7,>=1.0.3
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.6, we mean a borg version >= 1.2.6 **or** a
33
- borg version that has the relevant security patches for this vulnerability applied
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.6.
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.6 before completing the upgrade steps:
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. Run: ``BORG_WORKAROUNDS=ignore_invalid_archive_tam borg info --debug <repo> 2>&1 | grep TAM | grep -i manifest``
47
+ 2. Do this step on every client using this repo: ``borg upgrade --show-rc --check-tam <repo>``
48
48
 
49
- a) If you get "TAM-verified manifest", continue with 3.
50
- b) If you get "Manifest TAM not found and not required", run
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
- 3. Run: ``BORG_WORKAROUNDS=ignore_invalid_archive_tam borg list --consider-checkpoints --format='{name} {time} tam:{tam}{NL}' <repo>``
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
- "tam:verified" means that the archive has a valid TAM authentication.
56
- "tam:none" is expected as output for archives created by borg <1.0.9.
57
- "tam:none" is also expected for archives resulting from a borg rename
58
- or borg recreate operation (see #7791).
59
- "tam:none" could also come from archives created by an attacker.
60
- You should verify that "tam:none" archives are authentic and not malicious
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 tam:none archives left at this point, you can skip this step.
67
- Run ``BORG_WORKAROUNDS=ignore_invalid_archive_tam borg upgrade --archives-tam <repo>``.
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
- 5. Please note that you should never use BORG_WORKAROUNDS=ignore_invalid_archive_tam
73
- for normal production operations - it is only needed once to get the archives in a
74
- repository into a good state. All archives have a valid TAM now.
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
- For better error handling in your scripts, wrappers or GUI frontends, you may
309
- want to use BORG_EXIT_CODES=modern - in that case you of course will need to
310
- make sure these deal with the new error and warning exit codes, see
311
- internals/frontends docs.
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
- Version 1.4.0b1 (2024-01-21)
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.
@@ -14,3 +14,4 @@ This chapter details deployment strategies for the following scenarios.
14
14
  deployment/automated-local
15
15
  deployment/image-backup
16
16
  deployment/pull-backup
17
+ deployment/non-root-user
@@ -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 setup.py build_usage
224
- python setup.py build_man
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
- - ``python setup.py build_usage ; python setup.py build_man`` and commit.
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 setup.py about the version requirements.
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
- python38 python38-devel python38-pkgconfig
320
- python38-setuptools python38-pip python38-wheel python38-virtualenv
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-01-20" "" "borg backup tool"
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-01-20" "" "borg backup tool"
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-01-20" "" "borg backup tool"
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