summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/paramiko')
-rw-r--r--dev-python/paramiko/Manifest2
-rw-r--r--dev-python/paramiko/files/paramiko-2.11.0-invoke-tests.patch40
-rw-r--r--dev-python/paramiko/files/paramiko-2.11.0-pytest-relaxed.patch94
-rw-r--r--dev-python/paramiko/files/paramiko-3.2.0-disable-server.patch (renamed from dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch)42
-rw-r--r--dev-python/paramiko/files/paramiko-3.2.0-nih-test-deps.patch134
-rw-r--r--dev-python/paramiko/metadata.xml4
-rw-r--r--dev-python/paramiko/paramiko-3.4.0.ebuild (renamed from dev-python/paramiko/paramiko-2.11.0.ebuild)26
7 files changed, 177 insertions, 165 deletions
diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest
index aa0b682d200c..f03fc1283b0f 100644
--- a/dev-python/paramiko/Manifest
+++ b/dev-python/paramiko/Manifest
@@ -1 +1 @@
-DIST paramiko-2.11.0.tar.gz 350793 BLAKE2B 86358e08407f8a820a9b33a60e771ac3adb8f3e003ccbc4704ba69a52bd427f38a9c49a20e6a07220d07c25dbcc35a472b2091fa9f7bc1447bab0d7a1ce16b35 SHA512 59e439bd54d83938f91d6c9888f2278bafa4ca48582939580bdabc6207dbe6dc856f6006ad26b7ec91b9d39e92ca70dc6270c6b5d4f77a5e1fa0ec8bd084d4b5
+DIST paramiko-3.4.0.gh.tar.gz 374441 BLAKE2B a6ea03d40e477cb02c1293c46025909251f8eec2be70638bf850638d9fe8c15bfe0e278697e41f3595f482b8f0755d911b905b11db2324eca597fc9be2a22f24 SHA512 f78fccf653d05acee78dfb76fb662c85fbfea7901fd94460a2d2e526c9b25169993051d20c16cfe0b7745008b1ea3a745fc9a280386d98a06689aaadf78f6752
diff --git a/dev-python/paramiko/files/paramiko-2.11.0-invoke-tests.patch b/dev-python/paramiko/files/paramiko-2.11.0-invoke-tests.patch
deleted file mode 100644
index 80fe876ef8e3..000000000000
--- a/dev-python/paramiko/files/paramiko-2.11.0-invoke-tests.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 529558cc20e448e45e24dc7b7609cd62300838b8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Thu, 16 Apr 2020 09:46:39 +0200
-Subject: [PATCH] Skip tests requiring invoke if it's not installed
-
-Since invoke is an optional dependency and only one group of tests
-require it, skip them gracefully rather than failing if it's not
-present.
----
- tests/test_config.py | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/tests/test_config.py b/tests/test_config.py
-index 45fb262d..017d4bbf 100644
---- a/tests/test_config.py
-+++ b/tests/test_config.py
-@@ -6,7 +6,11 @@ from socket import gaierror
-
- from paramiko.py3compat import string_types
-
--from invoke import Result
-+try:
-+ from invoke import Result
-+except ImportError:
-+ Result = None
-+
- from mock import patch
- from pytest import raises, mark, fixture
-
-@@ -742,6 +746,7 @@ def _expect(success_on):
- return inner
-
-
-+@mark.skipif(Result is None, reason="requires invoke package")
- class TestMatchExec(object):
- @patch("paramiko.config.invoke", new=None)
- @patch("paramiko.config.invoke_import_error", new=ImportError("meh"))
---
-2.35.1
-
diff --git a/dev-python/paramiko/files/paramiko-2.11.0-pytest-relaxed.patch b/dev-python/paramiko/files/paramiko-2.11.0-pytest-relaxed.patch
deleted file mode 100644
index 6e746aff1863..000000000000
--- a/dev-python/paramiko/files/paramiko-2.11.0-pytest-relaxed.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 03741e48c83856e53fc3f1487d660165cb718c11 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Tue, 17 May 2022 07:26:36 +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 -
- pytest.ini | 3 ---
- tests/test_client.py | 20 ++++++++++----------
- 3 files changed, 10 insertions(+), 14 deletions(-)
-
-diff --git a/dev-requirements.txt b/dev-requirements.txt
-index 3ed9eb40..e90f3373 100644
---- a/dev-requirements.txt
-+++ b/dev-requirements.txt
-@@ -2,7 +2,6 @@
- invoke==1.6.0
- invocations==2.6.0
- pytest==4.4.2
--pytest-relaxed==1.1.5
- # pytest-xdist for test dir watching and the inv guard task
- pytest-xdist==1.28.0
- mock==2.0.0
-diff --git a/pytest.ini b/pytest.ini
-index be207cd8..5a506bcd 100644
---- a/pytest.ini
-+++ b/pytest.ini
-@@ -1,7 +1,4 @@
- [pytest]
--# We use pytest-relaxed just for its utils at the moment, so disable it at the
--# plugin level until we adapt test organization to really use it.
--addopts = -p no:relaxed
- # Loop on failure
- looponfailroots = tests paramiko
- # Ignore some warnings we cannot easily handle.
-diff --git a/tests/test_client.py b/tests/test_client.py
-index fdf19c45..e4af71df 100644
---- a/tests/test_client.py
-+++ b/tests/test_client.py
-@@ -33,7 +33,7 @@ import warnings
- import weakref
- from tempfile import mkstemp
-
--from pytest_relaxed import raises
-+import pytest
- from mock import patch, Mock
-
- import paramiko
-@@ -733,11 +733,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):
-@@ -757,15 +757,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",
-+ )
---
-2.35.1
-
diff --git a/dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch b/dev-python/paramiko/files/paramiko-3.2.0-disable-server.patch
index 19450cbee1bc..942f5161ee6f 100644
--- a/dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch
+++ b/dev-python/paramiko/files/paramiko-3.2.0-disable-server.patch
@@ -1,9 +1,19 @@
+From a47e9bdc80224c9ceafcea6da5cea1539ddfbd4d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 26 May 2023 06:05:13 +0200
+Subject: [PATCH 3/3] Disable server component due to security issues
+
+---
+ paramiko/transport.py | 4 ++++
+ tests/conftest.py | 5 +++++
+ 2 files changed, 9 insertions(+)
+
diff --git a/paramiko/transport.py b/paramiko/transport.py
-index f72eebaf..ec7a1445 100644
+index 8785d6bb..803d07d1 100644
--- a/paramiko/transport.py
+++ b/paramiko/transport.py
-@@ -110,6 +110,8 @@ from paramiko.ssh_exception import (
- from paramiko.util import retry_on_signal, ClosingContextManager, clamp_value
+@@ -120,6 +120,8 @@ from paramiko.util import (
+ )
+SERVER_DISABLED_BY_GENTOO = True
@@ -11,7 +21,7 @@ index f72eebaf..ec7a1445 100644
# for thread cleanup
_active_threads = []
-@@ -633,6 +635,8 @@ class Transport(threading.Thread, ClosingContextManager):
+@@ -768,6 +770,8 @@ class Transport(threading.Thread, ClosingContextManager):
`.SSHException` -- if negotiation fails (and no ``event`` was
passed in)
"""
@@ -21,20 +31,19 @@ index f72eebaf..ec7a1445 100644
server = ServerInterface()
self.server_mode = True
diff --git a/tests/conftest.py b/tests/conftest.py
-index 2b509c5c..bb23ac74 100644
+index 7546aae4..804a289e 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
-@@ -4,7 +4,7 @@ import shutil
- import threading
+@@ -16,6 +16,7 @@ from paramiko import (
+ Ed25519Key,
+ ECDSAKey,
+ PKey,
++ transport,
+ )
- import pytest
--from paramiko import RSAKey, SFTPServer, SFTP, Transport
-+from paramiko import RSAKey, SFTPServer, SFTP, Transport, transport
-
- from .loop import LoopSocket
- from .stub_sftp import StubServer, StubSFTPServer
-@@ -15,6 +15,10 @@ from .util import _support
- # 'nicer'.
+ from ._loop import LoopSocket
+@@ -23,6 +24,10 @@ from ._stub_sftp import StubServer, StubSFTPServer
+ from ._util import _support
+# We need the server component for testing
@@ -44,3 +53,6 @@ index 2b509c5c..bb23ac74 100644
# 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
# very pinpoint debugging - e.g. using breakpoints, so you don't want output
+--
+2.40.1
+
diff --git a/dev-python/paramiko/files/paramiko-3.2.0-nih-test-deps.patch b/dev-python/paramiko/files/paramiko-3.2.0-nih-test-deps.patch
new file mode 100644
index 000000000000..84fb618dffb8
--- /dev/null
+++ b/dev-python/paramiko/files/paramiko-3.2.0-nih-test-deps.patch
@@ -0,0 +1,134 @@
+From 33c56a44f425bb5c4bf63759fbe85cfee06ab087 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Tue, 17 May 2022 07:26:36 +0200
+Subject: [PATCH 1/3] 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.
+---
+ tests/test_client.py | 19 +++++++++----------
+ 1 file changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/tests/test_client.py b/tests/test_client.py
+index 1c0c6c84..c12cbe9a 100644
+--- a/tests/test_client.py
++++ b/tests/test_client.py
+@@ -33,7 +33,6 @@ import weakref
+ from tempfile import mkstemp
+
+ import pytest
+-from pytest_relaxed import raises
+ from unittest.mock import patch, Mock
+
+ import paramiko
+@@ -799,11 +798,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):
+@@ -823,15 +822,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",
++ )
+--
+2.40.1
+
+From a75bdc46a6eb72a0b0e80eeafad2e2a2536a9bd8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sat, 21 Jan 2023 06:56:09 +0100
+Subject: [PATCH 2/3] Remove icecream dep
+
+---
+ tests/conftest.py | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/tests/conftest.py b/tests/conftest.py
+index 12b97283..7546aae4 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -22,13 +22,6 @@ from ._loop import LoopSocket
+ from ._stub_sftp import StubServer, StubSFTPServer
+ from ._util import _support
+
+-from icecream import ic, install as install_ic
+-
+-
+-# Better print() for debugging - use 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
+--
+2.40.1
+
+From a4f96f21450942398b46f2b5f125b89297f3f3f2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 26 May 2023 06:18:25 +0200
+Subject: [PATCH] Remove pointless use of Lexicon vendored from invoke with
+ class
+
+---
+ tests/conftest.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tests/conftest.py b/tests/conftest.py
+index 7546aae4..45362de8 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -4,8 +4,6 @@ import shutil
+ import threading
+ from pathlib import Path
+
+-from invoke.vendor.lexicon import Lexicon
+-
+ import pytest
+ from paramiko import (
+ SFTPServer,
+@@ -132,6 +130,10 @@ for datum in key_data:
+ datum.insert(0, short)
+
+
++class Lexicon:
++ pass
++
++
+ @pytest.fixture(scope="session", params=key_data, ids=lambda x: x[0])
+ def keys(request):
+ """
+--
+2.40.1
+
diff --git a/dev-python/paramiko/metadata.xml b/dev-python/paramiko/metadata.xml
index 05fe0aaee56e..139a32ac7fa6 100644
--- a/dev-python/paramiko/metadata.xml
+++ b/dev-python/paramiko/metadata.xml
@@ -10,13 +10,13 @@ This is a library for making SSH2 connections (client or server).
Emphasis is on using SSH2 as an alternative to SSL for making secure
connections between python scripts. All major ciphers and hash methods
are supported. SFTP client mode is now supported too.
-</longdescription>
+ </longdescription>
<longdescription lang="ja">
これはSSH2コネクション(クライアントとサーバー)を作り出すためのライブラリです。注
目点はPython言語スクリプト間のセキュアなコネクションを作り出すSSLの代用にSSHを利
用している所です。有名なCipherとHash処理の全てがサポートされています。SFTPクライ
アントもサポートされています。
-</longdescription>
+ </longdescription>
<stabilize-allarches/>
<use>
<flag name="server">Enable server feature</flag>
diff --git a/dev-python/paramiko/paramiko-2.11.0.ebuild b/dev-python/paramiko/paramiko-3.4.0.ebuild
index 6576cc3aa7b1..0d9df530e354 100644
--- a/dev-python/paramiko/paramiko-2.11.0.ebuild
+++ b/dev-python/paramiko/paramiko-3.4.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_COMPAT=( pypy3 python3_{10..12} )
PYTHON_REQ_USE="threads(+)"
inherit distutils-r1
@@ -17,12 +17,12 @@ HOMEPAGE="
"
SRC_URI="
https://github.com/paramiko/paramiko/archive/${PV}.tar.gz
- -> ${P}.tar.gz
+ -> ${P}.gh.tar.gz
"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="examples server"
RDEPEND="
@@ -30,24 +30,24 @@ RDEPEND="
>=dev-python/cryptography-2.5[${PYTHON_USEDEP}]
>=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- )
"
distutils_enable_tests pytest
+EPYTEST_DESELECT=(
+ # upstream doesn't really maintain the gssapi support
+ tests/test_gssapi.py
+ tests/test_kex_gss.py
+ tests/test_ssh_gss.py
+)
+
src_prepare() {
local PATCHES=(
- "${FILESDIR}/${PN}-2.11.0-pytest-relaxed.patch"
- "${FILESDIR}/${PN}-2.11.0-invoke-tests.patch"
+ "${FILESDIR}/${PN}-3.2.0-nih-test-deps.patch"
)
if ! use server; then
- PATCHES+=( "${FILESDIR}/${PN}-2.4.2-disable-server.patch" )
+ PATCHES+=( "${FILESDIR}/${PN}-3.2.0-disable-server.patch" )
fi
distutils-r1_src_prepare
}