diff --git a/python3.12-numpy.spec b/python3.12-numpy.spec index 3dbf336..82f9c85 100644 --- a/python3.12-numpy.spec +++ b/python3.12-numpy.spec @@ -69,6 +69,13 @@ Requires: python%{python3_pkgversion}-numpy%{?_isa} = %{version}-%{release Requires: python%{python3_pkgversion}-devel Provides: python%{python3_pkgversion}-f2py = %{version}-%{release} +# Require alternatives version that implements the --keep-foreign flag and fixes rhbz#2203820 +Requires(postun): alternatives >= 1.19.2-1 +# python3.12 installs the alternatives master symlink to which we attach a slave +Requires: python%{python3_pkgversion} +Requires(post): python%{python3_pkgversion} +Requires(postun): python%{python3_pkgversion} + %description -n python%{python3_pkgversion}-numpy-f2py This package includes a version of f2py that works properly with NumPy. @@ -108,6 +115,10 @@ rm f2py rm f2py3 popd &> /dev/null +# All ghost files controlled by alternatives need to exist for the files +# section check to succeed +touch %{buildroot}%{_bindir}/f2py3 + # distutils from setuptools don't have the patch that was created to avoid standard runpath here # we strip it manually instead # ERROR 0001: file '...' contains a standard runpath '/usr/lib64' in [/usr/lib64] @@ -133,6 +144,19 @@ export PYTHONPATH=%{buildroot}%{python3_sitearch} %endif +%post -n python%{python3_pkgversion}-numpy-f2py +alternatives --add-slave python3 %{_bindir}/python%{python3_version} \ + %{_bindir}/f2py3 \ + f2py3 \ + %{_bindir}/f2py%{python3_version} + +%postun -n python%{python3_pkgversion}-numpy-f2py +# Do this only during uninstall process (not during update) +if [ $1 -eq 0 ]; then + alternatives --keep-foreign --remove-slave python3 %{_bindir}/python%{python3_version} \ + f2py3 +fi + %files -n python%{python3_pkgversion}-numpy %license LICENSE.txt @@ -165,6 +189,7 @@ export PYTHONPATH=%{buildroot}%{python3_sitearch} %files -n python%{python3_pkgversion}-numpy-f2py %{_bindir}/f2py%{python3_version} +%ghost %{_bindir}/f2py3 %{python3_sitearch}/%{modname}/f2py %changelog