~ruther/guix-local

5f4fc7c5b2a0d59f112df340f0896a2be0e0c625 — Nicolas Graves 6 months ago 1cd2a22
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>
3 files changed, 285 insertions(+), 22 deletions(-)

M gnu/local.mk
A gnu/packages/patches/python-sshtunnel-pep518.patch
M gnu/packages/python-xyz.scm
M gnu/local.mk => gnu/local.mk +1 -0
@@ 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		\

A gnu/packages/patches/python-sshtunnel-pep518.patch => gnu/packages/patches/python-sshtunnel-pep518.patch +250 -0
@@ 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


M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +34 -22
@@ 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