gnu: python-sshtunnel: Update to 0.4.0-0.dc07328.

* gnu/local.mk (python-sshtunnel): Update to 0.4.0-0.dc07328.
* gnu/packages/patches/python-sshtunnel-pep518.patch
* gnu/packages/python-xyz.scm (python-sshtunnel)
[build-system]: Switch to pyproject-build-system.
[arguments]<#:phases>: Add phase 'remove-deprecated-dsskey.
[native-inputs]: Add python-setuptools.

Change-Id: I05da3ee717076b690d4a3e609b98d23a5ffa965a
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
Nicolas Graves 2025-09-23 23:36:58 +02:00 committed by Sharlatan Hellseher
parent 1cd2a221f3
commit 5f4fc7c5b2
No known key found for this signature in database
GPG key ID: 76D727BFF62CD2B5
3 changed files with 285 additions and 22 deletions

View file

@ -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 \

View file

@ -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

View file

@ -9477,29 +9477,41 @@ utility, a static analysis tool (linter) for Robot Framework source files.")
(license license:asl2.0)))
(define-public python-sshtunnel
(let ((commit "dc0732884379a19a21bf7a49650d0708519ec54f")
(revision "0"))
(package
(name "python-sshtunnel")
(version "0.4.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "sshtunnel" version))
(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
"1z7rdgpp9m36ysh9pfzrn3vyiaj05bkjvcjdhj8vz0fvfjkhxjz7"))))
(build-system python-build-system)
(base32 "0fzq7pbqa6fjamzp61gjpd2hzph2ag7r507dlwpqilp6w8ipz49a"))
(patches (search-patches "python-sshtunnel-pep518.patch"))))
(build-system pyproject-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests? (invoke "pytest" "-vv" "tests")))))))
(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-pytest python-mock))
(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