diff --git a/eventlet-0.26.1.tar.gz b/eventlet-0.26.1.tar.gz deleted file mode 100644 index a339cca..0000000 --- a/eventlet-0.26.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f4a43366b4cbd4a3f2f231816e5c3dae8ab316df9b7da11f0525e2800559f33 -size 398200 diff --git a/eventlet-0.29.1.tar.gz b/eventlet-0.29.1.tar.gz new file mode 100644 index 0000000..17e70be --- /dev/null +++ b/eventlet-0.29.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9faff63631b01277c463ae91cd4ab3f25a2f0f5abe3219d43a386ef1daa6159a +size 400673 diff --git a/newdnspython.patch b/newdnspython.patch index 176aa09..e9472be 100644 --- a/newdnspython.patch +++ b/newdnspython.patch @@ -1,5 +1,7 @@ ---- a/eventlet/support/greendns.py -+++ b/eventlet/support/greendns.py +Index: eventlet-0.29.1/eventlet/support/greendns.py +=================================================================== +--- eventlet-0.29.1.orig/eventlet/support/greendns.py ++++ eventlet-0.29.1/eventlet/support/greendns.py @@ -313,7 +313,7 @@ class ResolverProxy(object): self.clear() @@ -9,8 +11,10 @@ self._resolver.cache = dns.resolver.LRUCache() def query(self, qname, rdtype=dns.rdatatype.A, rdclass=dns.rdataclass.IN, ---- a/tests/greendns_test.py -+++ b/tests/greendns_test.py +Index: eventlet-0.29.1/tests/greendns_test.py +=================================================================== +--- eventlet-0.29.1.orig/tests/greendns_test.py ++++ eventlet-0.29.1/tests/greendns_test.py @@ -885,7 +885,7 @@ class TinyDNSTests(tests.LimitedTestCase # https://github.com/eventlet/eventlet/issues/499 # None means we don't want the server to find the IP @@ -29,8 +33,10 @@ resolver.nameservers = [dnsaddr[0]] resolver.nameserver_ports[dnsaddr[0]] = dnsaddr[1] response = resolver.query('host.example.com', 'a', tcp=True) ---- a/setup.py -+++ b/setup.py +Index: eventlet-0.29.1/setup.py +=================================================================== +--- eventlet-0.29.1.orig/setup.py ++++ eventlet-0.29.1/setup.py @@ -15,7 +15,7 @@ setuptools.setup( url='http://eventlet.net', packages=setuptools.find_packages(exclude=['benchmarks', 'tests', 'tests.*']), @@ -38,5 +44,5 @@ - 'dnspython >= 1.15.0, < 2.0.0', + 'dnspython >= 1.15.0', 'greenlet >= 0.3', - 'monotonic >= 1.4', + 'monotonic >= 1.4;python_version<"3.5"', 'six >= 1.10.0', diff --git a/pr_672-remove-OpenSSL-tsafe.patch b/pr_672-remove-OpenSSL-tsafe.patch new file mode 100644 index 0000000..4307832 --- /dev/null +++ b/pr_672-remove-OpenSSL-tsafe.patch @@ -0,0 +1,37 @@ +From be0d520c9bc9e3b3959f84d80c65e418e6081887 Mon Sep 17 00:00:00 2001 +From: Sergey Shepelev +Date: Wed, 2 Dec 2020 01:10:02 +0300 +Subject: [PATCH] pyopenssl tsafe module was deprecated and removed in v20.0.0 + +https://github.com/eventlet/eventlet/issues/671 +https://github.com/pyca/pyopenssl/pull/913 +--- + eventlet/green/OpenSSL/__init__.py | 7 ++++++- + tests/openssl_test.py | 1 - + 4 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/eventlet/green/OpenSSL/__init__.py b/eventlet/green/OpenSSL/__init__.py +index d86147645..1b2500971 100644 +--- a/eventlet/green/OpenSSL/__init__.py ++++ b/eventlet/green/OpenSSL/__init__.py +@@ -1,4 +1,9 @@ + from . import crypto + from . import SSL +-from . import tsafe ++try: ++ # pyopenssl tsafe module was deprecated and removed in v20.0.0 ++ # https://github.com/pyca/pyopenssl/pull/913 ++ from . import tsafe ++except ImportError: ++ pass + from .version import __version__ +diff --git a/tests/openssl_test.py b/tests/openssl_test.py +index a127408b8..1108adaf6 100644 +--- a/tests/openssl_test.py ++++ b/tests/openssl_test.py +@@ -12,5 +12,4 @@ def test_import(): + + import eventlet.green.OpenSSL.SSL + import eventlet.green.OpenSSL.crypto +- import eventlet.green.OpenSSL.tsafe + import eventlet.green.OpenSSL.version diff --git a/python-eventlet.changes b/python-eventlet.changes index 60a26be..674f093 100644 --- a/python-eventlet.changes +++ b/python-eventlet.changes @@ -1,3 +1,35 @@ +------------------------------------------------------------------- +Thu Dec 10 22:43:44 UTC 2020 - Benjamin Greiner + +- Add pr_672-remove-OpenSSL-tsafe.patch to support pyopenssl 20 +- skip some tests which are flaky inside OBS environment +- fix python2 build requirement for Leap + +------------------------------------------------------------------- +Mon Dec 7 00:14:23 UTC 2020 - Benjamin Greiner + +- Update to 0.29.1 + * patcher: [py27] recursion error in pytest/python2.7 installing + register_at_fork + * patcher: monkey_patch(builtins=True) failed on py3 because + `file` class is gone + * don't crash on PyPy 7.0.0 + * Only install monotonic on python2 +- Changes for 0.29.0 + * ssl: context wrapped listener fails accept() +- Changes for 0.28.1 + * Clean up TypeError in __del__ +- Changes for 0.28.0 + * Always remove the right listener from the hub + gh#enventlet/eventlet#645 +- Changes for 0.27.0 + * patcher: Clean up threading book-keeping at fork when + monkey-patched + * backdoor: handle disconnects better +- Fix test skips for non-default python 3.6 flavor + gh#openSUSE/python-rpm-macros#66 +- refresh newdnspython.patch + ------------------------------------------------------------------- Wed Aug 19 15:28:03 UTC 2020 - Benjamin Greiner diff --git a/python-eventlet.spec b/python-eventlet.spec index 0799913..89235ac 100644 --- a/python-eventlet.spec +++ b/python-eventlet.spec @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-eventlet -Version: 0.26.1 +Version: 0.29.1 Release: 0 Summary: Concurrent networking library for Python License: MIT @@ -35,15 +35,19 @@ Patch1: newdnspython.patch Patch2: pr_639.patch # Really remove the dependency on nose Patch3: remove_nose_part_2.patch +# PATCH-FIX-UPSTREAM -- gh#eventlet/eventlet#672 remove OpenSSL.tsafe +Patch4: pr_672-remove-OpenSSL-tsafe.patch BuildRequires: %{python_module dnspython >= 1.15.0} BuildRequires: %{python_module greenlet >= 0.3} -BuildRequires: %{python_module monotonic >= 1.4} BuildRequires: %{python_module pyOpenSSL} BuildRequires: %{python_module pytest} BuildRequires: %{python_module pyzmq} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module six >= 1.10.0} BuildRequires: %{python_module testsuite} +%if 0%{?suse_version} < 1550 +BuildRequires: python2-monotonic >= 1.4 +%endif BuildRequires: fdupes BuildRequires: netcfg BuildRequires: python-rpm-macros @@ -53,7 +57,9 @@ BuildRequires: sysconfig-netconfig Requires: netcfg Requires: python-dnspython >= 1.15.0 Requires: python-greenlet >= 0.3 +%ifpython2 Requires: python-monotonic >= 1.4 +%endif Requires: python-six >= 1.10.0 BuildArch: noarch %python_subpackages @@ -85,25 +91,29 @@ sed -i "/assert num_readers/ i \ return" tests/__init__.py %check # python2 is required to build for Leap, but tests fail (even upstream) -python2_skipall='--collect-only' +python2_pytest_param='--collect-only' # dnspython 1 and 2: backdoor tests fail with "take too long" skiptests="(BackdoorTest and test_server)" # fail only with dnspython 2: skiptests+=" or test_dns_methods_are_green or test_noraise_dns_tcp" +# These are flaky inside the OBS environment +skiptests+=" or test_fork_after_monkey_patch or test_send_1k_req_rep or test_cpu_usage_after_bind" -# Unknown openSUSE 15.x specific errors +# Unknown Python 3.6 specific errors # TypeError: _wrap_socket() argument 1 must be _socket.socket, not SSLSocket # https://github.com/rthalley/dnspython/issues/559#issuecomment-675274960 +python36_skiptests+=" or test_connect_ssl or test_ssl_sending_messages or test_wrap_ssl" +python36_skiptests+=" or ssl_test or wsgi_test" %if %python3_version_nodots == 36 - skiptests+=" or test_connect_ssl or test_ssl_sending_messages or test_wrap_ssl" - skiptests+=" or ssl_test or wsgi_test" +python3_skiptests+="$python36_skiptests" %endif # no subdir recursion https://github.com/eventlet/eventlet/issues/638#issuecomment-676085599 -%pytest -o norecursedirs="tests/*" -k "not ($skiptests)" ${$python_skipall} +%pytest -o norecursedirs="tests/*" -k "not ($skiptests ${$python_skiptests})" ${$python_pytest_param} %files %{python_files} %license LICENSE %doc AUTHORS NEWS README.rst -%{python_sitelib}/* +%{python_sitelib}/eventlet +%{python_sitelib}/eventlet-%{version}*-info %changelog