From 94650b5f540a9626f648670c6785facc80ff44f780ae03ba2c2eaad3f1c3f7f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Machov=C3=A1?= Date: Mon, 1 Sep 2025 10:57:00 +0000 Subject: [PATCH] - Update to 0.40.3 * [SECURITY] Fix request smuggling vulnerability by discarding trailers (#1062) (CVE-2025-58068, bsc#1248994) OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-eventlet?expand=0&rev=139 --- .gitattributes | 23 ++ .gitignore | 1 + eventlet-0.40.3.tar.gz | 3 + python-eventlet.changes | 844 ++++++++++++++++++++++++++++++++++++++++ python-eventlet.spec | 96 +++++ 5 files changed, 967 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 eventlet-0.40.3.tar.gz create mode 100644 python-eventlet.changes create mode 100644 python-eventlet.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/eventlet-0.40.3.tar.gz b/eventlet-0.40.3.tar.gz new file mode 100644 index 0000000..07545c7 --- /dev/null +++ b/eventlet-0.40.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:290852db0065d78cec17a821b78c8a51cafb820a792796a354592ae4d5fceeb0 +size 565741 diff --git a/python-eventlet.changes b/python-eventlet.changes new file mode 100644 index 0000000..49b6b3c --- /dev/null +++ b/python-eventlet.changes @@ -0,0 +1,844 @@ +------------------------------------------------------------------- +Mon Sep 1 06:01:39 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 0.40.3 + * [SECURITY] Fix request smuggling vulnerability by discarding + trailers (#1062) (CVE-2025-58068, bsc#1248994) + +------------------------------------------------------------------- +Fri Aug 1 08:17:27 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 0.40.2 + * Fix compatibility issues identified with Python 3.14 on Linux (#1058) + * Make database removal safer with IF EXISTS (#1056) + * Prepare jobs and CI/CD for python 3.14 (#1055) +- from version 0.40.1 + * [fix] "Fix" fork() so it "works" on Python 3.13, and "works" + better on older Python versions (#1047) + * Behavior change: threads created by eventlet.green.threading.Thread + and threading.Thead will be visible across both modules if monkey + patching was used. Previously each module would only list threads + created in that module. + * Bug fix: after fork(), greenlet threads are correctly listed in + threading.enumerate() if monkey patching was used. You should not + use fork()-without-execve(). + * [fix] Fix patching of removed URLopener class in Python 3.14 (#1053) + * [fix] ReferenceError except while count rlock (#1042) + * [fix] Replace deprecated datetime.utcfromtimestamp (#1050) + * [fix][env] Remove duplicate steps (#1049) + * [fix] Replace deprecated datetime.datetime.utcnow (#1046) + +------------------------------------------------------------------- +Mon May 19 11:06:05 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 0.40.0 + * [fix] Fix ssl test when linking against openssl 3.5 (#1034) + * Drop support Python 3.8 (#1021) + * [doc] Various doc updates (#981, #1033) + * [env] Drop PyPy support (#1035 #1037) +- Drop fix-test-with-openssl-3.5.0.patch, fixed upstream + +------------------------------------------------------------------- +Thu Apr 17 13:33:34 UTC 2025 - Lucas Mulling + +- Fix broken test with openssl 3.5.0: + * Add patch fix-test-with-openssl-3.5.0.patch + +------------------------------------------------------------------- +Mon Apr 7 12:41:45 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 0.39.1 + * [fix] Make LightQueue and derivatives subscriptable (#1027) + +------------------------------------------------------------------- +Fri Feb 7 10:04:21 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 0.39.0 + * [fix] Remove monotonic from requirements (#1018) + * [fix] wsgi: Clean up some override logic (#999) + * [fix] Correct line lookup from inspect.getsourcelines() (#990) + * Drop support of Python 3.7 (#967) + * [fix] Calling eventlet.sleep(0) isn't really blocking, + so don't blow up (#1015) + +------------------------------------------------------------------- +Mon Jan 6 18:25:35 UTC 2025 - John Paul Adrian Glaubitz + +- Update to 0.38.2 + * [fix] fix the monkey patching with the asyncio hub + * [feature] introduce the unmonkeypatching feature +- from version 0.38.1 + * [fix] Python 3.13: Use greenthread's dead state where possible (#1000) + * [env] bump github Actions (#996) + * [fix] Fix bug where asyncio hub didn't support multiple os threads (#995) + +------------------------------------------------------------------- +Wed Dec 4 13:49:59 UTC 2024 - John Paul Adrian Glaubitz + +- Update to 0.38.0 + * Python 3.13 Support (#988) + * [fix] wsgi: server MUST NOT send Content-Length/Transfer-Encoding + header in response with a status code of 1xx, 204 or (2xx to CONNECT + request) (#747) + * [fix] wsgi: No request Content-Length nor Transfer-Encoding implies + no body (#985) +- Drop 313-new-thread-attributes.patch, merged upstream +- Drop no-dynamic-version.patch, no longer required +- Switch back to stable releases + +------------------------------------------------------------------- +Wed Oct 23 23:18:11 UTC 2024 - mcepl@cepl.eu + +- Temporarily switch to direct download from GitHub, and update + to version 0.37.0+git.1726056572.8637820: + * Update changelog for version 0.37.0 (#980) + * Describes Eventlet's Alternatives Into the Migration Guide (#971) + * fix migration guide url (#978) + * os.read/write waits until file descriptor is ready. (#975) + * Upgrade RLocks as last thing we do (#970) + * warns about using multiple readers (#960) + * drop header keys with underscores (#959) + * doc: Repair changelog link (#958) + * Make the docs more user friendly (#950) + * Update changelog for version 0.36.1 (#952) +- Add patches making it build with 3.13: + - 313-new-thread-attributes.patch (gh#eventlet/eventlet#964) + - no-dynamic-version.patch (we cannot use dynamic version + number on a git checkout) +- Fix setting of the version number "manually" (with sed) + +------------------------------------------------------------------- +Wed Sep 18 08:28:43 UTC 2024 - John Paul Adrian Glaubitz + +- Update to 0.37.0 + * [fix] os.read/write waits until file descriptor is ready + * [fix] Upgrade RLocks as last thing we do + * [security] drop header keys with underscores + * [doc] Various doc updates (Migration Guide, repair links, warns...) + +------------------------------------------------------------------- +Thu Jun 6 08:42:28 UTC 2024 - Dirk Müller + +- update to 0.36.1: + * [fix] eventlet.websocket is not always used from + eventlet.wsgi, so do not assume eventlet.set_idle exists + * [fix] Make sure asyncio hub doesn't use greendns for asyncio + DNS APIs + * [fix] Make asyncio.to_thread work with the same semantics as + normal asyncio + * [fix] Refactor congruence checks based on assert at runtime + * [tests] Run tests on macOS in CI, and some fixes to get it in + reasonable state (#list + * [fix] Fix wsgi.server shutdown for in-flight requests + * [feature] Add debug convenience helpers - asyncio, threads + * [fix] Handle errors better. + * [fix] Fix tool.setuptools/packages list + * [security] Dnspython 2.6.1 - Address DoS via the Tudoor + mechanism (CVE-2023-29483) + * [doc] add asyncio into the doc hub page + * [clean] clean obsolete python 2 code from the ssl module + * [fix] Add get_server_info to db_pool.py + * [fix] wsgi: Handle Timeouts from applications + * [fix] shrinks window before connecting + * [fix] Do not allow failed patching to stop execution + * [doc] Basic documentation for asyncio migration + * [tests] add minimal linting + * [doc] officially host docs on readthedocs + * [fix] fix truncate size nullable + * [fix] Handle transport endpoint shutdown in conditions + * [fix] Rework reject_bad_requests option + * [fix] Fix NameError introduced by #826 + * [feature] Support awaiting GreenThread in an `async def` + context https://github.com/eventlet/eventlet/pull/889 + * [infra] Extend test cert to 2049 + * [feature] Asyncio hub support for Python 3.7 to 3.9 + * [infra] Modernize doc generation + * [fix] Fix bad exceptions handlings + * [feature] Support using asyncio coroutines from inside + greenlets https://github.com/eventlet/eventlet/pull/877 + * [removal] Remove deprecated CGIHTTPServer and + SimpleHTTPServer + * [governance] Update maintenance goals + * [feature] Add an asyncio hub for eventlet + +------------------------------------------------------------------- +Fri Jan 19 08:47:40 UTC 2024 - Dirk Müller + +- update to 0.34.3: + * Fix security issue in the wsgi module related to RFC 9112 + * Fix segfault, a new approach for greening existing locks + * greendns: fix getaddrinfo parameter name + * Fix deprecation warning on ssl.PROTOCOL_TLS + * Pytests, fix error at teardown of + TestGreenSocket.test_full_duplex + * Skip test which uses Py cgi module + * Drop old code based on python < 3.7 + * Allowing inheritance of GreenSSLSocket without overriding the + __new_ method https://github.com/eventlet/eventlet/pull/796 + * [bug] Fix broken API related to `__version__` removal + * [doc] Fix pypi broken link + * 0.34.1 + * [bug] Fix memory leak in greendns + * [infra] Fix OIDC authentication failure + * [bug] Ignore asyncore and asynchat for Python 3.12+ + * 0.34.0 (Not released on Pypi) + * Dropped support for Python 3.6 and earlier. + * Fix Python 3.13 compat by adding missing attibute + '_is_main_interpreter' + * Add support of Python 3.12 + * Drop unmaintained and unused stdlib tests + * Fix tests and CI for Python 3.7 and higher + * Stop claiming to create universal wheels + * Fix green logging locks for Python versions <= 3.10 +- switch to PEP517 build +- cleanup tests +- drop support-python3.12.patch, denose-eventlet.patch: + solved differently upstream +- drop python-eventlet-FTBFS2028.patch fix-py3-rlock.patch: + upstream + +------------------------------------------------------------------- +Thu Nov 30 04:41:02 UTC 2023 - Steve Kowalik + +- Add patch support-python3.12.patch: + * Support Python 3.12 changes. + +------------------------------------------------------------------- +Tue Nov 7 06:07:34 UTC 2023 - Jiri Slaby + +- disable test_full_duplex (bsc#1216858) + +------------------------------------------------------------------- +Fri Apr 21 12:24:43 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) +- Remove upstreamed newdnspython.patch (bsc#1208126). +- skip test_raise_dns_tcp test (gh#eventlet/eventlet#803) + +------------------------------------------------------------------- +Thu Apr 13 22:41:06 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Thu Feb 16 22:15:50 UTC 2023 - Dirk Müller + +- update newdnspython.patch to not patch non-testsuite as + it breaks the functionality (bsc#1208126) + +------------------------------------------------------------------- +Tue Feb 14 11:33:57 UTC 2023 - Matej Cepl + +- Remove unnecessary obsolete dependency on pyzmq. +- Clean up the SPEC file. + +------------------------------------------------------------------- +Sat Jan 28 12:30:48 UTC 2023 - Dirk Müller + +- update to 0.33.3: + * dnspython 2.3.0 raised AttributeError: module 'dns.rdtypes' has no + attribute 'ANY' https://github.com/eventlet/eventlet/issues/781 + +------------------------------------------------------------------- +Tue Jan 17 16:55:46 UTC 2023 - Daniel Garcia + +- Add fix-py3-rlock.patch to make the code compatible with python 3.11, + gh#eventlet/eventlet#754 + +------------------------------------------------------------------- +Fri Dec 9 10:16:59 UTC 2022 - Thorsten Kukuk + +- Reove unecessary sysconfig-netconfig BuildRequires + +------------------------------------------------------------------- +Sat Dec 3 05:14:32 UTC 2022 - Yogalakshmi Arunachalam + +- Update to v0.33.2 + * Stop using deprecated threading APIs + Way back in py26, snake_case alternatives were added for the old + camelCase APIs. py310 started emitting DeprecationWarnings about them; + presumably they'll look to remove the old APIs eventually. See + +------------------------------------------------------------------- +Wed Nov 9 10:52:49 UTC 2022 - Pedro Monreal + +- Fix build with OpenSSL 3.0 [bsc#1205042] + * Temporarily disable test_017_ssl_zeroreturnerror + +------------------------------------------------------------------- +Wed Aug 17 06:46:05 UTC 2022 - Jiri Slaby + +- disable test_018b_http_10_keepalive_framing (bsc#1202188) + +------------------------------------------------------------------- +Sat Jun 4 15:20:56 UTC 2022 - Dirk Müller + +- update to 0.33.1: + * Prevent deadlock on logging._lock + +------------------------------------------------------------------- +Sun Dec 26 14:03:52 UTC 2021 - Bernhard Wiedemann + +- Add python-eventlet-FTBFS2028.patch to fix build in 2028 (boo#1102840) + +------------------------------------------------------------------- +Thu Dec 16 20:11:12 UTC 2021 - Ben Greiner + +- update to 0.33.0 + * green.thread: unlocked Lock().release() should raise exception, + returned True + * wsgi: Don’t break HTTP framing during 100-continue handling + * Python 3.10 partial support + * greendns: Create a DNS resolver lazily rather than on import + * ssl: GreenSSLContext minimum_version and maximum_version + setters +- Refresh denosing patches: merge remove_nose.patch and + remove_nose_part_2.patch into denose-eventlet.patch +- Refresh newdnspython.patch + +------------------------------------------------------------------- +Sun Nov 7 21:12:37 UTC 2021 - Dirk Müller + +- update to 0.32.0: + * greendns: compatibility with dnspython v2 + * green.ssl: wrap_socket now accepts argument `ciphers` + * websocket: control frames are now always uncompressed per RFC 7692 + * ssl: py3.6 using client certificates raised ValueError: check_hostname needs server_hostname argument + * IMPORTANT: websocket: Limit maximum uncompressed frame length to 8MiB + * wsgi: websocket ALREADY_HANDLED flag on corolocal + * green.ssl: Set suppress_ragged_eofs default based on SSLSocket defaults + * greenio: socket.connect_ex returned None instead of 0 on success + * Use _imp instead of deprecated imp +- drop pr_639.patch, merged upstream + +------------------------------------------------------------------- +Sun Mar 21 21:19:52 UTC 2021 - Ben Greiner + +- Update to 0.30.2 + * greendns: patch ssl to fix RecursionError on + SSLContext.options.__set__ #677 +- Release 0.30.1 + * patcher: built-in open() did not accept kwargs #683 +- Release 0.30.0 + * pyopenssl tsafe module was deprecated and removed in v20.0.0 + * deprecate pyevent hub + * Deprecate CPython 2.7 and 3.4 support + * py39: Add _at_fork_reinit method to Semaphores +- Drop pr_672-remove-OpenSSL-tsafe.patch merged upstream + +------------------------------------------------------------------- +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 + +- do not run test on python 2 (sadly no real macro expansion + possible to allow run but failok with ||:) +- disable test discovery dir recursion gh#eventlet/eventlet#638 +- simplify the pytest call, no test file deletions + +------------------------------------------------------------------- +Mon Aug 17 09:38:44 UTC 2020 - John Vandenberg + +- Add pr_639.patch which fixes eventlet using dnspython 2.0.0 +- Add remove_nose_part_2.patch to complete the removal of nose +- Activate test suite with 958 test cases passing on Tumbleweed + +------------------------------------------------------------------- +Mon Aug 17 07:49:25 UTC 2020 - Matej Cepl + +- Don't limit the upper version of dnspython. + +------------------------------------------------------------------- +Fri Aug 14 21:30:16 UTC 2020 - Matej Cepl + +- Add newdnspython.patch which makes eventlet work with new + dnspython 2.0.0. + +------------------------------------------------------------------- +Thu Aug 13 16:07:08 UTC 2020 - Matej Cepl + +- Add remove_nose.patch to remove dependency on nose (gh#eventlet/eventlet#638). + +------------------------------------------------------------------- +Thu Aug 13 14:07:43 UTC 2020 - Dirk Mueller + +- update to 0.26.1: + * pin dnspython <2.0.0 https://github.com/eventlet/eventlet/issues/619 + * Fix compatibility with SSLContext usage >= Python 3.7 + * wsgi: Fix header capitalization on py3 + * Fix #508: Py37 Deadlock ThreadPoolExecutor (#598) + * drop Python 3.4 support + * Fix misc SyntaxWarning's under Python 3.8 + * Remove unnecessary assignment in _recv_loop (#601) + +------------------------------------------------------------------- +Wed Apr 29 10:49:14 UTC 2020 - Dirk Mueller + +- update to 0.25.2: + * green.ssl: redundant set_nonblocking() caused SSLWantReadError + +------------------------------------------------------------------- +Tue Sep 10 10:40:09 UTC 2019 - Ralf Haferkamp + +- Update to 0.25.1: + * wsgi (tests): Stop using deprecated cgi.parse_qs() to support Python 3.8; Thanks to Miro Hrončok + * os: Add workaround to `open` for pathlib on py 3.7; Thanks to David Szotten + +------------------------------------------------------------------- +Fri Jun 21 12:35:13 UTC 2019 - Hans-Peter Jansen + +- we don't want to obsolete python-doc: rather python-eventlet-doc, + which depends on python-eventlet, should get removed on update, + anyway. + +------------------------------------------------------------------- +Fri Jun 7 12:14:00 UTC 2019 - Tomáš Chvátal + +- Do not generate sphinx docu, it is online and now we have only + python3 Sphinx anyway +- Update to 0.25.0: + * Support for new python and ssl +- Remove patches that are in upstream release: + * 0001-IMPORTANT-late-import-in-use_hub-thread-race-caused-.patch + * 0001-ssl-connect-used-non-monotonic-time.time-for-timeout.patch + * 0002-Fix-for-Python-3.7-506.patch + * 0003-Fix-compatibility-with-Python-3.7-ssl.SSLSocket-531.patch + +------------------------------------------------------------------- +Mon Apr 29 06:00:44 UTC 2019 - Thomas Bechtold + +- add 0001-ssl-connect-used-non-monotonic-time.time-for-timeout.patch +- add 0002-Fix-for-Python-3.7-506.patch and + add 0003-Fix-compatibility-with-Python-3.7-ssl.SSLSocket-531.patch + Both needed for python 3.7 compatibility + +------------------------------------------------------------------- +Mon Apr 29 04:30:11 UTC 2019 - Thomas Bechtold + +- add 0001-IMPORTANT-late-import-in-use_hub-thread-race-caused-.patch + Fixes a problem during tests runs with python 2.7: + RuntimeError: no suitable implementation for this system: \ + AttributeError("'module' object has no attribute 'epolls'",) + +------------------------------------------------------------------- +Thu Dec 6 15:31:02 UTC 2018 - Thomas Bechtold + +- update to 0.24.1: + * greendns: don't contact nameservers if one entry is returned from hosts file; Thanks to Daniel Alvarez + * greendns: Fix infinite loop when UDP source address mismatch; Thanks to Lon Hohberger + * greendns: Fix bad ipv6 comparison; Thanks to Lon Hohberger + * wsgi: Use byte strings on py2 and unicode strings on py3; Thanks to Tim Burke + * pools: put to empty pool would block sometimes; Thanks to Sam Merritt + * greendns: resolving over TCP produced ValueError; Thanks to Jaume Marhuenda + * support.greendns: ImportError when dns.rdtypes was imported before eventlet; Thanks to Jaume Marhuenda + * greendns: full comment lines were not skipped; Thanks to nat-goodspeed + * Drop support for Python3.3; Python2.6 and python-epoll package + * external dependencies for six, monotonic, dnspython; Thanks to nat-goodspeed + * wsgi: Don't strip all Unicode whitespace from headers on py3; Thanks to Tim Burke + * green.threading: current_thread() did not see new monkey-patched threads; Thanks to Jake Tesler + * tpool: exception in tpool-ed call leaked memory via backtrace + * wsgi: latin-1 encoding dance for environ[PATH_INFO] + * Fixed issue installing excess enum34 on Python3.4+ (rebuild with updated setuptools) + * event: Event.wait() timeout=None argument to be compatible with upstream CPython + * greendns: Treat /etc/hosts entries case-insensitive; Thanks to Ralf Haferkamp + * convenience: (SO_REUSEPORT) socket.error is not OSError on Python 2; Thanks to JacoFourie@github + * convenience: SO_REUSEPORT is not available on WSL platform (Linux on Windows) + * convenience: skip SO_REUSEPORT for bind on random port (0) + * dns: reading /etc/hosts raised DeprecationWarning for universal lines on Python 3.4+; Thanks to Chris Kerr + * green.openssl: Drop OpenSSL.rand support; Thanks to Haikel Guemar + * green.subprocess: keep CalledProcessError identity; Thanks to Linbing@github + * greendns: be explicit about expecting bytes from sock.recv; Thanks to Matt Bennett + * greendns: early socket.timeout was breaking IO retry loops + * GreenSocket.accept does not notify_open; Thanks to orishoshan + * patcher: set locked RLocks' owner only when patching existing locks; Thanks to Quan Tian + * patcher: workaround for monotonic "no suitable implementation"; Thanks to Geoffrey Thomas + * queue: empty except was catching too much + * socket: context manager support; Thanks to Miguel Grinberg + * support: update monotonic 1.3 (5c0322dc559bf) + * support: upgrade bundled dnspython to 1.16.0 (22e9de1d7957e) https://github.com/eventlet/eventlet/issues/427 + * websocket: fd leak when client did not close connection properly; Thanks to Konstantin Enchant + * websocket: support permessage-deflate extension; Thanks to Costas Christofi and Peter Kovary + * wsgi: close idle connections (also applies to websockets) + * wsgi: deprecated options are one step closer to removal + * wsgi: handle remote connection resets; Thanks to Stefan Nica + * New timeout error API: .is_timeout=True on exception object + It's now easy to test if network error is transient and retry is appropriate. + Please spread the word and invite other libraries to support this interface. + * hubs: use monotonic clock by default (bundled package); Thanks to Roman Podoliaka and Victor Stinner + * dns: EVENTLET_NO_GREENDNS option is back, green is still default + * dns: hosts file was consulted after nameservers + * ssl: RecursionError on Python3.6+; Thanks to justdoit0823@github and Gevent developers + * wsgi: log_output=False was not disabling startup and accepted messages + * greenio: Fixed OSError: [WinError 10038] Socket operation on nonsocket + * dns: EAI_NODATA was removed from RFC3493 and FreeBSD + * green.select: fix mark_as_closed() wrong number of args + * green.zmq: socket.{recv,send}_* signatures did not match recent upstream pyzmq + * New feature: Add zipkin tracing to eventlet + * db_pool: proxy Connection.set_isolation_level() + * green.zmq: support RCVTIMEO (receive timeout) + * green.profile: Python3 compatibility; Thanks to Artur Stawiarski + * support: upgrade bundled six to 1.10 (dbfbfc818e3d) + * python3.6: http.client.request support chunked_encoding + * dns: try unqualified queries as top level + * test_import_patched_defaults bended to play with pyopenssl>=16.1.0 + * Explicit environ flag for importing eventlet.__version__ without ignoring import errors + * Type check Semaphore, GreenPool arguments; Thanks to Matthew D. Pagel +- Drop 0001-Fix-SSL-connection-reset-errors.patch . Merged upstream +- Drop PR-459.patch . Merged upstream + +------------------------------------------------------------------- +Thu Dec 6 13:26:44 UTC 2018 - Tomáš Chvátal + +- Fix fdupes call + +------------------------------------------------------------------- +Tue Dec 4 12:47:46 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Fri Jan 12 12:57:09 UTC 2018 - tbechtold@suse.com + +- Add PR-459.patch. + Hostname in /etc/hosts are not case-sensitive, this fixes + HostsResolver() accordingly. + +------------------------------------------------------------------- +Sun Dec 10 20:33:20 UTC 2017 - dmueller@suse.com + +- fix enum-compat removal + +------------------------------------------------------------------- +Sun Nov 26 16:02:38 UTC 2017 - dmueller@suse.com + +- go back to a working version: downgrade to 0.20.0 +- add 0001-Fix-SSL-connection-reset-errors.patch to fix + hangs on SSL connections + +------------------------------------------------------------------- +Tue Oct 17 09:05:52 UTC 2017 - snica@suse.com + +- add netcfg package to list of requirements + +------------------------------------------------------------------- +Fri Oct 6 07:35:07 UTC 2017 - tbechtold@suse.com + +- update to 0.21.0: + * New timeout error API: .is_timeout=True on exception object + It's now easy to test if network error is transient and retry is + appropriate. + Please spread the word and invite other libraries to support this interface. + * hubs: use monotonic clock by default (bundled package); + * dns: EVENTLET_NO_GREENDNS option is back, green is still default + * dns: hosts file was consulted after nameservers + * ssl: RecursionError on Python3.6+; + * wsgi: log_output=False was not disabling startup and accepted messages + * greenio: Fixed OSError: [WinError 10038] Socket operation on nonsocket + * dns: EAI_NODATA was removed from RFC3493 and FreeBSD + * green.select: fix mark_as_closed() wrong number of args + * green.zmq: socket.{recv,send}_* signatures did not match recent + upstream pyzmq + * New feature: Add zipkin tracing to eventlet + * db_pool: proxy Connection.set_isolation_level() + * green.zmq: support RCVTIMEO (receive timeout) + * green.profile: Python3 compatibility; Thanks to Artur Stawiarski + * support: upgrade bundled six to 1.10 (dbfbfc818e3d) + * python3.6: http.client.request support chunked_encoding +- Use fdupes + +------------------------------------------------------------------- +Tue Sep 5 21:50:25 UTC 2017 - jengelh@inai.de + +- Ensure neutrality of description. + +------------------------------------------------------------------- +Tue Sep 5 09:30:33 UTC 2017 - jmatejek@suse.com + +- remove dependency on metapackage "enum-compat" in favor of + specifying this requirement the usual way via RPM requirement + conditional on version + +------------------------------------------------------------------- +Thu Aug 24 13:38:29 UTC 2017 - jmatejek@suse.com + +- singlespec auto-conversion + +------------------------------------------------------------------- +Wed Jan 11 18:10:38 UTC 2017 - dmueller@suse.com + +- update to 0.20.1: + * dns: try unqualified queries as top level + * test_import_patched_defaults bended to play with pyopenssl>=16.1.0 + * Explicit environ flag for importing eventlet.__version__ without ignoring import errors + * Type check Semaphore, GreenPool arguments; Thanks to Matthew D. Pagel + * IMPORTANT: removed select.poll() function + * DNS resolving is always green with dnspython bundled in + * greenio: only trampoline when we block + * convenience: listen() sets SO_REUSEPORT when available; Thanks to Zhengwei Gao + * ssl: Fix "TypeError: read() argument 2 must be read-write bytes-like object, not None" + * greenio: _recv_loop behaviour with recv_into on closed sock + * ipv6: getaddrinfo would fail with scope index + * green.zmq: Support {send,recv}_{string,json,pyobj} wrappers + * greendns: Return answers from /etc/hosts despite nameserver errors + * patcher: fixed green existing locks fail (Python3) + * Add DAGPool, a dependency-driven greenthread pool + * wsgi: Unix socket address representation; Thanks to Samuel Merritt + * tpool: isolate internal socket from default timeout; Thanks to Alex Villacís Lasso + * wsgi: only skip Content-Type and Content-Length headers (GH-327) + * wsgi: 400 on blank Content-Length headers (GH-334) + * greenio: makefile related pypy socket ref counting + * ssl: Fix recv_into blocking when reading chunks of data + * websocket: support Gunicorn environ['gunicorn.socket'] + +------------------------------------------------------------------- +Sat Dec 3 18:15:53 UTC 2016 - dmueller@suse.com + +- update to 0.19.0: + * ssl: IMPORTANT DoS FIX do_handshake_connect=False in server accept(); + * green.urllib2: missing patched ssl module; + * wsgi: environ[headers_raw] tuple of unmodified name: value pairs + * test against modern pyopenssl 16.0.0 for Python 2.7+; + * wsgi: document compatibility with python `logging` + * Minor grammatical improvements and typo fixes to the docs + +------------------------------------------------------------------- +Fri Feb 26 19:02:50 UTC 2016 - dmueller@suse.com + +- update to 0.18.4: + * wsgi: change TCP_NODELAY to TCP_QUICKACK, ignore socket error when not available + * wsgi: Use buffered writes - fixes partial socket.send without custom + writelines(); Github issue #295 + * wsgi: TCP_NODELAY enabled by default + * wsgi: Fix data loss on partial writes (socket.send); Thanks to Jakub Stasiak + * IMPORTANT: do not use Eventlet 0.18.0 and 0.18.1 + * patcher: Fix AttributeError in subprocess communicate() + * greenio: Fix "TypeError: an integer is required" in sendto() + * IMPORTANT: do not use Eventlet 0.18.0 and 0.18.1 + * greenio: Fixed a bug that could cause send() to start an endless loop on + ENOTCONN; Thanks to Seyeong Kim + * wsgi: Fixed UNIX socket address being trimmed in "wsgi starting" log; Thanks + to Ihar Hrachyshka + * ssl: Ported eventlet.green.OpenSSL to Python 3; Thanks to Victor Stinner + * greenio: Made read() support buflen=-1 and added readall() (Python 3); + Thanks to David Szotten + * wsgi: Made the error raised in case of chunk read failures more precise (this + should be backwards compatible as the new exception class, + wsgi.ChunkReadError, is a subclass of ValueError which was being used there + before); Thanks to Samuel Merritt + * greenio: Fixed socket.recv() sometimes returning str instead of bytes on + Python 3; Thanks to Janusz Harkot + * wsgi: Improved request body discarding + * websocket: Fixed TypeError on empty websocket message (Python 3); Thanks to + Fukuchi Daisuke + * subprocess: Fixed universal_newlines support + * wsgi: Output of 0-byte chunks is now suppressed; Thanks to Samuel Merritt + * Improved the documentation; Thanks to Ramakrishnan G, ashutosh-mishra and + Azhar Hussain + * greenio: Changed GreenFileIO.write() (Python 3) to always write all data to + match the behavior on Python 2; Thanks to Victor Stinner + * subprocess: Fixed missing subprocess.mswindows attribute on Python 3.5; + Thanks to Josh VanderLinden + * ssl/monkey patching: Fixed a bug that would cause merely importing eventlet + to monkey patch the ssl module; Thanks to David Szotten + * documentation: Added support for building plain text documentation; thanks + to Levente Polyak + +------------------------------------------------------------------- +Mon Jun 22 14:29:32 UTC 2015 - tbechtold@suse.com + +- update to 0.17.4: + * ssl: incorrect initalization of default context; Thanks to stuart-mclaren + +------------------------------------------------------------------- +Wed Apr 22 13:11:05 UTC 2015 - tbechtold@suse.com + +- update to 0.17.3: + * green.thread: Python3.3+ fixes; Thanks to Victor Stinner + * Semaphore.acquire() accepts timeout=-1; Thanks to Victor Stinner + * wsgi: Provide python logging compatibility; Thanks to Sean Dague + * greendns: fix premature connection closing in DNS proxy; Thanks to + Tim Simmons + * greenio: correct fd close; Thanks to Antonio Cuni and Victor Sergeyev + * green.ssl: HTTPS client Python 2.7.9+ compatibility + * setup: tests.{isolated,manual} polluted top-level packages + * greendns: fix dns.name import and Python3 compatibility + +------------------------------------------------------------------- +Tue Feb 24 11:12:59 UTC 2015 - tbechtold@suse.com + +- update to version 0.17.0 + * Full Python3 compatibility + * greendns: IPv6 support, improved handling of /etc/hosts + * tpool: make sure we return results during killall + * semaphore: Don't hog a semaphore if someone else is waiting for it + * green.socket: create_connection() was wrapping all exceptions + in socket.error + * Make sure SSL retries are done using the exact same data buffer + * greenio: shutdown already closed sockets without error + +------------------------------------------------------------------- +Mon Feb 2 08:47:34 UTC 2015 - tbechtold@suse.com + +- update to version 0.16.1: + * Wheel build 0.16.0 incorrectly shipped removed module eventlet.util. + +------------------------------------------------------------------- +Thu Jan 8 13:56:43 UTC 2015 - tbechtold@suse.com + +- update to 0.16.0: + * Fix SSL socket wrapping and Python 2.7.9 compatibility; Thanks to Jakub Stasiak + * Fix monkey_patch() on Python 3; Thanks to Victor Stinner + * Fix "maximum recursion depth exceeded in GreenSocket.__del__"; Thanks to Jakub Stasiak + * db_pool: BaseConnectionPool.clear updates .current_size #139; Thanks to Andrey Gubarev + * Fix __str__ method on the TimeoutExpired exception class.; Thanks to Tomaz Muraus + * hubs: drop Twisted support + * Removed deprecated modules: api, most of coros, pool, proc, processes and util + * Improved Python 3 compatibility (including patch by raylu); Thanks to Jakub Stasiak + * Allow more graceful shutdown of wsgi server; Thanks to Stuart McLaren + * wsgi.input: Make send_hundred_continue_headers() a public API; Thanks to Tushar Gohad + * tpool: Windows compatibility, fix ResourceWarning. Thanks to Victor Stinner + * tests: Fix timers not cleaned up on MySQL test skips; Thanks to Corey Wright +- Remove README.twisted from docs (removed upstream) + +------------------------------------------------------------------- +Tue Sep 2 08:00:50 UTC 2014 - dmueller@suse.com + +- update to 0.15.2: + * greenio: fixed memory leak, introduced in 0.15.1; Thanks to Michael Kerrin, Tushar Gohad + * wsgi: Support optional headers w/ "100 Continue" responses; Thanks to Tushar Gohad + * greenio: Fix second simultaneous read (parallel paramiko issue); Thanks to Jan Grant, Michael Kerrin + * db_pool: customizable connection cleanup function; Thanks to Avery Fay + * Python3 compatibility -- **not ready yet**; Thanks to Astrum Kuo, Davanum Srinivas, Jakub Stasiak, Victor Sergeyev + * coros: remove Actor which was deprecated in 2010-01 + * saranwrap: remove saranwrap which was deprecated in 2010-02 + * PyPy compatibility fixes; Thanks to Dmitriy Kruglyak, Jakub Stasiak + * green.profile: accumulate results between runs; Thanks to Zhang Hua + * greenthread: add .unlink() method; Thanks to Astrum Kuo + * packaging: Generate universal wheels; Thanks to Jakub Stasiak + * queue: Make join not wait if there are no unfinished tasks; Thanks to Jakub Stasiak + * tpool: proxy __enter__, __exit__ fixes Bitbucket-158; Thanks to Eric Urban + * websockets: Add websockets13 support; handle lack of Upgrade header; Thanks to Edward George + * wsgi: capitalize_response_headers option + +------------------------------------------------------------------- +Thu Oct 24 11:05:29 UTC 2013 - speilicke@suse.com + +- Require python-setuptools instead of distribute (upstreams merged) + +------------------------------------------------------------------- +Tue Sep 17 08:56:56 UTC 2013 - dmueller@suse.com + +- update to 0.14.0: + * wsgi: handle connection socket timeouts; Thanks to Paul Oppenheim + * wsgi: close timed out client connections + * greenio: socket pypy compatibility; Thanks to Alex Gaynor + * wsgi: env['wsgi.input'] was returning 1 byte strings; Thanks to Eric Urban + * green.ssl: fix NameError; Github #17; Thanks to Jakub Stasiak + * websocket: allow "websocket" in lowercase in Upgrade header; Compatibility with current Google Chrome; Thanks to Dmitry Orlov + * wsgi: allow minimum_chunk_size to be overriden on a per request basis; Thanks to David Goetz + * wsgi: configurable socket_timeout + +------------------------------------------------------------------- +Wed Jul 3 15:42:06 UTC 2013 - dmueller@suse.com + +- update to 0.13.1: + * hubs: kqueue support! Thanks to YAMAMOTO Takashi, Edward George + * greenio: Fix AttributeError on MacOSX; Bitbucket #136; Thanks to Derk Tegeler + * green: subprocess: Fix subprocess.communicate() block on Python 2.7; Thanks to Edward George + * green: select: ensure that hub can .wait() at least once before timeout; Thanks to YAMAMOTO Takashi + * tpool: single request queue to avoid deadlocks; Bitbucket pull request 31,32; Thanks to Edward George + * zmq: pyzmq 13.x compatibility; Thanks to Edward George + * green: subprocess: Popen.wait() accepts new `timeout` kwarg; Python 3.3 and RHEL 6.1 compatibility + * hubs: EVENTLET_HUB can point to external modules; Thanks to Edward George + * semaphore: support timeout for acquire(); Thanks to Justin Patrin + * support: do not clear sys.exc_info if can be preserved (greenlet >= 0.3.2); Thanks to Edward George + * Travis continous integration; Thanks to Thomas Grainger, Jakub Stasiak + * wsgi: minimum_chunk_size of last Server altered all previous (global variable); Thanks to Jakub Stasiak + * doc: hubs: Point to the correct function in exception message; Thanks to Floris Bruynooghe + +------------------------------------------------------------------- +Fri Feb 8 11:19:25 UTC 2013 - p.drouand@gmail.com + +- Update to version 0.12.1: + * zmq: Fix 100% busy CPU in idle after .bind(PUB) + * greenio: Fix socket.settimeout() did not switch back to blocking mode + * greenio: socket.dup() made excess fcntl syscalls + * setup: Remove legacy --without-greenlet option and unused httplib2 dependency + * wsgi: environ[REMOTE_PORT], also available in log_format, log accept event + * tests: Support libzmq 3.0 SNDHWM option + +------------------------------------------------------------------- +Tue Jan 15 19:53:02 UTC 2013 - p.drouand@gmail.com + +- Update to version 0.11.0: + * ssl: Fix 100% busy CPU in socket.sendall() (thanks to Raymon Lu) + * zmq: Return linger argument to Socket.close() (thanks to Eric Windisch) + * tests: SSL tests were always skipped due to bug in skip_if_no_ssl decorator + +------------------------------------------------------------------- +Fri Nov 23 10:57:40 UTC 2012 - saschpe@suse.de + +- Update to version 0.9.17: + + ZeroMQ support calling send and recv from multiple greenthreads + + SSL: unwrap() sends data, and so it needs trampolining + + hubs.epolls: Fix imports for exception handler + + db_pool: Fix .clear() when min_size > 0 + + db_pool: Add MySQL's insert_id() method + + db_pool: Close connections after timeout, fix get-after-close race + condition with using TpooledConnectionPool + + threading monkey patch fixes + + pools: Better accounting of current_size in pools.Pool + + wsgi: environ['RAW_PATH_INFO'] with request path as received from client + + wsgi: log_output flag + + wsgi: Limit HTTP header size + + wsgi: Configurable maximum URL length + +------------------------------------------------------------------- +Fri Sep 2 11:36:04 UTC 2011 - saschpe@suse.de + +- Update to version 0.9.16: + + SO_REUSEADDR now correctly set. +- Don't package unittests +- Fix non-executable script rpmlint warning + +------------------------------------------------------------------- +Wed Feb 2 14:13:32 CET 2011 - berendt@b1-systems.de + +- bumped version to 0.9.14 + +------------------------------------------------------------------- +Fri Nov 26 14:44:42 UTC 2010 - seife+obs@b1-systems.com + +- initial package (version 0.9.9) + + diff --git a/python-eventlet.spec b/python-eventlet.spec new file mode 100644 index 0000000..68ba197 --- /dev/null +++ b/python-eventlet.spec @@ -0,0 +1,96 @@ +# +# spec file for package python-eventlet +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-eventlet +Version: 0.40.3 +Release: 0 +Summary: Concurrent networking library for Python +License: MIT +Group: Development/Languages/Python +URL: https://eventlet.net +Source: https://files.pythonhosted.org/packages/source/e/eventlet/eventlet-%{version}.tar.gz +BuildRequires: %{python_module hatch-vcs} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: netcfg +Requires: python-dnspython >= 1.15.0 +Requires: python-greenlet >= 1.0 +BuildArch: noarch +# SECTION TEST requirements +BuildRequires: %{python_module dnspython >= 1.15.0} +BuildRequires: %{python_module greenlet >= 1.0} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module testsuite} +# eventlet parses /etc/protocols which is not available in normal build envs +BuildRequires: netcfg +%if 0%{?suse_version} >= 1550 +BuildRequires: %{python_module pyOpenSSL} +%endif +# /SECTION +%python_subpackages + +%description +Eventlet is a concurrent networking library for Python that allows +changing how code is run. + +It uses epoll or libevent for scalable non-blocking I/O. Coroutines +ensure that the developer uses a blocking style of programming that is similar +to threading, but provide the benefits of non-blocking I/O. The event dispatch +is implicit, which means Eventlet can be used from the Python +interpreter, or as part of a larger application. + +%prep +%autosetup -p1 -n eventlet-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +# dnspython 1 and 2: backdoor tests fail with "take too long" +skiptests="(BackdoorTest and test_server)" +skiptests+=" or test_dns_methods_are_green or test_noraise_dns_tcp or test_clear" +# 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" +# it is racy, see: https://lore.kernel.org/all/CADVnQy=AnJY9NZ3w_xNghEG80-DhsXL0r_vEtkr=dmz0ugcoVw@mail.gmail.com/ (bsc#1202188) +skiptests+=" or test_018b_http_10_keepalive_framing" +# gh#eventlet/eventlet#803 +skiptests+=" or test_raise_dns_tcp" +# gh#eventlet/eventlet#821 bsc#1216858 +skiptests+=" or test_full_duplex" +# gh#eventlet/eventlet#987 +skiptests+=" or test_send_timeout" +# gh#eventlet/eventlet#662 (hopefully temporary until debugging with 3.13 finishes) +python313_skiptests+=" or test_threading_condition or test_threading_join or test_socketserver_selectors or test_threading_current or test_threadpoolexecutor" +# gh#eventlet/eventlet#739 +python310_skiptests+=" or test_017_ssl_zeroreturnerror" +%pytest -k "not ($skiptests ${$python_skiptests})" ${$python_pytest_param} + +%files %{python_files} +%license LICENSE +%doc AUTHORS NEWS README.rst +%{python_sitelib}/eventlet +%{python_sitelib}/eventlet-%{version}.dist-info + +%changelog