16 Commits

Author SHA256 Message Date
08e4dbc9a9 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
41278e2fd4 Accepting request 1288084 from home:mcepl:branches:devel:languages:python
- Tolerating failing test suite (gh#gevent/gevent#2118,
  bsc#1245168).

OBS-URL: https://build.opensuse.org/request/show/1288084
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
e0a0749614 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
47f8e83582 Accepting request 1284755 from home:glaubitz:branches:devel:languages:python
- 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/request/show/1284755
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
123ddd3048 Accepting request 1276704 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1276704
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=56
2025-05-13 18:11:55 +00:00
4b2387da31 Accepting request 1276306 from home:bmwiedemann:branches:devel:languages:python
Use %_smp_mflags for reproducible builds (boo#1237231)

OBS-URL: https://build.opensuse.org/request/show/1276306
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=123
2025-05-12 06:09:11 +00:00
24b9e7d242 Accepting request 1272752 from devel:languages:python
- 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
2025-04-25 20:17:52 +00:00
08d1dbaf94 Fix changelog
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=121
2025-04-25 15:11:48 +00:00
1dd56ecdb6 Accepting request 1272750 from home:mcepl:branches:home:pmonrealgonzalez:openssl-3.5
- Update to 25.4.2:
  * 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/request/show/1272750
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=120
2025-04-25 15:10:19 +00:00
2222ac5e24 Accepting request 1272642 from home:pmonrealgonzalez:branches:devel:languages:python
- 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/1272642
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=119
2025-04-25 11:43:43 +00:00
cecb5b63b9 Accepting request 1271903 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1271903
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=54
2025-04-23 13:18:20 +00:00
2158033f4c Accepting request 1271901 from home:pmonrealgonzalez:branches:devel:languages:python
- Handle BrokenPipeError in src/gevent/ssl.py [bsc#1241037]
  * Upstream PR: https://github.com/gevent/gevent/pull/2103
  * Add gevent-openssl35-test-fix.patch

OBS-URL: https://build.opensuse.org/request/show/1271901
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=117
2025-04-22 14:25:41 +00:00
0b48b909dd Accepting request 1217397 from devel:languages:python
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
2024-10-25 17:18:30 +00:00
0ec332e3ed Accepting request 1217326 from home:glaubitz:branches:devel:languages:python
- 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/1217326
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=115
2024-10-23 16:57:05 +00:00
a029bebfb9 Accepting request 1206713 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1206713
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-gevent?expand=0&rev=52
2024-10-11 15:01:03 +00:00
b29fafa0a6 Accepting request 1206658 from home:glaubitz:branches:devel:languages:python
- Update to 24.10.1
  * 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/request/show/1206658
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-gevent?expand=0&rev=113
2024-10-10 13:52:37 +00:00
5 changed files with 209 additions and 93 deletions

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

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

View File

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

View File

@@ -0,0 +1,185 @@
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,72 +1,3 @@
-------------------------------------------------------------------
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>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-gevent
#
# Copyright (c) 2026 SUSE LLC and contributors
# 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
@@ -26,7 +26,7 @@
%bcond_with colortest
%{?sle15_python_module_pythons}
Name: python-gevent
Version: 25.9.1
Version: 25.5.1
Release: 0
Summary: Python network library that uses greenlet and libevent
License: MIT
@@ -36,48 +36,44 @@ 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
BuildRequires: %{python_module Cython >= 3.0.11}
# 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}
BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module dnspython}
BuildRequires: %{python_module greenlet >= 3.2.2}
BuildRequires: %{python_module objgraph}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 40.8}
BuildRequires: %{python_module psutil}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module testsuite}
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.2.2
Requires: python-requests
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
@@ -123,6 +119,10 @@ 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}