%global __provides_exclude_from ^%{python3_sitearch}/.*\\.so$ %global modname gevent %global optflags %(echo %{optflags} -I%{_includedir}/libev) Name: python-%{modname} Version: 24.11.1 Release: %autorelease Summary: A coroutine-based Python networking library License: MIT URL: http://www.gevent.org/ Source0: %{pypi_source %{modname} %{version} tar.gz} BuildRequires: gcc BuildRequires: c-ares-devel BuildRequires: libev-devel BuildRequires: libuv-devel %description gevent is a coroutine-based Python networking library that uses greenlet to provide a high-level synchronous API on top of libevent event loop. Features include: * convenient API around greenlets * familiar synchronization primitives (gevent.event, gevent.queue) * socket module that cooperates * WSGI server on top of libevent-http * DNS requests done through libevent-dns * monkey patching utility to get pure Python modules to cooperate %package -n python3-%{modname} Summary: %{summary} BuildRequires: python3-devel BuildRequires: python3-Cython BuildRequires: python3-greenlet-devel >= 2.0.0 BuildRequires: python3-setuptools # For tests BuildRequires: python3-dns BuildRequires: python3-psutil BuildRequires: python3-zope-event BuildRequires: python3-zope-interface %description -n python3-%{modname} gevent is a coroutine-based Python networking library that uses greenlet to provide a high-level synchronous API on top of libevent event loop. Features include: * convenient API around greenlets * familiar synchronization primitives (gevent.event, gevent.queue) * socket module that cooperates * WSGI server on top of libevent-http * DNS requests done through libevent-dns * monkey patching utility to get pure Python modules to cooperate Python 3 version. %prep %autosetup -p1 -n %{modname}-%{version} # Remove bundled libraries rm -r deps # Upstream intentionally includes C extension sources in the built package, # because... reasons (PyPy I think?) however we do not want that. Sources will # go into debuginfo as normal. sed -i -e 's/include_package_data=True/include_package_data=False/' setup.py # Force re-cythonizing the sources - missing with github tarballs rm -f $(grep -rl '/\* Generated by Cython') rm -f src/gevent/_generated_include/* # Test requires network, fails in mock/koji mv src/gevent/tests/test__resolver_dnspython.py{,.needsnetwork} %build export GEVENTSETUP_EMBED=0 # Build Python 3 first to use Python 3 Cython %py3_build %install export GEVENTSETUP_EMBED=0 %py3_install find %{buildroot} -name '.buildinfo' -delete # Correct the permissions. find %{buildroot} -name '*.so' -exec chmod 755 {} ';' %check export PYTHONPATH=%{buildroot}%{python3_sitearch} # test_resolution is failing - https://github.com/gevent/gevent/issues/2064 %__python3 -m gevent.tests || : cd src/gevent/tests && GEVENT_FILE=thread %__python3 -mgevent.tests test__*subprocess*.py %files -n python3-%{modname} %license LICENSE %doc README.rst %{python3_sitearch}/%{modname}* %changelog %autochangelog