Commit Graph

6542 Commits

Author SHA1 Message Date
Thomas Waldmann 159bd06412 unbundle xxh64 3rd party code, see #6316 2022-02-26 21:37:34 +01:00
Thomas Waldmann ecd0865d9c unbundle zstd 3rd party code, see #6316 2022-02-26 21:36:30 +01:00
Thomas Waldmann 7c8f288a18 unbundle lz4 3rd party code, see #6316 2022-02-26 21:35:17 +01:00
TW eec359cf22
Merge pull request #6340 from ThomasWaldmann/remove-deprecated-hmac
remove deprecated HMAC_*
2022-02-26 20:41:28 +01:00
Thomas Waldmann 0f2a45b474 crypto: get rid of deprecated HMAC_* functions
These were deprecated in OpenSSL 3.0.
2022-02-26 20:20:11 +01:00
TW 8f945ea252
Merge pull request #6338 from ThomasWaldmann/drop-openssl10
drop openssl 1.0.x support
2022-02-26 20:18:56 +01:00
TW d707542a57
Merge pull request #6366 from braewoods/warnings
src/borg/compress.pyx: fix compiler warning, closes #6365
2022-02-26 14:46:32 +01:00
James Buren e27a3eff0a src/borg/compress.pyx: fix compiler warning, closes #6365
This resolves a compiler warning from the generated code that
resulted from a comparison of two local variables of different
signedness. The issue is resolved by changing the type of both
to int since this seems like the safest choice available.
2022-02-25 22:28:34 -06:00
Thomas Waldmann d1d3d1dfa4 crypto: remove support for: OpenSSL < 1.1.1, LibreSSL < 2.7.0
All these are unsupported since long.

Newer versions of LibreSSL have gained chacha20-poly1305 support,
but still lack aes256-ocb support.
Also they have the HMAC_CTX_new/free api now.

