You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
update: as there was no negative feedback from alpha testing, borg2 branch was merged into master, thus that big change in form of a major / breaking borg 2.0 release is coming.
read below about what's planned and what's already done.
what could be done if we decide to make a breaking release (2.0) that:
does not try to be compatible with old repos
does not try to be 100% compatible with old cli syntax (but 90%)
only uses new repos / keys it created itself
only gets old archives via borg import-tar or borg transfer
putting all the breaking stuff into 1 release is good for users (1 time effort), but will take quite some time to test and release.
After borg 2.0, we'll make a N+1 release (2.1? 3.0?) that drops all the legacy stuff from the codebase, including the converter for borg < 2.0 repos.
borg 2.0 general comments
DONE: offer a borg transfer command, #6663, that transforms old stuff only to stuff that will still be supported by borg N+1.
N+1 general comments
much of the stuff described here has own tickets, see "breaking" label / add issue links here.
2.0 crypto
DONE repo-create: do not create old keys (pbkdf2, legacy AES class, encrypt-and-mac)
DONE repo-create: do not create AES-CTR based repos, only new AEAD ciphers with session keys
DONE: remove all docs talking about potential nonce reuse, counter management and related
DONE: remove key algorithm change (pbkdf2<->argon2), just use argon2 for new repos/key
keep old crypto code, we need it to read / decrypt old repos
N+1 crypto
remove pbkdf2 + pbkdfs/sha256 keys + docs - we have argon2 now
remove low_level.AES class which is only used for pbkdf2 key encryption
remove aes-ctr mode
remove support for super-legacy passphrase-key type (not supported since long)
we used hmac-sha256 and blake2b as id-hashes in the past, thus we need to keep them because we need an efficient borg transfer (not needing to re-hash)
2.0 keys
DONE it is now possible to have multiple keys per repository. this can be used for better redundancy, to use different passphrases. all keys contain the same secret key material.
DONE decouple key location from encryption type byte in repository. borg will just try to unlock both matching keyfiles and repokeys with a given passphrase until it succeeds.
DONE keys are stored using their sha256 content-hash as name. accidental corruption can be easily detected.
drop support (dispatching / handler) for the zlib dirty type bytes hack (ZLIB_legacy)
we need to keep all other compression algorithms, because borg transfer did not recompress
2.0 upgrade
DONE remove borg upgrade, doing upgrades from attic / old borg (they need to first upgrade to 1.2 and then use borg transfer)
N+1 archiver
remove unneeded stuff from benchmark cpu
2.0 remote
DONE dropped support for "ssh:" remote repositories, except for "borg transfer" from borg 1.x repositories.
DONE implement remote repositories using "rest:" (implemented in borgstore 0.5.1+). borg.repository and the REST backend of borgstore is running on the client, talking REST http over stdio over ssh to a borgstore REST server on the server.
update: as there was no negative feedback from alpha testing, borg2 branch was merged into master, thus that big change in form of a major / breaking borg 2.0 release is coming.
read below about what's planned and what's already done.
what could be done if we decide to make a breaking release (2.0) that:
putting all the breaking stuff into 1 release is good for users (1 time effort), but will take quite some time to test and release.
After borg 2.0, we'll make a N+1 release (2.1? 3.0?) that drops all the legacy stuff from the codebase, including the converter for borg < 2.0 repos.
borg 2.0 general comments
DONE: offer a
borg transfercommand, #6663, that transforms old stuff only to stuff that will still be supported by borg N+1.N+1 general comments
much of the stuff described here has own tickets, see "breaking" label / add issue links here.
2.0 crypto
N+1 crypto
borg transfer(not needing to re-hash)2.0 keys
2.0 repo
borgstore, use borgstore and other big changes #8332borg transfer, and/orborg transfer(in that case the old repo would be served by an old borg version)N+1 repo
borg transfer, not needing to re-chunk content!2.0 indexes / cache
legacy_cleanupfunctionN+1 indexes / cache
2.0 msgpack
N+1 msgpack
2.0 archive / item
borg transfer) (note:Archive.save()adds that)sizeN+1 archive / item
size2.0 or N+1 checksums
2.0 compression
N+1 compression
2.0 upgrade
N+1 archiver
2.0 remote
borgstore0.5.1+). borg.repository and the REST backend of borgstore is running on the client, talking REST http over stdio over ssh to a borgstore REST server on the server.N+1 remote
2.0 cli
2.0 locking
y2038 and requiring 64bit
stuff that is out of scope
as you see above, there is already a huge scope of what should be done.
to not grow the scope even further, some stuff shall not be done (now):