borgbackup 1.4.0b1__tar.gz → 1.4.0b2__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.0b2}/Brewfile +1 -1
  2. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/CHANGES.rst +89 -26
  3. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/PKG-INFO +2 -35
  4. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/changes.rst +89 -26
  5. borgbackup-1.4.0b2/docs/deployment/non-root-user.rst +66 -0
  6. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/deployment.rst +1 -0
  7. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/development.rst +38 -3
  8. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/global.rst.inc +0 -1
  9. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/installation.rst +1 -1
  10. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-benchmark-crud.1 +1 -1
  11. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-benchmark.1 +1 -1
  12. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-break-lock.1 +1 -1
  13. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-check.1 +2 -2
  14. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-common.1 +1 -1
  15. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-compact.1 +2 -2
  16. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-compression.1 +1 -1
  17. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-config.1 +2 -2
  18. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-create.1 +24 -3
  19. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-delete.1 +2 -2
  20. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-diff.1 +2 -2
  21. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-export-tar.1 +2 -2
  22. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-extract.1 +2 -2
  23. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-import-tar.1 +2 -2
  24. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-info.1 +2 -2
  25. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-init.1 +2 -2
  26. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-key-change-passphrase.1 +1 -1
  27. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-key-export.1 +2 -2
  28. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-key-import.1 +2 -2
  29. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-key-migrate-to-repokey.1 +1 -1
  30. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-key.1 +1 -1
  31. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-list.1 +2 -2
  32. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-mount.1 +2 -2
  33. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-patterns.1 +1 -1
  34. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-placeholders.1 +1 -1
  35. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-prune.1 +2 -2
  36. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-recreate.1 +2 -2
  37. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-rename.1 +1 -1
  38. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-serve.1 +2 -2
  39. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-umount.1 +3 -4
  40. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-upgrade.1 +8 -2
  41. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-version.1 +1 -1
  42. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-with-lock.1 +1 -1
  43. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg.1 +1 -1
  44. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borgfs.1 +2 -2
  45. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/check.rst.inc +2 -2
  46. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/compact.rst.inc +2 -2
  47. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/config.rst.inc +2 -2
  48. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/create.rst +3 -0
  49. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/create.rst.inc +25 -5
  50. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/delete.rst.inc +2 -2
  51. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/diff.rst.inc +2 -2
  52. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/export-tar.rst.inc +2 -2
  53. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/extract.rst.inc +2 -2
  54. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/import-tar.rst.inc +2 -2
  55. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/info.rst.inc +2 -2
  56. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/init.rst.inc +2 -2
  57. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/key_export.rst.inc +2 -2
  58. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/key_import.rst.inc +2 -2
  59. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/list.rst.inc +2 -2
  60. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/mount.rst +2 -3
  61. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/mount.rst.inc +2 -2
  62. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/prune.rst.inc +2 -2
  63. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/recreate.rst.inc +2 -2
  64. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/serve.rst.inc +2 -2
  65. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/upgrade.rst.inc +30 -24
  66. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/pyproject.toml +4 -5
  67. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/requirements.d/development.lock.txt +1 -1
  68. borgbackup-1.4.0b1/setup_docs.py → borgbackup-1.4.0b2/scripts/make.py +72 -42
  69. borgbackup-1.4.0b2/setup.py +230 -0
  70. borgbackup-1.4.0b2/src/borg/_version.py +1 -0
  71. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/algorithms/checksums.c +68 -50
  72. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/algorithms/checksums.pyx +1 -1
  73. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/archive.py +45 -16
  74. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/archiver.py +164 -90
  75. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/chunker.c +56 -31
  76. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/compress.c +52 -35
  77. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/compress.pyx +2 -2
  78. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/key.py +3 -3
  79. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/low_level.c +78 -61
  80. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/hashindex.c +68 -47
  81. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/__init__.py +12 -0
  82. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/fs.py +15 -0
  83. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/msgpack.py +2 -2
  84. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/process.py +18 -4
  85. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/item.c +73 -41
  86. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/darwin.c +1578 -917
  87. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/darwin.pyx +13 -7
  88. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/freebsd.c +2400 -912
  89. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/freebsd.pyx +50 -25
  90. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/linux.c +1721 -793
  91. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/linux.pyx +44 -29
  92. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/posix.c +45 -27
  93. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/syncfilerange.c +44 -26
  94. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/windows.c +45 -27
  95. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/repository.py +6 -6
  96. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/archiver.py +25 -0
  97. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/platform.py +75 -35
  98. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borgbackup.egg-info/PKG-INFO +2 -35
  99. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borgbackup.egg-info/SOURCES.txt +2 -91
  100. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borgbackup.egg-info/requires.txt +1 -1
  101. borgbackup-1.4.0b1/setup.py +0 -236
  102. borgbackup-1.4.0b1/setup_checksums.py +0 -42
  103. borgbackup-1.4.0b1/setup_compress.py +0 -135
  104. borgbackup-1.4.0b1/setup_crypto.py +0 -32
  105. borgbackup-1.4.0b1/src/borg/_version.py +0 -1
  106. borgbackup-1.4.0b1/src/borg/algorithms/lz4/lib/lz4.c +0 -2398
  107. borgbackup-1.4.0b1/src/borg/algorithms/lz4/lib/lz4.h +0 -764
  108. borgbackup-1.4.0b1/src/borg/algorithms/lz4-libselect.h +0 -5
  109. borgbackup-1.4.0b1/src/borg/algorithms/xxh64/xxhash.c +0 -43
  110. borgbackup-1.4.0b1/src/borg/algorithms/xxh64/xxhash.h +0 -5580
  111. borgbackup-1.4.0b1/src/borg/algorithms/xxhash-libselect.h +0 -5
  112. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/bitstream.h +0 -454
  113. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/compiler.h +0 -175
  114. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/cpu.h +0 -215
  115. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/debug.c +0 -24
  116. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/debug.h +0 -114
  117. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/entropy_common.c +0 -216
  118. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/error_private.c +0 -55
  119. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/error_private.h +0 -80
  120. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/fse.h +0 -688
  121. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/fse_decompress.c +0 -286
  122. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/huf.h +0 -340
  123. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/mem.h +0 -453
  124. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/pool.c +0 -344
  125. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/pool.h +0 -84
  126. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/threading.c +0 -121
  127. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/threading.h +0 -155
  128. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/xxhash.c +0 -864
  129. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/xxhash.h +0 -285
  130. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_common.c +0 -83
  131. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_errors.h +0 -94
  132. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/common/zstd_internal.h +0 -447
  133. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/fse_compress.c +0 -698
  134. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/hist.c +0 -183
  135. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/hist.h +0 -75
  136. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/huf_compress.c +0 -798
  137. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress.c +0 -4278
  138. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_internal.h +0 -1125
  139. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_literals.c +0 -158
  140. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_literals.h +0 -29
  141. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_sequences.c +0 -419
  142. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_sequences.h +0 -54
  143. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_superblock.c +0 -845
  144. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_compress_superblock.h +0 -32
  145. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_cwksp.h +0 -525
  146. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_double_fast.c +0 -521
  147. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_double_fast.h +0 -38
  148. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_fast.c +0 -496
  149. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_fast.h +0 -37
  150. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_lazy.c +0 -1138
  151. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_lazy.h +0 -67
  152. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_ldm.c +0 -619
  153. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_ldm.h +0 -110
  154. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_opt.c +0 -1200
  155. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstd_opt.h +0 -56
  156. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstdmt_compress.c +0 -2143
  157. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/compress/zstdmt_compress.h +0 -192
  158. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/huf_decompress.c +0 -1248
  159. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_ddict.c +0 -244
  160. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_ddict.h +0 -44
  161. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress.c +0 -1885
  162. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_block.c +0 -1432
  163. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_block.h +0 -59
  164. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/decompress/zstd_decompress_internal.h +0 -189
  165. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff.h +0 -214
  166. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_common.c +0 -26
  167. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_compress.c +0 -147
  168. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/deprecated/zbuff_decompress.c +0 -75
  169. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/cover.c +0 -1236
  170. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/cover.h +0 -157
  171. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/divsufsort.c +0 -1913
  172. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/divsufsort.h +0 -67
  173. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/fastcover.c +0 -757
  174. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/zdict.c +0 -1135
  175. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/dictBuilder/zdict.h +0 -305
  176. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_legacy.h +0 -415
  177. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v01.c +0 -2158
  178. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v01.h +0 -94
  179. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v02.c +0 -3518
  180. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v02.h +0 -93
  181. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v03.c +0 -3160
  182. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v03.h +0 -93
  183. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v04.c +0 -3647
  184. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v04.h +0 -142
  185. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v05.c +0 -4050
  186. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v05.h +0 -162
  187. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v06.c +0 -4154
  188. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v06.h +0 -172
  189. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v07.c +0 -4541
  190. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/legacy/zstd_v07.h +0 -187
  191. borgbackup-1.4.0b1/src/borg/algorithms/zstd/lib/zstd.h +0 -2090
  192. borgbackup-1.4.0b1/src/borg/algorithms/zstd-libselect.h +0 -5
  193. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/.coveragerc +0 -0
  194. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/.pre-commit-config.yaml +0 -0
  195. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/.readthedocs.yaml +0 -0
  196. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/AUTHORS +0 -0
  197. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/LICENSE +0 -0
  198. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/MANIFEST.in +0 -0
  199. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/README.rst +0 -0
  200. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/README_WINDOWS.rst +0 -0
  201. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/SECURITY.md +0 -0
  202. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/3rd_party/README +0 -0
  203. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/3rd_party/lz4/LICENSE +0 -0
  204. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/3rd_party/zstd/LICENSE +0 -0
  205. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/Makefile +0 -0
  206. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/_static/Makefile +0 -0
  207. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/_static/favicon.ico +0 -0
  208. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/_static/logo.pdf +0 -0
  209. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/_static/logo.png +0 -0
  210. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/_static/logo.svg +0 -0
  211. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/_static/logo_font.txt +0 -0
  212. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/_templates/globaltoc.html +0 -0
  213. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/_templates/logo-text.html +0 -0
  214. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/authors.rst +0 -0
  215. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/book.rst +0 -0
  216. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/borg_theme/css/borg.css +0 -0
  217. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/conf.py +0 -0
  218. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/deployment/automated-local.rst +0 -0
  219. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/deployment/central-backup-server.rst +0 -0
  220. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/deployment/hosting-repositories.rst +0 -0
  221. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/deployment/image-backup.rst +0 -0
  222. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/deployment/pull-backup.rst +0 -0
  223. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/faq.rst +0 -0
  224. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/index.rst +0 -0
  225. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/compaction.png +0 -0
  226. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/compaction.vsd +0 -0
  227. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/data-structures.rst +0 -0
  228. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/encryption.png +0 -0
  229. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/encryption.vsd +0 -0
  230. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/frontends.rst +0 -0
  231. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/object-graph.png +0 -0
  232. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/object-graph.vsd +0 -0
  233. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/security.rst +0 -0
  234. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/structure.png +0 -0
  235. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals/structure.vsd +0 -0
  236. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/internals.rst +0 -0
  237. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/introduction.rst +0 -0
  238. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man/borg-change-passphrase.1 +0 -0
  239. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/man_intro.rst +0 -0
  240. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/README +0 -0
  241. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/Vagrantfile +0 -0
  242. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/advanced.json +0 -0
  243. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/advanced.tcl +0 -0
  244. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/basic.json +0 -0
  245. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/basic.tcl +0 -0
  246. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/install.json +0 -0
  247. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/install.tcl +0 -0
  248. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/asciinema/sample-wallpapers.txt +0 -0
  249. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/benchmark-crud.txt +0 -0
  250. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/borg-data-flow.png +0 -0
  251. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/borg-data-flow.vsd +0 -0
  252. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/create_chunker-params.txt +0 -0
  253. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/internals-picture.txt +0 -0
  254. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/logging.conf +0 -0
  255. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/misc/prune-example.txt +0 -0
  256. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/quickstart.rst +0 -0
  257. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/quickstart_example.rst.inc +0 -0
  258. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/support.rst +0 -0
  259. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/benchmark.rst +0 -0
  260. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/benchmark_crud.rst.inc +0 -0
  261. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/borgfs.rst +0 -0
  262. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/borgfs.rst.inc +0 -0
  263. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/break-lock.rst.inc +0 -0
  264. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/change-passphrase.rst.inc +0 -0
  265. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/check.rst +0 -0
  266. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/common-options.rst.inc +0 -0
  267. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/compact.rst +0 -0
  268. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/config.rst +0 -0
  269. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/debug.rst +0 -0
  270. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/delete.rst +0 -0
  271. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/diff.rst +0 -0
  272. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/extract.rst +0 -0
  273. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/date-time.rst.inc +0 -0
  274. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/environment.rst.inc +0 -0
  275. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/file-metadata.rst.inc +0 -0
  276. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/file-systems.rst.inc +0 -0
  277. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/logging.rst.inc +0 -0
  278. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/positional-arguments.rst.inc +0 -0
  279. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/repository-locations.rst.inc +0 -0
  280. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/repository-urls.rst.inc +0 -0
  281. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/resources.rst.inc +0 -0
  282. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/return-codes.rst.inc +0 -0
  283. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general/units.rst.inc +0 -0
  284. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/general.rst +0 -0
  285. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/help.rst +0 -0
  286. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/help.rst.inc +0 -0
  287. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/info.rst +0 -0
  288. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/init.rst +0 -0
  289. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/key.rst +0 -0
  290. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/key_change-passphrase.rst.inc +0 -0
  291. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/key_migrate-to-repokey.rst.inc +0 -0
  292. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/list.rst +0 -0
  293. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/lock.rst +0 -0
  294. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/notes.rst +0 -0
  295. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/prune.rst +0 -0
  296. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/recreate.rst +0 -0
  297. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/rename.rst +0 -0
  298. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/rename.rst.inc +0 -0
  299. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/serve.rst +0 -0
  300. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/tar.rst +0 -0
  301. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/umount.rst.inc +0 -0
  302. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/upgrade.rst +0 -0
  303. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/usage_general.rst.inc +0 -0
  304. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/version.rst +0 -0
  305. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/version.rst.inc +0 -0
  306. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage/with-lock.rst.inc +0 -0
  307. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage.rst +0 -0
  308. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/docs/usage_general.rst.inc +0 -0
  309. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/requirements.d/development.txt +0 -0
  310. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/requirements.d/docs.txt +0 -0
  311. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/borg.exe.spec +0 -0
  312. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/errorlist.py +0 -0
  313. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/fetch-binaries +0 -0
  314. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/fuzz-cache-sync/HOWTO +0 -0
  315. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/fuzz-cache-sync/main.c +0 -0
  316. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/fuzz-cache-sync/testcase_dir/test_simple +0 -0
  317. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/glibc_check.py +0 -0
  318. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/hash_sizes.py +0 -0
  319. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/msys2-build +0 -0
  320. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/msys2-install-deps +0 -0
  321. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/sdist-sign +0 -0
  322. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/shell_completions/bash/borg +0 -0
  323. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/shell_completions/fish/borg.fish +0 -0
  324. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/shell_completions/zsh/_borg +0 -0
  325. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/sign-binaries +0 -0
  326. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/scripts/upload-pypi +0 -0
  327. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/setup.cfg +0 -0
  328. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/__init__.py +0 -0
  329. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/__main__.py +0 -0
  330. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/_chunker.c +0 -0
  331. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/_endian.h +0 -0
  332. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/_hashindex.c +0 -0
  333. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/_item.c +0 -0
  334. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/algorithms/__init__.py +0 -0
  335. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/algorithms/crc32_clmul.c +0 -0
  336. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/algorithms/crc32_dispatch.c +0 -0
  337. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/algorithms/crc32_slice_by_8.c +0 -0
  338. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/cache.py +0 -0
  339. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/cache_sync/cache_sync.c +0 -0
  340. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/cache_sync/sysdep.h +0 -0
  341. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/cache_sync/unpack.h +0 -0
  342. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/cache_sync/unpack_define.h +0 -0
  343. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/cache_sync/unpack_template.h +0 -0
  344. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/chunker.pyx +0 -0
  345. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/constants.py +0 -0
  346. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/__init__.py +0 -0
  347. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/_crypto_helpers.c +0 -0
  348. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/_crypto_helpers.h +0 -0
  349. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/file_integrity.py +0 -0
  350. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/keymanager.py +0 -0
  351. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/low_level.pyx +0 -0
  352. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/crypto/nonces.py +0 -0
  353. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/fuse.py +0 -0
  354. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/fuse_impl.py +0 -0
  355. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/hashindex.pyx +0 -0
  356. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/checks.py +0 -0
  357. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/datastruct.py +0 -0
  358. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/errors.py +0 -0
  359. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/manifest.py +0 -0
  360. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/misc.py +0 -0
  361. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/parseformat.py +0 -0
  362. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/progress.py +0 -0
  363. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/time.py +0 -0
  364. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/helpers/yes.py +0 -0
  365. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/item.pyx +0 -0
  366. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/locking.py +0 -0
  367. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/logger.py +0 -0
  368. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/lrucache.py +0 -0
  369. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/nanorst.py +0 -0
  370. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/paperkey.html +0 -0
  371. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/patterns.py +0 -0
  372. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/__init__.py +0 -0
  373. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/base.py +0 -0
  374. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/posix.pyx +0 -0
  375. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/syncfilerange.pyx +0 -0
  376. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/windows.pyx +0 -0
  377. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platform/xattr.py +0 -0
  378. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/platformflags.py +0 -0
  379. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/remote.py +0 -0
  380. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/selftest.py +0 -0
  381. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/shellpattern.py +0 -0
  382. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/__init__.py +0 -0
  383. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/archive.py +0 -0
  384. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/attic.tar.gz +0 -0
  385. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/benchmark.py +0 -0
  386. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/cache.py +0 -0
  387. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/checksums.py +0 -0
  388. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/chunker.py +0 -0
  389. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/chunker_pytest.py +0 -0
  390. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/chunker_slow.py +0 -0
  391. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/compress.py +0 -0
  392. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/conftest.py +0 -0
  393. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/crypto.py +0 -0
  394. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/efficient_collection_queue.py +0 -0
  395. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/file_integrity.py +0 -0
  396. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/hashindex.py +0 -0
  397. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/hashindex_stress.py +0 -0
  398. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/helpers.py +0 -0
  399. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/item.py +0 -0
  400. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/key.py +0 -0
  401. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/locking.py +0 -0
  402. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/logger.py +0 -0
  403. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/lrucache.py +0 -0
  404. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/nanorst.py +0 -0
  405. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/nonces.py +0 -0
  406. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/patterns.py +0 -0
  407. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/remote.py +0 -0
  408. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/repository.py +0 -0
  409. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/shellpattern.py +0 -0
  410. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/upgrader.py +0 -0
  411. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/version.py +0 -0
  412. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/testsuite/xattr.py +0 -0
  413. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/upgrader.py +0 -0
  414. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/version.py +0 -0
  415. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borg/xattr.py +0 -0
  416. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borgbackup.egg-info/dependency_links.txt +0 -0
  417. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borgbackup.egg-info/entry_points.txt +0 -0
  418. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/src/borgbackup.egg-info/top_level.txt +0 -0
  419. {borgbackup-1.4.0b1 → borgbackup-1.4.0b2}/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,7 +411,8 @@ Compatibility notes:
394
411
  Change Log
395
412
  ==========
396
413
 
397
- Version 1.4.0b1 (2024-01-21)
414
+
415
+ Version 1.4.0b2 (2024-03-31)
398
416
  ----------------------------
399
417
 
400
418
  For upgrade and compatibility hints, please also read the section "Upgrade Notes"
@@ -402,6 +420,51 @@ above.
402
420
 
403
421
  Fixes:
404
422
 
423
+ - check: fix return code for index entry value discrepancies
424
+ - benchmark: inherit options --rsh --remote-path, #8099
425
+ - sdist: dynamically compute readme (long_description)
426
+ - create: deal with EBUSY, #8123
427
+ - No need to use OpenSSL 3.0 on OpenBSD, use LibreSSL.
428
+ - fix Ctrl-C / SIGINT behaviour for pyinstaller-made binaries, #8155
429
+
430
+ New features:
431
+
432
+ - create: add the slashdot hack, update docs, #4685
433
+ - upgrade --check-tam: check manifest TAM auth, exit with rc=1 if there are issues.
434
+ - upgrade --check-archives-tam: check archives TAM auth, exit with rc=1 if there are issues.
435
+
436
+ Other changes:
437
+
438
+ - improve acl_get / acl_set error handling, improved/added tests, #8125
439
+ - remove bundled lz4/zstd/xxhash code (require the respective libs/headers),
440
+ simplify setup.py, remove support for all BORG_USE_BUNDLED_*=YES, #8094
441
+ - require Cython 3.0.3 at least (fixes py312 memory leak), #8133
442
+ - allow msgpack 1.0.8, #8133
443
+ - init: better borg key export instructions
444
+ - init: remove compatibility warning for borg <=1.0.8
445
+ The warning refers to a compatibility issue not relevant any
446
+ more since borg 1.0.9 (released 2016-12).
447
+ - locate libacl via pkgconfig
448
+ - scripts/make.py: move clean, build_man, build_usage to there,
449
+ so we do not need to invoke setup.py directly, update docs
450
+ - docs:
451
+
452
+ - how to run the testsuite using the dist package
453
+ - add non-root deployment strategy (systemd / capabilities)
454
+ - simplify TAM-related upgrade docs using the new commands
455
+ - vagrant:
456
+
457
+ - use python 3.11.8
458
+ - use pyinstaller 6.5.0
459
+ - add xxhash for macOS, add libxxhash-dev for debianoid systems
460
+ - use openindiana/hipster box
461
+
462
+
463
+ Version 1.4.0b1 (2024-01-21)
464
+ ----------------------------
465
+
466
+ Fixes:
467
+
405
468
  - fix CommandError args, #8029
