borgbackup 2.0.0b24__tar.gz → 2.0.0b25__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 (598) hide show
  1. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.claude/CLAUDE.md +7 -7
  2. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/FAME.md +27 -26
  3. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/FAME.svg +6 -6
  4. {borgbackup-2.0.0b24/src/borgbackup.egg-info → borgbackup-2.0.0b25}/PKG-INFO +7 -8
  5. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/README.rst +2 -3
  6. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/binaries/00_README.txt +7 -0
  7. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/changes.rst +151 -5
  8. borgbackup-2.0.0b25/docs/deployment/age.rst +221 -0
  9. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/central-backup-server.rst +4 -5
  10. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/hosting-repositories.rst +8 -8
  11. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/pull-backup.rst +9 -9
  12. borgbackup-2.0.0b25/docs/deployment/yubikey.rst +117 -0
  13. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment.rst +2 -0
  14. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/development.rst +3 -3
  15. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/faq.rst +59 -37
  16. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/installation.rst +8 -4
  17. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/data-structures.rst +197 -263
  18. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/frontends.rst +95 -23
  19. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/packs.rst +126 -53
  20. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/security.rst +58 -50
  21. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals.rst +2 -2
  22. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-analyze.1 +1 -1
  23. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-benchmark-cpu.1 +1 -1
  24. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-benchmark-crud.1 +1 -1
  25. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-benchmark.1 +1 -1
  26. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-break-lock.1 +4 -1
  27. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-check.1 +37 -19
  28. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-common.1 +1 -1
  29. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-compact.1 +8 -1
  30. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-completion.1 +1 -1
  31. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-compression.1 +5 -3
  32. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-copy.1 +1 -1
  33. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-create.1 +9 -9
  34. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-delete.1 +1 -1
  35. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-diff.1 +48 -4
  36. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-environment.1 +23 -17
  37. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-export-tar.1 +1 -1
  38. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-extract.1 +51 -3
  39. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-find.1 +1 -1
  40. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-import-tar.1 +16 -3
  41. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-info.1 +4 -3
  42. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-add.1 +1 -1
  43. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-change-location.1 +1 -1
  44. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-change-passphrase.1 +2 -2
  45. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-export.1 +1 -1
  46. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-import.1 +1 -1
  47. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-list.1 +1 -1
  48. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-remove.1 +1 -1
  49. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key.1 +1 -1
  50. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-list.1 +1 -1
  51. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-match-archives.1 +4 -3
  52. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-mount.1 +13 -4
  53. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-patterns.1 +1 -1
  54. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-placeholders.1 +1 -1
  55. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-prune.1 +1 -1
  56. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-recreate.1 +3 -3
  57. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-rename.1 +1 -1
  58. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-compress.1 +12 -3
  59. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-create.1 +44 -20
  60. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-delete.1 +7 -1
  61. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-info.1 +5 -2
  62. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-list.1 +1 -1
  63. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-repo-space.1 +1 -1
  64. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-serve.1 +11 -11
  65. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-tag.1 +42 -5
  66. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-transfer.1 +11 -6
  67. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-umount.1 +1 -1
  68. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-undelete.1 +1 -1
  69. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-version.1 +3 -3
  70. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-webdav.1 +1 -1
  71. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-with-lock.1 +1 -1
  72. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg.1 +34 -34
  73. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borgfs.1 +1 -1
  74. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/demo.tcl +1 -1
  75. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/quickstart.rst +31 -16
  76. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/break-lock.rst.inc +4 -1
  77. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/check.rst.inc +36 -18
  78. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/compact.rst.inc +7 -0
  79. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/create.rst.inc +10 -10
  80. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/debug.rst +0 -1
  81. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/diff.rst.inc +37 -4
  82. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/extract.rst +4 -1
  83. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/extract.rst.inc +89 -47
  84. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/environment.rst.inc +22 -16
  85. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/file-systems.rst.inc +2 -2
  86. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/repository-urls.rst.inc +9 -15
  87. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/help.rst.inc +7 -4
  88. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/import-tar.rst.inc +52 -39
  89. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/info.rst.inc +3 -2
  90. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key.rst +1 -1
  91. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/mount.rst.inc +12 -3
  92. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/recreate.rst.inc +65 -65
  93. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-compress.rst.inc +22 -13
  94. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-create.rst +2 -4
  95. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-create.rst.inc +62 -33
  96. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-delete.rst.inc +6 -0
  97. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-info.rst +4 -1
  98. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/serve.rst +3 -4
  99. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/serve.rst.inc +8 -7
  100. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/tag.rst.inc +38 -7
  101. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/transfer.rst +8 -3
  102. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/transfer.rst.inc +41 -41
  103. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/version.rst.inc +2 -2
  104. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/pyproject.toml +4 -4
  105. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/requirements.d/development.lock.txt +4 -4
  106. borgbackup-2.0.0b25/requirements.d/pyinstaller.txt +1 -0
  107. borgbackup-2.0.0b25/requirements.d/s3-test-server.txt +6 -0
  108. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/borg.exe.spec +32 -3
  109. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/glibc_check.py +4 -0
  110. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/rest_perf_test.sh +7 -6
  111. borgbackup-2.0.0b25/src/borg/_version.py +1 -0
  112. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archive.py +436 -182
  113. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/_common.py +103 -75
  114. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/analyze_cmd.py +6 -6
  115. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/benchmark_cmd.py +3 -3
  116. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/check_cmd.py +84 -23
  117. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/compact_cmd.py +66 -16
  118. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/copy_cmd.py +1 -3
  119. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/create_cmd.py +17 -13
  120. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/debug_cmd.py +31 -57
  121. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/delete_cmd.py +1 -2
  122. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/diff_cmd.py +117 -34
  123. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/extract_cmd.py +58 -4
  124. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/find_cmd.py +2 -3
  125. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/help_cmd.py +29 -20
  126. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/info_cmd.py +5 -5
  127. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/key_cmds.py +8 -24
  128. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/list_cmd.py +2 -3
  129. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/lock_cmds.py +3 -0
  130. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/mount_cmds.py +33 -9
  131. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/prune_cmd.py +8 -3
  132. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/recreate_cmd.py +7 -8
  133. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/rename_cmd.py +1 -3
  134. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_compress_cmd.py +49 -16
  135. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_create_cmd.py +103 -40
  136. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_delete_cmd.py +33 -6
  137. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_info_cmd.py +21 -6
  138. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_list_cmd.py +2 -2
  139. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/serve_cmd.py +8 -7
  140. borgbackup-2.0.0b25/src/borg/archiver/tag_cmd.py +153 -0
  141. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/tar_cmds.py +40 -9
  142. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/transfer_cmd.py +10 -8
  143. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/undelete_cmd.py +1 -2
  144. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/version_cmd.py +2 -2
  145. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/webdav_cmd.py +1 -2
  146. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cache.py +160 -141
  147. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/compress.c +5179 -3923
  148. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/compress.pyi +2 -0
  149. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/compress.pyx +86 -17
  150. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/conftest.py +2 -2
  151. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/constants.py +21 -21
  152. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/key.py +164 -160
  153. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/keymanager.py +5 -8
  154. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/low_level.c +2155 -1578
  155. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/low_level.pyi +3 -0
  156. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/low_level.pyx +66 -26
  157. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/fuse.py +5 -0
  158. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/hashindex.c +5067 -1795
  159. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/hashindex.pyi +2 -0
  160. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/hashindex.pyx +59 -7
  161. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/__init__.py +8 -1
  162. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/errors.py +23 -0
  163. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/parseformat.py +35 -44
  164. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/passphrase.py +28 -18
  165. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/process.py +22 -2
  166. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/hlfuse.py +44 -7
  167. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/item.c +18581 -12816
  168. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/item.pyi +5 -0
  169. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/item.pyx +67 -23
  170. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/archives.py +0 -4
  171. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/key.py +1 -3
  172. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/remote.py +44 -10
  173. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/manifest.py +73 -123
  174. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/repoobj.py +104 -62
  175. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/repository.py +1160 -274
  176. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/security.py +23 -39
  177. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/storelocking.py +80 -14
  178. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/__init__.py +33 -0
  179. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archive_test.py +40 -22
  180. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/__init__.py +92 -9
  181. borgbackup-2.0.0b25/src/borg/testsuite/archiver/check_cmd_test.py +1881 -0
  182. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/checks_test.py +75 -102
  183. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/compact_cmd_test.py +308 -46
  184. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/completion_cmd_test.py +1 -1
  185. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/copy_cmd_test.py +8 -8
  186. borgbackup-2.0.0b25/src/borg/testsuite/archiver/corruption_test.py +11 -0
  187. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/create_cmd_test.py +24 -10
  188. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/debug_cmds_test.py +119 -19
  189. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/diff_cmd_test.py +207 -7
  190. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/disk_full_test.py +2 -1
  191. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/extract_cmd_test.py +205 -30
  192. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/info_cmd_test.py +2 -0
  193. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/key_cmds_test.py +66 -26
  194. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/lock_cmds_test.py +29 -1
  195. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/mount_cmds_test.py +115 -23
  196. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/recreate_cmd_test.py +3 -2
  197. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/remote_repo_test.py +33 -1
  198. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/rename_cmd_test.py +1 -1
  199. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/repo_compress_cmd_test.py +52 -13
  200. borgbackup-2.0.0b25/src/borg/testsuite/archiver/repo_create_cmd_test.py +354 -0
  201. borgbackup-2.0.0b25/src/borg/testsuite/archiver/repo_delete_cmd_test.py +83 -0
  202. borgbackup-2.0.0b25/src/borg/testsuite/archiver/repo_info_cmd_test.py +71 -0
  203. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/repo_list_cmd_test.py +72 -2
  204. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/repo_space_cmd_test.py +7 -0
  205. borgbackup-2.0.0b25/src/borg/testsuite/archiver/return_codes_test.py +66 -0
  206. borgbackup-2.0.0b25/src/borg/testsuite/archiver/store_objects_test.py +153 -0
  207. borgbackup-2.0.0b25/src/borg/testsuite/archiver/tag_cmd_test.py +147 -0
  208. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/tar_cmds_test.py +167 -23
  209. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/transfer_cmd_test.py +1 -1
  210. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/webdav_cmd_test.py +5 -5
  211. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archives_test.py +81 -18
  212. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/benchmark_test.py +9 -2
  213. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/cache_test.py +334 -36
  214. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/cockpit_test.py +3 -2
  215. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/compress_test.py +94 -2
  216. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/crypto_test.py +1 -11
  217. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/key_test.py +88 -93
  218. borgbackup-2.0.0b25/src/borg/testsuite/crypto/legacy_key_test.py +82 -0
  219. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/low_level_test.py +54 -2
  220. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/fuse_test.py +24 -0
  221. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/hashindex_test.py +62 -0
  222. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/__init__test.py +22 -1
  223. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/parseformat_test.py +23 -94
  224. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/passphrase_test.py +82 -0
  225. borgbackup-2.0.0b25/src/borg/testsuite/helpers/process_test.py +58 -0
  226. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/item_test.py +47 -1
  227. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacy_archives_test.py +0 -6
  228. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacyrepository_test.py +65 -1
  229. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/repoobj_test.py +178 -96
  230. borgbackup-2.0.0b25/src/borg/testsuite/repository_test.py +3823 -0
  231. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/storelocking_test.py +125 -3
  232. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/vfs_test.py +48 -1
  233. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/vfs.py +45 -14
  234. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25/src/borgbackup.egg-info}/PKG-INFO +7 -8
  235. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/SOURCES.txt +4 -1
  236. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/requires.txt +4 -4
  237. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/scm_file_list.json +5 -1
  238. borgbackup-2.0.0b25/src/borgbackup.egg-info/scm_version.json +8 -0
  239. borgbackup-2.0.0b24/CHANGES.rst +0 -2015
  240. borgbackup-2.0.0b24/requirements.d/pyinstaller.txt +0 -1
  241. borgbackup-2.0.0b24/src/borg/_version.py +0 -1
  242. borgbackup-2.0.0b24/src/borg/archiver/tag_cmd.py +0 -76
  243. borgbackup-2.0.0b24/src/borg/testsuite/archiver/check_cmd_test.py +0 -896
  244. borgbackup-2.0.0b24/src/borg/testsuite/archiver/corruption_test.py +0 -32
  245. borgbackup-2.0.0b24/src/borg/testsuite/archiver/repo_create_cmd_test.py +0 -137
  246. borgbackup-2.0.0b24/src/borg/testsuite/archiver/repo_delete_cmd_test.py +0 -42
  247. borgbackup-2.0.0b24/src/borg/testsuite/archiver/repo_info_cmd_test.py +0 -42
  248. borgbackup-2.0.0b24/src/borg/testsuite/archiver/return_codes_test.py +0 -35
  249. borgbackup-2.0.0b24/src/borg/testsuite/archiver/tag_cmd_test.py +0 -57
  250. borgbackup-2.0.0b24/src/borg/testsuite/crypto/legacy_key_test.py +0 -34
  251. borgbackup-2.0.0b24/src/borg/testsuite/helpers/process_test.py +0 -27
  252. borgbackup-2.0.0b24/src/borg/testsuite/repository_test.py +0 -1890
  253. borgbackup-2.0.0b24/src/borgbackup.egg-info/scm_version.json +0 -8
  254. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.claude/settings.json +0 -0
  255. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.git-blame-ignore-revs +0 -0
  256. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.pre-commit-config.yaml +0 -0
  257. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/.readthedocs.yaml +0 -0
  258. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/AUTHORS +0 -0
  259. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/Brewfile +0 -0
  260. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/CONTRIBUTING.md +0 -0
  261. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/LICENSE +0 -0
  262. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/MANIFEST.in +0 -0
  263. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/SECURITY.md +0 -0
  264. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/3rd_party/README +0 -0
  265. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/Makefile +0 -0
  266. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/Makefile +0 -0
  267. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/favicon.ico +0 -0
  268. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/logo.pdf +0 -0
  269. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/logo.png +0 -0
  270. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/logo.svg +0 -0
  271. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_static/logo_font.txt +0 -0
  272. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/downloads.html +0 -0
  273. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/globaltoc.html +0 -0
  274. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/layout.html +0 -0
  275. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/logo-text.html +0 -0
  276. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/_templates/versionselector.html +0 -0
  277. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/authors.rst +0 -0
  278. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/book.rst +0 -0
  279. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/borg_theme/css/borg.css +0 -0
  280. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/changes_0.x.rst +0 -0
  281. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/changes_1.x.rst +0 -0
  282. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/conf.py +0 -0
  283. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/automated-local.rst +0 -0
  284. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/image-backup.rst +0 -0
  285. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/deployment/non-root-user.rst +0 -0
  286. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/global.rst.inc +0 -0
  287. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/index.rst +0 -0
  288. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/chunker.rst +0 -0
  289. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/encryption-aead.odg +0 -0
  290. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/encryption-aead.png +0 -0
  291. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/object-graph.odg +0 -0
  292. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/object-graph.png +0 -0
  293. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-layout.excalidraw +0 -0
  294. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-layout.png +0 -0
  295. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-objheader.excalidraw +0 -0
  296. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-objheader.png +0 -0
  297. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-write-order.excalidraw +0 -0
  298. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/pack-write-order.png +0 -0
  299. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/structure.odg +0 -0
  300. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/internals/structure.png +0 -0
  301. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/introduction.rst +0 -0
  302. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-config.1 +0 -0
  303. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-change-algorithm.1 +0 -0
  304. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-key-migrate-to-repokey.1 +0 -0
  305. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man/borg-upgrade.1 +0 -0
  306. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/man_intro.rst +0 -0
  307. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/Containerfile +0 -0
  308. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/README.md +0 -0
  309. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/borg2-demo.cast +0 -0
  310. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/demo-data.py +0 -0
  311. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/entrypoint.sh +0 -0
  312. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/record.exp +0 -0
  313. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/asciinema/record.sh +0 -0
  314. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/benchmark-crud.txt +0 -0
  315. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/borg-data-flow.odg +0 -0
  316. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/borg-data-flow.png +0 -0
  317. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/create_chunker-params.txt +0 -0
  318. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/internals-picture.txt +0 -0
  319. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/joke-issue-10000/README.md +0 -0
  320. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/joke-issue-10000/we_are_borg.svg +0 -0
  321. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/logging.conf +0 -0
  322. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/prune-example-interval.txt +0 -0
  323. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/misc/prune-example.txt +0 -0
  324. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/quickstart_example.rst.inc +0 -0
  325. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/support.rst +0 -0
  326. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/analyze.rst +0 -0
  327. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/analyze.rst.inc +0 -0
  328. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/benchmark.rst +0 -0
  329. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/benchmark_cpu.rst.inc +0 -0
  330. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/benchmark_crud.rst.inc +0 -0
  331. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/check.rst +0 -0
  332. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/common-options.rst.inc +0 -0
  333. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/compact.rst +0 -0
  334. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/completion.rst +0 -0
  335. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/completion.rst.inc +0 -0
  336. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/copy.rst +0 -0
  337. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/copy.rst.inc +0 -0
  338. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/create.rst +0 -0
  339. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/delete.rst +0 -0
  340. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/delete.rst.inc +0 -0
  341. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/diff.rst +0 -0
  342. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/export-tar.rst.inc +0 -0
  343. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/find.rst +0 -0
  344. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/find.rst.inc +0 -0
  345. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/archive-specification.rst.inc +0 -0
  346. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/config.rst.inc +0 -0
  347. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/date-time.rst.inc +0 -0
  348. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/file-metadata.rst.inc +0 -0
  349. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/logging.rst.inc +0 -0
  350. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/positional-arguments.rst.inc +0 -0
  351. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/repository-locations.rst.inc +0 -0
  352. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/resources.rst.inc +0 -0
  353. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/return-codes.rst.inc +0 -0
  354. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general/units.rst.inc +0 -0
  355. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/general.rst +0 -0
  356. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/help.rst +0 -0
  357. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/info.rst +0 -0
  358. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_add.rst.inc +0 -0
  359. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_change-location.rst.inc +0 -0
  360. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_change-passphrase.rst.inc +0 -0
  361. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_export.rst.inc +0 -0
  362. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_import.rst.inc +0 -0
  363. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_list.rst.inc +0 -0
  364. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/key_remove.rst.inc +0 -0
  365. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/list.rst +0 -0
  366. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/list.rst.inc +0 -0
  367. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/lock.rst +0 -0
  368. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/mount.rst +0 -0
  369. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/notes.rst +0 -0
  370. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/prune.rst +0 -0
  371. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/prune.rst.inc +0 -0
  372. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/recreate.rst +0 -0
  373. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/rename.rst +0 -0
  374. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/rename.rst.inc +0 -0
  375. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-compress.rst +0 -0
  376. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-delete.rst +0 -0
  377. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-info.rst.inc +0 -0
  378. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-list.rst +0 -0
  379. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-list.rst.inc +0 -0
  380. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-space.rst +0 -0
  381. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/repo-space.rst.inc +0 -0
  382. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/tag.rst +0 -0
  383. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/tar.rst +0 -0
  384. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/umount.rst.inc +0 -0
  385. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/undelete.rst +0 -0
  386. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/undelete.rst.inc +0 -0
  387. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/usage_general.rst.inc +0 -0
  388. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/version.rst +0 -0
  389. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/webdav.rst +0 -0
  390. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/webdav.rst.inc +0 -0
  391. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage/with-lock.rst.inc +0 -0
  392. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage.rst +0 -0
  393. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/docs/usage_general.rst.inc +0 -0
  394. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/requirements.d/codestyle.txt +0 -0
  395. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/requirements.d/development.txt +0 -0
  396. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/requirements.d/docs.txt +0 -0
  397. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/Dockerfile.linux-run +0 -0
  398. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/bench_chunker_kernels.py +0 -0
  399. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/blake3-optimize-mt-threshold.py +0 -0
  400. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/build-borg-using-nuitka.sh +0 -0
  401. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/build-borg-using-pyinstaller.sh +0 -0
  402. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/chunker_bench.py +0 -0
  403. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/endian_interop_test.py +0 -0
  404. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/errorlist.py +0 -0
  405. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/fame.py +0 -0
  406. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/fetch-binaries +0 -0
  407. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/linux-run +0 -0
  408. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/lvm-thin-map.py +0 -0
  409. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/make-testdata/test_transfer_upgrade.sh +0 -0
  410. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/make.py +0 -0
  411. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/msys2-install-deps +0 -0
  412. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/sdist-sign +0 -0
  413. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/sign-binaries +0 -0
  414. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/scripts/upload-pypi +0 -0
  415. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/setup.cfg +0 -0
  416. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/setup.py +0 -0
  417. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/__init__.py +0 -0
  418. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/__main__.py +0 -0
  419. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/__init__.py +0 -0
  420. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/completion_cmd.py +0 -0
  421. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/archiver/repo_space_cmd.py +0 -0
  422. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/__init__.py +0 -0
  423. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/base.c +0 -0
  424. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/base.pxd +0 -0
  425. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/base.pyx +0 -0
  426. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash.c +0 -0
  427. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash.pyi +0 -0
  428. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash.pyx +0 -0
  429. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64.c +0 -0
  430. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64.pyi +0 -0
  431. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64.pyx +0 -0
  432. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64_impl.c +0 -0
  433. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/buzhash64_impl.h +0 -0
  434. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/failing.py +0 -0
  435. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc.c +0 -0
  436. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc.pyi +0 -0
  437. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc.pyx +0 -0
  438. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc_impl.c +0 -0
  439. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fastcdc_impl.h +0 -0
  440. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/fixed.py +0 -0
  441. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes.c +0 -0
  442. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes.pyi +0 -0
  443. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes.pyx +0 -0
  444. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes_impl.c +0 -0
  445. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/goldilocks_aes_impl.h +0 -0
  446. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/kernel_env.py +0 -0
  447. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_chunker.c +0 -0
  448. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_chunker.pxd +0 -0
  449. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_chunker.pyx +0 -0
  450. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_core.h +0 -0
  451. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_kernel.h +0 -0
  452. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/phte_scan.h +0 -0
  453. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes.c +0 -0
  454. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes.pyi +0 -0
  455. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes.pyx +0 -0
  456. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes_impl.c +0 -0
  457. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/rabin_aes_impl.h +0 -0
  458. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/reader.c +0 -0
  459. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/reader.pyi +0 -0
  460. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/reader.pyx +0 -0
  461. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes.c +0 -0
  462. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes.pyi +0 -0
  463. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes.pyx +0 -0
  464. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes_impl.c +0 -0
  465. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/chunkers/toeplitz_aes_impl.h +0 -0
  466. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/__init__.py +0 -0
  467. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/app.py +0 -0
  468. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/cockpit.tcss +0 -0
  469. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/runner.py +0 -0
  470. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/theme.py +0 -0
  471. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/translator.py +0 -0
  472. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/cockpit/widgets.py +0 -0
  473. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/__init__.py +0 -0
  474. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/crypto/file_integrity.py +0 -0
  475. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/digests.py +0 -0
  476. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/fslocking.py +0 -0
  477. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/fuse_impl.py +0 -0
  478. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/argparsing.py +0 -0
  479. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/datastruct.py +0 -0
  480. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/fs.py +0 -0
  481. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/lrucache.py +0 -0
  482. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/misc.py +0 -0
  483. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/msgpack.py +0 -0
  484. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/nanorst.py +0 -0
  485. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/progress.py +0 -0
  486. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/shellpattern.py +0 -0
  487. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/sorting.py +0 -0
  488. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/time.py +0 -0
  489. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/helpers/yes_no.py +0 -0
  490. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/__init__.py +0 -0
  491. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/__init__.py +0 -0
  492. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/low_level.c +0 -0
  493. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/low_level.pyi +0 -0
  494. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/crypto/low_level.pyx +0 -0
  495. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/fs.py +0 -0
  496. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/hashindex.py +0 -0
  497. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/helpers.py +0 -0
  498. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/repoobj.py +0 -0
  499. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/repository.py +0 -0
  500. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/legacy/upgrade.py +0 -0
  501. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/logger.py +0 -0
  502. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/paperkey.html +0 -0
  503. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/patterns.py +0 -0
  504. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/__init__.py +0 -0
  505. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/base.py +0 -0
  506. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/darwin.c +0 -0
  507. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/darwin.pyx +0 -0
  508. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/freebsd.c +0 -0
  509. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/freebsd.pyx +0 -0
  510. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/linux.c +0 -0
  511. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/linux.pyx +0 -0
  512. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/netbsd.pyx +0 -0
  513. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/posix.c +0 -0
  514. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/posix.pyx +0 -0
  515. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/posix_ug.py +0 -0
  516. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/solaris.py +0 -0
  517. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/syncfilerange.c +0 -0
  518. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/syncfilerange.pyx +0 -0
  519. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/windows.c +0 -0
  520. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/windows.pyx +0 -0
  521. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/windows_ug.py +0 -0
  522. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platform/xattr.py +0 -0
  523. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/platformflags.py +0 -0
  524. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/selftest.py +0 -0
  525. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/_common_test.py +0 -0
  526. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/analyze_cmd_test.py +0 -0
  527. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/argparsing_test.py +0 -0
  528. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/benchmark_cmd_test.py +0 -0
  529. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/check_cmd_remote_test.py +0 -0
  530. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/delete_cmd_test.py +0 -0
  531. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/dotdot_path.tar +0 -0
  532. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/find_cmd_test.py +0 -0
  533. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/help_cmd_test.py +0 -0
  534. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/list_cmd_test.py +0 -0
  535. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/match_archives_date_test.py +0 -0
  536. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/patterns_test.py +0 -0
  537. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/prune_cmd_test.py +0 -0
  538. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/repo12.tar.gz +0 -0
  539. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/restricted_permissions_test.py +0 -0
  540. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/serve_cmd_test.py +0 -0
  541. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/undelete_cmd_test.py +0 -0
  542. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/unusual_paths.tar +0 -0
  543. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/archiver/version_cmd_test.py +0 -0
  544. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/__init__.py +0 -0
  545. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/buzhash64_self_test.py +0 -0
  546. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/buzhash64_test.py +0 -0
  547. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/buzhash_self_test.py +0 -0
  548. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/buzhash_test.py +0 -0
  549. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/failing_test.py +0 -0
  550. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/fastcdc_test.py +0 -0
  551. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/fixed_self_test.py +0 -0
  552. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/fixed_test.py +0 -0
  553. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/goldilocks_aes_test.py +0 -0
  554. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/interaction_test.py +0 -0
  555. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/phte_chunkers_test.py +0 -0
  556. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/pytest_helpers.py +0 -0
  557. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/rabin_aes_test.py +0 -0
  558. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/reader_test.py +0 -0
  559. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/chunkers/toeplitz_aes_test.py +0 -0
  560. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/__init__.py +0 -0
  561. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/csprng_test.py +0 -0
  562. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/crypto/file_integrity_test.py +0 -0
  563. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/digests_test.py +0 -0
  564. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/fslocking_test.py +0 -0
  565. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/__init__.py +0 -0
  566. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/datastruct_test.py +0 -0
  567. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/efficient_collection_queue_test.py +0 -0
  568. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/fs_test.py +0 -0
  569. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/lrucache_test.py +0 -0
  570. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/misc_test.py +0 -0
  571. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/msgpack_test.py +0 -0
  572. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/nanorst_test.py +0 -0
  573. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/progress_test.py +0 -0
  574. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/shellpattern_test.py +0 -0
  575. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/sorting_test.py +0 -0
  576. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/time_test.py +0 -0
  577. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/helpers/yes_no_test.py +0 -0
  578. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacy_fs_test.py +0 -0
  579. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacy_helpers_test.py +0 -0
  580. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/legacy_upgrade_test.py +0 -0
  581. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/logger_test.py +0 -0
  582. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/patterns_test.py +0 -0
  583. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/__init__.py +0 -0
  584. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/all_test.py +0 -0
  585. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/darwin_test.py +0 -0
  586. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/freebsd_test.py +0 -0
  587. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/linux_test.py +0 -0
  588. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/platform_test.py +0 -0
  589. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/platform/windows_test.py +0 -0
  590. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/version_test.py +0 -0
  591. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/testsuite/xattr_test.py +0 -0
  592. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/upgrade.py +0 -0
  593. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/version.py +0 -0
  594. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/webdav.py +0 -0
  595. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borg/xattr.py +0 -0
  596. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/dependency_links.txt +0 -0
  597. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/entry_points.txt +0 -0
  598. {borgbackup-2.0.0b24 → borgbackup-2.0.0b25}/src/borgbackup.egg-info/top_level.txt +0 -0