docs: openssl >= 1.1.1 is required now
anything older is out of support anyway.
2022-02-26 00:55:19 +01:00
TW cf4a1abb87
Merge pull request #6341 from ThomasWaldmann/require-msgpack10
Require msgpack 1.0.3
2022-02-26 00:51:53 +01:00
TW d45269dff8
Merge pull request #6362 from braewoods/warnings
src/borg/crypto/low_level.pyx: fix compiler warning
2022-02-26 00:24:36 +01:00
Thomas Waldmann 428efa221d vagrant: darwin64: remove fakeroot, fixes #6314
deprecated / unsupported / 404.
2022-02-25 23:46:32 +01:00
James Buren 0d2fae6e7b src/borg/crypto/low_level.pyx: fix compiler warning
The generated source code was producing a compiler warning due to
the pointers differing in constness. The called function expects
a non-const pointer while the generated code produces a const pointer
via a cast. This changes the cast to drop 'const' to make the compiler
happy.
2022-02-25 16:42:24 -06:00
Julian Picht 091c48bc37
docs: Clarify on-disk order and size of log entry fields (#6357)
docs: clarify on-disk order and size of log entry fields

The order of the fields of a log entry on disk is CRC32 first, the docs had the size first.

I tried to make this list similar to the HashIndex struct description.
2022-02-25 12:53:58 +01:00
TW 472eba0323
Merge pull request #6356 from hexagonrecursion/patch-1
s/apt/apt-get/
2022-02-25 12:31:58 +01:00
Andrey Bienkowski 55d5223338
s/apt/apt-get/
> WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
2022-02-25 05:24:00 +00:00
TW f61e92c600
Merge pull request #6350 from hexagonrecursion/fwp-smartquote
docs: do not transform --/--- to unicode dashes (master)
2022-02-24 19:49:45 +01:00
Thomas Waldmann d6756d0070 docs: do not transform --/--- to unicode dashes 2022-02-24 08:44:51 +03:00
Thomas Waldmann 200ed0ad39 msgpack: remove deprecated max_*_len from unpacking api 2022-02-23 04:01:51 +01:00
Thomas Waldmann 0937ae9078 msgpack: require msgpack >= 1.0.3
... and remove support code for older versions.
2022-02-23 04:01:51 +01:00
TW 9e669f6db8
Merge pull request #6313 from borgbackup/rel120
release 1.2.0
2022-02-22 22:25:25 +01:00
TW 561b164540
Merge pull request #6335 from ThomasWaldmann/vagrant-jammy
vagrant: add ubuntu "jammy" 22.04 LTS VM
2022-02-22 15:36:53 +01:00
Thomas Waldmann d4dee41a5b vagrant: add ubuntu "jammy" 22.04 LTS VM 2022-02-22 14:27:42 +01:00
Andrey Bienkowski 0132eee1d4
Write a test for safe_unlink (#6311)
write a test for safe_unlink
2022-02-20 14:27:44 +01:00
Thomas Waldmann 7265f6adb8 quickstart docs: only borg compact frees disk space 2022-02-19 19:25:16 +01:00
Thomas Waldmann 6641a9629d build_man 2022-02-19 18:48:13 +01:00
Thomas Waldmann 9a8eec6af1 build_usage 2022-02-19 18:47:47 +01:00
Thomas Waldmann 7b36f001f6 fixup: set release date 2022-02-19 18:45:19 +01:00
Thomas Waldmann 0a5b329008 update CHANGES 2022-02-19 18:41:43 +01:00
TW 8a409ec1fb
Merge pull request #6306 from ThomasWaldmann/fix-savefile-races-master
SaveFile: fix race conditions
2022-02-17 16:51:43 +01:00
Laurent 6015ded828
docs: explain the difference between a path that ends with or without a slash (#6297)
docs: explain the difference between a path that ends with or without a slash
2022-02-16 23:53:11 +01:00
Thomas Waldmann 14b5c005d8 SaveFile: fix race conditions
Thanks to Andrey Bienkowski (@hexagonrecursion) for reporting this and writing reproducer code.

Changes:
- use different, randomly (but recognizably) named temp files while writing (securely made by os.mkstemp())
- make sure temp files are cleaned up in normal and error conditions
- SyncFile can now get corresponding pair of path + open os-level fd
- cleaned up: fd now means os-level fd, f means python-file-like object
- fixed a caller of SaveFile
2022-02-16 23:23:47 +01:00
TW da763cedda
Merge pull request #6301 from ThomasWaldmann/safe-unlink-master
safe_unlink (was: truncate_and_unlink)
2022-02-16 22:56:03 +01:00
Thomas Waldmann b292e158a6 rename truncate_and_unlink to safe_unlink
it usually does not truncate any more,
only under "disk full" circumstances and only if there is only one hardlink.
2022-02-15 21:08:34 +01:00
Thomas Waldmann 4a2ab496e0 safer truncate_and_unlink implementation
the previous implementation caused collateral damage on hardlink-copies of a repository,
see: https://github.com/borgbackup/borg/discussions/6286
2022-02-15 12:58:37 +01:00
TW 6c5e818510
Merge pull request #6299 from ThomasWaldmann/update-changes-master
update CHANGES
2022-02-14 20:33:27 +01:00
Thomas Waldmann ee32c1b63d update CHANGES 2022-02-14 18:55:59 +01:00
TW 4896fe1560
Merge pull request #6296 from ThomasWaldmann/cache-pre12-archive-meta
info: use a pre12-meta cache to accelerate stats for borg < 1.2 archives
2022-02-14 18:29:17 +01:00
TW fb194baf09
Merge pull request #6295 from taandrighetti/fix-dir-hardlinkmasters
diff: reduce memory consumption, fix is_hardlink_master
2022-02-14 18:25:36 +01:00
Thomas Waldmann a2fb9cde4e calc_stats progress display: add archive name 2022-02-14 18:00:02 +01:00
Thomas Waldmann 25e27a1539 info: use a pre12-meta cache to accelerate stats for borg < 1.2 archives
first time borg info is invoked on a borg 1.1 repo, it can take
a rather long time computing and caching some stats values for
1.1 archives, which borg 1.2 archives have in their archive
metadata structure. be patient, esp. if you have lots of old
archives.

following invocations are much faster.
2022-02-14 18:00:02 +01:00
Tomás Andrighetti a2ae36bb54 Exclude directories in is_hardlink_master 2022-02-13 19:23:40 -03:00
TW 0cebe62264
Merge pull request #6290 from ThomasWaldmann/compact-free-space-master
compact segments: improve freeable / freed space log output
2022-02-13 18:25:01 +01:00
TW aafb22ecf7
Merge pull request #6292 from ThomasWaldmann/fix-setdefault-master
implement more standard hashindex.setdefault behaviour
2022-02-13 13:54:13 +01:00
Thomas Waldmann 603b58f6a1 implement more standard hashindex.setdefault behaviour
the .get() like behaviour (== returning the value) was missing.

it's still not 100% like dict.setdefault, because there is no
default value None. but None doesn't make sense here, because we
usually need a N-tuple matching the hash table's value format.

note: this "bug" (or unusual implementation) was without consequences,
      because hashindex.setdefault is not used anywhere in borg, so
      it was also not used in a wrong way anywhere.

https://docs.python.org/3/library/stdtypes.html#dict.setdefault
2022-02-13 03:47:44 +01:00
Thomas Waldmann 17e8aef394 compact: not "freeable", but "maybe freeable"
e.g. if there is a ton of DELs in a segment, they all are maybe freeable,
but only if we also got rid of the respective PUTs (see also #6289).
2022-02-12 20:37:28 +01:00
Thomas Waldmann e80b5c2272 compact: derive freed space from quota use before/after, fixes #5679
due to the way quota accounting is done, this is likely not
100% precise, but much better than selling the hints as the truth.
2022-02-12 20:37:18 +01:00
TW 94c3d7eb27
Merge pull request #6263 from ThomasWaldmann/docs-links-master
improve linking inside docs
2022-02-08 22:34:11 +01:00
TW c56b15f271
Merge branch 'master' into docs-links-master 2022-02-08 21:57:58 +01:00
Andrey Bienkowski 24e8b38f1a
Doc: borg init: explain the encryption modes better (#6184)
docs:borg init: explain the encryption modes better

The documentation for borg init was not structured logically:
1. The topic is switched from the general discussion of `borg init`
   to the discussion of encryption modes without a title.
2. Obscure technical details (chunking, id generation etc) were
   above the high-level overview and other key information.
2022-02-08 21:55:51 +01:00