borgbackup 1.4.2__tar.gz → 1.4.4__tar.gz

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