@@ -131,13 +131,13 @@ so the repository storage layer never sees plaintext or has any notion of files/
131
131
  - **`repository.py`** — `Repository`, a key→value object store built on top of **borgstore**
132
132
  (`borgstore.store.Store`). Keys are 32-byte object IDs; the repo doesn't know what an "archive" or
133
133
  "file" is. borgstore provides the actual storage backends and transport: local filesystem,
134
- `ssh://` (borgstore ssh backend, optionally reusing `BORGSTORE_RSH`), and `rest://` (borgstore REST
135
- server, served by `borg serve --rest`). This replaces the borg 1.x segment/journal format — read
134
+ `ssh://` (borgstore REST backend talking HTTP over stdio over ssh to a remote `borg serve`,
135
+ optionally reusing `BORGSTORE_RSH`), `sftp://`, `http(s)://`, `rclone:`, `s3:`/`b2:`. This replaces the borg 1.x segment/journal format — read
136
136
  `docs/internals/data-structures.rst` before touching repository/object/format code.
137
- - **`archiver/serve_cmd.py`** — `borg serve` provides the server side for remote repositories: the
138
- default mode serves a repository over stdio to a connecting borgstore ssh backend, and
139
- `borg serve --rest` runs the borgstore REST server. (There is no separate `remote.py` / custom RPC
140
- layer anymore — borgstore owns the client/server transport.)
137
+ - **`archiver/serve_cmd.py`** — `borg serve` provides the server side for `ssh://` repositories:
138
+ `borg serve --rest` runs the borgstore REST server on stdio for a current repository, plain
139
+ `borg serve` serves a legacy borg 1.x repository via the legacy RPC protocol (`--from-borg1`,
140
+ `legacy/remote.py`).
141
141
  - **`crypto/key.py`, `crypto/low_level.pyx`** — encryption/authentication (AEAD: AES-256-OCB or
142
142
  ChaCha20-Poly1305; ids via HMAC-SHA256 or BLAKE3) and key file handling (keyfile vs repokey
143
143
  storage). The `id_hash` used for deduplication depends on the key/encryption mode.
