From 50da01819b5b05098052463ad8cb13601de5caa2 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sun, 16 Feb 2014 14:09:29 +0100 Subject: [PATCH] - build both python2/python3 modules from single spec --- python-Cython.spec | 101 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 90 insertions(+), 11 deletions(-) diff --git a/python-Cython.spec b/python-Cython.spec index 528a0e3..c3a7f02 100644 --- a/python-Cython.spec +++ b/python-Cython.spec @@ -1,8 +1,12 @@ +# +# Conditional build: +%bcond_without python2 # CPython 2.x module +%bcond_without python3 # CPython 3.x module %define module Cython -Summary: Language for writing Python Extension Modules -Summary(pl.UTF-8): Język służący do pisania modułów rozszerzających Pythona +Summary: Language for writing Python Extension Modules (Python 2.x version) +Summary(pl.UTF-8): Język służący do pisania modułów rozszerzających Pythona (wersja dla Pythona 2.x) Name: python-%{module} Version: 0.20.1 Release: 1 @@ -11,11 +15,19 @@ Group: Libraries/Python Source0: http://www.cython.org/release/%{module}-%{version}.tar.gz # Source0-md5: 52431696c64e618036537c4d9aa79d99 URL: http://www.cython.org/ +%if %{with python2} BuildRequires: python >= 1:2.5 BuildRequires: python-devel +%endif +%if %{with python3} +BuildRequires: python3 +BuildRequires: python3-2to3 +BuildRequires: python3-devel +BuildRequires: python3-distribute +BuildRequires: python3-modules +%endif BuildRequires: rpm-pythonprov -%pyrequires_eq python-libs -%pyrequires_eq python-devel +Requires: python-devel BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _noautocompressdoc *.c @@ -25,16 +37,40 @@ Cython lets you write code that mixes Python and C data types any way you want, and compiles it into a C extension for Python. Cython is based on Pyrex. +This package contains Cython module for Python 2.x. + %description -l pl.UTF-8 Cython pozwala pisać kod zawierający dane Pythona i języka C połączone w jakikolwiek sposób i kompiluje to jako rozszerzenie C dla Pythona. Cython jest oparty na Pyreksie. +Ten pakiet zawiera moduł Cython dla Pythona 2.x. + +%package -n python3-Cython +Summary: Language for writing Python Extension Modules (Python 3.x version) +Summary(pl.UTF-8): Język służący do pisania modułów rozszerzających Pythona (wersja dla Pythona 3.x) +Group: Libraries/Python +Requires: python3-devel + +%description -n python3-Cython +Cython lets you write code that mixes Python and C data types any way +you want, and compiles it into a C extension for Python. Cython is +based on Pyrex. + +This package contains Cython module for Python 3.x. + +%description -n python3-Cython -l pl.UTF-8 +Pyrex pozwala pisać kod zawierający dane Pythona i języka C połączone +w jakikolwiek sposób i kompiluje to jako rozszerzenie C dla Pythona. +Cython jest oparty na Pyreksie. + +Ten pakiet zawiera moduł Cython dla Pythona 3.x. + %package examples Summary: Examples for Cython language Summary(pl.UTF-8): Przykłady programów w języku Cython Group: Libraries/Python -Requires: %{name} = %{version}-%{release} +Obsoletes: python3-Cython-examples %description examples This package contains example programs for Cython language. @@ -46,26 +82,55 @@ Pakiet zawierający przykładowe programy napisane w języku Cython. %setup -q -n %{module}-%{version} %build +%if %{with python2} CC="%{__cc}" \ CFLAGS="%{rpmcflags}" \ -%{__python} setup.py build +%{__python} setup.py build \ + --build-base build-2 +%endif + +%if %{with python3} +CC="%{__cc}" \ +CFLAGS="%{rpmcflags}" \ +%{__python3} setup.py build \ + --build-base build-3 +%endif %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} -%{__python} setup.py install \ - --root=$RPM_BUILD_ROOT \ - --install-purelib=%{py_sitescriptdir} \ - -O2 +%if %{with python3} +%{__python3} setup.py \ + build \ + --build-base build-3 \ + install \ + --optimize=2 \ + --skip-build \ + --root=$RPM_BUILD_ROOT + +%{__mv} $RPM_BUILD_ROOT%{_bindir}/cython{,3} +%{__mv} $RPM_BUILD_ROOT%{_bindir}/cygdb{,3} +%endif + +%if %{with python2} +%{__python} setup.py \ + build \ + --build-base build-2 \ + install \ + --optimize=2 \ + --skip-build \ + --root=$RPM_BUILD_ROOT find $RPM_BUILD_ROOT%{py_sitedir} -name "*.py" -a ! -name 'Lexicon.py' -exec rm -f {} \; +%endif cp -a Demos/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} %clean rm -rf $RPM_BUILD_ROOT +%if %{with python2} %files %defattr(644,root,root,755) %doc COPYING.txt README.txt ToDo.txt USAGE.txt Doc/*.html Doc/*.c @@ -74,7 +139,21 @@ rm -rf $RPM_BUILD_ROOT %{py_sitedir}/cython.py[co] %{py_sitedir}/Cython %{py_sitedir}/pyximport -%{py_sitedir}/Cython-*.egg-info +%{py_sitedir}/Cython-%{version}-py*.egg-info +%endif + +%if %{with python3} +%files -n python3-Cython +%defattr(644,root,root,755) +%doc COPYING.txt README.txt ToDo.txt USAGE.txt Doc/*.html Doc/*.c +%attr(755,root,root) %{_bindir}/cython3 +%attr(755,root,root) %{_bindir}/cygdb3 +%{py3_sitedir}/cython.py +%{py3_sitedir}/__pycache__/cython.* +%{py3_sitedir}/Cython +%{py3_sitedir}/pyximport +%{py3_sitedir}/Cython-%{version}-py*.egg-info +%endif %files examples %defattr(644,root,root,755) -- 2.43.0