15
0
forked from pool/python-gevent

Accepting request 1309381 from devel:languages:python

OBS-URL: https://build.opensuse.org/request/show/1309381
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=59
This commit is contained in:
2025-10-08 16:12:26 +00:00
committed by Git OBS Bridge
5 changed files with 63 additions and 191 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:582c948fa9a23188b890d0bc130734a506d039a2e5ad87dae276a456cc683e61
size 6388207

3
gevent-25.9.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e64d86fda5704972ad03f04b128fe16c085bdec9615a17d906a6d83d7ac58716
size 4647126

View File

@@ -1,185 +0,0 @@
Index: gevent-25.4.2/src/greentest/3.11/test_ssl.py
===================================================================
--- gevent-25.4.2.orig/src/greentest/3.11/test_ssl.py
+++ gevent-25.4.2/src/greentest/3.11/test_ssl.py
@@ -2492,7 +2492,6 @@ class ThreadedEchoServer(threading.Threa
# See also http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/
if e.errno != errno.EPROTOTYPE and sys.platform != "darwin":
self.running = False
- self.server.stop()
self.close()
return False
else:
@@ -2627,10 +2626,6 @@ class ThreadedEchoServer(threading.Threa
self.close()
self.running = False
- # normally, we'd just stop here, but for the test
- # harness, we want to stop the server
- self.server.stop()
-
def __init__(self, certificate=None, ssl_version=None,
certreqs=None, cacerts=None,
chatty=True, connectionchatty=False, starttls_server=False,
@@ -2664,21 +2659,33 @@ class ThreadedEchoServer(threading.Threa
self.conn_errors = []
threading.Thread.__init__(self)
self.daemon = True
+ self._in_context = False
def __enter__(self):
+ if self._in_context:
+ raise ValueError('Re-entering ThreadedEchoServer context')
+ self._in_context = True
self.start(threading.Event())
self.flag.wait()
return self
def __exit__(self, *args):
+ assert self._in_context
+ self._in_context = False
self.stop()
self.join()
def start(self, flag=None):
+ if not self._in_context:
+ raise ValueError(
+ 'ThreadedEchoServer must be used as a context manager')
self.flag = flag
threading.Thread.start(self)
def run(self):
+ if not self._in_context:
+ raise ValueError(
+ 'ThreadedEchoServer must be used as a context manager')
self.sock.settimeout(1.0)
self.sock.listen(5)
self.active = True
Index: gevent-25.4.2/src/greentest/3.10/test_ssl.py
===================================================================
--- gevent-25.4.2.orig/src/greentest/3.10/test_ssl.py
+++ gevent-25.4.2/src/greentest/3.10/test_ssl.py
@@ -2485,7 +2485,6 @@ class ThreadedEchoServer(threading.Threa
# See also http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/
if e.errno != errno.EPROTOTYPE and sys.platform != "darwin":
self.running = False
- self.server.stop()
self.close()
return False
else:
@@ -2620,9 +2619,6 @@ class ThreadedEchoServer(threading.Threa
self.close()
self.running = False
- # normally, we'd just stop here, but for the test
- # harness, we want to stop the server
- self.server.stop()
def __init__(self, certificate=None, ssl_version=None,
certreqs=None, cacerts=None,
@@ -2657,21 +2653,33 @@ class ThreadedEchoServer(threading.Threa
self.conn_errors = []
threading.Thread.__init__(self)
self.daemon = True
+ self._in_context = False
def __enter__(self):
+ if self._in_context:
+ raise ValueError('Re-entering ThreadedEchoServer context')
+ self._in_context = True
self.start(threading.Event())
self.flag.wait()
return self
def __exit__(self, *args):
+ assert self._in_context
+ self._in_context = False
self.stop()
self.join()
def start(self, flag=None):
+ if not self._in_context:
+ raise ValueError(
+ 'ThreadedEchoServer must be used as a context manager')
self.flag = flag
threading.Thread.start(self)
def run(self):
+ if not self._in_context:
+ raise ValueError(
+ 'ThreadedEchoServer must be used as a context manager')
self.sock.settimeout(1.0)
self.sock.listen(5)
self.active = True
Index: gevent-25.4.2/src/greentest/3.12/test_ssl.py
===================================================================
--- gevent-25.4.2.orig/src/greentest/3.12/test_ssl.py
+++ gevent-25.4.2/src/greentest/3.12/test_ssl.py
@@ -2300,7 +2300,6 @@ class ThreadedEchoServer(threading.Threa
# See also http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/
if e.errno != errno.EPROTOTYPE and sys.platform != "darwin":
self.running = False
- self.server.stop()
self.close()
return False
else:
@@ -2435,10 +2434,6 @@ class ThreadedEchoServer(threading.Threa
self.close()
self.running = False
- # normally, we'd just stop here, but for the test
- # harness, we want to stop the server
- self.server.stop()
-
def __init__(self, certificate=None, ssl_version=None,
certreqs=None, cacerts=None,
chatty=True, connectionchatty=False, starttls_server=False,
@@ -2472,21 +2467,33 @@ class ThreadedEchoServer(threading.Threa
self.conn_errors = []
threading.Thread.__init__(self)
self.daemon = True
+ self._in_context = False
def __enter__(self):
+ if self._in_context:
+ raise ValueError('Re-entering ThreadedEchoServer context')
+ self._in_context = True
self.start(threading.Event())
self.flag.wait()
return self
def __exit__(self, *args):
+ assert self._in_context
+ self._in_context = False
self.stop()
self.join()
def start(self, flag=None):
+ if not self._in_context:
+ raise ValueError(
+ 'ThreadedEchoServer must be used as a context manager')
self.flag = flag
threading.Thread.start(self)
def run(self):
+ if not self._in_context:
+ raise ValueError(
+ 'ThreadedEchoServer must be used as a context manager')
self.sock.settimeout(1.0)
self.sock.listen(5)
self.active = True
Index: gevent-25.4.2/src/greentest/3.9/test_ssl.py
===================================================================
--- gevent-25.4.2.orig/src/greentest/3.9/test_ssl.py
+++ gevent-25.4.2/src/greentest/3.9/test_ssl.py
@@ -2559,10 +2559,6 @@ class ThreadedEchoServer(threading.Threa
self.close()
self.running = False
- # normally, we'd just stop here, but for the test
- # harness, we want to stop the server
- self.server.stop()
-
def __init__(self, certificate=None, ssl_version=None,
certreqs=None, cacerts=None,
chatty=True, connectionchatty=False, starttls_server=False,

View File

@@ -1,3 +1,62 @@
-------------------------------------------------------------------
Mon Oct 6 13:08:13 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 25.9.1
* 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.
See :issue:`2084`.
* Fix several possible interpreter crashes when there are race
conditions or programmers don't follow the documented rules and close
open files while they are still in use by other components.
For example, :meth:`selectors.BaseSelector.unregister` says "A file
object shall be unregistered prior to being closed." Failure to do so
is implementation dependent; in gevent, with libev compiled with
debugging enabled, this would crash the process, and with libuv,
an unexpected, uncatchable exception would be raised. Now, more common
failure scenarios are handled gracefully.
This also means that gevent now monkey-patches :func:`os.close` (on
POSIX) to help handle these cases.
See :issue:`2100`.
* Fix some ignored AssertionErrors after forking on older versions of
Python.
See also :issue:`2111`.
See :issue:`2111`.
* Make the classes in ``gevent.queue`` more compatible with classes that
expect to subclass the standard library queue classes.
See :issue:`2114`.
* Provide ``gevent.signal.set_wakeup_fd`` (monkey-patched by default) to
allow waking up on ``SIGCHLD``. Previously, gevent's internal handling
of ``SIGCHLD`` prevented this from working.
See :issue:`2126`.
- Drop gevent-openssl35-test-fix.patch, merged upstream
-------------------------------------------------------------------
Mon Jun 23 20:17:43 UTC 2025 - Matej Cepl <mcepl@cepl.eu>

View File

@@ -26,7 +26,7 @@
%bcond_with colortest
%{?sle15_python_module_pythons}
Name: python-gevent
Version: 25.5.1
Version: 25.9.1
Release: 0
Summary: Python network library that uses greenlet and libevent
License: MIT
@@ -36,8 +36,6 @@ Source0: https://github.com/gevent/gevent/archive/%{version}.tar.gz#/geve
Source100: %{name}-rpmlintrc
# PATCH-FEATURE-OPENSUSE gevent-opensuse-nocolor-tests.patch code@bnavigator.de -- Avoid colorization of test output in obs runners
Patch2: gevent-opensuse-nocolor-tests.patch
# PATCH-FEATURE-OPENSUSE gevent-openssl35-test-fix.patch pmonreal@suse.com -- Handle BrokenPipeError
Patch3: gevent-openssl35-test-fix.patch
BuildRequires: %{python_module Cython >= 3.0.2}
BuildRequires: %{python_module backports.entry_points_selectable}
BuildRequires: %{python_module cffi}