diff options
author | 2020-12-06 18:24:34 +0000 | |
---|---|---|
committer | 2020-12-06 18:24:42 +0000 | |
commit | d43b59b286707365170dded20261e7e0a9f9942e (patch) | |
tree | 173f3692ceb65a462a3944ca417a0273634ee5d6 /dev-python/eventlet | |
parent | dev-python/pyfakefs: Stabilize 4.2.1 ALLARCHES, #758560 (diff) | |
download | gentoo-d43b59b286707365170dded20261e7e0a9f9942e.tar.gz gentoo-d43b59b286707365170dded20261e7e0a9f9942e.tar.bz2 gentoo-d43b59b286707365170dded20261e7e0a9f9942e.zip |
dev-python/eventlet: bump to 0.29.1
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-python/eventlet')
-rw-r--r-- | dev-python/eventlet/Manifest | 1 | ||||
-rw-r--r-- | dev-python/eventlet/eventlet-0.29.1.ebuild | 64 | ||||
-rw-r--r-- | dev-python/eventlet/files/eventlet-0.29.1-tests.patch | 71 |
3 files changed, 136 insertions, 0 deletions
diff --git a/dev-python/eventlet/Manifest b/dev-python/eventlet/Manifest index 2f77ed84d942..9ba86992d664 100644 --- a/dev-python/eventlet/Manifest +++ b/dev-python/eventlet/Manifest @@ -1 +1,2 @@ DIST eventlet-0.26.1.tar.gz 398200 BLAKE2B f14024d0825fb5530929766c63dceea7446057d9ad5dfb98ab013e96cab9b0eef5440f2d4d7ceeef17691c8a2a9055cac2b93fb23653a6facba4967c4e7cb0b3 SHA512 55b9b214130d0482ea005ea570a5aa3eafdf66e6d315a95c5ba60186a2d9a9df5c2638c86d886968954ce39e5ac2153e1f9e11631e6aef237078c3776af7d6c5 +DIST eventlet-0.29.1.tar.gz 400673 BLAKE2B 2b317e0c445a7b9c7f96147c033b1a6b4b4d27eeaebe0d40102b4e25d7825861db15e9d77cf6c9e6795e1bc946b1a613d5bb4ffa60a7077c39d575f01bdd8506 SHA512 194544e8fafeb0847673abd84c8fbc876bb407bb76cb86c5a8a92fdb7571d3585e895f0063375e43b74de81b47e49cd6002f5b7a4f266d37bacc1b23e9ce4ef3 diff --git a/dev-python/eventlet/eventlet-0.29.1.ebuild b/dev-python/eventlet/eventlet-0.29.1.ebuild new file mode 100644 index 000000000000..c1a6a203dce2 --- /dev/null +++ b/dev-python/eventlet/eventlet-0.29.1.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_9 ) +inherit distutils-r1 + +DESCRIPTION="Highly concurrent networking library" +HOMEPAGE="https://pypi.org/project/eventlet/ https://github.com/eventlet/eventlet/" +SRC_URI="mirror://pypi/e/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="doc examples test" + +RDEPEND=" + >=dev-python/dnspython-1.15.0[${PYTHON_USEDEP}] + <dev-python/dnspython-2.0.0[${PYTHON_USEDEP}] + >=dev-python/greenlet-0.3[${PYTHON_USEDEP}] + >=dev-python/monotonic-1.4[${PYTHON_USEDEP}] + >=dev-python/six-1.10.0[${PYTHON_USEDEP}]" +DEPEND="doc? ( >=dev-python/python-docs-2.7.6-r1:2.7 ) + test? ( ${RDEPEND} + dev-python/pyopenssl[${PYTHON_USEDEP}] + dev-python/nose[${PYTHON_USEDEP}] )" + +PATCHES=( + "${FILESDIR}/eventlet-0.25.1-tests.patch" + "${FILESDIR}/${P}-tests.patch" +) + +distutils_enable_sphinx doc +distutils_enable_tests nose + +python_prepare_all() { + if use doc; then + local PYTHON_DOC_ATOM=$(best_version -b dev-python/python-docs:2.7) + local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}" + local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html" + local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv" + sed -i "s|'https://docs.python.org/': None|'${PYTHON_DOC}': '${PYTHON_DOC_INVENTORY}'|" doc/conf.py || die + fi + + # Prevent file collisions from teestsuite + sed -e "s:'tests', :'tests', 'tests.*', :" -i setup.py || die + + distutils-r1_python_prepare_all +} + +python_test() { + unset PYTHONPATH + nosetests -v || die +} + +python_install_all() { + if use examples; then + docompress -x "/usr/share/doc/${PF}/examples" + docinto examples + dodoc -r examples/. + fi + distutils-r1_python_install_all +} diff --git a/dev-python/eventlet/files/eventlet-0.29.1-tests.patch b/dev-python/eventlet/files/eventlet-0.29.1-tests.patch new file mode 100644 index 000000000000..3cd20823899d --- /dev/null +++ b/dev-python/eventlet/files/eventlet-0.29.1-tests.patch @@ -0,0 +1,71 @@ +https://github.com/eventlet/eventlet/issues/646 +From 087ba743c7af8a40ac1e4e2ec89409eee3b4233e Mon Sep 17 00:00:00 2001 +From: Tim Burke <tim.burke@gmail.com> +Date: Mon, 2 Nov 2020 16:09:46 -0800 +Subject: [PATCH] py39: Add _at_fork_reinit method to Semaphores + +CPython expects to be able to call such a method on RLocks, Conditions, +and Events in threading; since we may monkey-patch threading to use +Semaphores as locks, they need the method, too. + +Addresses #646 +--- + eventlet/semaphore.py | 5 +++++ + tests/semaphore_test.py | 21 +++++++++++++++++++++ + 2 files changed, 26 insertions(+) + +diff --git a/eventlet/semaphore.py b/eventlet/semaphore.py +index 18b5b05f4..5e2b5e32f 100644 +--- a/eventlet/semaphore.py ++++ b/eventlet/semaphore.py +@@ -39,6 +39,7 @@ def __init__(self, value=1): + if value < 0: + msg = 'Semaphore() expect value >= 0, actual: {0}'.format(repr(value)) + raise ValueError(msg) ++ self._original_value = value + self.counter = value + self._waiters = collections.deque() + +@@ -51,6 +52,10 @@ def __str__(self): + params = (self.__class__.__name__, self.counter, len(self._waiters)) + return '<%s c=%s _w[%s]>' % params + ++ def _at_fork_reinit(self): ++ self.counter = self._original_value ++ self._waiters.clear() ++ + def locked(self): + """Returns true if a call to acquire would block. + """ +diff --git a/tests/semaphore_test.py b/tests/semaphore_test.py +index d6c11d1f6..cf6a29daf 100644 +--- a/tests/semaphore_test.py ++++ b/tests/semaphore_test.py +@@ -42,6 +42,27 @@ def test_timeout_non_blocking(self): + sem = eventlet.Semaphore() + self.assertRaises(ValueError, sem.acquire, blocking=False, timeout=1) + ++ def test_reinit(self): ++ # py39+ expects locks to have a _at_fork_reinit() method; since we ++ # patch in Semaphores in eventlet.green.thread, they need it, too ++ sem = eventlet.Semaphore() ++ sem.acquire() ++ sem._at_fork_reinit() ++ self.assertEqual(sem.acquire(blocking=False), True) ++ self.assertEqual(sem.acquire(blocking=False), False) ++ ++ sem = eventlet.Semaphore(0) ++ sem.release() ++ sem._at_fork_reinit() ++ self.assertEqual(sem.acquire(blocking=False), False) ++ ++ sem = eventlet.Semaphore(2) ++ sem.acquire() ++ sem._at_fork_reinit() ++ self.assertEqual(sem.acquire(blocking=False), True) ++ self.assertEqual(sem.acquire(blocking=False), True) ++ self.assertEqual(sem.acquire(blocking=False), False) ++ + + def test_semaphore_contention(): + g_mutex = eventlet.Semaphore() |