From c158895f58eb65f3fd1cc1aa8c4fe5cbbe2ab82a25526a8af276a8fda9eefce9 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Tue, 8 Dec 2020 23:59:29 +0000 Subject: [PATCH 1/3] Accepting request 854114 from home:bnavigator:branches:devel:languages:python - 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 OBS-URL: https://build.opensuse.org/request/show/854114 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-eventlet?expand=0&rev=76 --- eventlet-0.26.1.tar.gz | 3 --- eventlet-0.29.1.tar.gz | 3 +++ newdnspython.patch | 20 +++++++++++++------- python-eventlet.changes | 25 +++++++++++++++++++++++++ python-eventlet.spec | 22 ++++++++++++++-------- 5 files changed, 55 insertions(+), 18 deletions(-) delete mode 100644 eventlet-0.26.1.tar.gz create mode 100644 eventlet-0.29.1.tar.gz 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/python-eventlet.changes b/python-eventlet.changes index 60a26be..aa4b079 100644 --- a/python-eventlet.changes +++ b/python-eventlet.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +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..8acfbc9 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 @@ -37,13 +37,15 @@ Patch2: pr_639.patch Patch3: remove_nose_part_2.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%{?have_python2} && ! 0%{?skip_python2} +BuildRequires: python2-monotonic >= 1.4 +%endif BuildRequires: fdupes BuildRequires: netcfg BuildRequires: python-rpm-macros @@ -53,7 +55,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 +89,27 @@ 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" -# 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 From 406033f67e2d1ff6911cf561cfdb0a38b84ec3fceb2336dcaef85d79015e7bee Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Fri, 11 Dec 2020 00:26:56 +0000 Subject: [PATCH 2/3] Accepting request 854670 from home:bnavigator:branches:devel:languages:python - Add pr_672-remove-OpenSSL-tsafe.patch to support pyopenssl 20 OBS-URL: https://build.opensuse.org/request/show/854670 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-eventlet?expand=0&rev=77 --- pr_672-remove-OpenSSL-tsafe.patch | 37 +++++++++++++++++++++++++++++++ python-eventlet.changes | 5 +++++ python-eventlet.spec | 2 ++ 3 files changed, 44 insertions(+) create mode 100644 pr_672-remove-OpenSSL-tsafe.patch 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 aa4b079..83aedfa 100644 --- a/python-eventlet.changes +++ b/python-eventlet.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Dec 10 22:43:44 UTC 2020 - Benjamin Greiner + +- Add pr_672-remove-OpenSSL-tsafe.patch to support pyopenssl 20 + ------------------------------------------------------------------- Mon Dec 7 00:14:23 UTC 2020 - Benjamin Greiner diff --git a/python-eventlet.spec b/python-eventlet.spec index 8acfbc9..96d4dc0 100644 --- a/python-eventlet.spec +++ b/python-eventlet.spec @@ -35,6 +35,8 @@ 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 pyOpenSSL} From 8fc098840520a908f309a8b766d6e58b5602f1b974bfcc0369bc482f0f57adb0 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Fri, 11 Dec 2020 13:36:00 +0000 Subject: [PATCH 3/3] Accepting request 854855 from home:bnavigator:branches:devel:languages:python - 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 OBS-URL: https://build.opensuse.org/request/show/854855 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-eventlet?expand=0&rev=78 --- python-eventlet.changes | 2 ++ python-eventlet.spec | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/python-eventlet.changes b/python-eventlet.changes index 83aedfa..674f093 100644 --- a/python-eventlet.changes +++ b/python-eventlet.changes @@ -2,6 +2,8 @@ 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 diff --git a/python-eventlet.spec b/python-eventlet.spec index 96d4dc0..89235ac 100644 --- a/python-eventlet.spec +++ b/python-eventlet.spec @@ -45,7 +45,7 @@ BuildRequires: %{python_module pyzmq} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module six >= 1.10.0} BuildRequires: %{python_module testsuite} -%if 0%{?have_python2} && ! 0%{?skip_python2} +%if 0%{?suse_version} < 1550 BuildRequires: python2-monotonic >= 1.4 %endif BuildRequires: fdupes @@ -96,6 +96,8 @@ python2_pytest_param='--collect-only' 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 Python 3.6 specific errors # TypeError: _wrap_socket() argument 1 must be _socket.socket, not SSLSocket