1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2025-02-01 12:09:10 +00:00
Commit graph

288 commits

Author SHA1 Message Date
Thomas Waldmann
8dcd8daab1
setup.py: detect noexec build fs issue, see #8208
That "failed to map segment from shared object" error msg is not
very helpful. Add a hint that the filesystem needs to be +exec
(== not noexec mounted, like it might be the case for /tmp on
some systems).
2024-05-12 16:38:13 +02:00
Thomas Waldmann
d033f6cd87
setup.py: fix import error reporting for cythonize import, see #8208
Looks like borg's setup.py has hidden the real cause of a cythonize ImportError.

There are basically 2 cases:
- either there is no Cython installed, then the import fails because the module can not be found, or
- there is some issue within Cython and the import fails due to that.

It's important not to hide the real cause, especially if we run into case 2.

case 1 is kind of expected and frequent, case 2 is rare.
2024-05-12 16:38:11 +02:00
Björn Ketelaars
2d13e8efa0 No need to use OpenSSL 3.0 on OpenBSD
borg-2.0 requires EVP_aes_256_ocb, which is not provided by LibreSSL. As
such, OpenSSL-3.0 is needed on OpenBSD. borg-1.4 however does not use
EVP_aes_256_ocb thus there is no need to use OpenSSL. Instead rely on
LibreSSL.

Undo part of ccb1e92. Tested on OpenBSD -current.
2024-02-25 07:10:02 +01:00
Thomas Waldmann
ccb1e92362
setup.py: remove support for bundled 3rd party src, fixes #8094
Took the setup.py from master branch and only slightly modified the
"checksums" module path for now.

This removes support for all BORG_USE_BUNDLED_*=YES env vars.
"NO" has been the default since quite a while anyway.

This adds support for:
- using OpenSSL 3.0 on OpenBSD
- locating libacl via pkgconfig

Formatting changes came due to master branch using "black".
2024-02-22 13:38:31 +01:00
Thomas Waldmann
ef2728a6a6
scripts: make.py clean implementation 2024-01-30 23:55:18 +01:00
Thomas Waldmann
1220a96d1d
setup.py: remove build_usage and build_man as setup.py command 2024-01-29 19:53:22 +01:00
Thomas Waldmann
19718c3c55
setup.py: move long_desc_from_readme definition to here 2024-01-29 19:50:14 +01:00
Thomas Waldmann
d4f6f137c3
move most settings to pyproject.toml
except: flake8, which will get replaced by ruff.
2023-12-25 03:45:44 +01:00
Thomas Waldmann
5919b63e9a
setup.py: drop deprecated setup_requires, fixes #6068
We now use pyproject.toml for that.

Also, drop the >=1.7 requirement for setuptools_scm,
that was from 2015 and we assume it is not used any
more anyway.
2023-12-24 18:23:07 +01:00
Thomas Waldmann
6b402896a6
require python >= 3.9, drop py38, fixes #6383 2023-12-24 03:01:21 +01:00
Thomas Waldmann
a550fbd845
msgpack: require >= 1.0.2 <= 1.0.7
that simplifies things:
- no broken release in that range
- no ancient stuff < 1.0 any more
2023-12-24 02:09:58 +01:00
Thomas Waldmann
5049817d43
move setuptools_scm configuration to pyproject.toml 2023-12-23 22:57:53 +01:00
Thomas Waldmann
ed584554d0
cython: use 3str language level (default in cython3), fixes #7978
drop support for Cython 0.29.x, use Cython 3.0.x from now on.
2023-12-23 21:27:31 +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