* gevent is now tested on PyPy 3.11 v7.3.20. Previously it was tested
with the now end-of-life PyPy 3.10 v7.3.17.
* Fix a ``TypeError`` in the C extensions when attempting to put items
into a full ``SimpleQueue.``
It is believed this problem started in version 25.4.1. On older
versions, using the environment variable ``PURE_PYTHON`` or
``GEVENT_PURE_PYTHON`` works around
See :issue:`2139`.
- from version 25.8.2
* Make the ``queue`` attribute of ``gevent.queue.Queue`` objects
writable from Python when the C extension is in use. When
monkey-patched, this lets subclasses assign to it from their ``_init``
method. (Prior to 25.8.1 the ``_init`` method simply wasn't called.)
See :issue:`2136`.
- from version 25.8.1
* gevent is now tested on the latest available versions of Python:
3.14rc1, 3.13.5, 3.12.11, 3.11.13, and 3.10.18.
We expect to remove support for Python 3.9 soon.
* Prevent an ``AssertionError`` (from ``AbstractLinkable``, such as
locks, events, etc) from being printed after ``os.fork`` under certain
conditions.
See also :issue:`2058`.
See :issue:`1895`.
* Avoid a rare ``AttributeError`` that could occur during circular
garbage collection.
See :issue:`1961`.
* Update c-ares from 1.33.1 to 1.34.5.
This contains `a bug fix <https://github.com/c-ares/c-ares/pull/974>`_
resolving excess CPU usage for certain platforms.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=129
* Update the bundled libuv to 1.51 from 1.44.2.
* Note that this changes the minimum supported versions of various
operating systems. Linux now requires kernel 3.10 and glibc 2.17,
up from 2.6.32 and glibc 2.12; macOS now requires version 11, up
from version 10.15; Windows now requires Windows 10 and Visual
Studio 2017, up from Windows 8 and VS 2015; finally, FreeBSD now
requires version 12, up from version 10.
* The musl Linux wheels are now built with muslinux_1_2 instead of
musllinux_1_1. See issue #2108.
* Add support for Cython 3.1 on Windows.
* Add support for Python 3.14b1 and significantly expand the set of
standard library tests we run with monkey-patching.
- Update BuildRequires and Requires from pyproject.toml
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=125
- Update to 25.4.2: [bsc#1241067, bsc#1241037]
* Make gevent's queue classes subscriptable to match the standard
library. See issue #2102.
* Make the c-ares resolver build on Windows.
* The gevent testsuite runs a copy of the test_ssl from cpython but
the follwoing change has not been ported yet:
- gh-126500: test_ssl: Don't stop ThreadedEchoServer on OSError
in ConnectionHandler [gh#python/cpython/pull/126503]
- Rebase gevent-openssl35-test-fix.patch
- Upstream PR: [gh#gevent/gevent/pull/2103]
- Update to 25.4.1
* Remove some legacy code that supported Python 2 for compatibility
with the upcoming releases of Cython 3.1.
* Add a new environment variable and configuration setting to control
whether blocking reports are printed by the monitor thread.
* Add initial support for Python 3.14a7.
* Fix using gevent’s BackdoorServer with Unix sockets.
* Do not use pywsgi in a security-conscious environment. Fix one
security issue related to HTTP 100 Continue handling. See issue #2075.
OBS-URL: https://build.opensuse.org/request/show/1272752
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=55
* Make gevent's queue classes subscriptable to match the standard
library. See issue #2102.
* Make the c-ares resolver build on Windows.
* The gevent testsuite runs a copy of the test_ssl from cpython but
the follwoing change has not been ported yet:
- gh-126500: test_ssl: Don't stop ThreadedEchoServer on OSError
in ConnectionHandler [gh#python/cpython/pull/126503]
- Rebase gevent-openssl35-test-fix.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=120
* Make gevent's queue classes subscriptable to match the standard
library. See issue #2102.
* Make the c-ares resolver build on Windows.
* The gevent testsuite runs a copy of the test_ssl from cpython but
the follwoing change has not been ported yet:
- gh-126500: test_ssl: Don't stop ThreadedEchoServer on OSError
in ConnectionHandler [gh#python/cpython/pull/126503]
- Rebase gevent-openssl35-test-fix.patch
- Upstream PR: [gh#gevent/gevent/pull/2103]
- Update to 25.4.1
* Remove some legacy code that supported Python 2 for compatibility
with the upcoming releases of Cython 3.1.
* Add a new environment variable and configuration setting to control
whether blocking reports are printed by the monitor thread.
* Add initial support for Python 3.14a7.
* Fix using gevent’s BackdoorServer with Unix sockets.
* Do not use pywsgi in a security-conscious environment. Fix one
security issue related to HTTP 100 Continue handling. See issue #2075.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=119
Forwarded request #1217326 from glaubitz
- Update to 24.10.3
* Fix clearing stack frames on Python 3.13. This is invoked when you
fork after having used the thread pool.
* Distribute manylinux2014 wheels for x86_64.
* Stop switching to the hub in the after fork hook in a child process.
This could lead to strange behaviour, and is different than what all
other versions of Python do.
- from version 24.10.2
* Workaround a Cython bug compiling on GCC14.
- Drop gh-2031-cython-workaround.patch, merged upstream
OBS-URL: https://build.opensuse.org/request/show/1217397
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=53
* Fix clearing stack frames on Python 3.13. This is invoked when you
fork after having used the thread pool.
* Distribute manylinux2014 wheels for x86_64.
* Stop switching to the hub in the after fork hook in a child process.
This could lead to strange behaviour, and is different than what all
other versions of Python do.
- from version 24.10.2
* Workaround a Cython bug compiling on GCC14.
- Drop gh-2031-cython-workaround.patch, merged upstream
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=115
* Update the bundled c-ares to 1.33.1.
* Add support for Python 3.13.
- The functions and classes in ``gevent.subprocess`` no longer accept
``stdout=STDOUT`` and raise a ``ValueError``.
Several additions and changes to the ``queue`` module, including:
- ``Queue.shutdown`` is available on all versions of Python.
- ``LifoQueue`` is now a joinable queue.
* gevent.monkey changed from a module to a package. The public API
remains the same.
For this release, private APIs (undocumented, marked internal, or
beginning with an underscore) are also preserved. However, these may
be changed or removed at any time in the future. If you are using one
of these APIs and cannot replace it, please contact the gevent team.
* For platforms that don't have ``socketpair``, upgrade our fallback
code to avoid a security issue.
See :issue:`2048`.
* Remove support for Python 3.8, which has reached the end of its
support lifecycle.
See :issue:`remove_py38`.
- Drop gh-113964-fix-tests-3.12.3.patch, fixed upstream
- Renumber patches
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=113
- Add gh-113964-fix-tests-3.12.3.patch to tix tests with python 3.12.3
(bsc#1223128)
- Drop upstream patches:
* gevent-fix-unittest-returncode-py312-c1.patch
* gevent-fix-unittest-returncode-py312-c2.patch
- Update to version 24.2.1:
- Add support for Python patch releases 3.11.8 and 3.12.2, which
changed internal details of threading.
- Errors raised from subprocess.Popen may not have a filename set.
- SSLSocket.recv_into and SSLSocket.read no longer require the
buffer to implement len and now work with buffers whose size is
not 1.
- gh-108310: Fix CVE-2023-40217: Check for & avoid the ssl pre-close
flaw.
- Drop setuptools to a soft test dependency.
- Drop support for very old versions of CFFI.
- Update bundled c-ares from 1.19.1 to 1.26.0.
- Locks created by gevent, but acquired from multiple different
threads (not recommended), no longer spin to implement timeouts
and interruptible blocking. Instead, they use the native
functionality of the Python 3 lock. This may improve some
scenarios. See issue #2013.
OBS-URL: https://build.opensuse.org/request/show/1169642
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=109
- Clean obsolete old python and old distribution directives
* Only 15.5+ with the sle15 python module and Tumbleweed have the
required Python 3.8+
* Drop fix-no-return-in-nonvoid-function.patch
- Update test suite execution
* Use -u-network flag to disable network tests
* Add gevent-opensuse-nocolor-tests.patch -- Avoid colorization
of test output in obs runners
* Add gevent-fix-unittest-returncode-py312-c1.patch and
gevent-fix-unittest-returncode-py312-c2.patch
gh#gevent/gevent#2012
OBS-URL: https://build.opensuse.org/request/show/1138131
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=107
- update to 23.9.0 (CVE-2023-41419):
* Make ``gevent.select.select`` accept arbitrary iterables, not
just sequences. That is, you can now pass in a generator of file
descriptors instead of a realized list. Internally, arbitrary
iterables are copied into lists. This better matches what the
standard library does.
* On Python 3.11 and newer, opt out of Cython's fast exception
manipulation, which *may* be causing problems in certain
circumstances when combined with greenlets.
* On all versions of Python, adjust some error handling in the
default * -based loop. This fixes several assertion failures
on debug versions of CPython. Hopefully it has a positive
impact under real conditions.
* Make ``gevent.pywsgi`` comply more closely with the HTTP
specification for chunked transfer encoding. In particular,
we are much stricter about trailers, and trailers that are
invalid (too long or featuring disallowed characters) forcibly
close the connection to the client *after* the results have
been sent.
* Trailers otherwise continue to be ignored and are not
available to the WSGI application.
Previously, carefully crafted invalid trailers in chunked
requests on keep-alive connections might appear as two
requests to ``gevent.pywsgi``. Because this was handled
exactly as a normal keep-alive connection with two requests,
the WSGI application should handle it normally. However, if
you were counting on some upstream server to filter incoming
requests based on paths or header fields, and the upstream
server simply passed trailers through without
validating them, then this embedded second request would
OBS-URL: https://build.opensuse.org/request/show/1112068
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=45
* Make ``gevent.select.select`` accept arbitrary iterables, not
just sequences. That is, you can now pass in a generator of file
descriptors instead of a realized list. Internally, arbitrary
iterables are copied into lists. This better matches what the
standard library does.
* On Python 3.11 and newer, opt out of Cython's fast exception
manipulation, which *may* be causing problems in certain
circumstances when combined with greenlets.
* On all versions of Python, adjust some error handling in the
default * -based loop. This fixes several assertion failures
on debug versions of CPython. Hopefully it has a positive
impact under real conditions.
* Make ``gevent.pywsgi`` comply more closely with the HTTP
specification for chunked transfer encoding. In particular,
we are much stricter about trailers, and trailers that are
invalid (too long or featuring disallowed characters) forcibly
close the connection to the client *after* the results have
been sent.
* Trailers otherwise continue to be ignored and are not
available to the WSGI application.
Previously, carefully crafted invalid trailers in chunked
requests on keep-alive connections might appear as two
requests to ``gevent.pywsgi``. Because this was handled
exactly as a normal keep-alive connection with two requests,
the WSGI application should handle it normally. However, if
you were counting on some upstream server to filter incoming
requests based on paths or header fields, and the upstream
server simply passed trailers through without
validating them, then this embedded second request would
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=99
- update to 23.7.0:
* Add preliminary support for Python 3.12, using greenlet
3.0a1.
* Update the bundled c-ares version to 1.19.1.
* Fix an edge case connecting a non-blocking ``SSLSocket`` that
could result in an AttributeError. In a change to match
the standard library, calling ``sock.connect_ex()`` on a
subclass of ``socket`` no longer calls the subclass's
``connect`` method.
* Make gevent's ``FileObjectThread`` (mostly used on Windows)
implement ``readinto`` cooperatively.
* Work around an ``AttributeError`` during cyclic garbage
collection when Python finalizers (``__del__`` and the like)
attempt to use gevent APIs. This is not a recommended practice,
and it is unclear if catching this ``AttributeError`` will fix
any problems or just shift them.
* Remove support for obsolete Python versions. This is
everything prior to 3.8.
* Stop using ``pkg_resources`` to find entry points (plugins).
Instead, use ``importlib.metadata``.
* Honor ``sys.unraisablehook`` when a callback function
produces an exception, and handling the exception in the hub
*also* produces an exception.
- drop skip-tests-in-leap.patch handle-python-ssl-changes.patch (obsolete)
OBS-URL: https://build.opensuse.org/request/show/1103820
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=44
* Add preliminary support for Python 3.12, using greenlet
3.0a1.
* Update the bundled c-ares version to 1.19.1.
* Fix an edge case connecting a non-blocking ``SSLSocket`` that
could result in an AttributeError. In a change to match
the standard library, calling ``sock.connect_ex()`` on a
subclass of ``socket`` no longer calls the subclass's
``connect`` method.
* Make gevent's ``FileObjectThread`` (mostly used on Windows)
implement ``readinto`` cooperatively.
* Work around an ``AttributeError`` during cyclic garbage
collection when Python finalizers (``__del__`` and the like)
attempt to use gevent APIs. This is not a recommended practice,
and it is unclear if catching this ``AttributeError`` will fix
any problems or just shift them.
* Remove support for obsolete Python versions. This is
everything prior to 3.8.
* Stop using ``pkg_resources`` to find entry points (plugins).
Instead, use ``importlib.metadata``.
* Honor ``sys.unraisablehook`` when a callback function
produces an exception, and handling the exception in the hub
*also* produces an exception.
- drop skip-tests-in-leap.patch handle-python-ssl-changes.patch (obsolete)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=97
- Add patch handle-python-ssl-changes.patch:
* Handle Python 3.10 changes where ssl.shared_ciphers() changes
behaviour.
- skip one more test from testsuite
- update to 22.10.2:
* Update to greenlet 2.0. This fixes a deallocation issue that
required a change in greenlet's ABI. The design of greenlet 2.0 is
intended to prevent future fixes and enhancements from
requiring an ABI change, making it easier to update gevent
and greenlet independently.
- Switch documentation to be within the main package.
OBS-URL: https://build.opensuse.org/request/show/1087248
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=41
* Update to greenlet 2.0. This fixes a deallocation issue that
required a change in greenlet's ABI. The design of greenlet 2.0 is
intended to prevent future fixes and enhancements from
requiring an ABI change, making it easier to update gevent
and greenlet independently.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=88