406
469
 
407
470
  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.0b2
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.0.8,>=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
@@ -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,7 +411,8 @@ Compatibility notes:
394
411
  Change Log
395
412
  ==========
396
413
 
397
- Version 1.4.0b1 (2024-01-21)
414
+
415
+ Version 1.4.0b2 (2024-03-31)
398
416
  ----------------------------
399
417
 
400
418
  For upgrade and compatibility hints, please also read the section "Upgrade Notes"
@@ -402,6 +420,51 @@ above.
402
420
 
403
421
  Fixes:
404
422
 
423
+ - check: fix return code for index entry value discrepancies
424
+ - benchmark: inherit options --rsh --remote-path, #8099
425
+ - sdist: dynamically compute readme (long_description)
426
+ - create: deal with EBUSY, #8123
427
+ - No need to use OpenSSL 3.0 on OpenBSD, use LibreSSL.
428
+ - fix Ctrl-C / SIGINT behaviour for pyinstaller-made binaries, #8155
429
+
430
+ New features:
431
+
432
+ - create: add the slashdot hack, update docs, #4685
433
+ - upgrade --check-tam: check manifest TAM auth, exit with rc=1 if there are issues.
434
+ - upgrade --check-archives-tam: check archives TAM auth, exit with rc=1 if there are issues.
435
+
436
+ Other changes:
437
+
438
+ - improve acl_get / acl_set error handling, improved/added tests, #8125
439
+ - remove bundled lz4/zstd/xxhash code (require the respective libs/headers),
440
+ simplify setup.py, remove support for all BORG_USE_BUNDLED_*=YES, #8094
441
+ - require Cython 3.0.3 at least (fixes py312 memory leak), #8133
442
+ - allow msgpack 1.0.8, #8133
443
+ - init: better borg key export instructions
444
+ - init: remove compatibility warning for borg <=1.0.8
445
+ The warning refers to a compatibility issue not relevant any
446
+ more since borg 1.0.9 (released 2016-12).
447
+ - locate libacl via pkgconfig
448
+ - scripts/make.py: move clean, build_man, build_usage to there,
449
+ so we do not need to invoke setup.py directly, update docs
450
+ - docs:
451
+
452
+ - how to run the testsuite using the dist package
453
+ - add non-root deployment strategy (systemd / capabilities)
454
+ - simplify TAM-related upgrade docs using the new commands
455
+ - vagrant:
456
+
457
+ - use python 3.11.8
458
+ - use pyinstaller 6.5.0
459
+ - add xxhash for macOS, add libxxhash-dev for debianoid systems
460
+ - use openindiana/hipster box
461
+
462
+
463
+ Version 1.4.0b1 (2024-01-21)
464
+ ----------------------------
465
+
466
+ Fixes:
467
+
405
468
  - fix CommandError args, #8029