@@ -168,7 +168,7 @@ so the repository storage layer never sees plaintext or has any notion of files/
168
168
  progress reporting, filesystem helpers); check here before writing a new utility, it may exist.
169
169
 
170
170
  **Client/server split:** most `do_*` archiver commands operate against a local or remote `Repository`
171
- transparently — the choice of local vs. `ssh://`/`rest://` is resolved by `Location` parsing in
171
+ transparently — the choice of local vs. `ssh://` etc. is resolved by `Location` parsing in
172
172
  `helpers/` and borgstore backend selection, and doesn't otherwise change command logic. `borg serve`
173
173
  on the remote end provides the server side.
174
174
 
@@ -1,11 +1,11 @@
1
1
  # Contributors
2
2
 
3
- 374 people have contributed to Borg, with 11,143 commits in total.
3
+ 375 people have contributed to Borg, with 11,344 commits in total.
4
4
  Thanks to everyone who helped!
5
5
 
6
6
  ![Contributors by commit count](FAME.svg)
7
7
 
8
- Generated on 2026-08-31 by `scripts/fame.py`, which computes the statistics with
8
+ Generated on 2026-09-21 by `scripts/fame.py`, which computes the statistics with
9
9
  [git-fame](https://github.com/casperdcl/git-fame), from the `master` branch
10
10
  only - commits that exist solely on other branches or in unmerged pull requests
11
11
  are not counted.
@@ -21,24 +21,24 @@ show up there, so the number understates early contributions. Generated files
21
21
 
22
22
  | Contributor | Commits | Lines | Files |
23
23
  |:---|---:|---:|---:|
24
- | Thomas Waldmann | 7,525 | 97,654 | 522 |
25
- | Marian Beermann | 1,140 | 7,759 | 156 |
26
- | Jonas Borgström | 560 | 970 | 38 |
24
+ | Thomas Waldmann | 7,693 | 102,270 | 525 |
25
+ | Marian Beermann | 1,140 | 7,574 | 156 |
26
+ | Jonas Borgström | 560 | 962 | 38 |
27
27
  | Antoine Beaupré | 285 | 437 | 33 |
28
- | Mrityunjay Raj | 237 | 9,007 | 103 |
28
+ | Mrityunjay Raj | 260 | 10,590 | 107 |
29
29
  | Andrey Bienkowski | 72 | 200 | 16 |
30
- | Ted Lawson | 71 | 4,578 | 39 |
31
- | Thalian | 63 | 564 | 29 |
32
- | Martin Hostettler | 46 | 2,559 | 9 |
33
- | dependabot[bot] | 45 | 14 | 4 |
30
+ | Ted Lawson | 71 | 4,364 | 39 |
31
+ | Thalian | 63 | 563 | 29 |
32
+ | dependabot[bot] | 51 | 17 | 7 |
33
+ | Martin Hostettler | 46 | 2,558 | 9 |
34
34
  | Milkey Mouse | 42 | 239 | 12 |
35
35
  | Dan Christensen | 40 | 5 | 2 |
36
36
  | Rayyan Ansari | 34 | 88 | 12 |
37
37
  | Abdel-Rahman | 30 | 2 | 2 |
38
- | Manuel Riel | 28 | 86 | 6 |
38
+ | Manuel Riel | 28 | 84 | 6 |
39
39
  | Nehalenniæ Oudin | 26 | 47 | 11 |
40
40
  | anarcat | 24 | 33 | 4 |
41
- | Hugo Wallenburg | 23 | 1,154 | 11 |
41
+ | Hugo Wallenburg | 23 | 1,102 | 11 |
42
42
  | Michael Hanselmann | 22 | 71 | 3 |
43
43
  | Björn Ketelaars | 17 | 28 | 4 |
44
44
  | SanskritFritz | 17 | 0 | 0 |
@@ -59,20 +59,20 @@ show up there, so the number understates early contributions. Generated files
59
59
  | rugk | 9 | 9 | 4 |
60
60
  | Carlo Teubner | 9 | 3 | 3 |
61
61
  | Per Guth | 9 | 1 | 1 |
62
+ | ThomasWaldmann | 8 | 179 | 1 |
62
63
  | Jakob Schnitzer | 8 | 35 | 1 |
63
- | Josh Soref | 8 | 3 | 3 |
64
- | Gianfranco Costamagna | 7 | 9 | 6 |
64
+ | Josh Soref | 8 | 2 | 2 |
65
+ | Gianfranco Costamagna | 7 | 8 | 5 |
65
66
  | Frank Sachsenheim | 7 | 2 | 1 |
66
67
  | Hartmut Goebel | 7 | 0 | 0 |
67
- | William D. Jones | 6 | 248 | 6 |
68
+ | William D. Jones | 6 | 215 | 6 |
68
69
  | Michael Deyaso | 6 | 165 | 14 |
69
70
  | Peter Gerber | 6 | 102 | 9 |
70
71
  | Alf Mikula | 6 | 19 | 1 |
71
72
  | Felix Schwarz | 6 | 4 | 2 |
72
73
  | Alexander-N | 6 | 0 | 0 |
73
- | Paul D | 5 | 178 | 42 |
74
- | ThomasWaldmann | 5 | 162 | 1 |
75
- | Simon Frei | 5 | 132 | 3 |
74
+ | Paul D | 5 | 176 | 41 |
75
+ | Simon Frei | 5 | 124 | 3 |
76
76
  | Dominik Stadler | 5 | 75 | 1 |
77
77
  | elandorr | 5 | 39 | 3 |
78
78
  | remyabel | 5 | 19 | 2 |
@@ -82,10 +82,10 @@ show up there, so the number understates early contributions. Generated files
82
82
  | step21 | 5 | 1 | 1 |
83
83
  | Radu Ciorba | 5 | 0 | 0 |
84
84
  | Charlie Herz | 4 | 626 | 5 |
85
- | Ebuzer Celil Durmaz | 4 | 80 | 5 |
86
- | Robert Blenis | 4 | 51 | 4 |
85
+ | Ebuzer Celil Durmaz | 4 | 78 | 5 |
86
+ | Robert Blenis | 4 | 49 | 4 |
87
87
  | Franco Ayala | 4 | 39 | 6 |
88
- | Suryansh Pal | 4 | 35 | 8 |
88
+ | Suryansh Pal | 4 | 34 | 8 |
89
89
  | 8bit | 4 | 29 | 5 |
90
90
  | Steve Groesz | 4 | 22 | 1 |
91
91
  | Ryan Polley | 4 | 12 | 4 |
@@ -95,7 +95,7 @@ show up there, so the number understates early contributions. Generated files
95
95
  | Narendra Vardi | 4 | 3 | 1 |
96
96
  | Alexander Pyhalov | 4 | 0 | 0 |
97
97
  | oxiedi | 4 | 0 | 0 |
98
- | Parman Mohammadalizadeh | 3 | 343 | 5 |
98
+ | Parman Mohammadalizadeh | 3 | 292 | 5 |
99
99
  | Stephan Herbers | 3 | 49 | 2 |
100
100
  | Charmi Kadi | 3 | 46 | 2 |
101
101
  | Martin Richtarsky | 3 | 31 | 4 |
@@ -130,7 +130,7 @@ show up there, so the number understates early contributions. Generated files
130
130
  | trxvorr | 2 | 103 | 7 |
131
131
  | Syed Ali Ghazi Ejaz | 2 | 90 | 4 |
132
132
  | David Rambo | 2 | 87 | 3 |
133
- | Soumik Dutta | 2 | 78 | 3 |
133
+ | Soumik Dutta | 2 | 76 | 3 |
134
134
  | Divyansh Agrawal | 2 | 43 | 4 |
135
135
  | Eric Wolf | 2 | 38 | 3 |
136
136
  | Ioannis Cherouvim | 2 | 30 | 2 |
@@ -151,10 +151,10 @@ show up there, so the number understates early contributions. Generated files
151
151
  | Vaskebjoern | 2 | 5 | 1 |
152
152
  | wormingdead | 2 | 5 | 1 |
153
153
  | Samuel | 2 | 4 | 3 |
154
- | a1346054 | 2 | 4 | 3 |
155
154
  | snsmac | 2 | 4 | 2 |
156
155
  | Andreas Gruhler | 2 | 3 | 1 |
157
156
  | Markus Engelbrecht | 2 | 3 | 1 |
157
+ | a1346054 | 2 | 3 | 2 |
158
158
  | bbx0 | 2 | 3 | 1 |
159
159
  | jan | 2 | 3 | 1 |
160
160
  | Fabian Fröhlich | 2 | 2 | 1 |
@@ -191,12 +191,12 @@ show up there, so the number understates early contributions. Generated files
191
191
  | motwok | 2 | 0 | 0 |
192
192
  | sven | 2 | 0 | 0 |
193
193
  | user062 | 2 | 0 | 0 |
194
- | Tarrailt | 1 | 365 | 8 |
194
+ | Tarrailt | 1 | 362 | 7 |
195
195
  | axapaxa | 1 | 105 | 2 |
196
196
  | Benedikt Seidl | 1 | 103 | 1 |
197
197
  | Aleksey Korol | 1 | 91 | 1 |
198
198
  | ebabcock93 | 1 | 84 | 1 |
199
- | mrityunjay | 1 | 75 | 5 |
199
+ | mrityunjay | 1 | 73 | 5 |
200
200
  | Rohan salunke | 1 | 62 | 8 |
201
201
  | Xiaocheng Song | 1 | 60 | 4 |
202
202
  | Mike Mason | 1 | 37 | 3 |
@@ -270,6 +270,7 @@ show up there, so the number understates early contributions. Generated files
270
270
  | Vagrant Cascadian | 1 | 1 | 1 |
271
271
  | targhs | 1 | 1 | 1 |
272
272
  | tree-wall | 1 | 1 | 1 |
273
+ | 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) | 1 | 1 | 1 |
273
274
  | Adam Kouse | 1 | 0 | 0 |
