From: Jakub Bogusz Date: Wed, 10 Oct 2018 18:08:43 +0000 (+0200) Subject: - build python/python3 packages from single spec X-Git-Tag: auto/th/python-pycairo-1.16.3-3 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fpython-pycairo.git;a=commitdiff_plain;h=c34b124 - build python/python3 packages from single spec - package only single -examples - added tests and apidocs - release 3 --- diff --git a/python-pycairo.spec b/python-pycairo.spec index 7159284..fd22584 100644 --- a/python-pycairo.spec +++ b/python-pycairo.spec @@ -1,53 +1,121 @@ +# +# Conditional build: +%bcond_without python2 # CPython 2.x module +%bcond_without python3 # CPython 3.x module +%bcond_without doc # Sphinx documentation +%bcond_without tests # unit tests + %define module pycairo -Summary: Python Cairo bindings -Summary(pl.UTF-8): Dowiązania Pythona dla Cairo +Summary: Python 2 Cairo bindings +Summary(pl.UTF-8): Dowiązania Pythona 2 dla Cairo Name: python-%{module} Version: 1.16.3 -Release: 2 +Release: 3 License: LGPL v2.1 or MPL v1.1 -Group: Libraries +Group: Libraries/Python Source0: https://github.com/pygobject/pycairo/releases/download/v%{version}/%{module}-%{version}.tar.gz # Source0-md5: d2a115037ccd128219f43d5ed3df7926 URL: http://cairographics.org/ -BuildRequires: autoconf >= 2.59 -BuildRequires: automake >= 1:1.9.6 BuildRequires: cairo-devel >= 1.13.1 -BuildRequires: libtool >= 2:1.4 BuildRequires: pkgconfig -BuildRequires: python >= 1:2.6 -BuildRequires: python-devel -# for tests only -#BuildRequires: python-numpy +%if %{with python2} +BuildRequires: python >= 1:2.7 +BuildRequires: python-devel >= 1:2.7 +# python2 only for now BuildRequires: python-xpyb-devel >= 1.3 +%if %{with tests} +BuildRequires: python-hypothesis +BuildRequires: python-numpy +BuildRequires: python-pytest +%endif +%endif +%if %{with python3} +BuildRequires: python3 >= 1:3.3 +BuildRequires: python3-devel >= 1:3.3 +%if %{with tests} +BuildRequires: python3-hypothesis +BuildRequires: python3-numpy +BuildRequires: python3-pytest +%endif +%endif BuildRequires: rpm-pythonprov -%pyrequires_eq python-libs +BuildRequires: rpmbuild(macros) >= 1.714 +%if %{with doc} +BuildRequires: python-Sphinx +%endif +Requires: python-libs >= 1:2.7 Requires: cairo >= 1.13.1 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description -Python Cairo bindings. +Python 2 Cairo bindings. %description -l pl.UTF-8 -Dowiązania Pythona dla Cairo. +Dowiązania Pythona 2 dla Cairo. %package devel -Summary: Development files for pycairo -Summary(pl.UTF-8): Pliki programistyczne pycairo +Summary: Development files for Python 2 pycairo +Summary(pl.UTF-8): Pliki programistyczne pycairo dla Pythona 2 Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: cairo-devel >= 1.13.1 +Requires: python-devel >= 1:2.7 %description devel -Development files for pycairo. +Development files for Python 2 pycairo. %description devel -l pl.UTF-8 -Pliki programistyczne pycairo. +Pliki programistyczne pycairo dla Pythona 2. + +%package -n python3-%{module} +Summary: Python 3 Cairo bindings +Summary(pl.UTF-8): Dowiązania Pythona 3 dla Cairo +Group: Libraries/Python +Requires: cairo >= 1.13.1 +Requires: python3-libs >= 1:3.3 + +%description -n python3-%{module} +Python 3 Cairo bindings. + +%description -n python3-%{module} -l pl.UTF-8 +Dowiązania Pythona 3 dla Cairo. + +%package -n python3-%{module}-devel +Summary: Development files for Python 3 pycairo +Summary(pl.UTF-8): Pliki programistyczne pycairo dla Pythona 3 +Group: Development/Libraries +Requires: cairo-devel >= 1.13.1 +Requires: python3-%{module} = %{version}-%{release} +Requires: python3-devel >= 1:3.3 + +%description -n python3-%{module}-devel +Development files for Python 3 pycairo. + +%description -n python3-%{module}-devel -l pl.UTF-8 +Pliki programistyczne pycairo dla Pythona 3. + +%package apidocs +Summary: API documentation for Python Cairo bindings +Summary(pl.UTF-8): Dokumentacja API dla wiązań Pythona do Cairo +Group: Documentation +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif + +%description apidocs +API documentation for Python Cairo bindings. + +%description apidocs -l pl.UTF-8 +Dokumentacja API dla wiązań Pythona do Cairo. %package examples Summary: Example programs using Python Cairo bindings Summary(pl.UTF-8): Przykładowe programy w Pythonie używające Cairo Group: Libraries/Python -Requires: %{name} = %{version}-%{release} +Obsoletes: python3-pycairo-devel +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif %description examples Example programs using Python Cairo bindings. @@ -58,40 +126,82 @@ Przykładowe programy w Pythonie używające Cairo. %prep %setup -q -n pycairo-%{version} -%ifarch x32 -%{__sed} -i -e 's/lib64/libx32/g' setup.py +%build +%if %{with python2} +%py_build %{?with_tests:test} \ + --enable-xpyb %endif -%build -%py_build --enable-xpyb +%if %{with python3} +%py3_build %{?with_tests:test} +%endif + +%if %{with doc} +%{__make} -C docs +%endif %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT%{_examplesdir} +%if %{with python2} %py_install -cp -a examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} +%py_postclean +%endif -%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/cairo/*.py +%if %{with python2} +%py3_install +%endif + +cp -a examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} %clean rm -rf $RPM_BUILD_ROOT +%if %{with python2} %files %defattr(644,root,root,755) %doc COPYING NEWS README.rst %dir %{py_sitedir}/cairo %attr(755,root,root) %{py_sitedir}/cairo/_cairo.so -%{py_sitedir}/cairo/__init__.py[coi] +%{py_sitedir}/cairo/__init__.py[co] +%{py_sitedir}/cairo/__init__.pyi %{py_sitedir}/cairo/include -%{py_sitedir}/pycairo-*-py2.7.egg-info +%{py_sitedir}/pycairo-%{version}-py*.egg-info +%endif %files devel %defattr(644,root,root,755) -%{_includedir}/pycairo +%dir %{_includedir}/pycairo +%{_includedir}/pycairo/pycairo.h %{_pkgconfigdir}/pycairo.pc +%if %{with python3} +%files -n python3-%{module} +%defattr(644,root,root,755) +%doc COPYING NEWS README.rst +%dir %{py3_sitedir}/cairo +%attr(755,root,root) %{py3_sitedir}/cairo/_cairo.cpython-*.so +%{py3_sitedir}/cairo/__init__.py +%{py3_sitedir}/cairo/__init__.pyi +%{py3_sitedir}/cairo/__pycache__ +%{py3_sitedir}/cairo/include +%{py3_sitedir}/pycairo-%{version}-py*.egg-info + +%files -n python3-%{module}-devel +%defattr(644,root,root,755) +%dir %{_includedir}/pycairo +%{_includedir}/pycairo/py3cairo.h +%{_pkgconfigdir}/py3cairo.pc +%endif + +%if %{with doc} +%files apidocs +%defattr(644,root,root,755) +%doc docs/_build/{_images,_static,reference,*.html,*.js} +%endif + %files examples %defattr(644,root,root,755) %{_examplesdir}/%{name}-%{version}