Commit Graph

276 Commits

Author SHA1 Message Date
Thomas Waldmann faa0705dda
allow msgpack 1.0.8, fixes #8133 2024-03-02 13:34:35 +01:00
Thomas Waldmann 39761ebadc
allow msgpack 1.0.7 2023-09-28 14:26:48 +02:00
Thomas Waldmann 906962b631
setup.py: declare python 3.12 support 2023-09-25 15:33:02 +02:00
Thomas Waldmann 93b93abc18
allow msgpack 1.0.6 2023-09-25 14:10:32 +02:00
Thomas Waldmann 2842463f21
allow msgpack 1.0.5 also 2023-03-09 17:58:57 +01:00
Thomas Waldmann 3404346419 do not use version_tuple placeholder in setuptools_scm template
that would require setuptools_scm>=5.0.0 but some dists do not have that yet.
also, we do not use the version_tuple from _version.py, so it is not required
anyway.
2022-09-13 21:25:35 +02:00
Thomas Waldmann 6799405012 _version.py: remove trailing blank, add LF at EOF 2022-08-13 20:35:03 +02:00
Thomas Waldmann 69f4898460 make setuptools happy, fixes #6874
work around setuptools puking about:

          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'borg.cache_sync' as an importable package,
          but it is not listed in the `packages` configuration of setuptools.

          'borg.cache_sync' has been automatically added to the distribution only
          because it may contain data files, but this behavior is likely to change
          in future versions of setuptools (and therefore is considered deprecated).

          Please make sure that 'borg.cache_sync' is included as a package by using
          the `packages` configuration field or the proper discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" and "data files" on setuptools
          documentation page.
2022-08-04 15:50:05 +02:00
Gianfranco Costamagna ad8555e921 Fix pyproject.toml to create a fixed _version.py file, compatible with both old and new setuptools_scm version (see: #6875) 2022-07-18 19:51:04 +02:00
Thomas Waldmann 6d024961aa add python 3.11 to pypi metadata 2022-06-03 10:05:56 +02:00
Thomas Waldmann de61d4953b allow msgpack 1.0.4, fixes #6716 2022-06-03 10:05:44 +02:00
Thomas Waldmann 82a80bf760 add pyproject.toml, fix sys.path, fixes #6466
setup.py: add parent to sys.path

When using pyproject.toml the parent of setup.py is not on sys.path by default.

See <pypa/setuptools#3134>.
2022-04-07 18:48:48 +02:00
James Buren 793d543328 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.

Conflicts:
	setup.py
2022-03-10 00:50:59 +03: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
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