274
275
  | Aidan Woods | 1 | 0 | 0 |
275
276
  | Aiman | 1 | 0 | 0 |
@@ -16,22 +16,22 @@
16
16
  </style>
17
17
  <rect class="bg" x="0" y="0" width="760" height="524" rx="6"/>
18
18
  <text class="title" x="14" y="26">Borg contributors</text>
19
- <text class="subtitle" x="14" y="44">top 20 of 373 by commits on the master branch</text>
19
+ <text class="subtitle" x="14" y="44">top 20 of 374 by commits on the master branch</text>
20
20
  <text class="name" x="14" y="73">Thomas Waldmann</text>
21
21
  <rect class="bar" x="240" y="63" width="436" height="12" rx="2"/>
22
- <text class="count" x="746" y="73">7,525</text>
22
+ <text class="count" x="746" y="73">7,693</text>
23
23
  <text class="name" x="14" y="95">Marian Beermann</text>
24
- <rect class="bar" x="240" y="85" width="66" height="12" rx="2"/>
24
+ <rect class="bar" x="240" y="85" width="65" height="12" rx="2"/>
25
25
  <text class="count" x="746" y="95">1,140</text>
26
26
  <text class="name" x="14" y="117">Jonas Borgström</text>
27
27
  <rect class="bar" x="240" y="107" width="32" height="12" rx="2"/>
