summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/python-sshtunnel-pep518.patch250
-rw-r--r--gnu/packages/python-xyz.scm56
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