Browse Source

get rid of distutils, use packaging

Thomas Waldmann 4 years ago
parent
commit
1cbdcba5e9
3 changed files with 9 additions and 6 deletions
  1. 3 1
      setup.py
  2. 3 2
      src/borg/__init__.py
  3. 3 3
      src/borg/xattr.py

+ 3 - 1
setup.py

@@ -37,7 +37,9 @@ if my_python < min_python:
 # Are we building on ReadTheDocs?
 on_rtd = os.environ.get('READTHEDOCS')
 
-install_requires = []
+install_requires = [
+    'packaging',
+]
 
 # note for package maintainers: if you package borgbackup for distribution,
 # please add llfuse as a *requirement* on all platforms that have a working

+ 3 - 2
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
 # beeing 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

+ 3 - 3
src/borg/xattr.py

@@ -8,7 +8,7 @@ import sys
 import tempfile
 from ctypes import CDLL, create_string_buffer, c_ssize_t, c_size_t, c_char_p, c_int, c_uint32, get_errno
 from ctypes.util import find_library
-from distutils.version import LooseVersion
+from packaging.version import parse as parse_version
 
 from .helpers import Buffer, prepare_subprocess_env
 
@@ -90,8 +90,8 @@ if sys.platform.startswith('linux'):
         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