From 65ea375968005984caee045d534bd139f3d7afda Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sat, 1 May 2021 15:20:45 +0200 Subject: [PATCH] get rid of distutils, use packaging --- setup.py | 1 + src/borg/__init__.py | 5 +++-- src/borg/xattr.py | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 94c5ebef4..f5a832c18 100644 --- a/setup.py +++ b/setup.py @@ -70,6 +70,7 @@ # Please note: # using any other version is not supported by borg development and # any feedback related to issues caused by this will be ignored. + 'packaging', ] # note for package maintainers: if you package borgbackup for distribution, diff --git a/src/borg/__init__.py b/src/borg/__init__.py index 47adb1b67..9f13c7d64 100644 --- a/src/borg/__init__.py +++ b/src/borg/__init__.py @@ -1,11 +1,12 @@ -from distutils.version import LooseVersion +from packaging.version import parse as parse_version # IMPORTANT keep imports from borg here to a minimum because our testsuite depends on # being able to import borg.constants and then monkey patching borg.constants.PBKDF2_ITERATIONS from ._version import version as __version__ -__version_tuple__ = tuple(LooseVersion(__version__).version[:3]) +_v = parse_version(__version__) +__version_tuple__ = _v._version.release # assert that all semver components are integers # this is mainly to show errors when people repackage poorly diff --git a/src/borg/xattr.py b/src/borg/xattr.py index f1942a996..626858c3b 100644 --- a/src/borg/xattr.py +++ b/src/borg/xattr.py @@ -7,7 +7,7 @@ import sys import tempfile -from distutils.version import LooseVersion +from packaging.version import parse as parse_version from .helpers import prepare_subprocess_env @@ -29,8 +29,8 @@ if preload.startswith("libfakeroot"): env = prepare_subprocess_env(system=True) fakeroot_output = subprocess.check_output(['fakeroot', '-v'], env=env) - fakeroot_version = LooseVersion(fakeroot_output.decode('ascii').split()[-1]) - if fakeroot_version >= LooseVersion("1.20.2"): + fakeroot_version = parse_version(fakeroot_output.decode('ascii').split()[-1]) + if fakeroot_version >= parse_version("1.20.2"): # 1.20.2 has been confirmed to have xattr support # 1.18.2 has been confirmed not to have xattr support # Versions in-between are unknown