Commit Graph

6753 Commits

Author SHA1 Message Date
TW 1b9a49c5c2
Merge pull request #6588 from ThomasWaldmann/docs-virt-master
virtualisation speed tips, fixes #6456
2022-04-13 23:08:00 +02:00
TW cfb0821006
Merge pull request #6586 from ThomasWaldmann/alpha
master branch is alpha
2022-04-13 22:50:47 +02:00
Thomas Waldmann 18c398e708 virtualisation speed tips 2022-04-13 22:48:27 +02:00
Thomas Waldmann 2872d7acfd point to setup.cfg also 2022-04-13 03:50:54 +02:00
Thomas Waldmann f5f85b9e76 use borgbackup.org as main site
the github site is linked via project_urls -> Source Code
2022-04-13 03:48:33 +02:00
Thomas Waldmann 4b561cfb95 master branch is alpha development status (or worse) 2022-04-13 03:42:05 +02:00
TW b59230380f
Merge pull request #6580 from ThomasWaldmann/docs-max-duration-master
docs: improve borg check --max-duration description
2022-04-12 19:41:04 +02:00
TW 8d3db4637d
Merge pull request #6564 from ThomasWaldmann/deleted-key-master
load_key: no key is same as empty key, fixes #6441
2022-04-12 19:06:12 +02:00
TW 6c74cccbeb
Merge pull request #6578 from ThomasWaldmann/compact-docs-master
docs: borg compact --cleanup-commits also runs a normal compaction
2022-04-12 18:53:37 +02:00
Thomas Waldmann e90cf8a32f docs: improve borg check --max-duration description 2022-04-12 18:43:52 +02:00
TW bc3b2eb719
Merge pull request #6575 from ThomasWaldmann/more-robust-iterator-master
borg check improvements (master)
2022-04-12 18:13:51 +02:00
Thomas Waldmann 7ae76962f9 docs: borg compact --cleanup-commits also runs a normal compaction, fixes #6324 2022-04-12 18:10:44 +02:00
Thomas Waldmann b5f7f2376c check archives: improve error handling for corrupt archive metadata block
this is similar to #4777.

borg check must not crash if an archive metadata block does not decrypt.

Instead, report the archive_id, remove the archive from the manifest and skip to the next archive.
2022-04-12 17:47:43 +02:00
Thomas Waldmann ced3d8b9d5 check archive: make robust_iterator more robust, fixes #4777
borg check must not crash if an archive metadata chunk does not decrypt.