406
469
 
407
470
  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,
@@ -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-03-30" "" "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-03-30" "" "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-03-30" "" "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
@@ -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-CHECK" 1 "2024-01-20" "" "borg backup tool"
30
+ .TH "BORG-CHECK" 1 "2024-03-30" "" "borg backup tool"
31
31
  .SH NAME
32
32
  borg-check \- Check repository consistency
33
33
  .SH SYNOPSIS
@@ -161,7 +161,7 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
161
161
  .B REPOSITORY_OR_ARCHIVE
162
162
  repository or archive to check consistency of
163
163
  .UNINDENT
164
- .SS options
164
+ .SS optional arguments
165
165
  .INDENT 0.0
166
166
  .TP
167
167
  .B \-\-repository\-only
@@ -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-COMMON" 1 "2024-01-20" "" "borg backup tool"
30
+ .TH "BORG-COMMON" 1 "2024-03-30" "" "borg backup tool"
31
31
  .SH NAME
32
32
  borg-common \- Common options of Borg commands
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-COMPACT" 1 "2024-01-20" "" "borg backup tool"
30
+ .TH "BORG-COMPACT" 1 "2024-03-30" "" "borg backup tool"
31
31
  .SH NAME
32
32
  borg-compact \- compact segment files in the repository
33
33
  .SH SYNOPSIS
@@ -66,7 +66,7 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
66
66
  .B REPOSITORY
67
67
  repository to compact
68
68
  .UNINDENT
69
- .SS options
69
+ .SS optional arguments
70
70
  .INDENT 0.0
71
71
  .TP
72
72
  .B \-\-cleanup\-commits
@@ -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-COMPRESSION" 1 "2024-01-20" "" "borg backup tool"
30
+ .TH "BORG-COMPRESSION" 1 "2024-03-30" "" "borg backup tool"
31
31
  .SH NAME
32
32
  borg-compression \- Details regarding compression
33
33
  .SH DESCRIPTION