140 lines
5.0 KiB
Diff
140 lines
5.0 KiB
Diff
From 2ae2e3a15fa3e361b5f2e186d2450a8ccd38f698 Mon Sep 17 00:00:00 2001
|
|
From: Leonid Pliushch <leonid.pliushch@gmail.com>
|
|
Date: Mon, 26 Jul 2021 13:30:08 +0300
|
|
Subject: [PATCH] Termux borgbackup: use distutils instead of packaging
|
|
|
|
Do not remove this patch unless you know what you are doing!
|
|
|
|
We don't have module "packaging" packaged and thus cannot use it without
|
|
installing through "pip". But for stable packages we cannot use it in
|
|
postinst script to add missing dependencies.
|
|
|
|
So if you decide to drop this patch:
|
|
* Add python3-packaging to termux-packages.
|
|
* Alternatively: create a postinst deb script (pip3 install packaging)
|
|
and move borgbackup to https://github.com/termux/unstable-packages
|
|
---
|
|
setup.py | 24 ++++++++----------------
|
|
src/borg/__init__.py | 5 ++---
|
|
src/borg/xattr.py | 6 +++---
|
|
3 files changed, 13 insertions(+), 22 deletions(-)
|
|
|
|
diff --git a/setup.py b/setup.py
|
|
index 87e93d25..5ca79af2 100644
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -37,9 +37,7 @@
|
|
# Are we building on ReadTheDocs?
|
|
on_rtd = os.environ.get('READTHEDOCS')
|
|
|
|
-install_requires = [
|
|
- 'packaging',
|
|
-]
|
|
+install_requires = []
|
|
|
|
# note for package maintainers: if you package borgbackup for distribution,
|
|
# please add llfuse as a *requirement* on all platforms that have a working
|
|
@@ -54,8 +52,10 @@
|
|
],
|
|
}
|
|
|
|
-from setuptools import setup, find_packages, Extension, Command
|
|
+from setuptools import setup, find_packages, Extension
|
|
from setuptools.command.sdist import sdist
|
|
+from distutils.core import Command
|
|
+from distutils.command.clean import clean
|
|
|
|
compress_source = 'src/borg/compress.pyx'
|
|
crypto_ll_source = 'src/borg/crypto/low_level.pyx'
|
|
@@ -146,7 +146,7 @@ def __init__(self, *args, **kwargs):
|
|
msgpack_packer_source = msgpack_packer_source.replace('.pyx', '.cpp')
|
|
msgpack_unpacker_source = msgpack_unpacker_source.replace('.pyx', '.cpp')
|
|
|
|
- from setuptools.command.build_ext import build_ext
|
|
+ from distutils.command.build_ext import build_ext
|
|
if not on_rtd and not all(os.path.exists(path) for path in [
|
|
compress_source, crypto_ll_source, chunker_source, hashindex_source, item_source, checksums_source,
|
|
platform_posix_source, platform_linux_source, platform_syncfilerange_source, platform_freebsd_source, platform_darwin_source,
|
|
@@ -767,16 +767,9 @@ def rm(file):
|
|
pass
|
|
|
|
|
|
-class Clean(Command):
|
|
- user_options = []
|
|
-
|
|
- def initialize_options(self):
|
|
- pass
|
|
-
|
|
- def finalize_options(self):
|
|
- pass
|
|
-
|
|
+class Clean(clean):
|
|
def run(self):
|
|
+ super().run()
|
|
for source in cython_c_sources:
|
|
genc = source.replace('.pyx', '.c')
|
|
rm(genc)
|
|
@@ -793,7 +786,7 @@ def run(self):
|
|
'build_usage': build_usage,
|
|
'build_man': build_man,
|
|
'sdist': Sdist,
|
|
- 'clean2': Clean,
|
|
+ 'clean': Clean,
|
|
}
|
|
|
|
ext_modules = []
|
|
@@ -882,7 +875,6 @@ def run(self):
|
|
'Programming Language :: Python :: 3.7',
|
|
'Programming Language :: Python :: 3.8',
|
|
'Programming Language :: Python :: 3.9',
|
|
- 'Programming Language :: Python :: 3.10',
|
|
'Topic :: Security :: Cryptography',
|
|
'Topic :: System :: Archiving :: Backup',
|
|
],
|
|
diff --git a/src/borg/__init__.py b/src/borg/__init__.py
|
|
index 9f13c7d6..47adb1b6 100644
|
|
--- a/src/borg/__init__.py
|
|
+++ b/src/borg/__init__.py
|
|
@@ -1,12 +1,11 @@
|
|
-from packaging.version import parse as parse_version
|
|
+from distutils.version import LooseVersion
|
|
|
|
# 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__
|
|
|
|
|
|
-_v = parse_version(__version__)
|
|
-__version_tuple__ = _v._version.release
|
|
+__version_tuple__ = tuple(LooseVersion(__version__).version[:3])
|
|
|
|
# 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 f611a80a..8f77ab95 100644
|
|
--- a/src/borg/xattr.py
|
|
+++ b/src/borg/xattr.py
|
|
@@ -8,7 +8,7 @@
|
|
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 packaging.version import parse as parse_version
|
|
+from distutils.version import LooseVersion
|
|
|
|
from .helpers import Buffer, prepare_subprocess_env
|
|
|
|
@@ -91,8 +91,8 @@ def get_all(path, follow_symlinks=True):
|
|
if preload.startswith("libfakeroot"):
|
|
env = prepare_subprocess_env(system=True)
|
|
fakeroot_output = subprocess.check_output(['fakeroot', '-v'], env=env)
|
|
- fakeroot_version = parse_version(fakeroot_output.decode('ascii').split()[-1])
|
|
- if fakeroot_version >= parse_version("1.20.2"):
|
|
+ fakeroot_version = LooseVersion(fakeroot_output.decode('ascii').split()[-1])
|
|
+ if fakeroot_version >= LooseVersion("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
|
|
--
|
|
2.30.2
|
|
|