]> git.pld-linux.org Git - packages/python-gevent.git/blobdiff - python-gevent.spec
- fix files more
[packages/python-gevent.git] / python-gevent.spec
index 8fcf89aab50470dee82924e3ad124155a70133a8..abe773ad007e2b4e151fc39eb7bf6e99e2bd816e 100644 (file)
 
 # TODO:
-#      - investigate some of the failing tests
-#        (now excluded via known_failures-pld.txt)
+#      - 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.patch)
 
 # Conditional build:
-%bcond_without tests   # do not run tests
+%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
-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: 33aef51a06268f5903fea378e1388e4d
-Source1:       known_failures-pld.txt
-BuildRequires: libevent-devel >= 1.4.0
-BuildRequires: python-devel
-%{?with_tests:BuildRequires: python-greenlet}
-%{?with_tests:BuildRequires: python-test}
+%{?with_system_c_ares:BuildRequires:   c-ares-devel >= 1.10.0}
+%{?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-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-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
+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 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
+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.
+
+%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.
+- 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
+
+%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}
-
-cat known_failures.txt %{SOURCE1} > known_failures-merged.txt
+%patch0 -p1
+%patch1 -p1 -b .orig
 
 %build
-CC="%{__cc}" \
-CFLAGS="%{rpmcflags}" \
-%{__python} setup.py 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}
+%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
-%{__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
This page took 0.092932 seconds and 4 git commands to generate.