95 lines
3 KiB
RPMSpec
95 lines
3 KiB
RPMSpec
%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-greenlet-devel >= 2.0.0
|
|
BuildRequires: python3-zope-event
|
|
|
|
%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
|
|
|
|
%prep
|
|
%autosetup -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
|
|
# No linters
|
|
sed -i -e '/coverage/d' -e '/objgraph/d' 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}
|
|
|
|
%generate_buildrequires
|
|
%pyproject_buildrequires -t
|
|
|
|
%build
|
|
export GEVENTSETUP_EMBED=0
|
|
%pyproject_wheel
|
|
|
|
%install
|
|
export GEVENTSETUP_EMBED=0
|
|
%pyproject_install
|
|
find %{buildroot} -name '.buildinfo' -delete
|
|
# Correct the permissions.
|
|
find %{buildroot} -name '*.so' -exec chmod 755 {} ';'
|
|
%pyproject_save_files -l %{modname}
|
|
|
|
%check
|
|
%pyproject_check_import -t
|
|
export PYTHONPATH=%{buildroot}%{python3_sitearch}
|
|
# test_resolution is failing - https://github.com/gevent/gevent/issues/2064
|
|
%{py3_test_envvars} %{python3} -m gevent.tests --verbose || :
|
|
cd src/gevent/tests && GEVENT_FILE=thread %{python3} -mgevent.tests test__*subprocess*.py
|
|
|
|
%files -n python3-%{modname} -f %{pyproject_files}
|
|
%doc README.rst
|
|
|
|
%changelog
|
|
%autochangelog
|