Accepting request 1103820 from devel:languages:python

- 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
This commit is contained in:
Dominique Leuenberger 2023-08-15 14:39:14 +00:00 committed by Git OBS Bridge
commit 8c903af814
6 changed files with 38 additions and 72 deletions

View File

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

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

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

View File

@ -1,36 +0,0 @@
Index: gevent-22.10.2/src/greentest/3.10/test_ssl.py
===================================================================
--- gevent-22.10.2.orig/src/greentest/3.10/test_ssl.py
+++ gevent-22.10.2/src/greentest/3.10/test_ssl.py
@@ -2306,13 +2306,11 @@ class SimpleBackgroundTests(unittest.Tes
self.assertIs(sslobj._sslobj.owner, sslobj)
self.assertIsNone(sslobj.cipher())
self.assertIsNone(sslobj.version())
- self.assertIsNotNone(sslobj.shared_ciphers())
self.assertRaises(ValueError, sslobj.getpeercert)
if 'tls-unique' in ssl.CHANNEL_BINDING_TYPES:
self.assertIsNone(sslobj.get_channel_binding('tls-unique'))
self.ssl_io_loop(sock, incoming, outgoing, sslobj.do_handshake)
self.assertTrue(sslobj.cipher())
- self.assertIsNotNone(sslobj.shared_ciphers())
self.assertIsNotNone(sslobj.version())
self.assertTrue(sslobj.getpeercert())
if 'tls-unique' in ssl.CHANNEL_BINDING_TYPES:
Index: gevent-22.10.2/src/greentest/3.11/test_ssl.py
===================================================================
--- gevent-22.10.2.orig/src/greentest/3.11/test_ssl.py
+++ gevent-22.10.2/src/greentest/3.11/test_ssl.py
@@ -2326,13 +2326,11 @@ class SimpleBackgroundTests(unittest.Tes
self.assertIs(sslobj._sslobj.owner, sslobj)
self.assertIsNone(sslobj.cipher())
self.assertIsNone(sslobj.version())
- self.assertIsNotNone(sslobj.shared_ciphers())
self.assertRaises(ValueError, sslobj.getpeercert)
if 'tls-unique' in ssl.CHANNEL_BINDING_TYPES:
self.assertIsNone(sslobj.get_channel_binding('tls-unique'))
self.ssl_io_loop(sock, incoming, outgoing, sslobj.do_handshake)
self.assertTrue(sslobj.cipher())
- self.assertIsNotNone(sslobj.shared_ciphers())
self.assertIsNotNone(sslobj.version())
self.assertTrue(sslobj.getpeercert())
if 'tls-unique' in ssl.CHANNEL_BINDING_TYPES:

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Mon Aug 14 09:20:19 UTC 2023 - Dirk Müller <dmueller@suse.com>
- 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)
-------------------------------------------------------------------
Fri Jun 9 08:08:57 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>

View File

@ -25,30 +25,28 @@
%endif
%{?sle15_python_module_pythons}
Name: python-gevent
Version: 22.10.2
Version: 23.7.0
Release: 0
Summary: Python network library that uses greenlet and libevent
License: MIT
Group: Development/Languages/Python
URL: https://www.gevent.org/
# Source: https://files.pythonhosted.org/packages/source/g/gevent/gevent-%%{version}.tar.gz
Source0: https://github.com/gevent/%{modname}/archive/%{version}.tar.gz#/%{modname}-%{version}.tar.gz
Source100: %{name}-rpmlintrc
# gcc7 for 15.1 produces no-return-in-nonvoid-function, but the same compiler for 15.2 not
# usually, as long as no return value is used, this shouldn't be treated as an error
# let's selectively disable the warning around the offending code
Patch0: fix-no-return-in-nonvoid-function.patch
Patch1: skip-tests-in-leap.patch
Patch2: handle-python-ssl-changes.patch
BuildRequires: %{python_module Cython}
BuildRequires: %{python_module cffi}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module dnspython}
BuildRequires: %{python_module greenlet >= 2.0.0}
BuildRequires: %{python_module objgraph}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module psutil}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: %{python_module zope.event}
BuildRequires: %{python_module zope.interface}
BuildRequires: fdupes
@ -62,6 +60,7 @@ BuildRequires: pkgconfig(libuv)
Requires: python-cffi
Requires: python-dnspython
Requires: python-greenlet >= 2.0.0
Requires: python-importlib-metadata
Requires: python-requests
Requires: python-zope.event
Requires: python-zope.interface
@ -108,11 +107,6 @@ Documentation and examples for %{name}.
%if 0%{?sle_version} <= 150100 && 0%{?is_opensuse}
%patch0 -p1
%endif
%if 0%{?sle_version} <= 150300
%patch1 -p1
%endif
%patch2 -p1
sed -i -e '1s!bin/env python!bin/python!' examples/*.py
sed -i -e '1{/bin.*python/d}' src/gevent/tests/*.py
@ -120,12 +114,12 @@ sed -i -e '1{/bin.*python/d}' src/gevent/tests/*.py
export LIBEV_EMBED=%{use_bundled_libev}
export CARES_EMBED=0
export CFLAGS="%{optflags} -fno-strict-aliasing"
%python_build
%pyproject_wheel
%install
export LIBEV_EMBED=%{use_bundled_libev}
export CARES_EMBED=0
%python_install
%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

View File

@ -1,20 +0,0 @@
Index: gevent-21.1.2/src/greentest/3.6/test_ssl.py
===================================================================
--- gevent-21.1.2.orig/src/greentest/3.6/test_ssl.py
+++ gevent-21.1.2/src/greentest/3.6/test_ssl.py
@@ -3186,6 +3186,7 @@ if _have_threads:
sock.do_handshake()
self.assertEqual(cm.exception.errno, errno.ENOTCONN)
+ @unittest.skip("skip in SLE/Leap")
def test_no_shared_ciphers(self):
server_context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
server_context.load_cert_chain(SIGNED_CERTFILE)
@@ -3671,6 +3672,7 @@ if _have_threads:
self.assertEqual(sess_stat['accept'], 4)
self.assertEqual(sess_stat['hits'], 2)
+ @unittest.skip("skip in SLE/Leap")
def test_session_handling(self):
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.verify_mode = ssl.CERT_REQUIRED