Commit graph

9003 commits

Author SHA1 Message Date
Thomas Waldmann
5c3d9dec4b
remove support for / testing on Python 3.9
Python 3.9 will run out of upstream support 2025-10 anyway.
So we can also drop it right now and have faster CI testing.
2025-04-24 22:29:55 +02:00
TW
40c20478ca
Merge pull request #8788 from ThomasWaldmann/obfuscation-fixes-master
Obfuscation fixes (master)
2025-04-24 22:18:28 +02:00
TW
a2f95c7e2a
Merge pull request #8789 from ThomasWaldmann/remove-py39
remove support for / testing on Python 3.9
2025-04-24 22:18:06 +02:00
Thomas Waldmann
a90473600d
remove support for / testing on Python 3.9
Python 3.9 will run out of upstream support 2025-10 anyway.
So we can also drop it right now and have faster CI testing.
2025-04-24 20:55:02 +02:00
Thomas Waldmann
738b0c8cb6
only obfuscate the size of file content chunks, fixes #7559
before this fix, borg also obfuscated other chunks it creates,
e.g. the archive metadata stream chunks, which is not necessary
and only added a lot of overhead.

as we have meta["type"] in borg2, this is easy to fix here.
2025-04-24 20:39:41 +02:00
Thomas Waldmann
cb34a1c705
cosmetic: move padme obfuscation method closer to the other o. methods 2025-04-24 19:53:17 +02:00
TW
45435514bd
Merge pull request #8784 from ThomasWaldmann/cache-fixes-master
chunks cache fixes (master)
2025-04-23 02:01:05 +02:00
Thomas Waldmann
3d92e0812c
AdhocWithFilesCache: fix call to _maybe_write_chunks_cache 2025-04-23 00:14:26 +02:00
Thomas Waldmann
7dfc88a493
ChunksMixin: don't use self._chunks until it is demand-built 2025-04-23 00:06:46 +02:00
TW
8c5559cf3a
Merge pull request #8780 from ThomasWaldmann/rel200b15
Release 2.0.0b15
2025-04-22 13:23:54 +02:00
Thomas Waldmann
18dbfd3985
update CHANGES 2025-04-21 21:08:45 +02:00
Thomas Waldmann
4550a49b0f
build_usage / build_man 2025-04-21 21:08:42 +02:00
Thomas Waldmann
8d8fd598af
update development.lock.txt 2025-04-21 21:08:41 +02:00
Thomas Waldmann
3ea0c9a3f1
vagrant: use Python 3.12.10 2025-04-21 21:08:39 +02:00
Thomas Waldmann
cb3253191d
vagrant: install borgstore with all options
now we have a new s3 backend.
2025-04-21 20:27:53 +02:00
Thomas Waldmann
35d7bb316c
adapt to new deleted flag semantics in borgstore 0.2.0
also: require borgstore 0.2.x
2025-04-21 20:25:31 +02:00
TW
66b952ca24
Merge pull request #8779 from ThomasWaldmann/update-changes-master
update CHANGES
2025-04-21 18:57:38 +02:00
Thomas Waldmann
a69fd81098
update CHANGES 2025-04-21 18:36:23 +02:00
TW
b5e95daccf
Merge pull request #8778 from ThomasWaldmann/assert-quickfix-master
quickfix to disallow running borg with assertions switched off, see #8649
2025-04-21 18:34:27 +02:00
Thomas Waldmann
13b7e1f5a8
quickfix to disallow running borg with assertions switched off, see #8649
forward port of #8685 to master branch.
2025-04-21 17:44:20 +02:00
TW
4f38dc6031
Merge pull request #8761 from ThomasWaldmann/fix-remote-modern-exit-codes-master
fix remote repository exception handling / exit codes, fixes #8631
2025-04-21 15:09:07 +02:00
TW
4c8cb05ad7
Merge pull request #8774 from ThomasWaldmann/license-spdx-master
pyproject.toml: SPDX expression for license, add license-files, see #8771
2025-04-20 15:28:36 +02:00
Thomas Waldmann
0a3ccf1094
pyproject.toml: SPDX expression for license, add license-files, see #8771
Also: raise setuptools version requirement appropriately.
2025-04-19 21:39:21 +02:00
TW
a34f4a1dae
Merge pull request #8768 from sersorrel/push-rzkyyukwytos
Remove unnecessary check that Padmé overhead is at most 12%
2025-04-19 11:25:51 +02:00
ash
d1899c1919 Remove unnecessary check that Padmé overhead is at most 12%
It's easy enough to verify exhaustively for any plausible chunker params
that Padmé always produces at most a 12% overhead. Checking that again
at runtime is pointless.
2025-04-18 23:00:23 +01:00
Thomas Waldmann
8ec48ffb05
refactor test_return_codes
... so works in a similar way as test_exit_codes.
2025-04-17 17:57:38 +02:00
Thomas Waldmann
0b284db33a
fix remote repository exception handling / exit codes, fixes #8631
also: reduce code duplication.
2025-04-17 17:45:15 +02:00
TW
da3105f1e0
Merge pull request #8758 from ThomasWaldmann/fix-nfs4-acl-freebsd-master
freebsd: fix nfs4 acl processing, fixes #8756 (master)
2025-04-17 17:16:57 +02:00
Thomas Waldmann
df2bb8c988
freebsd: fix nfs4 acl processing, fixes #8756
This only happened when:
- using borg extract --numeric-ids
- processing NFS4 ACLs

