Commit Graph

6621 Commits

Author SHA1 Message Date
Thomas Waldmann 8317698f9b hmac_sha256: replace own cython wrapper code by hmac.digest python stdlib (since py38)
i measured performance of both: pretty much the same.
2022-03-05 21:22:24 +01:00
TW 34261aac0e
Merge pull request #6378 from braewoods/warnings
suppress -Wimplicit-fallthrough warning
2022-03-05 14:20:24 +01:00
TW 47a9e4686b
Merge pull request #6377 from ThomasWaldmann/fix-6374-master
create: skip with warning if opening the parent dir of recursion root fails, fixes #6374
2022-03-05 14:18:57 +01:00
TW e37a55c5eb
Merge pull request #6355 from hexagonrecursion/pyproject
Add pyproject.toml
2022-03-01 14:02:34 +01:00
Andrey Bienkowski aba16ba0d4 CodeQL: Use venv
A bug in pip or possibly setuptools broke editable
installs into the per-user directory
for packages that have pyproject.toml

See https://github.com/pypa/setuptools/issues/3019
2022-03-01 08:44:40 +03:00
Andrey Bienkowski a929b2db0a Merge remote-tracking branch 'origin/master' into pyproject 2022-03-01 08:43:36 +03:00
James Buren 4a55d9de3c suppress -Wimplicit-fallthrough warning
These instances of implicit switch case fallthrough appear to be
intentional. Add comments that the compiler understands to suppress
the false positive warning.
2022-02-27 14:29:53 -06:00
TW 49de070799
Merge pull request #6382 from ThomasWaldmann/pyupgrade-38-master
run pyupgrade (py38+)
2022-02-27 21:07:41 +01:00
Thomas Waldmann fade3c4799 manual formatting fixes (cosmetic / pep8) 2022-02-27 20:12:04 +01:00
Thomas Waldmann cbeef56454 pyupgrade --py38-plus ./**/*.py 2022-02-27 20:11:56 +01:00
TW d1bcea9e61
Merge pull request #6363 from ThomasWaldmann/require-py39
require python >= 3.9, fixes #6315
2022-02-27 19:13:05 +01:00
Thomas Waldmann 64e7ccd3fc require python >= 3.9, fixes #6315 2022-02-27 18:46:30 +01:00
TW e8b2ca8b20
Merge pull request #6372 from ThomasWaldmann/unbundle-3rd-party
Unbundle most 3rd party code
2022-02-27 18:41:22 +01:00
Thomas Waldmann 8375d44328 create: skip with warning if opening the parent dir of recursion root fails, fixes #6374 2022-02-27 02:52:03 +01:00
Thomas Waldmann b755f47775 vagrant: add required system libs (esp. xxhash) 2022-02-26 23:26:17 +01:00
Thomas Waldmann 9b872104da setup_crypto: remove unused function 2022-02-26 23:10:27 +01:00
TW 52f9bc926d
Merge pull request #6368 from braewoods/warnings
fix multiple warnings related to _hashindex.c
2022-02-26 23:03:38 +01:00
TW 1dca742494
Merge pull request #6370 from bket/fix_build_libressl
Fix build with LibreSSL
2022-02-26 23:02:59 +01:00
Thomas Waldmann 606ba08587 fix ci: we need xxhash system lib on macOS
also: we do not need libb2 (directly) any more, this is provided indirectly via python3 now
2022-02-26 22:40:16 +01:00
Thomas Waldmann 64e02887c0 fix codeql: borg needs required libs/headers now
nothing bundled any more.
2022-02-26 22:35:47 +01:00
Thomas Waldmann 80c21b2e23 remove docs of previously bundled blake2 code 2022-02-26 22:22:02 +01:00
Thomas Waldmann 96d93dcf0e do not support bundled 3rd party code any more, fixes #6316 2022-02-26 22:18:12 +01:00
Björn Ketelaars 73c426497f Fix build with LibreSSL
#6338 introduces regression when building with LibreSSL (3.5.0).

```
cc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -g -fPIC -O2 -pipe -g -O2 -pipe -g -O2 -pipe -fPIC -Isrc/borg/crypto -I/usr/local/include/python3.9 -c src/borg/crypto/low_level.c -o /tmp/ports/pobj/borgbackup-1.2.1/borg-eec359cf228caf00d9c72bde07bf939872e9d3fa/temp.openbsd-7.1-amd64-3.9/src/borg/crypto/low_level.o
src/borg/crypto/low_level.c:12439:48: error: use of undeclared identifier 'EVP_chacha20_poly1305'; did you mean 'EVP_aead_chacha20_poly1305'?
  __pyx_v_self->__pyx_base.__pyx_base.cipher = EVP_chacha20_poly1305;
                                               ^~~~~~~~~~~~~~~~~~~~~
                                               EVP_aead_chacha20_poly1305
/usr/include/openssl/evp.h:1161:17: note: 'EVP_aead_chacha20_poly1305' declared here
const EVP_AEAD *EVP_aead_chacha20_poly1305(void);
                ^
1 error generated.
```

Unfortunately `EVP_aead_chacha20_poly1305`, offered by LibreSSL, is not
a drop in replacement for `EVP_chacha20_poly1305`. More info on the
first can be found at https://man.openbsd.org/EVP_AEAD_CTX_init.3.
2022-02-26 22:03:00 +01:00
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
James Buren 5c94c932bb src/borg/cache_sync/unpack.h: fix compiler warnings
The key argument being sent to hashindex_get and hashindex_set by
multiple functions is a different signedness from what the functions
expect. This resolves the issue by changing the key type in the
unpack_user struct to unsigned char.
2022-02-26 14:02:29 -06:00
James Buren 5f3d61e2f0 src/borg/_hashindex.c: fix compiler warnings
The value argument of hashindex_set is causing harmless pointer type
mismatches. This resolves the issue by changing the type to void*
which silences these types of warnings.
2022-02-26 14:02:29 -06: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
Andrey Bienkowski 30c145ec53 pyproject.toml: running setup.py also requires Cython 2022-02-25 08:17:34 +03:00
Andrey Bienkowski 4df8255e62 Add pkgconfig build requirement
setup_crypto.crypto_ext_kwargs needs pkgconfig to find OpenSSL
2022-02-25 08:04:45 +03:00
Andrey Bienkowski 142bb0e3d4 setup.py: add parent to sys.path
When using pyproject.toml the parent of setup.py
is not on sys.path by default.

See <https://github.com/pypa/setuptools/discussions/3134>
2022-02-25 07:52:50 +03:00
Andrey Bienkowski 6cbb7d650f Add pyproject.toml
This blocks #6264 because black configuration is stored in pyproject.toml.
See <https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-format>
I copied this from <https://setuptools.pypa.io/en/latest/userguide/quickstart.html#basic-use>
2022-02-25 06:29:01 +03: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