diff --git a/0001-always-obey-GEVENT_NO_CFFI_BUILD.patch b/0001-always-obey-GEVENT_NO_CFFI_BUILD.patch deleted file mode 100644 index 7f768ec..0000000 --- a/0001-always-obey-GEVENT_NO_CFFI_BUILD.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 05650624fe2524ecb1bdbbd4facc5d988275e542 Mon Sep 17 00:00:00 2001 -From: Dan Callaghan -Date: Wed, 7 Jun 2017 13:55:53 +1000 -Subject: [PATCH] always obey GEVENT_NO_CFFI_BUILD - -If libev is not embedded, we still want to set GEVENT_NO_CFFI_BUILD=1 to -prevent setup.py from trying to configure libev, regardless whether cffi -modules will actually be built or not. ---- - setup.py | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/setup.py b/setup.py -index 9c229ad..ea4dcaf 100755 ---- a/setup.py -+++ b/setup.py -@@ -90,16 +90,17 @@ - except ImportError: - pass - else: -- if IGNORE_CFFI and not PYPY: -- # Allow distributors to turn off CFFI builds -- # even if it's available, because CFFI always embeds -- # our copy of libev and they may not want that. -- del cffi_modules[:] - # Note that we don't add cffi to install_requires, it's - # optional. We tend to build and distribute wheels with the CFFI - # modules built and they can be imported if CFFI is installed. - # install_requires.append('cffi >= 1.3.0') -+ pass - -+if IGNORE_CFFI and not PYPY: -+ # Allow distributors to turn off CFFI builds -+ # even if it's available, because CFFI always embeds -+ # our copy of libev and they may not want that. -+ del cffi_modules[:] - - # If we are running info / help commands, or we're being imported by - # tools like pyroma, we don't need to build anything --- -2.9.4 - diff --git a/0001-code-replace.patch b/0001-code-replace.patch new file mode 100644 index 0000000..8cbbe02 --- /dev/null +++ b/0001-code-replace.patch @@ -0,0 +1,26 @@ +commit 1b84da94c2aa2d171881482c22298ad189b79764 +Author: Victor Stinner +Date: Tue Jun 11 16:38:52 2019 +0200 + + Use CodeType.replace() if available + + Port _tblib.Traceback to Python 3.8: use code.replace() method if + available. + +diff --git a/src/gevent/_tblib.py b/src/gevent/_tblib.py +index 13364012..b9553a9e 100644 +--- a/src/gevent/_tblib.py ++++ b/src/gevent/_tblib.py +@@ -198,7 +198,11 @@ class Traceback(object): + while current: + f_code = current.tb_frame.f_code + code = compile('\n' * (current.tb_lineno - 1) + 'raise __traceback_maker', current.tb_frame.f_code.co_filename, 'exec') +- if PY3: ++ if hasattr(code, "replace"): ++ # Python 3.8 and newer ++ code = code.replace(co_argcount=0, ++ co_freevars=(), co_cellvars=()) ++ elif PY3: + code = CodeType( + 0, code.co_kwonlyargcount, + code.co_nlocals, code.co_stacksize, code.co_flags, diff --git a/python-gevent.spec b/python-gevent.spec index a115ea8..527f586 100644 --- a/python-gevent.spec +++ b/python-gevent.spec @@ -4,13 +4,18 @@ Name: python-%{modname} Version: 1.3.6 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A coroutine-based Python networking library License: MIT URL: http://www.gevent.org/ Source0: https://files.pythonhosted.org/packages/source/g/%{modname}/%{modname}-%{version}.tar.gz +# Python 3.8 compatibility: use code.replace() method +# https://github.com/gevent/gevent/pull/1429 +# https://github.com/gevent/gevent/commit/806713333afa9d490d31c0f9b534031c07467fc7 +Patch1: 0001-code-replace.patch + BuildRequires: gcc BuildRequires: c-ares-devel BuildRequires: libev-devel @@ -74,7 +79,7 @@ Features include: Python 3 version. %prep -%autosetup -n %{modname}-%{version} +%autosetup -p1 -n %{modname}-%{version} # Remove bundled libraries rm -r deps # Upstream intentionally includes C extension sources in the built package, @@ -117,6 +122,10 @@ find %{buildroot} -name '*.so' -exec chmod 755 {} ';' %{python3_sitearch}/%{modname}* %changelog +* Tue Jun 11 2019 Victor Stinner - 1.3.6-3 +- Add Python 3.8 support, backport upstream change to use CodeType.replace() if + available (rhbz#1716342) + * Sat Feb 02 2019 Fedora Release Engineering - 1.3.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild