Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-eventlet for openSUSE:Factory
checked in at 2026-08-22 21:34:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-eventlet (Old)
and /work/SRC/openSUSE:Factory/.python-eventlet.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-eventlet"
Sat Aug 22 21:34:37 2026 rev:69 rq:1372810 version:0.41.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-eventlet/python-eventlet.changes
2026-06-10 15:47:40.163083418 +0200
+++
/work/SRC/openSUSE:Factory/.python-eventlet.new.1258/python-eventlet.changes
2026-08-22 21:35:43.100288021 +0200
@@ -1,0 +2,9 @@
+Fri Aug 21 10:21:46 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.41.2:
+ * Fix compatibility with greenlet >= 3.4 (#1101)
+ * CI: Run apt-get update before installing system packages
+ * Bump actions dependent on nodejs 20 (#1091)
+ * wsgi: Handle ENOTCONN (#1092)
+
+-------------------------------------------------------------------
Old:
----
eventlet-0.41.0.tar.gz
New:
----
eventlet-0.41.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-eventlet.spec ++++++
--- /var/tmp/diff_new_pack.a9tOfa/_old 2026-08-22 21:35:45.225363862 +0200
+++ /var/tmp/diff_new_pack.a9tOfa/_new 2026-08-22 21:35:45.231364076 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-eventlet
-Version: 0.41.0
+Version: 0.41.2
Release: 0
Summary: Concurrent networking library for Python
License: MIT
++++++ eventlet-0.41.0.tar.gz -> eventlet-0.41.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/.github/workflows/docs.yaml
new/eventlet-0.41.2/.github/workflows/docs.yaml
--- old/eventlet-0.41.0/.github/workflows/docs.yaml 2020-02-02
01:00:00.000000000 +0100
+++ new/eventlet-0.41.2/.github/workflows/docs.yaml 2020-02-02
01:00:00.000000000 +0100
@@ -11,9 +11,9 @@
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Set up Python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/.github/workflows/publish.yaml
new/eventlet-0.41.2/.github/workflows/publish.yaml
--- old/eventlet-0.41.0/.github/workflows/publish.yaml 2020-02-02
01:00:00.000000000 +0100
+++ new/eventlet-0.41.2/.github/workflows/publish.yaml 2020-02-02
01:00:00.000000000 +0100
@@ -19,9 +19,9 @@
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Set up Python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/.github/workflows/style.yaml
new/eventlet-0.41.2/.github/workflows/style.yaml
--- old/eventlet-0.41.0/.github/workflows/style.yaml 2020-02-02
01:00:00.000000000 +0100
+++ new/eventlet-0.41.2/.github/workflows/style.yaml 2020-02-02
01:00:00.000000000 +0100
@@ -10,10 +10,10 @@
timeout-minutes: 5
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: cache pip
- uses: actions/cache@v4
+ uses: actions/cache@v5
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{
hashFiles('.github/workflows/style.yaml') }}
@@ -21,7 +21,7 @@
${{ runner.os }}-pip-
${{ runner.os }}-
- name: cache tox
- uses: actions/cache@v4
+ uses: actions/cache@v5
with:
path: .tox
key: ${{ runner.os }}-tox-style-${{ hashFiles('tox.ini') }}
@@ -31,7 +31,7 @@
${{ runner.os }}-
- name: setup python
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: 3.x
- name: install tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/.github/workflows/test.yaml
new/eventlet-0.41.2/.github/workflows/test.yaml
--- old/eventlet-0.41.0/.github/workflows/test.yaml 2020-02-02
01:00:00.000000000 +0100
+++ new/eventlet-0.41.2/.github/workflows/test.yaml 2020-02-02
01:00:00.000000000 +0100
@@ -47,11 +47,13 @@
steps:
- name: install system packages
- run: sudo apt install -y --no-install-recommends ccache libffi-dev
default-libmysqlclient-dev libpq-dev libssl-dev libzmq3-dev
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y --no-install-recommends ccache libffi-dev
default-libmysqlclient-dev libpq-dev libssl-dev libzmq3-dev
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: cache pip
- uses: actions/cache@v4
+ uses: actions/cache@v5
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ matrix.toxenv }}-${{
hashFiles('.github/workflows/test.yaml', 'setup.py') }}
@@ -59,7 +61,7 @@
${{ runner.os }}-pip-
${{ runner.os }}-
- name: cache tox
- uses: actions/cache@v4
+ uses: actions/cache@v5
with:
path: .tox
key: ${{ runner.os }}-tox-${{ matrix.toxenv }}-${{
hashFiles('tox.ini') }}
@@ -68,7 +70,7 @@
${{ runner.os }}-
- name: setup python ${{ matrix.py }}
- uses: actions/setup-python@v5
+ uses: actions/setup-python@v6
with:
python-version: ${{ matrix.py }}
- name: install codecov, tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/NEWS new/eventlet-0.41.2/NEWS
--- old/eventlet-0.41.0/NEWS 2020-02-02 01:00:00.000000000 +0100
+++ new/eventlet-0.41.2/NEWS 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,17 @@
Unreleased
==========
+0.41.2
+======
+* Fix compatibility with greenlet >= 3.4 (#1101)
+* CI: Run apt-get update before installing system packages (#1102)
+
+0.41.1
+======
+
+* Bump actions dependent on nodejs 20 (#1091)
+* wsgi: Handle ENOTCONN (#1092)
+
0.41.0
======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/PKG-INFO new/eventlet-0.41.2/PKG-INFO
--- old/eventlet-0.41.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/eventlet-0.41.2/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.4
+Metadata-Version: 2.5
Name: eventlet
-Version: 0.41.0
+Version: 0.41.2
Summary: Highly concurrent networking library
Project-URL: Homepage, https://github.com/eventlet/eventlet
Project-URL: History, https://github.com/eventlet/eventlet/blob/master/NEWS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/eventlet/_version.py
new/eventlet-0.41.2/eventlet/_version.py
--- old/eventlet-0.41.0/eventlet/_version.py 2020-02-02 01:00:00.000000000
+0100
+++ new/eventlet-0.41.2/eventlet/_version.py 2020-02-02 01:00:00.000000000
+0100
@@ -18,7 +18,7 @@
commit_id: str | None
__commit_id__: str | None
-__version__ = version = '0.41.0'
-__version_tuple__ = version_tuple = (0, 41, 0)
+__version__ = version = '0.41.2'
+__version_tuple__ = version_tuple = (0, 41, 2)
__commit_id__ = commit_id = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/eventlet/green/thread.py
new/eventlet-0.41.2/eventlet/green/thread.py
--- old/eventlet-0.41.0/eventlet/green/thread.py 2020-02-02
01:00:00.000000000 +0100
+++ new/eventlet-0.41.2/eventlet/green/thread.py 2020-02-02
01:00:00.000000000 +0100
@@ -6,6 +6,8 @@
from eventlet.lock import Lock
import sys
+_real_get_ident = __thread.get_ident
+
__patched__ = ['Lock', 'LockType', '_ThreadHandle', '_count',
'_get_main_thread_ident', '_local', '_make_thread_handle',
@@ -36,7 +38,10 @@
def get_ident(gr=None):
if gr is None:
- return id(greenlet.getcurrent())
+ try:
+ return id(greenlet.getcurrent())
+ except RuntimeError:
+ return _real_get_ident()
else:
return id(gr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/eventlet/semaphore.py
new/eventlet-0.41.2/eventlet/semaphore.py
--- old/eventlet-0.41.0/eventlet/semaphore.py 2020-02-02 01:00:00.000000000
+0100
+++ new/eventlet-0.41.2/eventlet/semaphore.py 2020-02-02 01:00:00.000000000
+0100
@@ -94,7 +94,13 @@
if not blocking and self.locked():
return False
- current_thread = eventlet.getcurrent()
+ try:
+ current_thread = eventlet.getcurrent()
+ except RuntimeError:
+ if self.counter > 0:
+ self.counter -= 1
+ return True
+ return False
if self.counter <= 0 or self._waiters:
if current_thread not in self._waiters:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/eventlet/wsgi.py
new/eventlet-0.41.2/eventlet/wsgi.py
--- old/eventlet-0.41.0/eventlet/wsgi.py 2020-02-02 01:00:00.000000000
+0100
+++ new/eventlet-0.41.2/eventlet/wsgi.py 2020-02-02 01:00:00.000000000
+0100
@@ -924,11 +924,12 @@
try:
import ssl
ACCEPT_EXCEPTIONS = (socket.error, ssl.SSLError)
- ACCEPT_ERRNO = {errno.EPIPE, errno.ECONNRESET,
+ ACCEPT_ERRNO = {errno.EPIPE, errno.ECONNRESET, errno.ENOTCONN,
errno.ESHUTDOWN, ssl.SSL_ERROR_EOF, ssl.SSL_ERROR_SSL}
except ImportError:
ACCEPT_EXCEPTIONS = (socket.error,)
- ACCEPT_ERRNO = {errno.EPIPE, errno.ECONNRESET, errno.ESHUTDOWN}
+ ACCEPT_ERRNO = {errno.EPIPE, errno.ECONNRESET, errno.ENOTCONN,
+ errno.ESHUTDOWN}
def socket_repr(sock):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/eventlet-0.41.0/tests/greendns_test.py
new/eventlet-0.41.2/tests/greendns_test.py
--- old/eventlet-0.41.0/tests/greendns_test.py 2020-02-02 01:00:00.000000000
+0100
+++ new/eventlet-0.41.2/tests/greendns_test.py 2020-02-02 01:00:00.000000000
+0100
@@ -299,13 +299,17 @@
class TestProxyResolver(tests.LimitedTestCase):
def test_clear(self):
- rp = greendns.ResolverProxy()
+ tmp = tempfile.NamedTemporaryFile(mode='w', suffix='.conf')
+ tmp.write('nameserver 127.0.0.1\n')
+ tmp.flush()
+ rp = greendns.ResolverProxy(filename=tmp.name)
assert rp._cached_resolver is None
resolver = rp._resolver
assert resolver is not None
rp.clear()
assert rp._resolver is not None
assert rp._resolver != resolver
+ tmp.close()
def _make_mock_hostsresolver(self):
"""A mocked HostsResolver"""
@@ -916,7 +920,7 @@
# https://github.com/eventlet/eventlet/issues/499
# None means we don't want the server to find the IP
with tests.dns_tcp_server(None) as dnsaddr:
- resolver = Resolver()
+ resolver = Resolver(configure=False)
resolver.nameservers = [dnsaddr[0]]
resolver.nameserver_ports[dnsaddr[0]] = dnsaddr[1]
@@ -927,7 +931,7 @@
# https://github.com/eventlet/eventlet/issues/499
expected_ip = "192.168.1.1"
with tests.dns_tcp_server(expected_ip) as dnsaddr:
- resolver = Resolver()
+ resolver = Resolver(configure=False)
resolver.nameservers = [dnsaddr[0]]
resolver.nameserver_ports[dnsaddr[0]] = dnsaddr[1]
response = resolver.query('host.example.com', 'a', tcp=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/eventlet-0.41.0/tests/isolated/socket_resolve_green.py
new/eventlet-0.41.2/tests/isolated/socket_resolve_green.py
--- old/eventlet-0.41.0/tests/isolated/socket_resolve_green.py 2020-02-02
01:00:00.000000000 +0100
+++ new/eventlet-0.41.2/tests/isolated/socket_resolve_green.py 2020-02-02
01:00:00.000000000 +0100
@@ -3,11 +3,22 @@
if __name__ == '__main__':
import eventlet
eventlet.monkey_patch(all=True)
+ import os
import socket
+ import tempfile
import time
import dns.message
import dns.query
import dns.flags
+ from eventlet.support import greendns
+
+ # Ensure the global resolver proxy works even without /etc/resolv.conf
+ # (e.g. on Debian buildd servers). See
https://github.com/eventlet/eventlet/issues/963
+ if not os.path.exists('/etc/resolv.conf'):
+ tmp = tempfile.NamedTemporaryFile(mode='w', suffix='.conf',
delete=False)
+ tmp.write('nameserver 127.0.0.1\n')
+ tmp.close()
+ greendns.resolver._filename = tmp.name
n = 10
delay = 0.01