guix_mirror_bot pushed a commit to branch python-team
in repository guix.

commit 233a9b4bba9a6c0103423044acfb09327769da46
Author: Nicolas Graves <[email protected]>
AuthorDate: Tue Sep 23 23:36:58 2025 +0200

    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 <[email protected]>
---
 gnu/local.mk                                       |   1 +
 gnu/packages/patches/python-sshtunnel-pep518.patch | 250 +++++++++++++++++++++
 gnu/packages/python-xyz.scm                        |  56 +++--
 3 files changed, 285 insertions(+), 22 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 4fa5ca90d5..0a3953f593 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2051,6 +2051,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 = "[email protected]"}
++]
++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='[email protected]',
+-
+-    # 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 fbd4ae3c2f..9609a160a8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9501,29 +9501,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

Reply via email to