summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2020-12-06 18:24:34 +0000
committerSam James <sam@gentoo.org>2020-12-06 18:24:42 +0000
commitd43b59b286707365170dded20261e7e0a9f9942e (patch)
tree173f3692ceb65a462a3944ca417a0273634ee5d6 /dev-python/eventlet
parentdev-python/pyfakefs: Stabilize 4.2.1 ALLARCHES, #758560 (diff)
downloadgentoo-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/Manifest1
-rw-r--r--dev-python/eventlet/eventlet-0.29.1.ebuild64
-rw-r--r--dev-python/eventlet/files/eventlet-0.29.1-tests.patch71
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()