diff options
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/python-sshtunnel-pep518.patch | 250 | ||||
-rw-r--r-- | gnu/packages/python-xyz.scm | 56 |
3 files changed, 285 insertions, 22 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 5674fcfb91..1ef437c3a8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2053,6 +2053,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-sgmllib3k-assertions.patch \ %D%/packages/patches/python-sphobjinv-defer-ssl-import.patch \ %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \ + %D%/packages/patches/python-sshtunnel-pep518.patch \ %D%/packages/patches/python-zeroc-ice-3.6.5-python-3.11-support.patch \ %D%/packages/patches/qcodeeditor-qt6.patch \ %D%/packages/patches/qgit-2.12-fix-search-style.patch \ diff --git a/gnu/packages/patches/python-sshtunnel-pep518.patch b/gnu/packages/patches/python-sshtunnel-pep518.patch new file mode 100644 index 0000000000..9ad771a0c4 --- /dev/null +++ b/gnu/packages/patches/python-sshtunnel-pep518.patch @@ -0,0 +1,250 @@ +https://github.com/pahaz/sshtunnel/pull/304 +--- + pyproject.toml | 66 +++++++++++++++++++++++- + setup.cfg | 15 ------ + setup.py | 137 ------------------------------------------------- + 3 files changed, 65 insertions(+), 153 deletions(-) + delete mode 100644 setup.cfg + delete mode 100644 setup.py + +diff --git a/pyproject.toml b/pyproject.toml +index b0471b7..fbc473a 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,3 +1,67 @@ + [build-system] + requires = ["setuptools", "wheel"] +-build-backend = "setuptools.build_meta:__legacy__" +\ No newline at end of file ++build-backend = "setuptools.build_meta" ++ ++[project] ++name = "sshtunnel" ++dynamic = ["version", "readme"] ++description = "Pure python SSH tunnels" ++license = {text = "MIT"} ++authors = [ ++ {name = "Pahaz White", email = "pahaz.white@gmail.com"} ++] ++keywords = ["ssh", "tunnel", "paramiko", "proxy", "tcp-forward"] ++classifiers = [ ++ "Development Status :: 3 - Alpha", ++ "Intended Audience :: Developers", ++ "Topic :: Software Development :: Build Tools", ++ "License :: OSI Approved :: MIT License", ++ "Programming Language :: Python :: 2", ++ "Programming Language :: Python :: 2.7", ++ "Programming Language :: Python :: 3", ++ "Programming Language :: Python :: 3.4", ++ "Programming Language :: Python :: 3.5", ++ "Programming Language :: Python :: 3.6", ++ "Programming Language :: Python :: 3.7", ++ "Programming Language :: Python :: 3.8", ++] ++requires-python = ">=2.7" ++dependencies = [ ++ "paramiko>=2.7.2", ++] ++ ++[project.urls] ++Homepage = "https://github.com/pahaz/sshtunnel" ++Download = "https://pypi.python.org/packages/source/s/sshtunnel/" ++ ++[project.optional-dependencies] ++dev = ["check-manifest"] ++test = ["tox>=1.8.1"] ++build_sphinx = ["sphinx", "sphinxcontrib-napoleon"] ++ ++[project.scripts] ++sshtunnel = "sshtunnel:_cli_main" ++ ++[tool.setuptools] ++py-modules = ["sshtunnel"] ++ ++[tool.setuptools.dynamic] ++version = {attr = "sshtunnel.__version__"} ++readme = {file = ["README.rst", "docs.rst", "changelog.rst"], content-type = "text/x-rst"} ++ ++[tool.setuptools.package-data] ++tests = ["testrsa.key"] ++ ++[tool.bdist_wheel] ++universal = true ++ ++[tool.check-manifest] ++ignore = [ ++ ".travis.yml", ++ "circle.yml", ++ "tox.ini" ++] ++ ++[tool.build_sphinx] ++source-dir = "docs/" ++build-dir = "docs/_build" +diff --git a/setup.cfg b/setup.cfg +deleted file mode 100644 +index 94f65bb..0000000 +--- a/setup.cfg ++++ /dev/null +@@ -1,15 +0,0 @@ +-[bdist_wheel] +-# This flag says that the code is written to work on both Python 2 and Python +-# 3. If at all possible, it is good practice to do this. If you cannot, you +-# will need to generate wheels for each Python version that you support. +-universal=1 +- +-[check-manifest] +-ignore = +- .travis.yml +- circle.yml +- tox.ini +- +-[build_sphinx] +-source-dir = docs/ +-build-dir = docs/_build +diff --git a/setup.py b/setup.py +deleted file mode 100644 +index ccaaab8..0000000 +--- a/setup.py ++++ /dev/null +@@ -1,137 +0,0 @@ +-"""A setuptools based setup module. +- +-See: +-https://packaging.python.org/en/latest/distributing.html +-https://github.com/pypa/sampleproject +-""" +- +-import re +-from os import path +-from codecs import open # To use a consistent encoding +-from setuptools import setup # Always prefer setuptools over distutils +- +-here = path.abspath(path.dirname(__file__)) +-name = 'sshtunnel' +-description = 'Pure python SSH tunnels' +-url = 'https://github.com/pahaz/sshtunnel' +-ppa = 'https://pypi.python.org/packages/source/s/{0}/{0}-'.format(name) +- +-# Get the long description from the README file +-with open(path.join(here, 'README.rst'), encoding='utf-8') as f: +- long_description = f.read() +-with open(path.join(here, 'docs.rst'), encoding='utf-8') as f: +- documentation = f.read() +-with open(path.join(here, 'changelog.rst'), encoding='utf-8') as f: +- changelog = f.read() +- +-with open(path.join(here, name + '.py'), encoding='utf-8') as f: +- data = f.read() +- version = eval(re.search("__version__[ ]*=[ ]*([^\r\n]+)", data).group(1)) +- +- +-setup( +- name=name, +- +- # Versions should comply with PEP440. For a discussion on single-sourcing +- # the version across setup.py and the project code, see +- # https://packaging.python.org/en/latest/single_source_version.html +- version=version, +- +- description=description, +- long_description='\n'.join((long_description, documentation, changelog)), +- long_description_content_type='text/x-rst', +- +- # The project's main homepage. +- url=url, +- download_url=ppa + version + '.zip', # noqa +- +- # Author details +- author='Pahaz White', +- author_email='pahaz.white@gmail.com', +- +- # Choose your license +- license='MIT', +- +- # See https://pypi.python.org/pypi?%3Aaction=list_classifiers +- classifiers=[ +- # How mature is this project? Common values are +- # 3 - Alpha +- # 4 - Beta +- # 5 - Production/Stable +- 'Development Status :: 3 - Alpha', +- +- # Indicate who your project is intended for +- 'Intended Audience :: Developers', +- 'Topic :: Software Development :: Build Tools', +- +- # Pick your license as you wish (should match "license" above) +- 'License :: OSI Approved :: MIT License', +- +- # Specify the Python versions you support here. In particular, ensure +- # that you indicate whether you support Python 2, Python 3 or both. +- 'Programming Language :: Python :: 2', +- 'Programming Language :: Python :: 2.7', +- 'Programming Language :: Python :: 3', +- 'Programming Language :: Python :: 3.4', +- 'Programming Language :: Python :: 3.5', +- 'Programming Language :: Python :: 3.6', +- 'Programming Language :: Python :: 3.7', +- 'Programming Language :: Python :: 3.8', +- ], +- +- platforms=['unix', 'macos', 'windows'], +- +- # What does your project relate to? +- keywords='ssh tunnel paramiko proxy tcp-forward', +- +- # You can just specify the packages manually here if your project is +- # simple. Or you can use find_packages(). +- # packages=find_packages(exclude=['contrib', 'docs', 'tests']), +- +- # Alternatively, if you want to distribute just a my_module.py, uncomment +- # this: +- py_modules=["sshtunnel"], +- +- # List run-time dependencies here. These will be installed by pip when +- # your project is installed. For an analysis of "install_requires" vs pip's +- # requirements files see: +- # https://packaging.python.org/en/latest/requirements.html +- install_requires=[ +- 'paramiko>=2.7.2', +- ], +- +- # List additional groups of dependencies here (e.g. development +- # dependencies). You can install these using the following syntax, +- # for example: +- # $ pip install -e .[dev,test] +- tests_require=[ +- 'tox>=1.8.1', +- ], +- extras_require={ +- 'dev': ['check-manifest'], +- 'test': [ +- 'tox>=1.8.1', +- ], +- 'build_sphinx': [ +- 'sphinx', +- 'sphinxcontrib-napoleon', +- ], +- }, +- +- # If there are data files included in your packages that need to be +- # installed, specify them here. If using Python 2.6 or less, then these +- # have to be included in MANIFEST.in as well. +- package_data={ +- 'tests': ['testrsa.key'], +- }, +- +- # To provide executable scripts, use entry points in preference to the +- # "scripts" keyword. Entry points provide cross-platform support and allow +- # pip to create the appropriate form of executable for the target platform. +- entry_points={ +- 'console_scripts': [ +- 'sshtunnel=sshtunnel:_cli_main', +- ] +- }, +- +-) +-- +2.51.0 + diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index aee2b4483c..3a73c4687a 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -9477,29 +9477,41 @@ utility, a static analysis tool (linter) for Robot Framework source files.") (license license:asl2.0))) (define-public python-sshtunnel - (package - (name "python-sshtunnel") - (version "0.4.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "sshtunnel" version)) - (sha256 - (base32 - "1z7rdgpp9m36ysh9pfzrn3vyiaj05bkjvcjdhj8vz0fvfjkhxjz7")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? (invoke "pytest" "-vv" "tests"))))))) - (propagated-inputs (list python-paramiko)) - (native-inputs (list openssh python-pytest python-mock)) - (home-page "https://github.com/pahaz/sshtunnel") - (synopsis "Python SSH tunnels library") - (description "@code{sshtunnel} is a Python module for easily creating SSH + (let ((commit "dc0732884379a19a21bf7a49650d0708519ec54f") + (revision "0")) + (package + (name "python-sshtunnel") + (version (git-version "0.4.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pahaz/sshtunnel") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fzq7pbqa6fjamzp61gjpd2hzph2ag7r507dlwpqilp6w8ipz49a")) + (patches (search-patches "python-sshtunnel-pep518.patch")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-deprecated-dsskey + (lambda _ + (substitute* "sshtunnel.py" + (("'dsa': paramiko\\.DSSKey,") + "") + (("paramiko\\.DSSKey, ") + ""))))))) + (propagated-inputs (list python-paramiko)) + (native-inputs + (list openssh python-mock python-pytest python-setuptools)) + (home-page "https://github.com/pahaz/sshtunnel") + (synopsis "Python SSH tunnels library") + (description "@code{sshtunnel} is a Python module for easily creating SSH tunnels in the background, using Python.") - (license license:expat))) + (license license:expat)))) (define-public python-robotframework-sshtunnellibrary (package |