Files
python-gevent/python-gevent.spec
2026-03-04 12:20:19 +08:00

84 lines
2.6 KiB
RPMSpec

# SPDX-FileCopyrightText: (C) 2026 Institute of Software, Chinese Academy of Sciences (ISCAS)
# SPDX-FileCopyrightText: (C) 2026 openRuyi Project Contributors
# SPDX-FileContributor: Jvle <keke.oerv@isrc.iscas.ac.cn>
#
# SPDX-License-Identifier: MulanPSL-2.0
%global srcname gevent
Name: python-%{srcname}
Version: 25.9.1
Release: %autorelease
Summary: A coroutine-based Python networking library
License: MIT
URL: http://www.gevent.org/
VCS: git:git@github.com:gevent/gevent.git
#!RemoteAsset
Source0: https://files.pythonhosted.org/packages/source/g/%{srcname}/%{srcname}-%{version}.tar.gz
BuildSystem: pyproject
BuildOption(install): -l %{srcname}
BuildRequires: gcc
BuildRequires: c-ares-devel
BuildRequires: pkgconfig(libev)
BuildRequires: pkgconfig(libuv)
BuildRequires: pkgconfig(python3)
BuildRequires: python3dist(greenlet)
BuildRequires: python3dist(zope-event)
BuildRequires: pyproject-rpm-macros
Provides: python3-%{srcname}
%python_provide python3-%{srcname}
%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
%prep -a
# 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 -p
export GEVENTSETUP_EMBED=0
%install -p
export GEVENTSETUP_EMBED=0
%install -a
find %{buildroot} -name '.buildinfo' -delete
# Correct the permissions.
find %{buildroot} -name '*.so' -exec chmod 755 {} ';'
%check -a
cd src/gevent/tests && GEVENT_FILE=thread %{python3} -mgevent.tests test__*subprocess*.py
%files -f %{pyproject_files}
%license LICENSE
%doc README.rst
%changelog
%{?autochangelog}