diff options
| author | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
|---|---|---|
| committer | Palica <palica+gitlab@liguros.net> | 2020-06-23 22:35:08 +0200 |
| commit | ecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch) | |
| tree | b89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-python/paramiko | |
| parent | 1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff) | |
| download | baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip | |
Updating liguros repo
Diffstat (limited to 'dev-python/paramiko')
| -rw-r--r-- | dev-python/paramiko/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch | 46 | ||||
| -rw-r--r-- | dev-python/paramiko/files/paramiko-2.7.1-tests.patch | 134 | ||||
| -rw-r--r-- | dev-python/paramiko/metadata.xml | 33 | ||||
| -rw-r--r-- | dev-python/paramiko/paramiko-2.7.1.ebuild | 54 |
5 files changed, 268 insertions, 0 deletions
diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest new file mode 100644 index 000000000000..bf879d2fe52e --- /dev/null +++ b/dev-python/paramiko/Manifest @@ -0,0 +1 @@ +DIST paramiko-2.7.1.tar.gz 330391 BLAKE2B 0f7a2f3b6c15a68002001d69f8402deea5421a8b1f6cf35061a8a36f4b81b7a291d7b0f0b457f32de4c4769659a2e067f0bdb6cc5dcdd0810ebf917e349e85af SHA512 2cebed2420cf9af77cb0d459b64a74adcffcdb15bd58c8fc9243855ae91f43e16706665b64ce2851f6e99e59ca6a47d7299a2aae35a4c9d01ab97b343569c4b2 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 000000000000..19450cbee1bc --- /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-2.7.1-tests.patch b/dev-python/paramiko/files/paramiko-2.7.1-tests.patch new file mode 100644 index 000000000000..5791afd044ad --- /dev/null +++ b/dev-python/paramiko/files/paramiko-2.7.1-tests.patch @@ -0,0 +1,134 @@ +From e91cac80d679dfe16897988b0c14c1293a93c805 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:22:59 +0200 +Subject: [PATCH 1/2] 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 - + setup.cfg | 3 --- + tests/test_client.py | 20 ++++++++++---------- + 3 files changed, 10 insertions(+), 14 deletions(-) + +diff --git a/dev-requirements.txt b/dev-requirements.txt +index f4f84748..b1b0cdf5 100644 +--- a/dev-requirements.txt ++++ b/dev-requirements.txt +@@ -2,7 +2,6 @@ + invoke>=1.0,<2.0 + invocations>=1.2.0,<2.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/setup.cfg b/setup.cfg +index 44d029c4..99159096 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -17,9 +17,6 @@ ignore = E124,E125,E128,E261,E301,E302,E303,E402,E721,W503,E203,E722 + max-line-length = 79 + + [tool: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 60ad310c..88fd1d53 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 +@@ -684,10 +684,10 @@ class PasswordPassphraseTests(ClientTest): + + # TODO: more granular exception pending #387; should be signaling "no auth + # methods available" because no key and no password +- @raises(SSHException) + 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") + + def test_passphrase_kwarg_used_for_key_passphrase(self): + # Straightforward again, with new passphrase kwarg. +@@ -705,14 +705,14 @@ class PasswordPassphraseTests(ClientTest): + password="television", + ) + +- @raises(AuthenticationException) # TODO: more granular + 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.26.1 + +From af228a2d950654ccdd4a5d665da0018bd976c108 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 2/2] 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 5e9aa059..5eeaeac3 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 + +@@ -705,6 +709,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.26.1 + diff --git a/dev-python/paramiko/metadata.xml b/dev-python/paramiko/metadata.xml new file mode 100644 index 000000000000..b3112dce5a95 --- /dev/null +++ b/dev-python/paramiko/metadata.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <maintainer type="person"> + <email>alicef@gentoo.org</email> + <name>Alice Ferrazzi</name> + </maintainer> + <longdescription> +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 lang="ja"> +これはSSH2コネクション(クライアントとサーバー)を作り出すためのライブラリです。注 +目点はPython言語スクリプト間のセキュアなコネクションを作り出すSSLの代用にSSHを利 +用している所です。有名なCipherとHash処理の全てがサポートされています。SFTPクライ +アントもサポートされています。 +</longdescription> + <stabilize-allarches/> + <use> + <flag name="server">Enable server feature</flag> + </use> + <upstream> + <remote-id type="pypi">paramiko</remote-id> + <remote-id type="github">paramiko/paramiko</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-python/paramiko/paramiko-2.7.1.ebuild b/dev-python/paramiko/paramiko-2.7.1.ebuild new file mode 100644 index 000000000000..c2d84991da27 --- /dev/null +++ b/dev-python/paramiko/paramiko-2.7.1.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 python3_{6..9} ) +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/" +# pypi tarballs are missing test data +#SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" +SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris" +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}] +" +BDEPEND=" + test? ( + dev-python/mock[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx sites/docs +distutils_enable_tests pytest + +src_prepare() { + eapply "${FILESDIR}"/${P}-tests.patch + + if ! use server; then + eapply "${FILESDIR}/${PN}-2.4.2-disable-server.patch" + fi + + eapply_user +} + +python_install_all() { + distutils-r1_python_install_all + + if use examples; then + docinto examples + dodoc -r demos/* + fi +} |