28
28
  <text class="count" x="746" y="117">560</text>
29
29
  <text class="name" x="14" y="139">Antoine Beaupré</text>
30
- <rect class="bar" x="240" y="129" width="17" height="12" rx="2"/>
30
+ <rect class="bar" x="240" y="129" width="16" height="12" rx="2"/>
31
31
  <text class="count" x="746" y="139">285</text>
32
32
  <text class="name" x="14" y="161">Mrityunjay Raj</text>
33
- <rect class="bar" x="240" y="151" width="14" height="12" rx="2"/>
34
- <text class="count" x="746" y="161">237</text>
33
+ <rect class="bar" x="240" y="151" width="15" height="12" rx="2"/>
34
+ <text class="count" x="746" y="161">260</text>
35
35
  <text class="name" x="14" y="183">Andrey Bienkowski</text>
36
36
  <rect class="bar" x="240" y="173" width="4" height="12" rx="2"/>
37
37
  <text class="count" x="746" y="183">72</text>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: borgbackup
3
- Version: 2.0.0b24
3
+ Version: 2.0.0b25
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>
@@ -32,7 +32,7 @@ Requires-Python: >=3.11
32
32
  License-File: LICENSE
33
33
  License-File: AUTHORS
34
34
  Requires-Dist: borghash~=0.2.0
