1 |
commit: b7eedbb8cc180e0f9f54653582fe6ca86d25a794 |
2 |
Author: Michał Górny <mgorny <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue May 17 04:57:36 2022 +0000 |
4 |
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue May 17 06:54:15 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b7eedbb8 |
7 |
|
8 |
dev-python/paramiko: Bump to 2.11.0 |
9 |
|
10 |
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> |
11 |
|
12 |
dev-python/paramiko/Manifest | 1 + |
13 |
.../files/paramiko-2.11.0-invoke-tests.patch | 40 +++++++++ |
14 |
.../files/paramiko-2.11.0-pytest-relaxed.patch | 94 ++++++++++++++++++++++ |
15 |
dev-python/paramiko/paramiko-2.11.0.ebuild | 63 +++++++++++++++ |
16 |
4 files changed, 198 insertions(+) |
17 |
|
18 |
diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest |
19 |
index cda2918825b1..bf23678bc41d 100644 |
20 |
--- a/dev-python/paramiko/Manifest |
21 |
+++ b/dev-python/paramiko/Manifest |
22 |
@@ -1,2 +1,3 @@ |
23 |
DIST paramiko-2.10.3.tar.gz 347738 BLAKE2B ccc66a7e0fe3f777e74b94374ed59435eda440fe0aeab3871e68a132610193d2fadca1fd200db3d194566b8a2a8d6ff889d71594fed69a01fb97ca43b967e957 SHA512 e1fce2ad33ee2942b519458d53497671e66d4777c23877954b135cf9bb8ec43357156147c7e012956ccf6198de800835a617b541a4b0faf54df00f936128514b |
24 |
DIST paramiko-2.10.4.tar.gz 348637 BLAKE2B 8ce0d34418b6a1dc1d98fc180d2b2f0fb4333b7e1c52fcf7edabc3b0fc096f1b644dbc21a5b37f9001f046969c3d513ad5f6d7261339a71fa3ec922161cd7be7 SHA512 df39958e647dd6519929f68c4870228a61f54e763751e6b1d07b5e802786c85dfc34af39588009e729c4d189ca17d3aa09a58d4242403a1a1a53d36f6cd313b1 |
25 |
+DIST paramiko-2.11.0.tar.gz 350793 BLAKE2B 86358e08407f8a820a9b33a60e771ac3adb8f3e003ccbc4704ba69a52bd427f38a9c49a20e6a07220d07c25dbcc35a472b2091fa9f7bc1447bab0d7a1ce16b35 SHA512 59e439bd54d83938f91d6c9888f2278bafa4ca48582939580bdabc6207dbe6dc856f6006ad26b7ec91b9d39e92ca70dc6270c6b5d4f77a5e1fa0ec8bd084d4b5 |
26 |
|
27 |
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 |
28 |
new file mode 100644 |
29 |
index 000000000000..80fe876ef8e3 |
30 |
--- /dev/null |
31 |
+++ b/dev-python/paramiko/files/paramiko-2.11.0-invoke-tests.patch |
32 |
@@ -0,0 +1,40 @@ |
33 |
+From 529558cc20e448e45e24dc7b7609cd62300838b8 Mon Sep 17 00:00:00 2001 |
34 |
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
35 |
+Date: Thu, 16 Apr 2020 09:46:39 +0200 |
36 |
+Subject: [PATCH] Skip tests requiring invoke if it's not installed |
37 |
+ |
38 |
+Since invoke is an optional dependency and only one group of tests |
39 |
+require it, skip them gracefully rather than failing if it's not |
40 |
+present. |
41 |
+--- |
42 |
+ tests/test_config.py | 7 ++++++- |
43 |
+ 1 file changed, 6 insertions(+), 1 deletion(-) |
44 |
+ |
45 |
+diff --git a/tests/test_config.py b/tests/test_config.py |
46 |
+index 45fb262d..017d4bbf 100644 |
47 |
+--- a/tests/test_config.py |
48 |
++++ b/tests/test_config.py |
49 |
+@@ -6,7 +6,11 @@ from socket import gaierror |
50 |
+ |
51 |
+ from paramiko.py3compat import string_types |
52 |
+ |
53 |
+-from invoke import Result |
54 |
++try: |
55 |
++ from invoke import Result |
56 |
++except ImportError: |
57 |
++ Result = None |
58 |
++ |
59 |
+ from mock import patch |
60 |
+ from pytest import raises, mark, fixture |
61 |
+ |
62 |
+@@ -742,6 +746,7 @@ def _expect(success_on): |
63 |
+ return inner |
64 |
+ |
65 |
+ |
66 |
++@××××.skipif(Result is None, reason="requires invoke package") |
67 |
+ class TestMatchExec(object): |
68 |
+ @patch("paramiko.config.invoke", new=None) |
69 |
+ @patch("paramiko.config.invoke_import_error", new=ImportError("meh")) |
70 |
+-- |
71 |
+2.35.1 |
72 |
+ |
73 |
|
74 |
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 |
75 |
new file mode 100644 |
76 |
index 000000000000..6e746aff1863 |
77 |
--- /dev/null |
78 |
+++ b/dev-python/paramiko/files/paramiko-2.11.0-pytest-relaxed.patch |
79 |
@@ -0,0 +1,94 @@ |
80 |
+From 03741e48c83856e53fc3f1487d660165cb718c11 Mon Sep 17 00:00:00 2001 |
81 |
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
82 |
+Date: Tue, 17 May 2022 07:26:36 +0200 |
83 |
+Subject: [PATCH] Replace pytest-relaxed with plain pytest.raises |
84 |
+ |
85 |
+There is really no technical reason to bring pytest-relaxed to call |
86 |
+@raises as a decorator while plain pytest works just fine. Plus, |
87 |
+pytest.raises() is used in test_sftp already. |
88 |
+ |
89 |
+pytest-relaxed causes humongous breakage to other packages |
90 |
+on the system. It has been banned from Gentoo for this reason. |
91 |
+--- |
92 |
+ dev-requirements.txt | 1 - |
93 |
+ pytest.ini | 3 --- |
94 |
+ tests/test_client.py | 20 ++++++++++---------- |
95 |
+ 3 files changed, 10 insertions(+), 14 deletions(-) |
96 |
+ |
97 |
+diff --git a/dev-requirements.txt b/dev-requirements.txt |
98 |
+index 3ed9eb40..e90f3373 100644 |
99 |
+--- a/dev-requirements.txt |
100 |
++++ b/dev-requirements.txt |
101 |
+@@ -2,7 +2,6 @@ |
102 |
+ invoke==1.6.0 |
103 |
+ invocations==2.6.0 |
104 |
+ pytest==4.4.2 |
105 |
+-pytest-relaxed==1.1.5 |
106 |
+ # pytest-xdist for test dir watching and the inv guard task |
107 |
+ pytest-xdist==1.28.0 |
108 |
+ mock==2.0.0 |
109 |
+diff --git a/pytest.ini b/pytest.ini |
110 |
+index be207cd8..5a506bcd 100644 |
111 |
+--- a/pytest.ini |
112 |
++++ b/pytest.ini |
113 |
+@@ -1,7 +1,4 @@ |
114 |
+ [pytest] |
115 |
+-# We use pytest-relaxed just for its utils at the moment, so disable it at the |
116 |
+-# plugin level until we adapt test organization to really use it. |
117 |
+-addopts = -p no:relaxed |
118 |
+ # Loop on failure |
119 |
+ looponfailroots = tests paramiko |
120 |
+ # Ignore some warnings we cannot easily handle. |
121 |
+diff --git a/tests/test_client.py b/tests/test_client.py |
122 |
+index fdf19c45..e4af71df 100644 |
123 |
+--- a/tests/test_client.py |
124 |
++++ b/tests/test_client.py |
125 |
+@@ -33,7 +33,7 @@ import warnings |
126 |
+ import weakref |
127 |
+ from tempfile import mkstemp |
128 |
+ |
129 |
+-from pytest_relaxed import raises |
130 |
++import pytest |
131 |
+ from mock import patch, Mock |
132 |
+ |
133 |
+ import paramiko |
134 |
+@@ -733,11 +733,11 @@ class PasswordPassphraseTests(ClientTest): |
135 |
+ |
136 |
+ # TODO: more granular exception pending #387; should be signaling "no auth |
137 |
+ # methods available" because no key and no password |
138 |
+- @raises(SSHException) |
139 |
+ @requires_sha1_signing |
140 |
+ def test_passphrase_kwarg_not_used_for_password_auth(self): |
141 |
+- # Using the "right" password in the "wrong" field shouldn't work. |
142 |
+- self._test_connection(passphrase="pygmalion") |
143 |
++ with pytest.raises(SSHException): |
144 |
++ # Using the "right" password in the "wrong" field shouldn't work. |
145 |
++ self._test_connection(passphrase="pygmalion") |
146 |
+ |
147 |
+ @requires_sha1_signing |
148 |
+ def test_passphrase_kwarg_used_for_key_passphrase(self): |
149 |
+@@ -757,15 +757,15 @@ class PasswordPassphraseTests(ClientTest): |
150 |
+ password="television", |
151 |
+ ) |
152 |
+ |
153 |
+- @raises(AuthenticationException) # TODO: more granular |
154 |
+ @requires_sha1_signing |
155 |
+ def test_password_kwarg_not_used_for_passphrase_when_passphrase_kwarg_given( # noqa |
156 |
+ self |
157 |
+ ): |
158 |
+ # Sanity: if we're given both fields, the password field is NOT used as |
159 |
+ # a passphrase. |
160 |
+- self._test_connection( |
161 |
+- key_filename=_support("test_rsa_password.key"), |
162 |
+- password="television", |
163 |
+- passphrase="wat? lol no", |
164 |
+- ) |
165 |
++ with pytest.raises(AuthenticationException): |
166 |
++ self._test_connection( |
167 |
++ key_filename=_support("test_rsa_password.key"), |
168 |
++ password="television", |
169 |
++ passphrase="wat? lol no", |
170 |
++ ) |
171 |
+-- |
172 |
+2.35.1 |
173 |
+ |
174 |
|
175 |
diff --git a/dev-python/paramiko/paramiko-2.11.0.ebuild b/dev-python/paramiko/paramiko-2.11.0.ebuild |
176 |
new file mode 100644 |
177 |
index 000000000000..846177cc6874 |
178 |
--- /dev/null |
179 |
+++ b/dev-python/paramiko/paramiko-2.11.0.ebuild |
180 |
@@ -0,0 +1,63 @@ |
181 |
+# Copyright 1999-2022 Gentoo Authors |
182 |
+# Distributed under the terms of the GNU General Public License v2 |
183 |
+ |
184 |
+EAPI=8 |
185 |
+ |
186 |
+DISTUTILS_USE_PEP517=setuptools |
187 |
+PYTHON_COMPAT=( python3_{8..11} ) |
188 |
+PYTHON_REQ_USE="threads(+)" |
189 |
+ |
190 |
+inherit distutils-r1 |
191 |
+ |
192 |
+DESCRIPTION="SSH2 protocol library" |
193 |
+HOMEPAGE=" |
194 |
+ https://www.paramiko.org/ |
195 |
+ https://github.com/paramiko/paramiko/ |
196 |
+ https://pypi.org/project/paramiko/ |
197 |
+" |
198 |
+SRC_URI=" |
199 |
+ https://github.com/paramiko/paramiko/archive/${PV}.tar.gz |
200 |
+ -> ${P}.tar.gz |
201 |
+" |
202 |
+ |
203 |
+LICENSE="LGPL-2.1" |
204 |
+SLOT="0" |
205 |
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris" |
206 |
+IUSE="examples server" |
207 |
+ |
208 |
+RDEPEND=" |
209 |
+ >=dev-python/bcrypt-3.1.3[${PYTHON_USEDEP}] |
210 |
+ >=dev-python/cryptography-2.5[${PYTHON_USEDEP}] |
211 |
+ >=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}] |
212 |
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}] |
213 |
+ dev-python/six[${PYTHON_USEDEP}] |
214 |
+" |
215 |
+BDEPEND=" |
216 |
+ test? ( |
217 |
+ dev-python/mock[${PYTHON_USEDEP}] |
218 |
+ ) |
219 |
+" |
220 |
+ |
221 |
+distutils_enable_sphinx sites/docs |
222 |
+distutils_enable_tests pytest |
223 |
+ |
224 |
+src_prepare() { |
225 |
+ local PATCHES=( |
226 |
+ "${FILESDIR}/${PN}-2.11.0-pytest-relaxed.patch" |
227 |
+ "${FILESDIR}/${PN}-2.11.0-invoke-tests.patch" |
228 |
+ ) |
229 |
+ |
230 |
+ if ! use server; then |
231 |
+ PATCHES+=( "${FILESDIR}/${PN}-2.4.2-disable-server.patch" ) |
232 |
+ fi |
233 |
+ distutils-r1_src_prepare |
234 |
+} |
235 |
+ |
236 |
+python_install_all() { |
237 |
+ distutils-r1_python_install_all |
238 |
+ |
239 |
+ if use examples; then |
240 |
+ docinto examples |
241 |
+ dodoc -r demos/* |
242 |
+ fi |
243 |
+} |