It didn't affect POSIX ACL processing.

This is rather old code, so it looks like nobody used that
code or the bug was not reported.

The bug was discovered by PyCharm's "Junie" AI. \o/
2025-04-17 15:41:31 +02:00
TW
3651d26b1e
Merge pull request #8747 from destructor64/key_import_error_message_fix
Fix paper key import error message
2025-04-13 19:02:42 +02:00
Peter Zangerl
ce5dd4bed2 Fix paper key import error message 2025-04-13 10:06:16 +02:00
Xiaocheng Song
0d9f375fdd
macOS: retrieve birthtime in nanosecond precision via system call, fixes #8724 2025-04-12 14:03:48 +02:00
TW
e12b3bb2f6
Merge pull request #8568 from ThomasWaldmann/remove-chunks-healthy
Item: remove .chunks_healthy, fixes #8559
2025-04-11 21:11:42 +02:00
TW
bec6da4c15
Merge pull request #8741 from ThomasWaldmann/update3-rtd-master
docs: fix search preview
2025-04-10 21:31:23 +02:00
Thomas Waldmann
c14e803429
docs: fix template to support search result preview 2025-04-10 21:20:37 +02:00
Thomas Waldmann
30e9bc9d83
docs: add layout.html template from guzzle_sphinx_theme 0.7.11 2025-04-10 21:19:15 +02:00
TW
0eef4abd59
Merge pull request #8739 from ThomasWaldmann/update2-rtd-master
docs: add sphinxcontrib.jquery
2025-04-10 20:10:21 +02:00
Thomas Waldmann
f55d64db0b
docs: add sphinxcontrib.jquery
The html generated uses jquery ($(...)),
but sphinx does not include it anymore since a while.

also: correctly add guzzle_sphinx_theme to extensions.
2025-04-10 19:50:12 +02:00
TW
f3eeae9908
Merge pull request #8738 from ThomasWaldmann/update-rtd-master
docs theme updates / fixes
2025-04-10 19:01:23 +02:00
Thomas Waldmann
d312ddb1f7
docs: register theme as extension 2025-04-10 18:56:25 +02:00
TW
4c09535b08
Merge pull request #8736 from ThomasWaldmann/port-8615-master
Docs about slow msgpack when using the binary (master)
2025-04-09 17:38:00 +02:00
Thomas Waldmann
2996daff97
docs: add FAQ entry about pure-python msgpack warning, fixes #8323 2025-04-09 17:07:18 +02:00
Thomas Waldmann
1252c16373
binary readme: first check faq and existing issues 2025-04-09 17:06:36 +02:00
TW
279bdc3fee
Merge pull request #8726 from ThomasWaldmann/update-changes
update CHANGES
2025-04-09 16:00:21 +02:00
Thomas Waldmann
992b5f18c8
update CHANGES 2025-04-06 18:25:11 +02:00
Thomas Waldmann
3fdf7a3e78
fetch_many: add replacement_chunk=True param
Sometimes, usually for file content chunks, it makes sense to
generate all-zero replacement chunks on-the-fly.

But for e.g. an archive items metadata stream, this does not
make sense (because it wants to msgpack.unpack the data), so
we rather want None. In that case, we do not have the size
information anyway.
2025-04-06 17:35:33 +02:00
Thomas Waldmann
84fe9d2c67
extract, diff, ...: use raise_missing=False
preloading: always use raise_missing=False, because
the behaviour is defined at preloading time.

fetch_many: use get_many with raise_missing=False.
if get_many yields None instead of the expected chunk
cdata bytes, on-the-fly create an all-zero replacement
chunk of the correct size (if the size is known) and
emit an error msg about the missing chunk id / size.

note: for borg recreate with re-chunking this is a bit
unpretty, because it will transform a missing chunk into
a zero bytes range in the target file in the recreated
archive. it will emit an error message at recreate time,
but afterwards the recreated archive will not "know"
about the problem any more and will just have that
zero-patched file.
so guess borg recreate with re-chunking should better
only be used on repos that do not miss chunks.
2025-04-06 17:35:31 +02:00
Thomas Waldmann
a9b2291281
get/get_many: add raise_missing=True param 2025-04-06 17:35:30 +02:00
Thomas Waldmann
e48ccc7627
simplify fetch_many api
it now takes either:
- a list of ChunkListEntry namedtuples
- a list of chunk IDs [bytes]
2025-04-06 17:35:28 +02:00
Thomas Waldmann
6357f2ebc1
Item: remove .chunks_healthy, fixes #8559
Well, it's not totally removed, some code in Item, Archive and
borg transfer --from-borg1 needs to stay in place, so that we
can pick the CORRECT chunks list that is in .chunks_healthy
for all-zero-replacement-chunk-patched items when transferring
archives from borg1 to borg2 repos.

transfer: do not transfer replacement chunks, deal with missing chunks in other_repo

FUSE fs read: IOError or all-zero result
2025-04-06 17:35:22 +02:00