Commit Graph

257 Commits

Author SHA1 Message Date
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
Thomas Waldmann 7b27082a73 setup.py: bundled code vs system libs: use env vars we use anyway
these are already used internally when the build system can not find
a system library (neither via pkginfo nor BORG_LIBXXX_PREFIX is given)
and then triggers usage of the bundled code via these env vars.

now they are also used to tell right from the beginning "use the
bundled code" and in that case it will not try to locate system libs
and headers.
2019-03-15 19:54:33 +01:00
Thomas Waldmann f4e7133a1e setup.py: move long_description generation to setup_docs 2019-03-14 01:33:30 +01:00
Thomas Waldmann 3166d145bb setup.py: add comment, remove unused imports 2019-03-14 00:34:07 +01:00
Thomas Waldmann b516cf3c3f reduce amount of setup_*.py files in toplevel dir 2019-03-14 00:33:56 +01:00
Thomas Waldmann 1579d58b3e cope with pkgconfig ImportError 2019-03-14 00:18:15 +01:00
Thomas Waldmann 528aee3ca6 extension building: first crypto, then compression (cosmetic) 2019-03-13 18:30:15 +01:00
Thomas Waldmann 5173b9f407 add pkg-config support, fixes #1925
1. BORG_*_PREFIX is checked (avoids lib detection via pkg-config).
2. pkg-config is tried
3. fallback to bundled C code (or failure in case of OpenSSL)

also:
- simplified code again
- removed (c) headers, nothing left of original code
2019-03-13 18:26:47 +01:00
Thomas Waldmann 80ade7093d simplify code by merging kwargs dicts at caller 2019-03-13 03:01:00 +01:00
Thomas Waldmann 24bf01a40b moved bundled_path to setup_*.py 2019-03-12 03:44:43 +01:00
Thomas Waldmann 7db29017e5 simplify initial dirs/macros setup 2019-03-12 03:32:32 +01:00
Thomas Waldmann 2dfc6bb43f refactor openssl related code in setup.py
- removed hardcoded lib search pathes
- to find system libs/headers, one must point these env vars to them:
  BORG_OPENSSL_PREFIX
- moved some code from setup.py to setup_*.py
2019-03-12 03:15:59 +01:00
Thomas Waldmann d6635da654 refactor lib/bundled related code in setup.py
- removed hardcoded lib search pathes
- to find system libs/headers, one must point these env vars to them:
  BORG_LIBLZ4_PREFIX, BORG_LIBZSTD_PREFIX, BORG_LIBB2_PREFIX
- moved some code from setup.py to setup_*.py
2019-03-12 02:46:00 +01:00
Thomas Waldmann 7b4b42d832 pypi metadata: enter alpha dev status 2019-02-26 22:39:27 +01:00
Thomas Waldmann 2713500983 remove -*- coding: ... lines, utf-8 is default for py3 2019-02-22 17:12:05 +01:00
Thomas Waldmann 940e107add cleanup msgpack requirements
we do not expect 0.5.x with x > 6 any more.

also remove outdated comments from setup.py.
2019-02-05 02:37:22 +01:00
Thomas Waldmann 0ebfaa5b61 allow msgpack 0.6.1, fixes #4308 2019-02-05 02:32:36 +01:00
Thomas Waldmann 18c9feb7e3 check msgpack version, terminate for unsupported versions 2019-02-03 03:54:41 +01:00
Thomas Waldmann a255e91988 cythonize: set language_level to 3, fixes #4214 2018-12-15 18:52:26 +01:00
Thomas Waldmann 07f89d4518 msgpack: also allow version 0.6.0 2018-12-11 01:55:18 +01:00
Thomas Waldmann 2be5446098 Revert "drop support for python 3.5, fixes #3919"
This reverts commit 55314f807e.
2018-12-11 00:53:43 +01:00
Thomas Waldmann 751cd2caed add python 3.7 to pypi metadata 2018-08-06 17:48:27 +02:00
Thomas Waldmann 55314f807e drop support for python 3.5, fixes #3919
if you do not have python 3.6.x, 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 3.6 and all other stuff needed.
2018-06-30 21:02:19 +02:00
Thomas Waldmann 06f2378458 setup.py: move build_man / build_usage code to setup_docs.py
brings setup.py down from 800 to 300 lines.
2018-06-12 21:06:01 +02:00
Thomas Waldmann 39a7078741 modernize / simplify llfuse requirements
DO NOT BACKPORT TO 1.1-maint / 1.0-maint.

master branch will still take a while until next release,
so we can safely require llfuse >= 1.1 (May 2016).
2018-06-12 20:49:23 +02:00
Thomas Waldmann d0bed00e9a remove pyzmq package requirement, not used yet 2018-06-12 20:38:21 +02:00
Thomas Waldmann 715c3d6824 switch to "msgpack" pypi pkg name, fixes #3890
MASTER BRANCH ONLY, DO NOT BACKPORT TO 1.1 or 1.0!

As there are no 0.4.x msgpack releases (under this new name, 0.4.x
used to be named "msgpack-python"), currently only 0.5.6 can be
recommended. See comments for other versions that are acceptable
under certain conditions.

We will add new msgpack versions later, after testing them.
2018-06-12 19:34:40 +02:00
Eli Schwartz b5d22b5fba
Embrace environment markers (a.k.a. PEP 508 compliance)!
Failure to use environment markers means the dependencies are
unconditionally added at build time based on the host instead of being
always present and evaluated at runtime on the target; e.g. wheels have
the wrong information.

Also use python_requires. This teaches pip how to natively comprehend
when the current version of python is not supported by borg.

Returns errors in the format:
borgbackup requires Python '>=3.5' but the running Python is $oldver
2018-06-11 22:29:16 -04:00
Thomas Waldmann ab6e6314dd revert to using system compression libs, fixes #3797
we temporarily used the updated, bundled lz4 and zstd code for testing
purposes, but now going back to using system provided libs by default.

(cherry picked from commit 66084c7234)
2018-06-10 09:49:04 +05:30
Thomas Waldmann 60a5d6e59e temporarily prefer bundled lz4 to test it
(cherry picked from commit bf6fa04650)
2018-06-08 17:03:35 +05:30
Thomas Waldmann 89c7093048 fix package long description, fixes #3854
(cherry picked from commit a318c3bb66)
2018-05-26 23:30:21 +02:00