Blob Blame History Raw
# python2X and python3X are built form the same module, so we need a conditional
# for python[23] bits the state of the conditional is not important in the spec,
# it is set in modulemd
%bcond_without python2
%bcond_without python3

%global srcname Cython
%global upname cython

Name:           Cython
Version:        0.28.1
Release:        6%{?dist}
Summary:        Language for writing Python extension modules

License:        ASL 2.0
URL:            http://www.cython.org
Source:         https://github.com/cython/cython/archive/%{version}/%{srcname}-%{version}.tar.gz

# Replace GCC's attribute optimize("Os") by the better supported and similar (cold).
# We essentially disable again strict aliasing which makes some compiler warnings
# go away on python2.
# Fixed upstream: https://github.com/cython/cython/commit/9ddac7152091eac62830fea4f38b4d7f9edb6a86
Patch0:         replace-gcc-attribute-os-with-cold.patch

BuildRequires:  gcc

%global _description \
This is a development version of Pyrex, a language\
for writing Python extension modules.

%description %{_description}

%if %{with python2}
%package -n python2-%{srcname}
Summary:        %{summary}
%{?python_provide:%python_provide python2-%{srcname}}
Obsoletes:      Cython < 0.28.1-5
BuildRequires:  python2-devel
BuildRequires:  python2-setuptools


%description -n python2-%{srcname} %{_description}

Python 2 version.

%endif

%if %{with python3}
%package -n python3-%{srcname}
Summary:        %{summary}
%{?python_provide:%python_provide python3-%{srcname}}
BuildRequires:  python3-devel
BuildRequires:  python3-setuptools

%description -n python3-%{srcname} %{_description}

Python 3 version.

%endif

%prep
%autosetup -n %{upname}-%{version} -p1

%build
%{?with_python2:%py2_build}
%{?with_python3:%py3_build}

%install
# Must do the python3 install first because the scripts in /usr/bin are
# overwritten with every setup.py install (and we want the python2 version
# to be the default for now).
%if %{with python3}
%py3_install
for bin in cython cythonize cygdb; do
  mv %{buildroot}%{_bindir}/${bin} %{buildroot}%{_bindir}/${bin}3
done
rm -rf %{buildroot}%{python3_sitelib}/setuptools/tests
%endif

%if %{with python2}
%py2_install
for bin in cython cythonize cygdb; do
  mv %{buildroot}%{_bindir}/${bin} %{buildroot}%{_bindir}/${bin}-%{python2_version}
  ln -s ${bin}-%{python2_version} $RPM_BUILD_ROOT%{_bindir}/${bin}-2
done
rm -rf %{buildroot}%{python2_sitelib}/setuptools/tests
%endif

%if %{with python2}
%files -n python2-%{srcname}
%license LICENSE.txt
%doc *.txt Demos Doc Tools
%{_bindir}/cython-2
%{_bindir}/cygdb-2
%{_bindir}/cythonize-2
%{_bindir}/cython-%{python2_version}
%{_bindir}/cygdb-%{python2_version}
%{_bindir}/cythonize-%{python2_version}
%{python2_sitearch}/%{srcname}-*.egg-info/
%{python2_sitearch}/%{srcname}/
%{python2_sitearch}/pyximport/
%{python2_sitearch}/%{upname}.py*
%endif

%if %{with python3}
%files -n python3-%{srcname}
%license LICENSE.txt
%doc *.txt Demos Doc Tools
%{_bindir}/cython3
%{_bindir}/cythonize3
%{_bindir}/cygdb3
%{python3_sitearch}/%{srcname}-*.egg-info/
%{python3_sitearch}/%{srcname}/
%{python3_sitearch}/pyximport/
%{python3_sitearch}/%{upname}.py
%{python3_sitearch}/__pycache__/%{upname}.*
%endif

%changelog
* Wed Dec 12 2018 Charalampos Stratakis <cstratak@redhat.com> - 0.28.1-6
- Replace GCC's attribute optimize("Os") by the better supported and similar (cold).
- Resolves: rhbz#1658621

* Tue Oct 09 2018 Lumír Balhar <lbalhar@redhat.com> - 0.28.1-5
- Remove unversioned provides
- Resolves: rhbz#1628242

* Wed Aug 08 2018 Lumír Balhar <lbalhar@redhat.com> - 0.28.1-4
- Remove unversioned binaries from python2 subpackage
- Resolves: rhbz#1613343

* Wed Aug 01 2018 Lumír Balhar <lbalhar@redhat.com> - 0.28.1-3
- First version for python27 module