# Python module not linking to libpython %global _disable_ld_no_undefined 1 %bcond_with python2 %bcond_with check %define tarname cython %define py2dir python2 %global optflags %optflags -O3 Summary: Language for writing C extensions to Python Name: python-cython Version: 0.29.34 Release: 2 License: Python Group: Development/Python Url: http://www.cython.org Source0: https://github.com/cython/cython/archive/%{version}.tar.gz?/cython-%{version}.tar.gz Source1: %{name}.rpmlintrc Patch0: cython-0.29.28-missing-header.patch Patch1: cython-CPython-3.11a4.patch BuildRequires: dos2unix %if %{with check} BuildRequires: gdb BuildRequires: gomp-devel BuildRequires: python-numpy-devel %endif %description Cython is a language that facilitates the writing of C extensions for the Python language. It is based on Pyrex, but provides more cutting edge functionality and optimizations. #-------------------------------------------------------------------- %package -n python3-cython Summary: Language for writing C extensions to Python Group: Development/Python BuildRequires: pkgconfig(python3) BuildRequires: python3-setuptools Provides: python-cython = %{version}-%{release} %description -n python3-cython Cython is a language that facilitates the writing of C extensions for the Python language. It is based on Pyrex, but provides more cutting edge functionality and optimizations. %files -n python3-cython %{_bindir}/cython %{_bindir}/cythonize %{_bindir}/cygdb %{py3_platsitedir}/Cython %{py3_platsitedir}/Cython-%{version}-*.egg-info %{py3_platsitedir}/cython* %{py3_platsitedir}/pyximport %{py3_platsitedir}/__pycache__/ #-------------------------------------------------------------------- %if %{with python2} %package -n python2-cython %py2_migration_meta python2-cython Summary: Language for writing C extensions to Python Group: Development/Python BuildRequires: pkgconfig(python2) BuildRequires: python2-setuptools %description -n python2-cython Cython is a language that facilitates the writing of C extensions for the Python language. It is based on Pyrex, but provides more cutting edge functionality and optimizations. %files -n python2-cython %{_bindir}/cython2 %{_bindir}/cygdb2 %{py2_platsitedir}/Cython %{py2_platsitedir}/Cython-%{version}-*.egg-info %{py2_platsitedir}/cython* %{py2_platsitedir}/pyximport %endif #-------------------------------------------------------------------- %prep %autosetup -p1 -n %{tarname}-%{version} %if %{with python2} rm -rf %{py2dir} mkdir %{py2dir} tar -xvf %{SOURCE0} -C %{py2dir} find %{py2dir} -name '*.py' | xargs sed -i '1s|^#!python|#!python2|' %endif find -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python}|' %build %setup_compile_flags CFLAGS="%{optflags}" %{__python3} setup.py build %if %{with python2} cd %{py2dir}/%{tarname}-%{version} CFLAGS="%{optflags}" %{__python2} setup.py build cd - %endif %install # Must do the python2 install first because the scripts in /usr/bin are # overwritten with every setup.py install (and we want the python3 version # to be the default). %if %{with python2} cd %{py2dir}/%{tarname}-%{version} %{__python2} setup.py install --skip-build --root %{buildroot} mv %{buildroot}/usr/bin/cython %{buildroot}/usr/bin/cython2 mv %{buildroot}/usr/bin/cygdb %{buildroot}/usr/bin/cygdb2 rm -rf %{buildroot}%{python2_sitelib}/setuptools/tests cd - %endif %{__python3} setup.py install -O1 --skip-build --root %{buildroot} rm -rf %{buildroot}%{python3_sitelib}/setuptools/tests rm -rf %{buildroot}/%{python3_sitearch}/__pycache__/ %if %{with check} %check python runtests.py %if %{with python2} cd %{py2dir}/%{tarname}-%{version} python2 setup.py test cd - %endif %endif