From 4b7f28d81dc1242e0ff78d03f32390e8b2f4690d Mon Sep 17 00:00:00 2001 From: "Andreas Billmeier (@Home/mbp)" Date: Sun, 11 Jun 2023 09:19:38 +0200 Subject: [PATCH] dev-python/paramiko: update SRC_URI Signed-off-by: Andreas Billmeier --- dev-python/paramiko/Manifest | 7 + .../files/paramiko-2.4.2-disable-server.patch | 46 ++++++ .../files/paramiko-3.0.0-nih-test-deps.patch | 98 +++++++++++++ .../files/paramiko-3.2.0-disable-server.patch | 58 ++++++++ .../files/paramiko-3.2.0-nih-test-deps.patch | 134 ++++++++++++++++++ dev-python/paramiko/metadata.xml | 16 +++ dev-python/paramiko/paramiko-3.2.0.ebuild | 61 ++++++++ .../md5-cache/dev-python/paramiko-3.1.0-r1 | 16 +++ metadata/md5-cache/dev-python/paramiko-3.2.0 | 16 +++ 9 files changed, 452 insertions(+) create mode 100644 dev-python/paramiko/Manifest create mode 100644 dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch create mode 100644 dev-python/paramiko/files/paramiko-3.0.0-nih-test-deps.patch create mode 100644 dev-python/paramiko/files/paramiko-3.2.0-disable-server.patch create mode 100644 dev-python/paramiko/files/paramiko-3.2.0-nih-test-deps.patch create mode 100644 dev-python/paramiko/metadata.xml create mode 100644 dev-python/paramiko/paramiko-3.2.0.ebuild create mode 100644 metadata/md5-cache/dev-python/paramiko-3.1.0-r1 create mode 100644 metadata/md5-cache/dev-python/paramiko-3.2.0 diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest new file mode 100644 index 0000000..a678114 --- /dev/null +++ b/dev-python/paramiko/Manifest @@ -0,0 +1,7 @@ +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.2.0.gh.tar.gz 374709 BLAKE2B 80ec5678a51dc8a0eadd28228ae70a8912fb9a4be1807f5f65a925dd2252fd43ebba6f63b350b62ff7545d9ed0db6e4a78710fb73cff332e6d1ed996b0f1a7d9 SHA512 1d87a19284cef73a76eb7402d0492eb35d4a0588becd2f67ba19fe1498d6c10927127617398de11184d4865c8ce0f3e0c48194d50ef546414a17cf6faff3c39d +EBUILD paramiko-3.2.0.ebuild 1235 BLAKE2B 0f3ebef68bcfc6d59ac84e0061455af000939fa24f3ca35a31250edf1fae300ae9988e6d2cf8f3778727e0ed7f1480b0a2a098d658fc00f93b4abe9d51d32a42 SHA512 82ec274b382b90dadf7dda6b6127c5133f2a36077f6ca2fe3f048f5ede2209af28fe02a6c07c9c0197aa47dafd5af843bf71da747463178b8f0defd9a5efaf04 +MISC metadata.xml 511 BLAKE2B d95c469d1e3f1466ff63489b952bf1f74b331d34f2e68dc680400028f50ff6bd01d9b58a707c73a57ac71985b0ddd07fe5d57c9524057c425e066cb9f8fe448d SHA512 aceb43a401d0fc19ecf972141057e2b69b6776627b8f1e52d089b0d55d0f750a0e7030bb71775a327d5f2a47f5bbae4b333775f159faeeb2f9ea789562f22778 diff --git a/dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch b/dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch new file mode 100644 index 0000000..19450cb --- /dev/null +++ b/dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch @@ -0,0 +1,46 @@ +diff --git a/paramiko/transport.py b/paramiko/transport.py +index f72eebaf..ec7a1445 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 + + ++SERVER_DISABLED_BY_GENTOO = True ++ + # for thread cleanup + _active_threads = [] + +@@ -633,6 +635,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 2b509c5c..bb23ac74 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -4,7 +4,7 @@ import shutil + import threading + + 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'. + + ++# 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 diff --git a/dev-python/paramiko/files/paramiko-3.0.0-nih-test-deps.patch b/dev-python/paramiko/files/paramiko-3.0.0-nih-test-deps.patch new file mode 100644 index 0000000..26b12f0 --- /dev/null +++ b/dev-python/paramiko/files/paramiko-3.0.0-nih-test-deps.patch @@ -0,0 +1,98 @@ +From c7d1373554910102846123afb35c8c1a842f2c9a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +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 | 6 ++++++ + pytest.ini | 3 --- + tests/test_client.py | 19 +++++++++---------- + 3 files changed, 15 insertions(+), 13 deletions(-) + +diff --git a/tests/test_client.py b/tests/test_client.py +index dae5b13a..d0e9c434 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 +@@ -786,11 +785,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): +@@ -810,15 +809,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.39.1 + +From becd215434a7c01c74b407cbf2cbcb192e138a15 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Sat, 21 Jan 2023 06:56:09 +0100 +Subject: [PATCH] Remove icecream dep + +--- + tests/conftest.py | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/tests/conftest.py b/tests/conftest.py +index b28d2a17..3cecb7e8 100644 +--- a/tests/conftest.py ++++ b/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 +-- +2.39.1 + 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 0000000..942f516 --- /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?= +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 0000000..84fb618 --- /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?= +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?= +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?= +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 new file mode 100644 index 0000000..5bd92f4 --- /dev/null +++ b/dev-python/paramiko/metadata.xml @@ -0,0 +1,16 @@ + + + + + b@edevau.net + Andreas Billmeier + + + paramiko + paramiko/paramiko + + jeff@bitprophet.org + Jeff Forcier + + + 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 0000000..50042e3 --- /dev/null +++ b/dev-python/paramiko/paramiko-3.2.0.ebuild @@ -0,0 +1,61 @@ +# 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..12} ) +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" +KEYWORDS="amd64 arm arm64 x86" +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 + +EPYTEST_DESELECT=( + # upstream doesn't really maintain the gssapi support + tests/test_kex_gss.py + tests/test_ssh_gss.py +) + +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 +} diff --git a/metadata/md5-cache/dev-python/paramiko-3.1.0-r1 b/metadata/md5-cache/dev-python/paramiko-3.1.0-r1 new file mode 100644 index 0000000..cb2f006 --- /dev/null +++ b/metadata/md5-cache/dev-python/paramiko-3.1.0-r1 @@ -0,0 +1,16 @@ +BDEPEND=test? ( >=dev-python/bcrypt-3.1.3[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/cryptography-2.5[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pynacl-1.0.1[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pyasn1-0.1.7[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pytest-7.3.1[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] ) python_targets_python3_10? ( >=dev-lang/python-3.10.11:3.10[threads(+)] ) python_targets_python3_11? ( >=dev-lang/python-3.11.3:3.11[threads(+)] ) python_targets_python3_12? ( >=dev-lang/python-3.12.0_beta1:3.12[threads(+)] ) >=dev-python/gpep517-13[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/setuptools-67.7.2[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/wheel-0.40.0[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] +DEFINED_PHASES=compile configure install prepare test +DESCRIPTION=SSH2 protocol library +EAPI=8 +HOMEPAGE=https://www.paramiko.org/ https://github.com/paramiko/paramiko/ https://pypi.org/project/paramiko/ +INHERIT=distutils-r1 +IUSE=examples server test python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 +KEYWORDS=amd64 arm arm64 x86 +LICENSE=LGPL-2.1 +RDEPEND=>=dev-python/bcrypt-3.1.3[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/cryptography-2.5[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pynacl-1.0.1[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pyasn1-0.1.7[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] python_targets_python3_10? ( >=dev-lang/python-3.10.11:3.10[threads(+)] ) python_targets_python3_11? ( >=dev-lang/python-3.11.3:3.11[threads(+)] ) python_targets_python3_12? ( >=dev-lang/python-3.12.0_beta1:3.12[threads(+)] ) +REQUIRED_USE=|| ( python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 ) +RESTRICT=!test? ( test ) +SLOT=0 +SRC_URI=https://github.com/paramiko/paramiko/archive/3.1.0.tar.gz -> paramiko-3.1.0.gh.tar.gz +_eclasses_=out-of-source-utils 1a9007554652a6e627edbccb3c25a439 multibuild bddcb51b74f4a76724ff7cf8e7388869 multilib c19072c3cd7ac5cb21de013f7e9832e0 toolchain-funcs 513c31b3346458ed1f3878b57da6d61c multiprocessing b4e253ab22cef7b1085e9b67c7a3b730 ninja-utils 76050953ad5b70d7e09a6ca55558db92 python-utils-r1 ba15b8b81f30ca448294d759a9f7902c python-r1 3c6cd0f418ba702c186a9865b85e704d distutils-r1 2d32e797ee29a8ffdd452f4a85860666 +_md5_=5f27a030b5f1b1226fdc0f8f02c9db29 diff --git a/metadata/md5-cache/dev-python/paramiko-3.2.0 b/metadata/md5-cache/dev-python/paramiko-3.2.0 new file mode 100644 index 0000000..fd7fa15 --- /dev/null +++ b/metadata/md5-cache/dev-python/paramiko-3.2.0 @@ -0,0 +1,16 @@ +BDEPEND=test? ( >=dev-python/bcrypt-3.1.3[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/cryptography-2.5[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pynacl-1.0.1[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pyasn1-0.1.7[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pytest-7.3.1[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] ) python_targets_python3_10? ( >=dev-lang/python-3.10.11:3.10[threads(+)] ) python_targets_python3_11? ( >=dev-lang/python-3.11.3:3.11[threads(+)] ) python_targets_python3_12? ( >=dev-lang/python-3.12.0_beta1:3.12[threads(+)] ) >=dev-python/gpep517-13[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/setuptools-67.7.2[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/wheel-0.40.0[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] +DEFINED_PHASES=compile configure install prepare test +DESCRIPTION=SSH2 protocol library +EAPI=8 +HOMEPAGE=https://www.paramiko.org/ https://github.com/paramiko/paramiko/ https://pypi.org/project/paramiko/ +INHERIT=distutils-r1 +IUSE=examples server test python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 +KEYWORDS=amd64 arm arm64 x86 +LICENSE=LGPL-2.1 +RDEPEND=>=dev-python/bcrypt-3.1.3[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/cryptography-2.5[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pynacl-1.0.1[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] >=dev-python/pyasn1-0.1.7[python_targets_python3_10(-)?,python_targets_python3_11(-)?,python_targets_python3_12(-)?] python_targets_python3_10? ( >=dev-lang/python-3.10.11:3.10[threads(+)] ) python_targets_python3_11? ( >=dev-lang/python-3.11.3:3.11[threads(+)] ) python_targets_python3_12? ( >=dev-lang/python-3.12.0_beta1:3.12[threads(+)] ) +REQUIRED_USE=|| ( python_targets_python3_10 python_targets_python3_11 python_targets_python3_12 ) +RESTRICT=!test? ( test ) +SLOT=0 +SRC_URI=https://github.com/paramiko/paramiko/archive/3.2.0.tar.gz -> paramiko-3.2.0.gh.tar.gz +_eclasses_=out-of-source-utils 1a9007554652a6e627edbccb3c25a439 multibuild bddcb51b74f4a76724ff7cf8e7388869 multilib c19072c3cd7ac5cb21de013f7e9832e0 toolchain-funcs 513c31b3346458ed1f3878b57da6d61c multiprocessing b4e253ab22cef7b1085e9b67c7a3b730 ninja-utils 76050953ad5b70d7e09a6ca55558db92 python-utils-r1 ba15b8b81f30ca448294d759a9f7902c python-r1 3c6cd0f418ba702c186a9865b85e704d distutils-r1 2d32e797ee29a8ffdd452f4a85860666 +_md5_=25b19a913afb18e51489827b10728092