summaryrefslogtreecommitdiff
path: root/dev-python/paramiko
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-python/paramiko
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-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/Manifest1
-rw-r--r--dev-python/paramiko/files/paramiko-2.4.2-disable-server.patch46
-rw-r--r--dev-python/paramiko/files/paramiko-2.7.1-tests.patch134
-rw-r--r--dev-python/paramiko/metadata.xml33
-rw-r--r--dev-python/paramiko/paramiko-2.7.1.ebuild54
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
+}