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
- 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.
* Caution: greenlet 2.0 requires a modern-ish C++ compiler. This
may mean certain older platforms are no longer supported. See
:issue:`1909`.
OBS-URL: https://build.opensuse.org/request/show/1056058
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=81
- update to 22.10.0:
* Update bundled libuv to 1.44.2.
See :issue:`1913`.
* Upgrade embedded c-ares to 1.18.1.
* Upgrade bundled libuv to 1.42.0 from 1.40.0.
* Added preliminary support for Python 3.11 (rc2 and later).
Some platforms may or may not have binary wheels at this time.
.. important:: Support for legacy versions of Python, including 2.7
and 3.6, will be ending soon. The
maintenance burden has become too great and the
maintainer's time is too limited.
Ideally, there will be a release of gevent compatible
with a final release of greenlet 2.0 that still
supports those legacy versions, but that may not be
possible; this may be the final release to support them.
:class:`gevent.threadpool.ThreadPool` can now optionally expire idle
threads. This is used by default in the implicit thread pool used for
DNS requests and other user-submitted tasks; other uses of a
thread-pool need to opt-in to this.
See :issue:`1867`.
* Truly disable the effects of compiling with ``-ffast-math``.
OBS-URL: https://build.opensuse.org/request/show/1011260
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=38
* Update bundled libuv to 1.44.2.
See :issue:`1913`.
* Upgrade embedded c-ares to 1.18.1.
* Upgrade bundled libuv to 1.42.0 from 1.40.0.
* Added preliminary support for Python 3.11 (rc2 and later).
Some platforms may or may not have binary wheels at this time.
.. important:: Support for legacy versions of Python, including 2.7
and 3.6, will be ending soon. The
maintenance burden has become too great and the
maintainer's time is too limited.
Ideally, there will be a release of gevent compatible
with a final release of greenlet 2.0 that still
supports those legacy versions, but that may not be
possible; this may be the final release to support them.
:class:`gevent.threadpool.ThreadPool` can now optionally expire idle
threads. This is used by default in the implicit thread pool used for
DNS requests and other user-submitted tasks; other uses of a
thread-pool need to opt-in to this.
See :issue:`1867`.
* Truly disable the effects of compiling with ``-ffast-math``.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=79
- Update to 21.12.0
* Fix hanging the interpreter on shutdown if gevent monkey
patching occurred on a non-main thread in Python 3.9.8 and
above. (Note that this is not a recommended practice.) See
:issue:`1839`.
* Update the embedded c-ares from 1.16.1 to 1.17.1. See
:issue:`1758`.
* Add support for Python 3.10rc1 and newer. As part of this, the
minimum required greenlet version was increased to 1.1.0 (on
CPython), and the minimum version of Cython needed to build
gevent from a source checkout is 3.0a9. Note that the dnspython
resolver is not available on Python 3.10. See :issue:`1790`.
- Meanwhile Cython 0.29.24 and dnspython are compatible
with python310
- Revert threading test skip, fixed in 21.12
OBS-URL: https://build.opensuse.org/request/show/940355
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=78
- Relax the crypto policies for the test-suite
- Update to 21.1.2:
* Features:
- Update the embedded libev from 4.31 to 4.33.
- Update the embedded libuv from 1.38.0 to 1.40.0.
- Update to 21.1.1:
* Bugfixes:
- Fix a TypeError on startup on Python 2 with zope.schema
installed.
- Update to 21.1.0:
* Bugfixes:
- Make gevent FileObjects more closely match the semantics of
native file objects for the name attribute.: Objects opened
from a file descriptor integer have that integer as their
name. (Note that this is the Python 3 semantics; Python 2
native file objects returned from os.fdopen() have the string
"<fdopen>" as their name , but here gevent always follows
Python 3.) The name remains accessible after the file object
is closed.
* Misc:
- Make gevent.event.AsyncResult print a warning when it detects
improper cross-thread usage instead of hanging.
- AsyncResult has never been safe to use from multiple threads.
It, like most gevent objects, is intended to work with greenlets
from a single thread. Using AsyncResult from multiple threads
has undefined semantics. The safest way to communicate between
threads is using an event loop async watcher.
- Those undefined semantics changed in recent gevent versions,
making it more likely that an abused AsyncResult would
OBS-URL: https://build.opensuse.org/request/show/871401
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=74
* Make worker threads created by :class:`gevent.threadpool.ThreadPool` install
the :func:`threading.setprofile` and :func:`threading.settrace` hooks
while tasks are running. This provides visibility to profiling and
tracing tools like yappi.
* Incorrectly passing an exception *instance* instead of an exception
*type* to `gevent.Greenlet.kill` or `gevent.killall` no longer prints
an exception to stderr.
* Make destroying a hub try harder to more forcibly stop loop processing
when there are outstanding callbacks or IO operations scheduled.
* Improve the ability to use monkey-patched locks, and
`gevent.lock.BoundedSemaphore`, across threads, especially when the
various threads might not have a gevent hub or any other active
greenlets. In particular, this handles some cases that previously
raised ``LoopExit`` or would hang. Note that this may not be reliable
on PyPy on Windows; such an environment is not currently recommended.
* Make error reporting when a greenlet suffers a `RecursionError` more
reliable.
* gevent.pywsgi: Avoid printing an extra traceback ("TypeError: not
enough arguments for format string") to standard error on certain
invalid client requests.
* Add support for PyPy2 7.3.3.
* Python 2: Make ``gevent.subprocess.Popen.stdin`` objects have a
``write`` method that guarantees to write the entire argument in
binary, unbuffered mode. This may require multiple trips around the
event loop, but more closely matches the behaviour of the Python 2
standard library (and gevent prior to 1.5). The number of bytes
written is still returned (instead of ``None``).
See :issue:`1711`.
* Make `gevent.pywsgi` stop trying to enforce the rules for reading chunked input or
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=73