35
- Requires-Dist: borgstore[blake3,rest]~=0.6.1
35
+ Requires-Dist: borgstore[blake3,rest]~=0.7.0
36
36
  Requires-Dist: msgpack<=1.2.2,>=1.0.3
37
37
  Requires-Dist: packaging
38
38
  Requires-Dist: platformdirs<5.0.0,>=3.0.0; sys_platform == "darwin"
@@ -53,11 +53,11 @@ Provides-Extra: mfusepy
53
53
  Requires-Dist: mfusepy<4.0.0,>=3.1.0; extra == "mfusepy"
54
54
  Provides-Extra: nofuse
55
55
  Provides-Extra: s3
56
- Requires-Dist: borgstore[blake3,rest,s3]~=0.6.1; extra == "s3"
56
+ Requires-Dist: borgstore[blake3,rest,s3]~=0.7.0; extra == "s3"
57
57
  Provides-Extra: sftp
58
- Requires-Dist: borgstore[blake3,rest,sftp]~=0.6.1; extra == "sftp"
58
+ Requires-Dist: borgstore[blake3,rest,sftp]~=0.7.0; extra == "sftp"
59
59
  Provides-Extra: rclone
60
- Requires-Dist: borgstore[blake3,rclone,rest]~=0.6.1; extra == "rclone"
60
+ Requires-Dist: borgstore[blake3,rclone,rest]~=0.7.0; extra == "rclone"
61
61
  Provides-Extra: cockpit
