summaryrefslogtreecommitdiff
path: root/dev-python/paramiko
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-05-26 09:08:49 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-05-26 09:08:49 +0100
commit720452fca3cdf447b4c65bc3bb363032a983309e (patch)
treebabdd1cb196da2b5da2e481505e2e492cb4fe458 /dev-python/paramiko
parent5923f7107d7596f9ecb6a86b451105462668601c (diff)
gentoo auto-resync : 26:05:2023 - 09:08:49
Diffstat (limited to 'dev-python/paramiko')
-rw-r--r--dev-python/paramiko/Manifest4
-rw-r--r--dev-python/paramiko/files/paramiko-3.2.0-disable-server.patch58
-rw-r--r--dev-python/paramiko/files/paramiko-3.2.0-nih-test-deps.patch134
-rw-r--r--dev-python/paramiko/paramiko-3.2.0.ebuild57
4 files changed, 253 insertions, 0 deletions
diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest
index 86e6ca5f426a..bef5198d0776 100644
--- a/dev-python/paramiko/Manifest
+++ b/dev-python/paramiko/Manifest
@@ -1,5 +1,9 @@
AUX paramiko-2.4.2-disable-server.patch 1596 BLAKE2B 7e2ef1e216f34086c06d985556dde82eccfc08b835a9b336f1e54e81ddf32567872daec9dadc728bfaab8e3c4728439d704d51f9b1df5e04a64b5064f6d79bf5 SHA512 5e2f9285ffa3ece551ce929c6d50691761da6269e906355bbf79b0664a764083f7d55a9e347e2ed236a4c9a7f934d489315b68ebea984694ee9d1714416d34fd
AUX paramiko-3.0.0-nih-test-deps.patch 3435 BLAKE2B fbbe2bbd8b05dd215b2ba413e208a96fbd1df9904271980658e1fae100e6fb1d049e15d582a307364d6416090b97741cbfc8d7304e08d7b7bbfbd70e0f1a1522 SHA512 76cca0e404215e505d6ceb650da796862fd87ab460e1a65438c62cb926af4a3ebb8f603bd26acc1a6d1a1a37e6090fc01edc4ae7a7f81f18105d3d9fce03545d
+AUX paramiko-3.2.0-disable-server.patch 1771 BLAKE2B 3cab494873956d6f36b8ea85903141a49eb515fd92851f041f91418dc58acc77cdaf00a215c8e681d037d78eabfc7718a5670f2ca6af02fe357daece9a48819e SHA512 9f2f85518dec8668d096fa1db77ec5219f14fb6127c29bbdc2ba47f55e3526e9f1dbca421adb18033a8358c0efac7db723536b26bd8f45c8583503fb4ae58d76
+AUX paramiko-3.2.0-nih-test-deps.patch 4289 BLAKE2B 4a77852f0ae3cda52eca8844f4bf2571c17a0935088973f48c46abf250081845a870fb52d8ebafb108f634dbe86fbe784eefd49d9240c50f911d56173d1e3d71 SHA512 4e0bed394e4c8be19108cc0a7253d6306a698a3cc09b40c18459c8e16591ff42c41cb4f385fc05dcf902161fa23ce2b7d00c665784b9106344a5ca42e4f2a788
DIST paramiko-3.1.0.gh.tar.gz 351910 BLAKE2B 7350626f3a8e54d8950085cbd8253f5564355abb4db7c65113c0df22674e3df0081da7299cfad779f1fcf9569b01720b6ab5dc2bde32c4a71500e79910caf4c8 SHA512 1a556a5b7a6ebc72a0c61b59f326a95c9f2784d74fdc1a171455867ba7b4b07a15741e168747b5a3a225685ad069e2d58021f54dadf7feb00f8acf65b0c07d51
+DIST paramiko-3.2.0.gh.tar.gz 374709 BLAKE2B 80ec5678a51dc8a0eadd28228ae70a8912fb9a4be1807f5f65a925dd2252fd43ebba6f63b350b62ff7545d9ed0db6e4a78710fb73cff332e6d1ed996b0f1a7d9 SHA512 1d87a19284cef73a76eb7402d0492eb35d4a0588becd2f67ba19fe1498d6c10927127617398de11184d4865c8ce0f3e0c48194d50ef546414a17cf6faff3c39d
EBUILD paramiko-3.1.0-r1.ebuild 1186 BLAKE2B bfccee639487d355aac0debb0214fc34d97b5d41baf82a173177045b4adcca8d9b933446c02802403bad72786f9027588e27ee878661313a6ae09bae7080f2f8 SHA512 35b7628d82676e05513c90a1d2414f40c1a096acac367c912f6bddb4f60585c6f0f5819ea8617aaf29da0f5089c0349c9825d5c9ead866ede3b53e547530d159
+EBUILD paramiko-3.2.0.ebuild 1168 BLAKE2B 6abd54b77b5cd49406305ffb6d17a5b4c5fa22769325b00c5fda6a8b0ea0d194347e710d9272013b2d2dece37b0ab0572c186c5d98b7febfbd0122ee7d7a7997 SHA512 8419f0dd0d1226d814f0132fda0597e088f8c6007393a5901a65686c7abb8be641b24845f2bbaee9a0929d019bcc470083a01efc762be6cff38692cd52ef3671
MISC metadata.xml 1222 BLAKE2B 46fb6385f6779cbc13fa54090dd5dfa0b5a7b5a753f728b133fa79a1e1c779a5652d6b38c5ea11cfcb505178b2ba70d9000dabba6228e38f30f426ecb1c49a3f SHA512 bf07a537ed375a3bf58d219c18ccfc29c810554041943e62819a46b63ce3fbcdd2197085dbeeb7ad36e0e601700edec6121ce5cc83dce1c7435d663473df2583
diff --git a/dev-python/paramiko/files/paramiko-3.2.0-disable-server.patch b/dev-python/paramiko/files/paramiko-3.2.0-disable-server.patch
new file mode 100644
index 000000000000..942f5161ee6f
--- /dev/null
+++ b/dev-python/paramiko/files/paramiko-3.2.0-disable-server.patch
@@ -0,0 +1,58 @@
+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 8785d6bb..803d07d1 100644
+--- a/paramiko/transport.py
++++ b/paramiko/transport.py
+@@ -120,6 +120,8 @@ from paramiko.util import (
+ )
+
+
++SERVER_DISABLED_BY_GENTOO = True
++
+ # for thread cleanup
+ _active_threads = []
+
+@@ -768,6 +770,8 @@ class Transport(threading.Thread, ClosingContextManager):
+ `.SSHException` -- if negotiation fails (and no ``event`` was
+ passed in)
+ """
++ if SERVER_DISABLED_BY_GENTOO:
++ raise Exception("Disabled by Gentoo for security reasons. Enable with 'server' USE flag")
+ if server is None:
+ server = ServerInterface()
+ self.server_mode = True
+diff --git a/tests/conftest.py b/tests/conftest.py
+index 7546aae4..804a289e 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -16,6 +16,7 @@ from paramiko import (
+ Ed25519Key,
+ ECDSAKey,
+ PKey,
++ transport,
+ )
+
+ 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
++transport.SERVER_DISABLED_BY_GENTOO = False
++
++
+ # 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/paramiko-3.2.0.ebuild b/dev-python/paramiko/paramiko-3.2.0.ebuild
new file mode 100644
index 000000000000..74945454d841
--- /dev/null
+++ b/dev-python/paramiko/paramiko-3.2.0.ebuild
@@ -0,0 +1,57 @@
+# 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_{10..11} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="
+ https://www.paramiko.org/
+ https://github.com/paramiko/paramiko/
+ https://pypi.org/project/paramiko/
+"
+SRC_URI="
+ https://github.com/paramiko/paramiko/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+# the release is broken
+# https://github.com/paramiko/paramiko/issues/2245
+KEYWORDS=""
+IUSE="examples server"
+
+RDEPEND="
+ >=dev-python/bcrypt-3.1.3[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-2.5[${PYTHON_USEDEP}]
+ >=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-3.2.0-nih-test-deps.patch"
+ )
+
+ if ! use server; then
+ PATCHES+=( "${FILESDIR}/${PN}-3.2.0-disable-server.patch" )
+ fi
+ distutils-r1_src_prepare
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ docinto examples
+ dodoc -r demos/*
+ fi
+}