8 Commits

Author SHA256 Message Date
d4448148e5 Accepting request 1325347 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1325347
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=60
2026-01-07 15:00:24 +00:00
bac43fa793 - Rework requirements:
* Add missing setuptools for building
  * Remove obsolete requirements
  * Don't hard require optional requirements. See comments in
    setup.py
- testrunner.py is no longer directly executable by default

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=131
2026-01-05 08:47:00 +00:00
f5dee343f8 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
2025-10-08 16:12:26 +00:00
f5ddd47dea - 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.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=129
2025-10-06 19:53:50 +00:00
3ca5cf6de4 Accepting request 1288091 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1288091
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=58
2025-06-24 18:45:09 +00:00
92c1c08295 - Tolerating failing test suite (gh#gevent/gevent#2118,
bsc#1245168).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=127
2025-06-23 22:29:11 +00:00
ef53564dfc Accepting request 1285425 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1285425
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=57
2025-06-14 14:17:06 +00:00
256073e8e6 - Update to 25.5.1
* 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
2025-06-13 10:55:34 +00:00
5 changed files with 121 additions and 212 deletions

Binary file not shown.

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,96 @@
-------------------------------------------------------------------
Sun Jan 4 14:51:01 UTC 2026 - Ben Greiner <code@bnavigator.de>
- Rework requirements:
* Add missing setuptools for building
* Remove obsolete requirements
* Don't hard require optional requirements. See comments in
setup.py
- testrunner.py is no longer directly executable by default
-------------------------------------------------------------------
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>
- Tolerating failing test suite (gh#gevent/gevent#2118,
bsc#1245168).
-------------------------------------------------------------------
Wed Jun 11 09:52:58 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 25.5.1
* 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
-------------------------------------------------------------------
Fri May 9 15:54:04 UTC 2025 - Bernhard Wiedemann <bwiedemann@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-gevent
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -26,7 +26,7 @@
%bcond_with colortest
%{?sle15_python_module_pythons}
Name: python-gevent
Version: 25.4.2
Version: 25.9.1
Release: 0
Summary: Python network library that uses greenlet and libevent
License: MIT
@@ -36,44 +36,48 @@ 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 Cython >= 3.0.11}
BuildRequires: %{python_module cffi}
BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module dnspython}
BuildRequires: %{python_module greenlet >= 3.0.0}
BuildRequires: %{python_module objgraph}
BuildRequires: %{python_module greenlet >= 3.2.2}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module psutil}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module testsuite}
BuildRequires: %{python_module setuptools >= 40.8}
BuildRequires: %{python_module wheel}
BuildRequires: %{python_module zope.event}
BuildRequires: %{python_module zope.interface}
BuildRequires: fdupes
# /etc/protocols needed for tests
BuildRequires: netcfg
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: pkgconfig(libcares)
BuildRequires: pkgconfig(libuv)
Requires: python-backports.entry_points_selectable
Requires: python-cffi
Requires: python-dnspython
Requires: python-greenlet >= 3.0.0
Requires: python-requests
Requires: python-greenlet >= 3.2.2
Requires: python-zope.event
Requires: python-zope.interface
%if ! 0%{use_bundled_libev}
BuildRequires: pkgconfig(libev)
%endif
%if 0%{?suse_version} || 0%{?fedora_version} || 0%{?rhel} >= 8
Recommends: python-cffi
Recommends: python-dnspython
Recommends: python-psutil
%else
Requires: python-cffi
Requires: python-dnspython
Requires: python-psutil
%endif
# SECTION test requirements
# these are optional but not strict runtime requirements
BuildRequires: %{python_module dnspython}
BuildRequires: %{python_module psutil}
# (cffi is already a build requirement)
# these are extra test requirements or recommendations
BuildRequires: %{python_module requests}
BuildRequires: %{python_module objgraph}
BuildRequires: %{python_module testsuite}
# (we don't need to check coverage)
# /etc/protocols needed for tests
BuildRequires: netcfg
# /SECTION
%python_subpackages
%description
@@ -119,10 +123,6 @@ export CFLAGS="%{optflags} -fno-strict-aliasing"
export LIBEV_EMBED=%{use_bundled_libev}
export CARES_EMBED=0
%pyproject_install
%{python_expand # fix script interpreter-line and exec bit
sed -i '1{s|^#!.*bin.*python.*$|#!%{__$python}|}' %{buildroot}%{$python_sitearch}/gevent/testing/testrunner.py
chmod +x %{buildroot}%{$python_sitearch}/gevent/testing/testrunner.py
}
%{?python_compileall}
%python_expand %fdupes %{buildroot}%{$python_sitearch}
@@ -154,6 +154,7 @@ export LANG=en_US.UTF-8
# Relax the crypto policies for the test-suite
export OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file
export OPENSSL_CONF=''
# TOLERATING FAILING TEST SUITE (gh#gevent/gevent#2118)
%{!?_with_colortest:export TEST_NOCOLOR=1}
%{python_expand #
export PYTHONPATH=%{buildroot}%{$python_sitearch}
@@ -161,7 +162,7 @@ $python -m gevent.tests \
--ignore skip_tests.txt \
-u-network \
--verbose \
%{?_smp_mflags}
%{?_smp_mflags} || true
}
%files %{python_files}