62
62
  Requires-Dist: textual>=6.8.0; extra == "cockpit"
63
63
  Dynamic: description
@@ -130,8 +130,7 @@ Main features
130
130
  authenticity.
131
131
 
132
132
  If you do not need confidentiality, there are also modes that only
133
- authenticate (``authenticated-sha256`` / ``authenticated-blake3``) and
134
- modes that do neither (``none-sha256`` / ``none-blake3``).
133
+ authenticate (``authenticated-sha256`` / ``authenticated-blake3``).
135
134
 
136
135
  **Hashing**
137
136
  You can choose between HMAC-SHA256 and Blake3.
@@ -152,7 +151,7 @@ Main features
152
151
  **Off-site backups**
153
152
  Borg can store data on any remote host accessible via misc. protocols:
154
153
 
155
- * ``rest://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
154
+ * ``ssh://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
156
155
  (REST-http-over-tcp). Significant performance gains can be achieved with
157
156
  these by having a remote agent (borg must be installed on the repo server).
158
157
  * ``sftp://``
@@ -81,8 +81,7 @@ Main features
81
81
  authenticity.
82
82
 
83
83
  If you do not need confidentiality, there are also modes that only
84
- authenticate (``authenticated-sha256`` / ``authenticated-blake3``) and
85
- modes that do neither (``none-sha256`` / ``none-blake3``).
84
+ authenticate (``authenticated-sha256`` / ``authenticated-blake3``).
86
85
 
87
86
  **Hashing**
88
87
  You can choose between HMAC-SHA256 and Blake3.
@@ -103,7 +102,7 @@ Main features
103
102
  **Off-site backups**
104
103
  Borg can store data on any remote host accessible via misc. protocols:
105
104
 
106
- * ``rest://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
105
+ * ``ssh://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
107
106
  (REST-http-over-tcp). Significant performance gains can be achieved with
108
107
  these by having a remote agent (borg must be installed on the repo server).
109
108
  * ``sftp://``
@@ -33,6 +33,13 @@ Binaries built on GitHub servers
33
33
 
34
34
  borg-linux-glibc243-x86_64-gh Linux AMD/Intel (built on Ubuntu 26.04 LTS with glibc 2.43)
35
35
  borg-linux-glibc243-arm64-gh Linux ARM (built on Ubuntu 26.04 LTS with glibc 2.43)
