# (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
+%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.1b5
-Release: 1
+Version: 1.2.1
+Release: 3
+Epoch: 1
License: MIT
Group: Development/Languages
-Source0: http://pypi.python.org/packages/source/g/gevent/%{module}-%{version}.tar.gz
-# Source0-md5: e120a6672feecbbc38b2fe1757ae6099
+#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/
%{?with_system_c_ares:BuildRequires: c-ares-devel >= 1.10.0}
-%{?with_system_libev:BuildRequires: libev-devel >= 4.11}
-#BuildRequires: python-Cython
+%{?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-devel
+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
%endif
%endif
%if %{with python3}
-BuildRequires: python3-devel
+BuildRequires: python3-cffi >= 1.3.0
+BuildRequires: python3-devel >= 1:3.3
%if %{with tests}
-BuildRequires: python3-greenlet >= 0.3.2
+BuildRequires: python3-coverage >= 4.0
+BuildRequires: python3-greenlet >= 0.4.10
+BuildRequires: python3-setuptools
BuildRequires: python3-test
%endif
%endif
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.688
-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.
-
-Features include:
-
+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
+ standard blocking sockets.
+
+%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 networking library
+Summary: A coroutine-based Python 3 networking library
+Summary(pl.UTF-8): Biblioteka sieciowa dla Pythona 3 oparta na korutynach
Group: Libraries/Python
-Requires: python-greenlet >= 0.3.2
+%{?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:
-
+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.
- 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}
%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
+# 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}
-CC="%{__cc}" \
-CFLAGS="%{rpmcflags}" \
-%{?with_system_libev:LIBEV_EMBED=false} \
-%{?with_system_c_ares:CARES_EMBED=false} \
-%{__python} setup.py build --build-base build-2
+%py_build
%if %{with tests}
-cd greentest
-PYTHONPATH=$PWD/$(ls -1d ../build-2/lib.*) %{__python} testrunner.py --config ../known_failures.py
-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}
-CC="%{__cc}" \
-CFLAGS="%{rpmcflags}" \
-%{?with_system_libev:LIBEV_EMBED=false} \
-%{?with_system_c_ares:CARES_EMBED=false} \
-%{__python3} setup.py build --build-base build-3
+%py3_build
%if %{with tests}
-cd greentest
-PYTHONPATH=$PWD/$(ls -1d ../build-3/lib.*) %{__python3} testrunner.py --config ../known_failures.py
-cd ..
+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:export LIBEV_EMBED=false}
+%{?with_system_c_ares:export CARES_EMBED=false}
+
%if %{with python2}
-%{?with_system_libev:LIBEV_EMBED=false} \
-%{?with_system_c_ares:CARES_EMBED=false} \
-%{__python} setup.py \
- build --build-base build-2 \
- install --skip-build \
- --optimize=2 \
- --root=$RPM_BUILD_ROOT
+%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}
-%{?with_system_libev:LIBEV_EMBED=false} \
-%{?with_system_c_ares:CARES_EMBED=false} \
-%{__python3} setup.py \
- build --build-base build-3 \
- install --skip-build \
- --optimize=2 \
- --root=$RPM_BUILD_ROOT
+%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
%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
-%endif
+%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 LICENSE README.rst
-%dir %{py3_sitedir}/%{module}
-%{py3_sitedir}/%{module}/__pycache__
-%{py3_sitedir}/%{module}/*.py*
-%attr(755,root,root) %{py3_sitedir}/%{module}/_semaphore*.so
-%attr(755,root,root) %{py3_sitedir}/%{module}/_util*.so
-%attr(755,root,root) %{py3_sitedir}/%{module}/ares*.so
-%attr(755,root,root) %{py3_sitedir}/%{module}/core*.so
-%{py3_sitedir}/%{module}-%{version}-py*.egg-info
+%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