Instead, report the chunk and skip to the next one.
2022-04-12 17:47:32 +02:00
TW 6bb75ddf6b
Merge pull request #6568 from jwilk-forks/secure-erase-msg
Remove stray punctuation from secure-erase message
2022-04-11 19:51:39 +02:00
Jakub Wilk 3a5c79e881 remove stray punctuation from secure-erase message 2022-04-11 18:47:59 +02:00
TW b2ce258066
Merge pull request #6565 from hexagonrecursion/move-tests
Fix selftest
2022-04-11 11:23:05 +02:00
Andrey Andreyevich Bienkowski 08f82ee408
Argon2: documentation and changelog (#6560)
docs: borg key change-algorithm
docs: borg init --key-algorithm
docs: "this is not a borg repo" can be due to argon2 and old borg
2022-04-11 11:21:07 +02:00
Andrey Bienkowski 8e8e14c374 Fix selftest
selftest imports testsuite.crypto
I did not realise this and imported pytest from testsuite.crypto
This broke the selftest.

Solution: move the tests that depend on pytest to testsuite.key.
All three affected tests are tests for the Key classes, so
this is probably a better plase for them anyway.
2022-04-11 07:00:29 +03:00
Thomas Waldmann f5cddf0224 load_key: no key is same as empty key, fixes #6441
when migrating from repokey to keyfile, we just store an empty key into the repo config,
because we do not have a "delete key" RPC api. thus, empty key means "there is no key".

here we fix load_key, so that it does not behave differently for no key and empty key:
in both cases, it just returns an empty value.

additionally, we strip the value we get from the config, so whitespace does not matter.

All callers now check for the repokey not being empty, otherwise RepoKeyNotFoundError
is raised.
2022-04-10 20:58:59 +02:00
TW dfd4bd7e00
Merge pull request #6556 from hexagonrecursion/kdf-refactor
Move the key derivation code from helpers.Passphrase to crypto.FlexiKey
2022-04-10 17:07:17 +02:00
Andrey Bienkowski 0c29faddec Simplify tests 2022-04-10 15:44:51 +03:00
Andrey Bienkowski 6cf5ae4ca1 Give types for every argument 2022-04-10 15:36:46 +03:00
Andrey Bienkowski fc6d423052 Passphrase.argon2 -> FlexiKey.argon2 2022-04-10 15:06:26 +03:00
Andrey Bienkowski 0850a7c295 Passphrase.kdf -> FlexiKey.pbkdf2 2022-04-10 05:33:10 +03:00
TW eba6d5cd1c
Merge pull request #6553 from ThomasWaldmann/update-changes2
update CHANGES
2022-04-09 21:26:50 +02:00
Thomas Waldmann 83941d0b83 update CHANGES 2022-04-09 20:42:40 +02:00
TW 28fa9e0f0b
Merge pull request #6523 from ThomasWaldmann/pax-borg-item-master
import/export-tar: --tar-format=BORG: roundtrip ALL item metadata
2022-04-09 20:22:36 +02:00
TW 1b95950613
Merge pull request #6514 from ThomasWaldmann/repo-v2
repository v2
2022-04-09 19:27:00 +02:00
Thomas Waldmann 38f390ae45 repository: create and use version 2 repos only for now
for now, this code shall only work on v2 repos (created by this code).

the code to read v1 repos is still present though, so for experiments,
it is possible to change the repo version in the repo config from 1 to
2 manually.

having version 2 in the repo config also avoids that borg < 1.3 is
used on such a repo, which would cause damage:
old borg would not recognize the PUT2 tagged segment entries and
old borg check --repair would likely kill them all due to that.

also: keep repo version in Repository.version
2022-04-09 18:58:47 +02:00
Thomas Waldmann 85d4b98a16 docs: updated for repository version 2, PUT2 tag 2022-04-09 18:58:47 +02:00
Thomas Waldmann 52f75d7722 repository: implement PUT2: header crc32, overall xxh64, fixes #1704
note: this required a slight increase of MAX_OBJECT_SIZE so that MAX_DATA_SIZE
      could stay the same as before.

For PUT2, compute the hash over the whole entry (header and content, excluding
hash and crc32 fields, because the crc32 computation includes the hash).

Also: refactor crc32 checks into function, use f-strings, structure _read in
a more logical sequential order.

write_put: avoid creating a large temporary bytes object

why use xxh64?
- fast even without hw acceleration
- borg depends on it already anyway
- stronger than crc32 and strong enough for this purpose
2022-04-09 18:58:47 +02:00
TW 7d33ad3db1
Merge pull request #6552 from hexagonrecursion/cpu
Argon2 fourth part: borg benchmark cpu: use ARGON2_ARGS
2022-04-09 15:48:07 +02:00
Andrey Bienkowski 18963bff5f Remove outdated comment 2022-04-09 16:18:03 +03:00
Andrey Bienkowski 102ce3c5b6 borg benchmark cpu: use ARGON2_ARGS 2022-04-09 14:14:00 +03:00
Andrey Andreyevich Bienkowski d386b0346d
Argon2 the third part: `borg key change-algorithm` (#6549)
add `borg key change-algorithm` to change the kdf / key processing
2022-04-09 12:42:05 +02:00
TW 1a9841347a
Merge pull request #6550 from ThomasWaldmann/update-changes
update CHANGES (master)
2022-04-08 19:49:21 +02:00
Thomas Waldmann 6ffd11fc12 update CHANGES (master) 2022-04-08 19:40:20 +02:00
TW 1e213e93a3
Merge pull request #6544 from ThomasWaldmann/fix-progress-archivename-master
escape % chars in archive name, fixes #6500
2022-04-07 20:22:20 +02:00
TW d1c018bef4
Merge pull request #6546 from ThomasWaldmann/modernize-setuptools_scm
modernize setuptools _scm usage
2022-04-07 20:10:28 +02:00
Thomas Waldmann f930fe3f26 relax Cython requirement
0.27 was broken, but it will install the latest release anyway now.
2022-04-07 19:12:19 +02:00
Thomas Waldmann 9642ace953 require/configure setuptools_scm via pyproject.toml 2022-04-07 19:11:15 +02:00
Thomas Waldmann 911da7a1cf escape % chars in archive name, fixes #6500
also: fix percentage format for float value.
2022-04-07 18:07:50 +02:00
Andrey Andreyevich Bienkowski 56c27a99d0
Argon2 the second part: implement key encryption / decryption (#6469)
Argon2 the second part: implement encryption/decryption of argon2 keys

borg init --key-algorithm=argon2 (new default, older pbkdf2 also still available)

borg key change-passphrase: keep key algorithm the same
borg key change-location: keep key algorithm the same

use env var BORG_TESTONLY_WEAKEN_KDF=1 to resource limit (cpu, memory, ...) the kdf when running the automated tests.
2022-04-07 16:22:34 +02:00
TW 6c38bf3fdc
Merge pull request #6536 from bket/master_fix_#2055
Fix OpenBSD symlink mode test failure (#2055)
2022-04-05 01:30:33 +02:00
Björn Ketelaars e86fde5364 Fix OpenBSD symlink mode test failure (#2055)
OpenBSD does not have `lchmod()` causing `os.lchmod` to be unavailable
on this platform. As a result ArchiverTestCase::test_basic_functionality
fails when run manually (#2055).

OpenBSD does have `fchmodat()`, which has a flag that makes it behave
like `lchmod()`. In Python this can be used via `os.chmod(path, mode,
follow_symlinks=False)`.

As of Python 3.3 `os.lchmod(path, mode)` is equivalent to
`os.chmod(path, mode, follow_symlinks=False)`. As such, switching to the
latter is preferred as it enables more platforms to do the right thing.
2022-04-04 21:55:48 +02:00
TW 6d55324b72
Merge pull request #6529 from ThomasWaldmann/fix-ipv6-url-parsing-master
fix scp repo url parsing for ip v6 addrs, fixes #6526
2022-04-04 20:39:14 +02:00
Thomas Waldmann b2eaa2fba4 use same host regex for ssh and scp style, refactor/clean up
although bug #6526 did not show with ssh style URLs, we should
not have different regexes for the host part for ssh and scp style.

thus i extracted the host_re from both and also cleaned up a bit.
2022-04-03 20:42:48 +02:00
Thomas Waldmann f24979bc09 fix scp repo url parsing for ip v6 addrs, fixes #6526
added a negative lookahead/lookbehind to make sure an ipv6 addr
(enclosed in square brackets) does not get badly matched by the
regex part intended for hostnames and ipv4 addrs only.

the other part of that regex which is actually intended to match
ipv6 addrs only matches if they are enclosed in square brackets.

also added tests for ssh and scp style repo URLs with ipv6 addrs
in brackets.

also: made regex more readable, putting these 2 cases on separate lines.
2022-04-03 20:42:48 +02:00
TW 269b948284
Merge pull request #6524 from bcat/patch-1
(docs) Recommend umask for passphrase file perms
2022-04-03 17:57:50 +02:00