36
+ borg-linux-glibc239-x86_64-gh Linux AMD/Intel (built on Ubuntu 24.04 LTS with glibc 2.39)
37
+ borg-linux-glibc239-arm64-gh Linux ARM (built on Ubuntu 24.04 LTS with glibc 2.39)
38
+
39
+ The glibc239 binaries are for systems with an older glibc, and for CPUs below
40
+ x86-64-v3, on which the glibc243 x86_64 binary does not run ("Illegal
41
+ instruction"). As Ubuntu 24.04 only has OpenSSL 3.0 and Python 3.12, they bundle
42
+ OpenSSL 3.5 and Python 3.14 built from source.
36
43
 
37
44
  borg-macos-15-arm64-gh macOS Apple Silicon (built on macOS 15 w/o FUSE support)
38
45
  borg-macos-15-x86_64-gh macOS Intel (built on macOS 15 w/o FUSE support)
@@ -163,6 +163,152 @@ Compatibility notes:
163
163
  Change Log 2.x
164
164
  ==============
165
165
 
166
+ Version 2.0.0b25 (2026-09-27)
167
+ -----------------------------
168
+
169
+ Breaking changes (you must create new repos for b25):
170
+
171
+ - cli: use ssh:// URLs (not rest://), #9765. ssh:// repository URLs access
172
+ current repositories via REST over ssh. With --from-borg1, they access
173
+ legacy borg 1.x repositories via the legacy RPC protocol over ssh.
174
+ - cli: remove the none-sha256 and none-blake3 encryption modes, use the
175
+ authenticated-sha256 and authenticated-blake3 modes instead.
176
+ - repository: use an ini-style config/config text object (repo version 5)
177
+ instead of the manifest, id, version and readme objects. The encryption and
178
+ id-hash algorithms are also given there as plain text.
179
+ - store hash: use the much faster, pure-software blake3 hash instead of sha256
180
+ to name content-addressed objects in the store.
181
+ - the lock, index and cache store objects are now protected by the repository
182
+ key: encrypted and authenticated in the encrypting modes, authenticated only
183
+ in the authenticated modes, #9819, #10235, #8386. As locking needs the key,
184
+ borg asks for the passphrase before waiting for the lock, and break-lock and
185
+ repo-delete (also with --force) need the key, too.
186
+ - drop OBJ_VERSION_NO_HEADER_AAD (pack object format v1) support, #9973
187
+ - KeyType: renumber the authenticated key types to 0x50 / 0x60
188
+
189
+ New features:
190
+
191
+ - repo-create: store default compression and chunker params in the repository, #346
192
+ - create/import-tar --json: report the deduplicated size of the new archive, #10335
193
+ - diff --stats: show a summary of the differences, #796
194
+ - repo-info: show whether the key uses an empty passphrase, #9072
195
+ - the "previously unknown unencrypted repository" warning now says why the repository
196
+ is considered unencrypted: an authenticated mode (no data encryption) or a
197
+ repokey with an empty passphrase, #9072
198
+ - mount: support Windows using WinFsp (via mfusepy), #2316
199
+ - import-tar --strip-components: strip leading path components, #6461
200
+ - add the BORG_NEW_PASSCOMMAND and BORG_NEW_PASSPHRASE_FD env vars
201
+ - tag: add --clear to remove all normal tags
202
+
203
+ Fixes:
204
+
205
+ - crypto: the AEAD ciphers (AES-OCB, ChaCha20-Poly1305) feed their input to OpenSSL in
206
+ <= 1 GiB chunks to overcome the 32-bit size limit of the OpenSSL API.
207
+ - repository: raise DoesNotExist for a missing ssh:// repository, #10365
208
+ - --from-borg1 via ssh:// failed with a borg 1.x "borg serve" (e.g. borg
209
+ transfer): the legacy client used RPC methods borg 1.x does not have and did
210
+ not convert the bytes a borg 1.x server sent back.
211
+ - --from-borg1: borg 1.x repositories in authenticated or authenticated-blake2
212
+ mode could not be accessed ("passphrase is incorrect"), as their key was not
213
+ decrypted with the pbkdf2 key derivation borg 1.x used for it.
214
+ - repository: show a clear error message for borg 1.x repositories, fixing a
215
+ crash when --from-borg1 was not given.
216
+ - compact:
217
+
218
+ - build the chunk index once, not three times
219
+ - validate a gap object before dropping its bytes, #10093
220
+ - do not rewrite or merge packs recorded as corrupt, #10410
221
+ - repo-compress: do not rewrite packs recorded as corrupt, #10410
222
+ - check:
223
+
224
+ - use one chunk index for the checker and the repository, #10364
225
+ - report missing/corrupted item_ptrs chunks, #10421
226
+ - --verify-data: read the repo pack by pack, #9998
227
+ - --repair: validate the repository index rebuild with the key, #9901
228
+ - --repair: misc. other improvements and fixes, #8476
229
+ - --repair: remove the index entries of missing packs, #8572, #9898
230
+ - repository: don't mask the original exception when unwinding with buffered
231
+ chunks
232
+ - treat an empty BORG_ZSTD_MT_WORKERS as unset (an empty value made borg fail)
233
+ - extract:
234
+
235
+ - do not abort on corrupted chunks, replace them with all-zero data and warn, #840
236
+ - report a failing close() of an extracted file as a warning
237
+ - refuse to extract into a non-empty directory, #10057
238
+ - --continue: keep groups of hard links together
239
+ - prepare_subprocess_env: remove all passphrase-related env vars, #6480
240
+ - mount: mfusepy: pass the libfuse options as keyword arguments, fix getattr with a file handle
241
+ - index rebuild: abort cleanly on a corrupt object header, #10122
242
+ - diff:
243
+
244
+ - align the chunk lists to count added/removed bytes
245
+ - do not report a merely touched file as modified when the chunker params
246
+ differ, #10351
247
+ - report a file as modified when chunks were reordered or duplicated
248
+ - import-tar: show the stored paths in the file status output
249
+ - locking: try to acquire a lock at least once before timing out, also with --lock-wait 0
250
+ - repoobj: catch get() errors in --find-lost-archives, #10318
251
+ - repo-list, compact: handle archives with a missing metadata object, #10435
252
+ - create: replace --tags with --tag, taking one tag per option, #10430
253
+ - tag:
254
+
255
+ - --set/--add/--remove take one tag per option, #10430
256
+ - only rewrite the archive metadata if the tags changed
257
+ - warn if --set is refused because it would remove special tags
258
+ - refuse to change the tags of all archives without a selection
259
+
260
+ Other changes:
261
+
262
+ - update pyinstaller to 6.22.3
263
+ - require borgstore 0.7.0
264
+ - Linux binaries:
265
+
266
+ - build binaries for older CPUs and older glibc on Ubuntu 24.04, #10342
267
+ - reduce binary size, #10345:
268
+
269
+ - strip debug symbols
270
+ - avoid bundling OpenSSL twice
271
+ - bundle only needed botocore models
272
+
273
+ - compress: reuse the zstd compressor per thread, improving throughput especially
274
+ for big chunks at fast, low-compression zstd levels
275
+ - add_warning: store exceptions given as args as text, not as exception objects,
276
+ reducing memory usage when there are many warnings
277
+ - optimize speed, especially for remote repos and repos with many archives:
278
+
279
+ - load all archives' metadata with one Store.gather
280
+ - reuse the listed archive metadata when opening an Archive
281
+ - check:
282
+
283
+ - do not reject items with unknown keys, drop item_keys from the manifest
284
+ - resync on any item-key-like first key, not only on known keys
285
+ - always require the borg key (now needed to access the cache and the index)
286
+ - --repair: re-read only the packs the repair wrote, #8466
287
+ - make the chunk index rebuild interruptible, #10042
288
+ - remove the repository feature flags mechanism (used to be in the manifest,
289
+ but was never really used)
290
+ - security: drop the manifest timestamp replay check (not needed anymore)
291
+ - debug get-obj, put-obj, delete-obj: need the key now (to access the chunk index)
292
+ - docs:
293
+
294
+ - extract: document the metadata that can only be restored as root, #8088
295
+ - fix two inaccuracies in the borg diff JSON docs, #7486
296
+ - key export --paper: fix the restore hint for borg 2 syntax, #10428
297
+ - an empty passphrase can be replaced later with ``borg key change-passphrase``, #9072
298
+ - add a FAQ entry about deduplicating related repositories on the filesystem, see #9104
299
+ - derive the borg passphrase from a YubiKey (challenge-response), #4549
300
+ - protect the borg passphrase with age (which also supports crypto tokens,
301
+ TPM, Apple Secure Enclave, ... via age plugins), #4549
302
+ - explain the tags: archive match pattern
303
+ - tests:
304
+
305
+ - add an archiver-level test for BORG_WORKAROUNDS=authenticated_no_key
306
+ (make sure an authenticated mode repository can be read using this
307
+ workaround, even if the key or passphrase is lost)
308
+ - CI: run the S3 tests against moto instead of MinIO, #10361
309
+ - CI: add a swap zvol on omniOS to fix sporadic fork ENOMEM
310
+
311
+
166
312
  Version 2.0.0b24 (2026-09-02)
167
313
  -----------------------------
168
314
 
@@ -206,7 +352,7 @@ Fixes:
206
352
  - chunkers:
207
353
 
208
354
  - goldilocks-aes: fix build on 32-bit archs (no __uint128_t there)
209
- - *-aes chunkers: use the aes-arm64 instructions on Linux and FreeBSD.
355
+ - ``*-aes`` chunkers: use the aes-arm64 instructions on Linux and FreeBSD.
210
356
  - completions:
211
357
 
212
358
  - fish: fix the completion and error message issues, #3086
@@ -232,7 +378,7 @@ Other changes:
232
378
  - benchmark cpu: also benchmark zstd,-4
233
379
  - chunkers:
234
380
 
235
- - speed up the *-aes chunkers on x86-64
381
+ - speed up the ``*-aes`` chunkers on x86-64
236
382
  - speed up the buzhash64 kernel on arm64 / Apple Silicon, use the blockwise
237
383
  kernel on aarch64 by default (now faster than NEON)
238
384
  - speed up the fastcdc blockwise kernel (default kernel on platforms other
@@ -290,7 +436,7 @@ Other changes:
290
436
  - fix OpenSSL, rclone and IV details in internals/security.rst
291
437
  - update the mount -o versions example to the current naming
292
438
  - fix the man page install command in installation.rst
293
- - fix BORG_ASSERT_ID claims about authenticated-* and none-* modes
439
+ - fix BORG_ASSERT_ID claims about authenticated and none modes
294
440
  - point borg delete -a pattern help at the match-archives topic
295
441
 
296
442
 
@@ -341,7 +487,7 @@ New features:
341
487
  - analyze: report deduplicated size of a set of archives, #5741, #9992
342
488
  - compression: support zstd's negative ("fast") levels, ``zstd,-1`` .. ``zstd,-128``, #9950.
343
489
  They trade compression ratio for speed. Compatible with existing repositories.
344
- - create --encryption: new none-* and authenticated-* modes, #9104.
490
+ - create --encryption: new none and authenticated modes, #9104.
345
491
  Uses either sha256 or blake3, improves authentication and checksumming capabilities.
346
492
  - create: --map and --reuse-from for efficient block device snapshot backups.
347
493
  Adds the lvm-thin-map.py script to generate input maps from thin_dump XML, see #4363.
@@ -1392,7 +1538,7 @@ Other changes:
1392
1538
  when borg does not need to read borg 1.x repos/archives anymore, after
1393
1539
  users have transferred their archives, even much more can be removed.
1394
1540
  - docs: updated / removed outdated stuff
1395
- - renamed r* commands to repo-*
1541
+ - renamed r... commands to repo-...
1396
1542
 
1397
1543
 
1398
1544
  Version 2.0.0b9 (2024-07-20)