diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df8d51a --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +gevent-0.13.0.tar.gz +/gevent-0.13.1.tar.gz +/gevent-0.13.3.tar.gz +/gevent-0.13.6.tar.gz +/gevent-0.13.8.tar.gz +/gevent-1.0.tar.gz +/gevent-1.0.1.tar.gz +/gevent-1.0.2.tar.gz +/gevent-1.1b5.tar.gz +/gevent-1.1b6.tar.gz +/gevent-1.1rc3.tar.gz +/gevent-1.1rc4.tar.gz +/gevent-1.1.0.tar.gz +/gevent-1.1.1.tar.gz +/gevent-1.1.2.tar.gz +/gevent-1.2.2.tar.gz +/gevent-1.3.1.tar.gz +/gevent-1.3.2.tar.gz +/gevent-1.3.3.tar.gz +/gevent-1.3.4.tar.gz +/gevent-1.3.6.tar.gz +/gevent-1.5a3.zip +/gevent-20.5.0.tar.gz +/gevent-20.6.0.tar.gz +/gevent-20.6.1.tar.gz +/gevent-20.9.0.tar.gz +/gevent-21.1.2.tar.gz +/gevent-21.12.0.tar.gz +/gevent-22.10.2.tar.gz +/gevent-23.7.0.tar.gz +/gevent-23.9.1.tar.gz +/gevent-24.2.1.tar.gz +/gevent-24.10.1.tar.gz +/gevent-24.10.2.tar.gz +/gevent-24.11.1.tar.gz +/gevent-25.9.1.tar.gz +/gevent-26.7.0.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index 84c37ac..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: python-gevent -# $Id$ -NAME := python-gevent -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/python-gevent.spec b/python-gevent.spec new file mode 100644 index 0000000..f6252ac --- /dev/null +++ b/python-gevent.spec @@ -0,0 +1,90 @@ +%global __provides_exclude_from ^%{python3_sitearch}/.*\\.so$ +%global modname gevent +%global optflags %(echo %{optflags} -I%{_includedir}/libev) + +Name: python-%{modname} +Version: 26.7.0 +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 >= 3.2.2 +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 diff --git a/sources b/sources index e69de29..8506c38 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (gevent-26.7.0.tar.gz) = 70e7a21874c77990884e46a5e849ee4e065c4b918544bf8a11f665412d101a94c81bae713c7202ebbe81fd5439e57248b23f098aec7b16b6f05d99ce1a6ec4a8