Commit Graph

287 Commits

Author SHA1 Message Date
Thomas Waldmann 7957af562d blacken all the code
https://black.readthedocs.io/
2022-07-06 16:34:38 +02:00
TW dbb9f62afd
Merge pull request #6836 from ThomasWaldmann/cleanups
Cleanups
2022-07-05 02:46:43 +02:00
Thomas Waldmann ff46a03b42 use language_level = 3str for cython
this will be the default in cython 3.
2022-07-05 00:16:48 +02:00
Thomas Waldmann 350393c9fd remove unused imports 2022-07-05 00:05:07 +02:00
Thomas Waldmann 5c8a5f111f stop using libdeflate
borg2's new repo format does not need computing crc32 over big amounts of
(content) data any more (we now use xxh64 for that).

thus, having a quick crc32 implementation via libdeflate is not important
enough any more to rectify having libdeflate as a requirement.
2022-07-04 20:33:59 +02:00
Thomas Waldmann be9e7d37c2 remove libressl support
currently it does not have what we need, so we can simplify our code.
2022-04-14 19:31:55 +02:00
Thomas Waldmann c592b20262 use openssl on openbsd, fixes #6474 2022-04-14 19:31:55 +02:00
Thomas Waldmann 2872d7acfd point to setup.cfg also 2022-04-13 03:50:54 +02:00
Thomas Waldmann 9642ace953 require/configure setuptools_scm via pyproject.toml 2022-04-07 19:11:15 +02:00
Manu 710d76e5c2 Move system lib comment up, formatting, expand lib not found error. 2022-03-24 08:41:34 +04:00
Manu c86a5491d9 Rever xxhash version 2022-03-23 17:40:33 +04:00
Manu e686ec0d8c Fix openssl ext 2022-03-23 17:28:27 +04:00
Manu 249de7eb45 Add feedback, part 1 2022-03-23 17:19:43 +04:00
Manu dd17c0e869 Fix xxhash version 2022-03-23 15:53:26 +04:00
Manu 3732c45f42 Initial commit 2022-03-23 15:42:34 +04:00
Andrey Bienkowski 78f041440c
Argon2 the first part: Implement key derivation (was: part 0) (#6468)
add a argon2 based kdf, using argon2-cffi
2022-03-21 21:51:54 +01:00
Thomas Waldmann cc3b5c062c remove algorithms package, move checksums module to borg package 2022-03-17 00:24:49 +01:00
Thomas Waldmann 98a675f62a use crc32 from libdeflate, remove bundled crc32 code
we use zlib.crc32 (macOS) or libdeflate_crc32 (Linux and all others) now.
2022-03-13 21:39:34 +01:00
James Buren 820de65562 Allow extra compiler flags for every extension build
This is mainly intended for explicit warnings but it can be
used for other flags as well.
2022-03-09 05:18:52 -06:00
Andrey Bienkowski a929b2db0a Merge remote-tracking branch 'origin/master' into pyproject 2022-03-01 08:43:36 +03:00
Thomas Waldmann 64e7ccd3fc require python >= 3.9, fixes #6315 2022-02-27 18:46:30 +01:00
Thomas Waldmann 96d93dcf0e do not support bundled 3rd party code any more, fixes #6316 2022-02-26 22:18:12 +01: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
Thomas Waldmann 0937ae9078 msgpack: require msgpack >= 1.0.3
... and remove support code for older versions.
2022-02-23 04:01:51 +01:00
Thomas Waldmann 4c493aa27c pypi metadata: alpha -> beta 2022-01-20 17:45:41 +01:00
Thomas Waldmann b27e7ad86d allow msgpack 1.0.3, fixes #6111 2022-01-06 21:34:52 +01:00
Thomas Waldmann 59b6dc5442 require python 3.8+, fixes #5975
if you do not have py38+ yet, just use borg 1.1.x.
2021-09-16 02:21:29 +02:00
Thomas Waldmann b15469c3c8 drop support for py36, require py37+, fixes #5790
if you do not have python >= 3.7, you can still use borg 1.1.x or 1.0.x.

another option is to use the fat binary from github releases, which
includes python and all other stuff needed.
2021-06-16 15:31:34 +02:00
Thomas Waldmann 65ea375968 get rid of distutils, use packaging 2021-05-01 20:40:48 +02:00
Thomas Waldmann 9d8d64c5e3 setup.py: get rid of distutils, use setuptools
distutils is deprecated and gives warnings on py 3.10.

rename "clean" to "clean2" to avoid shadowing the "clean" command.
2021-05-01 20:40:48 +02:00
Thomas Waldmann 9f4a6e5574 add support and testing for python 3.10 2021-02-28 22:49:03 +01:00
Thomas Waldmann 12d9110882 also accept msgpack up to 1.0.2
exclude 1.0.1 though, which had some issues (not sure whether they affect borg).
2021-01-30 21:31:33 +01:00
Thomas Waldmann c8e9131158 remove bundled blake2 code, usage of libb2
we just use it via python3 now.
2021-01-28 18:00:00 +01:00
Thomas Waldmann d2fe303967 fix cythonize crash on macOS/py39, fixes #5599 2020-12-28 19:56:08 +01:00
Thomas Waldmann 49b1421682 FUSE: support pyfuse3 additionally to llfuse, fixes #5407
FUSE implementation can be switched via env var BORG_FUSE_IMPL.
2020-10-31 22:04:44 +01:00
Thomas Waldmann e54b054b2a import setuptools first
there is a warning if one imports distutils before setuptools...
2020-10-05 00:24:52 +02:00
Thomas Waldmann 7dc1610674 selecting least broken llfuse version
1.3.6: works on all supported OSes, but not on py39
1.3.7: does not work on FreeBSD, but with py39
2020-10-05 00:23:40 +02:00
pamaron 8be6afd9e1
Enable Python3.9 env for test suite and VMs (#5373)
for now, skip fuse for py39 -- llfuse does not support py39 yet

use brew update >/dev/null so travis does not complain about too much output
2020-10-04 15:38:05 +02:00
Thomas Waldmann 1a8f5d27ab drop python 3.5, fixes #5344
py35 is EOL.
2020-09-25 02:13:43 +02:00
Thomas Waldmann 1c7d267e1f pypi metadata: we also support python 3.8 now
tested regularly on travis-ci.
2020-04-21 23:14:20 +02:00
Thomas Waldmann da6d1ac538 support msgpack 1.0.0, fixes #5065
our data structures need strict_map_key=False, which is not the
default of msgpack 1.0.0. i made it default in our wrapper API.

call our wrapper for performance profile creation/conversion also
to avoid msgpack compat issues.

remove encoding from wrapper api, we do not use it any more.

remove raw is True check, we need false for profiles

strict_map_key is only supported for msgpack >= 1.0.0.
2020-04-04 22:04:45 +02:00
Thomas Waldmann d1733b6fc0 require recent enough llfuse for birthtime support, fixes #5064
also:

add llfuse < 2.0 requirement also for python>=3.7.
maybe not really required because llfuse seems rather dead anyway,
but good for consistency.
2020-04-02 20:43:29 +02:00
Thomas Waldmann d32ff32d3a setup.py: add some comments to the cythonize calls 2020-03-08 23:20:11 +01:00
Will 242424ecae Move sync_file_range to its own extension 2020-03-01 00:06:04 -05:00
Björn Ketelaars e2ee7fd24b Support msgpack-0.6.2.
This addresses
https://github.com/borgbackup/borg/issues/4360#issuecomment-541107988
2019-10-15 05:22:20 +02:00
Jürg Rast 6b426d08d7 Initial work to build and run borg under windows
- Created a batch file to build borg on windows
- Adjusted setup.py to be runnable on windows and build the windows
extension
- Extracted the free space check to a function in the platform module
- Created the minimal needed (dummy) functions for the windows platform
module
2019-08-24 10:17:18 +02:00
TW 8c29209195
Merge pull request #4602 from FelixSchwarz/unbundle-xxhash
ability to unbundle xxhash
2019-06-04 23:36:56 +02:00
Felix Schwarz 2ff06c58f0 ability to use a system-provided version of "xxhash"
The build process can be controlled via environment variables
similar to other bundled libraries in borgbackup. The main difference
is probably that upstream does not provide a pkgconfig file for
xxhash.

Therefore borg will probably fail to detect the system-provided
version by default (tested on Fedora, seems like Debian and Ubuntu
do not ship a pkgconfig file either). I kept the pkgconfig lookup
code anyway to keep the code as similar as possible to
"setup_compress.py"/"setup_crypto.py".

Setting BORG_LIBXXHASH_PREFIX=/usr helps borg to detect xxhash
on my system (Fedora). You can force the use of the bundled
version of xxhash by setting BORG_USE_BUNDLED_XXHASH=1.
2019-06-04 21:59:26 +02:00
Felix Schwarz e6426d3386 setup.py: fix detection of missing Cython
v2: use a list comprehension instead map() (suggested by Thomas Waldmann)
2019-06-04 17:50:00 +02:00
Thomas Waldmann 426f3752c1 lib/header locating: add docs, move env vars querying to setup.py 2019-03-15 21:23:46 +01:00