diff --git a/paramiko-2.12.0.tar.gz b/paramiko-2.12.0.tar.gz deleted file mode 100644 index 6266887..0000000 --- a/paramiko-2.12.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:376885c05c5d6aa6e1f4608aac2a6b5b0548b1add40274477324605903d9cd49 -size 1076369 diff --git a/paramiko-3.1.0.tar.gz b/paramiko-3.1.0.tar.gz new file mode 100644 index 0000000..52ee4bb --- /dev/null +++ b/paramiko-3.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6950faca6819acd3219d4ae694a23c7a87ee38d084f70c1724b0c0dbb8b75769 +size 1189515 diff --git a/paramiko-pr1665-remove-pytest-relaxed.patch b/paramiko-pr1665-remove-pytest-relaxed.patch deleted file mode 100644 index a2ba4cf..0000000 --- a/paramiko-pr1665-remove-pytest-relaxed.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 5844aa0270d3ad8feab4bf1023e35aa4fc255b6c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= -Date: Thu, 16 Apr 2020 09:22:59 +0200 -Subject: [PATCH] Replace pytest-relaxed with plain pytest.raises - -There is really no technical reason to bring pytest-relaxed to call -@raises as a decorator while plain pytest works just fine. Plus, -pytest.raises() is used in test_sftp already. - -pytest-relaxed causes humongous breakage to other packages -on the system. It has been banned from Gentoo for this reason. ---- - dev-requirements.txt | 1 - (removed from patch= - setup.cfg | 3 --- - tests/test_client.py | 20 ++++++++++---------- - 3 files changed, 10 insertions(+), 14 deletions(-) - -Index: paramiko-2.12.0/tests/test_client.py -=================================================================== ---- paramiko-2.12.0.orig/tests/test_client.py -+++ paramiko-2.12.0/tests/test_client.py -@@ -34,7 +34,6 @@ import weakref - from tempfile import mkstemp - - import pytest --from pytest_relaxed import raises - from mock import patch, Mock - - import paramiko -@@ -787,11 +786,11 @@ class PasswordPassphraseTests(ClientTest - - # TODO: more granular exception pending #387; should be signaling "no auth - # methods available" because no key and no password -- @raises(SSHException) - @requires_sha1_signing - def test_passphrase_kwarg_not_used_for_password_auth(self): -- # Using the "right" password in the "wrong" field shouldn't work. -- self._test_connection(passphrase="pygmalion") -+ with pytest.raises(SSHException): -+ # Using the "right" password in the "wrong" field shouldn't work. -+ self._test_connection(passphrase="pygmalion") - - @requires_sha1_signing - def test_passphrase_kwarg_used_for_key_passphrase(self): -@@ -811,15 +810,15 @@ class PasswordPassphraseTests(ClientTest - password="television", - ) - -- @raises(AuthenticationException) # TODO: more granular - @requires_sha1_signing - def test_password_kwarg_not_used_for_passphrase_when_passphrase_kwarg_given( # noqa - self - ): - # Sanity: if we're given both fields, the password field is NOT used as - # a passphrase. -- self._test_connection( -- key_filename=_support("test_rsa_password.key"), -- password="television", -- passphrase="wat? lol no", -- ) -+ with pytest.raises(AuthenticationException): -+ self._test_connection( -+ key_filename=_support("test_rsa_password.key"), -+ password="television", -+ passphrase="wat? lol no", -+ ) diff --git a/python-paramiko.changes b/python-paramiko.changes index c7d7cee..a4f6380 100644 --- a/python-paramiko.changes +++ b/python-paramiko.changes @@ -1,3 +1,72 @@ +------------------------------------------------------------------- +Fri May 12 09:27:30 UTC 2023 - Daniel Garcia + +- Delete paramiko-pr1665-remove-pytest-relaxed.patch +- Add remove-icecream-dep.patch +- Update to 3.1.0: + * [Feature] #2173: Accept single tabs as field separators (in + addition to single spaces) in + for parity with + OpenSSH’s KnownHosts parser. Patched by Alex Chavkin. + * [Feature] #2013: (solving #2009, plus others) Add an explicit + channel_timeout keyword argument to + paramiko.client.SSHClient.connect, allowing users to configure the + previously-hardcoded default value of 3600 seconds. Thanks to + @VakarisZ and @ilija-lazoroski for the report and patch, with + credit to Mike Salvatore for patch review. + * [Support] #2178: Apply codespell to the codebase, which found a + lot of very old minor spelling mistakes in docstrings. Also + modernize many instances of *largs vs *args and **kwarg vs + **kwargs. Patch courtesy of Yaroslav Halchenko, with review from + Brian Skinn. +- 3.0.0: + * [Bug]: A handful of lower-level classes (notably + paramiko.message.Message and paramiko.pkey.PKey) previously + returned bytes objects from their implementation of __str__, even + under Python 3; and there was never any __bytes__ method. + * These issues have been fixed by renaming __str__ to __bytes__ and + relying on Python’s default “stringification returns the output of + __repr__” behavior re: any real attempts to str() such objects. + * [Bug] #2165: Streamline some redundant (and costly) byte + conversion calls in the packetizer and the core SFTP module. This + should lead to some SFTP speedups at the very least. Thanks to + Alex Gaynor for the patch. + * [Bug] #2110: Remove some unnecessary __repr__ calls when handling + bytes-vs-str conversions. This was apparently doing a lot of + unintentional data processing, which adds up in some use cases – + such as SFTP transfers, which may now be significantly faster. + Kudos to Shuhua Zhong for catch & patch. + * [Support]: Drop support for Python versions less than 3.6, + including Python 2. So long and thanks for all the fish! + * [Support]: Remove the now irrelevant paramiko.py3compat module. + * [Support]: paramiko.common.asbytes has been moved to + paramiko.util.asbytes. + * [Support]: PKey.__cmp__ has been removed. Ordering-oriented + comparison of key files is unlikely to have ever made sense (the + old implementation attempted to order by the hashes of the key + material) and so we have not bothered setting up __lt__ and + friends at this time. The class continues to have its original + __eq__ untouched. + * [Support]: The behavior of private key classes’ (ie anything + inheriting from PKey) private key writing methods used to perform + a manual, extra chmod call after writing. This hasn’t been + strictly necessary since the mid 2.x release line (when key + writing started giving the mode argument to os.open), and has now + been removed entirely. + * This should only be observable if you were mocking Paramiko’s + system calls during your own testing, or similar. + * [Support] #732: (also re: #630) SSHConfig used to straight-up + delete the proxycommand key from config lookup results when the + source config said ProxyCommand none. This has been altered to + preserve the key and give it the Python value None, thus making + the Python representation more in line with the source config + file. + * [Support]: paramiko.util.retry_on_signal (and any internal uses of + same, and also any internal retries of EINTR on eg socket + operations) has been removed. As of Python 3.5, per PEP 475, this + functionality (and retrying EINTR generally) is now part of the + standard library. + ------------------------------------------------------------------- Sun Apr 23 23:16:46 UTC 2023 - Matej Cepl diff --git a/python-paramiko.spec b/python-paramiko.spec index 6725b05..8141cd9 100644 --- a/python-paramiko.spec +++ b/python-paramiko.spec @@ -19,7 +19,7 @@ %define skip_python2 1 %{?sle15_python_module_pythons} Name: python-paramiko -Version: 2.12.0 +Version: 3.1.0 Release: 0 Summary: SSH2 protocol library License: LGPL-2.1-or-later @@ -27,33 +27,32 @@ Group: Documentation/Other URL: https://www.paramiko.org/ Source0: https://files.pythonhosted.org/packages/source/p/paramiko/paramiko-%{version}.tar.gz Patch0: paramiko-test_extend_timeout.patch -# PATCH-FIX-UPSTREAM paramiko-pr1665-remove-pytest-relaxed.patch gh#paramiko/paramiko#1665 -- pytest-relaxed is broken -Patch1: paramiko-pr1665-remove-pytest-relaxed.patch +# PATCH-FIX-OPENSUSE remove-icecream-dep.patch to do not depend on python-icecream +Patch1: remove-icecream-dep.patch BuildRequires: %{python_module PyNaCl >= 1.0.1} %if 0%{?suse_version} > 1500 BuildRequires: python3-Sphinx %else BuildRequires: %{python_module Sphinx} %endif -BuildRequires: %{python_module bcrypt >= 3.1.3} -BuildRequires: %{python_module cryptography >= 2.5} +BuildRequires: %{python_module bcrypt >= 3.2} +BuildRequires: %{python_module cryptography >= 3.3} BuildRequires: %{python_module gssapi} BuildRequires: %{python_module invocations} -BuildRequires: %{python_module invoke >= 1.3} +BuildRequires: %{python_module invoke >= 2.0} BuildRequires: %{python_module pyasn1 >= 0.1.7} +BuildRequires: %{python_module pytest-relaxed} BuildRequires: %{python_module pytest-xdist} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module six} BuildRequires: fdupes BuildRequires: python-rpm-macros Recommends: python-gssapi Recommends: python-invoke -Requires: python-PyNaCl >= 1.0.1 -Requires: python-bcrypt >= 3.1.3 -Requires: python-cryptography >= 2.5 +Requires: python-PyNaCl >= 1.5 +Requires: python-bcrypt >= 3.2 +Requires: python-cryptography >= 3.3 Requires: python-pyasn1 >= 0.1.7 -Requires: python-six BuildArch: noarch %python_subpackages @@ -91,10 +90,10 @@ find demos -name "*.py" -exec sed -i "/#\!\/usr\/bin\/.*/d" {} \; -exec chmod -x %python_expand %fdupes %{buildroot}%{$python_sitelib} %check -# https://github.com/paramiko/paramiko/issues/2027 -- despite being "completed" upstream, this is not fixed yet. -sed -i 's:from mock:from unittest.mock:' tests/test_*.py export LANG=en_US.UTF-8 -%pytest +# Do not test k5shell to avoid dependency +donttest="k5shell" +%pytest tests/test_*.py -k "not $donttest" %files %{python_files} %license LICENSE diff --git a/remove-icecream-dep.patch b/remove-icecream-dep.patch new file mode 100644 index 0000000..f3ffa0a --- /dev/null +++ b/remove-icecream-dep.patch @@ -0,0 +1,17 @@ +Index: paramiko-3.1.0/tests/conftest.py +=================================================================== +--- paramiko-3.1.0.orig/tests/conftest.py ++++ paramiko-3.1.0/tests/conftest.py +@@ -10,12 +10,6 @@ from .loop import LoopSocket + from .stub_sftp import StubServer, StubSFTPServer + from .util import _support + +-from icecream import ic, install as install_ic +- +- +-install_ic() +-ic.configureOutput(includeContext=True) +- + + # Perform logging by default; pytest will capture and thus hide it normally, + # presenting it on error/failure. (But also allow turning it off when doing