X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;ds=sidebyside;f=python-gevent.spec;h=abe773ad007e2b4e151fc39eb7bf6e99e2bd816e;hb=3b06763;hp=c6e492bdc85f31acb6d6ab2137d666592b0c3941;hpb=6c017ba8677848593321ebe655db76f38a686a5d;p=packages%2Fpython-gevent.git diff --git a/python-gevent.spec b/python-gevent.spec index c6e492b..abe773a 100644 --- a/python-gevent.spec +++ b/python-gevent.spec @@ -1,49 +1,96 @@ # TODO: -# - SSL Broken with python 2.7.9 -# https://github.com/gevent/gevent/issues/477 -# # - test__core_stat.py fails on 32-bit builds with system libev # investigate/fix that and enable system libev # # - investigate some other failing tests -# (now excluded via known_failures-pld.txt) +# (now excluded via known_failures-pld.patch) # Conditional build: -%bcond_without tests # do not run tests -%bcond_with system_libev # build with system libev (more tests will fail) +%bcond_without tests # do not run tests +%bcond_with system_libev # build with system libev [test__core_stat.py test fails] %bcond_without system_c_ares # build with system c_ares +%bcond_without python2 # CPython 2.x module +%bcond_without python3 # CPython 3.x module -%define module gevent -Summary: A coroutine-based Python networking library +%define module gevent +Summary: A coroutine-based Python 2 networking library +Summary(pl.UTF-8): Biblioteka sieciowa dla Pythona 2 oparta na korutynach Name: python-%{module} -Version: 1.0.1 -Release: 1 +Version: 1.2.1 +Release: 3 +Epoch: 1 License: MIT Group: Development/Languages +#Source0Download: https://pypi.python.org/simple/gevent +Source0: http://files.pythonhosted.org/packages/source/g/gevent/%{module}-%{version}.tar.gz +# Source0-md5: 6700a2433c8e0635425e6798760efc81 +Patch0: known_failures-pld.patch +Patch1: %{name}-tests.patch URL: http://www.gevent.org/ -Source0: http://pypi.python.org/packages/source/g/gevent/%{module}-%{version}.tar.gz -# Source0-md5: 7b952591d1a0174d6eb6ac47bd975ab6 -Source1: known_failures-pld.txt %{?with_system_c_ares:BuildRequires: c-ares-devel >= 1.10.0} -%{?with_system_libev:BuildRequires: libev-devel >= 4.11} -#BuildRequires: python-Cython -BuildRequires: python-devel +%{?with_system_libev:BuildRequires: libev-devel >= 4.23} +# if cpython generated files need rebuild +#BuildRequires: python-Cython >= 0.25.1 +%if %{with python2} +BuildRequires: python-cffi >= 1.3.0 +BuildRequires: python-devel >= 1:2.7 %if %{with tests} -BuildRequires: python-devel-src -BuildRequires: python-greenlet >= 0.3.2 +BuildRequires: python-coverage >= 4.0 +BuildRequires: python-devel-src >= 1:2.7 +BuildRequires: python-greenlet >= 0.4.10 +BuildRequires: python-setuptools BuildRequires: python-test -BuildRequires: rpmbuild(macros) >= 1.688 +%endif +%endif +%if %{with python3} +BuildRequires: python3-cffi >= 1.3.0 +BuildRequires: python3-devel >= 1:3.3 +%if %{with tests} +BuildRequires: python3-coverage >= 4.0 +BuildRequires: python3-greenlet >= 0.4.10 +BuildRequires: python3-setuptools +BuildRequires: python3-test +%endif %endif BuildRequires: rpm-pythonprov -Requires: python-greenlet >= 0.3.2 +BuildRequires: rpmbuild(macros) >= 1.714 +%{?with_system_libev:Requires: libev >= 4.23} +Requires: python-greenlet >= 0.4.10 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description -gevent is a coroutine-based Python networking library. +gevent is a coroutine-based Python networking library. Features +include: +- Fast event loop based on libev. +- Lightweight execution units based on greenlet. +- Familiar API that re-uses concepts from the Python standard library. +- Cooperative sockets with SSL support. +- DNS queries performed through c-ares or a threadpool. +- Ability to use standard library and 3rd party modules written for + standard blocking sockets. -Features include: +%description -l pl.UTF-8 +gevent to biblioteka sieciowa dla Pythona oparta na korutynach. Jej +możliwości to m.in. +- szybka pętla zdarzeń oparta na libev +- lekkie jednostki wykonywania oparte na bibliotece greenlet +- znajome API wykorzystujące koncepty biblioteki standardowej Pythona +- gniazda kooperatywne z obsługą SSL +- zapytania DNS wykonywane przez bibliotekę c-ares lub pulę wątków +- możliwość wykorzystania biblioteki standardowej lub modułów innych + producentów napisanych dla standardowych gniazd blokujących +%package -n python3-%{module} +Summary: A coroutine-based Python 3 networking library +Summary(pl.UTF-8): Biblioteka sieciowa dla Pythona 3 oparta na korutynach +Group: Libraries/Python +%{?with_system_libev:Requires: libev >= 4.23} +Requires: python-greenlet >= 0.4.10 + +%description -n python3-%{module} +gevent is a coroutine-based Python networking library. Features +include: - Fast event loop based on libev. - Lightweight execution units based on greenlet. - Familiar API that re-uses concepts from the Python standard library. @@ -52,53 +99,110 @@ Features include: - Ability to use standard library and 3rd party modules written for standard blocking sockets +%description -n python3-%{module} -l pl.UTF-8 +gevent to biblioteka sieciowa dla Pythona oparta na korutynach. Jej +możliwości to m.in. +- szybka pętla zdarzeń oparta na libev +- lekkie jednostki wykonywania oparte na bibliotece greenlet +- znajome API wykorzystujące koncepty biblioteki standardowej Pythona +- gniazda kooperatywne z obsługą SSL +- zapytania DNS wykonywane przez bibliotekę c-ares lub pulę wątków +- możliwość wykorzystania biblioteki standardowej lub modułów innych + producentów napisanych dla standardowych gniazd blokujących + %prep %setup -q -n %{module}-%{version} -%if %{with tests} -cat known_failures.txt %{SOURCE1} > known_failures-merged.txt -%endif +%patch0 -p1 +%patch1 -p1 -b .orig %build # when Cython-generated files are to be rebuilt # (BR: python-Cython must be enabled then too) # ln -s Makefile.ext Makefile -CC="%{__cc}" \ -CFLAGS="%{rpmcflags}" \ -%{?with_system_libev:LIBEV_EMBED=false} \ -%{?with_system_c_ares:CARES_EMBED=false} \ -%{__python} setup.py build +# must be exported to work (py*_build macro is not single invocation) +%{?with_system_libev:export LIBEV_EMBED=false} +%{?with_system_c_ares:export CARES_EMBED=false} + +%if %{with python2} +%py_build %if %{with tests} -cd greentest -PYTHONPATH=.. python testrunner.py --expected ../known_failures-merged.txt -cd .. +PKGDIR=$(echo $PWD/build-2/lib.*) +cd src/greentest +PYTHONPATH=$PKGDIR %{__python} testrunner.py --config known_failures.py +cd ../.. +%endif +%endif + +%if %{with python3} +%py3_build + +%if %{with tests} +PKGDIR=$(echo $PWD/build-3/lib.*) +cd src/greentest +PYTHONPATH=$PKGDIR %{__python3} testrunner.py --config known_failures.py +cd ../.. +%endif %endif %install rm -rf $RPM_BUILD_ROOT -%{?with_system_libev:LIBEV_EMBED=false} \ -%{?with_system_c_ares:CARES_EMBED=false} \ -%{__python} setup.py install \ - --skip-build \ - --optimize=2 \ - --root=$RPM_BUILD_ROOT +%{?with_system_libev:export LIBEV_EMBED=false} +%{?with_system_c_ares:export CARES_EMBED=false} + +%if %{with python2} +%py_install %py_postclean +%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/gevent/*.{c,h,pyx} +%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/gevent/libev/*.{c,h,pyx,ppyx} +%endif + +%if %{with python3} +%py3_install + +%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/gevent/*.{c,h,pyx} +%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/gevent/libev/*.{c,h,pyx,ppyx} +%endif %clean rm -rf $RPM_BUILD_ROOT +%if %{with python2} %files %defattr(644,root,root,755) -%doc LICENSE README.rst -%dir %{py_sitedir}/%{module} -%{py_sitedir}/%{module}/*.py[co] -%attr(755,root,root) %{py_sitedir}/%{module}/_semaphore.so -%attr(755,root,root) %{py_sitedir}/%{module}/_util.so -%attr(755,root,root) %{py_sitedir}/%{module}/ares.so -%attr(755,root,root) %{py_sitedir}/%{module}/core.so -%if "%{py_ver}" > "2.4" -%{py_sitedir}/%{module}-%{version}-py%{py_ver}.egg-info +%doc AUTHORS LICENSE NOTICE README.rst TODO +%dir %{py_sitedir}/gevent +%attr(755,root,root) %{py_sitedir}/gevent/_semaphore.so +%attr(755,root,root) %{py_sitedir}/gevent/ares.so +%{py_sitedir}/gevent/*.pxd +%{py_sitedir}/gevent/*.py[co] +%dir %{py_sitedir}/gevent/libev +%attr(755,root,root) %{py_sitedir}/gevent/libev/_corecffi.so +%attr(755,root,root) %{py_sitedir}/gevent/libev/corecext.so +%{py_sitedir}/gevent/libev/libev.pxd +%{py_sitedir}/gevent/libev/*.py[co] +%{py_sitedir}/gevent-%{version}-py%{py_ver}.egg-info +%endif + +%if %{with python3} +%files -n python3-%{module} +%defattr(644,root,root,755) +%doc AUTHORS LICENSE NOTICE README.rst TODO +%dir %{py3_sitedir}/gevent +%attr(755,root,root) %{py3_sitedir}/gevent/_semaphore.cpython-*.so +%attr(755,root,root) %{py3_sitedir}/gevent/ares.cpython-*.so +%{py3_sitedir}/gevent/__pycache__ +%{py3_sitedir}/gevent/*.pxd +%{py3_sitedir}/gevent/*.py +%dir %{py3_sitedir}/gevent/libev +%attr(755,root,root) %{py3_sitedir}/gevent/libev/_corecffi.abi3.so +%attr(755,root,root) %{py3_sitedir}/gevent/libev/corecext.cpython-36m-*.so + +%{py3_sitedir}/gevent/libev/__pycache__ +%{py3_sitedir}/gevent/libev/libev.pxd +%{py3_sitedir}/gevent/libev/*.py +%{py3_sitedir}/gevent-%{version}-py*.egg-info %endif