From 0a6fc3a4723964b8309fd2410ce10c86f063fdc9 Mon Sep 17 00:00:00 2001 From: sagitter Date: Tue, 23 Jul 2019 20:45:34 +0200 Subject: [PATCH] Unversioned commands point to Python3 on Fedora| Obsolete Python2 version on Fedora --- scons.spec | 169 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 113 insertions(+), 56 deletions(-) diff --git a/scons.spec b/scons.spec index b490d23..87a0c16 100644 --- a/scons.spec +++ b/scons.spec @@ -1,11 +1,9 @@ -# SCons 3.0.* does not run under (3.0.0) < Python3 < (3,5,0) or -# Python < (2,7,0). +# SCons 3.0.* does not run under (3.0.0) < Python3 < (3,5,0) or Python < (2,7,0). # Epel7 provides Python3.6 -# Fedora provides Python3.7 +# Fedora provides Python3.7 (and will provide Python3.8) %if 0%{?rhel} && 0%{?rhel} >= 8 %global with_python3 1 -%global with_python2 0 %endif %if 0%{?rhel} && 0%{?rhel} < 8 @@ -13,19 +11,14 @@ %global with_python2 1 %endif -%if 0%{?fedora} && 0%{?fedora} < 30 -%global with_python3 1 -%global with_python2 1 -%endif - -%if 0%{?fedora} && 0%{?fedora} >= 30 +%if 0%{?fedora} %global with_python3 1 %global with_python2 1 %endif Name: scons Version: 3.0.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: An Open Source software construction tool License: MIT URL: http://www.scons.org @@ -61,8 +54,8 @@ Scons HTML documentation. Summary: An Open Source software construction tool BuildRequires: python2-devel -Provides: scons = %{version}-%{release} %{?python_provide:%python_provide python2-%{name}} +Provides: scons-python2 = %{version}-%{release} %description -n python2-%{name} SCons is an Open Source software construction tool--that is, a build @@ -85,7 +78,12 @@ defined Builder and/or Scanner objects. Summary: An Open Source software construction tool BuildRequires: python%{python3_pkgversion}-devel -Provides: scons-python3 = %{version}-%{release} +Provides: scons = 0:%{version}-%{release} +Provides: scons-python3 +Obsoletes: scons < 0:5.0.3-2 +%if 0%{?rhel} +Obsoletes: python34-%{name} +%endif %{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} %description -n python%{python3_pkgversion}-%{name} @@ -109,7 +107,7 @@ defined Builder and/or Scanner objects. Summary: An Open Source software construction tool BuildRequires: python%{python3_other_pkgversion}-devel -Provides: scons-python3 = %{version}-%{release} +Provides: scons-%{__python3_other} = %{version}-%{release} %{?python_provide:%python_provide python%{python3_other_pkgversion}-%{name}} %description -n python%{python3_other_pkgversion}-%{name} @@ -178,6 +176,58 @@ popd %endif %install + +%if 0%{?with_python2} +pushd %{name}-%{version}/build/scons +%py2_install \ + --standard-lib \ + --no-install-bat \ + --no-version-script \ + --install-scripts=%{_bindir} \ + --install-data=%{_datadir} +popd + +#Avoiding collisions between the python 2 and python 3 stacks +%if 0%{?fedora} || 0%{?rhel} > 7 +mv %{buildroot}%{_bindir}/%{name} %{buildroot}%{_bindir}/%{name}-2 +mv %{buildroot}%{_bindir}/%{name}-configure-cache %{buildroot}%{_bindir}/%{name}-configure-cache-2 +mv %{buildroot}%{_bindir}/%{name}ign %{buildroot}%{_bindir}/%{name}ign-2 +mv %{buildroot}%{_bindir}/%{name}-time %{buildroot}%{_bindir}/%{name}-time-2 + +pushd %{buildroot}%{_bindir} +for i in %{name}-2 %{name}-%{python2_version} %{name}-v%{version}-%{python2_version}; do + ln -fs %{_bindir}/%{name}-2 %{buildroot}%{_bindir}/$i +done +for i in %{name}ign-2 %{name}ign-%{python2_version} %{name}ign-v%{version}-%{python2_version}; do + ln -fs %{_bindir}/%{name}ign-2 %{buildroot}%{_bindir}/$i +done +for i in %{name}-time-2 %{name}-time-%{python2_version} %{name}-time-v%{version}-%{python2_version}; do + ln -fs %{_bindir}/%{name}-time-2 %{buildroot}%{_bindir}/$i +done +for i in %{name}-configure-cache-2 %{name}-configure-cache-%{python2_version} %{name}-configure-cache-v%{version}-%{python2_version}; do + ln -fs %{_bindir}/%{name}-configure-cache-2 %{buildroot}%{_bindir}/$i +done +popd +%endif + +%if 0%{?rhel} && 0%{?rhel} == 7 +pushd %{buildroot}%{_bindir} +for i in %{name}-2 %{name}-%{python2_version} %{name}-v%{version}-%{python2_version}; do + ln -fs %{_bindir}/%{name} %{buildroot}%{_bindir}/$i +done +for i in %{name}ign-2 %{name}ign-%{python2_version} %{name}ign-v%{version}-%{python2_version}; do + ln -fs %{_bindir}/%{name}ign %{buildroot}%{_bindir}/$i +done +for i in %{name}-time-2 %{name}-time-%{python2_version} %{name}-time-v%{version}-%{python2_version}; do + ln -fs %{_bindir}/%{name}-time %{buildroot}%{_bindir}/$i +done +for i in %{name}-configure-cache-2 %{name}-configure-cache-%{python2_version} %{name}-configure-cache-v%{version}-%{python2_version}; do + ln -fs %{_bindir}/%{name}-configure-cache %{buildroot}%{_bindir}/$i +done +popd +%endif +%endif + %if 0%{?with_python3} pushd %{name}-%{version}-py3/build/scons %py3_install \ @@ -188,7 +238,7 @@ pushd %{name}-%{version}-py3/build/scons --install-data=%{_datadir} popd -#Avoiding collisions between the python 2 and python 3 stacks +%if 0%{?rhel} && 0%{?rhel} == 7 mv %{buildroot}%{_bindir}/%{name} %{buildroot}%{_bindir}/%{name}-3 mv %{buildroot}%{_bindir}/%{name}-configure-cache %{buildroot}%{_bindir}/%{name}-configure-cache-3 mv %{buildroot}%{_bindir}/%{name}ign %{buildroot}%{_bindir}/%{name}ign-3 @@ -210,6 +260,24 @@ done popd %endif +%if 0%{?fedora} || 0%{?rhel} > 7 +pushd %{buildroot}%{_bindir} +for i in %{name}-v%{version}-%{python3_version} %{name}-%{python3_version}; do + ln -fs %{_bindir}/%{name} %{buildroot}%{_bindir}/$i +done +for i in %{name}ign-v%{version}-%{python3_version} %{name}ign-%{python3_version}; do + ln -fs %{_bindir}/%{name}ign %{buildroot}%{_bindir}/$i +done +for i in %{name}-time-v%{version}-%{python3_version} %{name}-time-%{python3_version}; do + ln -fs %{_bindir}/%{name}-time %{buildroot}%{_bindir}/$i +done +for i in %{name}-configure-cache-v%{version}-%{python3_version} %{name}-configure-cache-%{python3_version}; do + ln -fs %{_bindir}/%{name}-configure-cache %{buildroot}%{_bindir}/$i +done +popd +%endif +%endif + %if 0%{?with_python3_other} pushd %{name}-%{version}-py%{python3_other_pkgversion}/build/scons %py3_other_install \ @@ -221,50 +289,23 @@ pushd %{name}-%{version}-py%{python3_other_pkgversion}/build/scons popd #Avoiding collisions between the python 2 and python 3 stacks -mv %{buildroot}%{_bindir}/%{name} %{buildroot}%{_bindir}/%{name}-3 -mv %{buildroot}%{_bindir}/%{name}-configure-cache %{buildroot}%{_bindir}/%{name}-configure-cache-3 -mv %{buildroot}%{_bindir}/%{name}ign %{buildroot}%{_bindir}/%{name}ign-3 -mv %{buildroot}%{_bindir}/%{name}-time %{buildroot}%{_bindir}/%{name}-time-3 +mv %{buildroot}%{_bindir}/%{name} %{buildroot}%{_bindir}/%{name}-%{__python3_other} +mv %{buildroot}%{_bindir}/%{name}-configure-cache %{buildroot}%{_bindir}/%{name}-configure-cache-%{__python3_other} +mv %{buildroot}%{_bindir}/%{name}ign %{buildroot}%{_bindir}/%{name}ign-%{__python3_other} +mv %{buildroot}%{_bindir}/%{name}-time %{buildroot}%{_bindir}/%{name}-time-%{__python3_other} pushd %{buildroot}%{_bindir} -for i in %{name}-v%{version}-%{python3_other_pkgversion} %{name}-%{python3_other_pkgversion}; do - ln -fs %{_bindir}/%{name}-3 %{buildroot}%{_bindir}/$i +for i in %{name}-v%{version}-%{__python3_other} %{name}-%{__python3_other}; do + ln -fs %{_bindir}/%{name}-%{__python3_other} %{buildroot}%{_bindir}/$i done -for i in %{name}ign-v%{version}-%{python3_version} %{name}ign-%{python3_other_pkgversion}; do - ln -fs %{_bindir}/%{name}ign-3 %{buildroot}%{_bindir}/$i +for i in %{name}ign-v%{version}-%{__python3_other} %{name}ign-%{__python3_other}; do + ln -fs %{_bindir}/%{name}ign-%{__python3_other} %{buildroot}%{_bindir}/$i done -for i in %{name}-time-v%{version}-%{python3_other_pkgversion} %{name}-time-%{python3_other_pkgversion}; do - ln -fs %{_bindir}/%{name}-time-3 %{buildroot}%{_bindir}/$i +for i in %{name}-time-v%{version}-%{__python3_other} %{name}-time-%{__python3_other}; do + ln -fs %{_bindir}/%{name}-time-%{__python3_other} %{buildroot}%{_bindir}/$i done -for i in %{name}-configure-cache-v%{version}-%{python3_other_pkgversion} %{name}-configure-cache-%{python3_other_pkgversion}; do - ln -fs %{_bindir}/%{name}-configure-cache-3 %{buildroot}%{_bindir}/$i -done -popd -%endif - -%if 0%{?with_python2} -pushd %{name}-%{version}/build/scons -%py2_install \ - --standard-lib \ - --no-install-bat \ - --no-version-script \ - --install-scripts=%{_bindir} \ - --install-data=%{_datadir} -popd - -#Avoiding collisions between the python 2 and python 3 stacks -pushd %{buildroot}%{_bindir} -for i in %{name}-2 %{name}-%{python2_version} %{name}-v%{version}-%{python2_version}; do - ln -fs %{_bindir}/%{name} %{buildroot}%{_bindir}/$i -done -for i in %{name}ign-2 %{name}ign-%{python2_version} %{name}ign-v%{version}-%{python2_version}; do - ln -fs %{_bindir}/%{name}ign %{buildroot}%{_bindir}/$i -done -for i in %{name}-time-2 %{name}-time-%{python2_version} %{name}-time-v%{version}-%{python2_version}; do - ln -fs %{_bindir}/%{name}-time %{buildroot}%{_bindir}/$i -done -for i in %{name}-configure-cache-2 %{name}-configure-cache-%{python2_version} %{name}-configure-cache-v%{version}-%{python2_version}; do - ln -fs %{_bindir}/%{name}-configure-cache %{buildroot}%{_bindir}/$i +for i in %{name}-configure-cache-v%{version}-%{__python3_other} %{name}-configure-cache-%{__python3_other}; do + ln -fs %{_bindir}/%{name}-configure-cache-%{__python3_other} %{buildroot}%{_bindir}/$i done popd %endif @@ -290,11 +331,15 @@ popd %files -n python2-%{name} %doc %{name}-%{version}/src/CHANGES.txt %{name}-%{version}/src/README.txt %{name}-%{version}/src/RELEASE.txt %license %{name}-%{version}/src/LICENSE.txt +%if 0%{?fedora} || 0%{?rhel} > 7 +%{_bindir}/%{name}*-2 +%endif +%if 0%{?rhel} || 0%{?rhel} == 7 %{_bindir}/%{name} %{_bindir}/%{name}ign %{_bindir}/%{name}-time %{_bindir}/%{name}-configure-cache -%{_bindir}/%{name}*-2 +%endif %{_bindir}/%{name}*-%{python2_version} %{python2_sitelib}/SCons/ %{python2_sitelib}/scons-%{version}*.egg-info @@ -305,7 +350,15 @@ popd %files -n python%{python3_pkgversion}-%{name} %doc %{name}-%{version}-py3/src/CHANGES.txt %{name}-%{version}-py3/src/README.txt %{name}-%{version}-py3/src/RELEASE.txt %license %{name}-%{version}-py3/src/LICENSE.txt +%if 0%{?rhel} && 0%{?rhel} == 7 %{_bindir}/%{name}*-3 +%endif +%if 0%{?fedora} || 0%{?rhel} > 7 +%{_bindir}/%{name} +%{_bindir}/%{name}ign +%{_bindir}/%{name}-time +%{_bindir}/%{name}-configure-cache +%endif %{_bindir}/%{name}*-%{python3_version} %{python3_sitelib}/SCons/ %{python3_sitelib}/scons-%{version}*.egg-info @@ -316,7 +369,7 @@ popd %files -n python%{python3_other_pkgversion}-%{name} %doc %{name}-%{version}-py%{python3_other_pkgversion}/src/CHANGES.txt %{name}-%{version}-py%{python3_other_pkgversion}/src/README.txt %{name}-%{version}-py%{python3_other_pkgversion}/src/RELEASE.txt %license %{name}-%{version}-py%{python3_other_pkgversion}/src/LICENSE.txt -%{_bindir}/%{name}*-3 +%{_bindir}/%{name}*-%{__python3_other} %{_bindir}/%{name}*-%{python3_other_pkgversion} %{python3_other_sitelib}/SCons/ %{python3_other_sitelib}/scons-%{version}*.egg-info @@ -328,6 +381,10 @@ popd %license %{name}-%{version}/src/LICENSE.txt %changelog +* Tue Jul 23 2019 Antonio Trande - 3.0.5-2 +- Unversioned commands point to Python3 on Fedora +- Obsolete Python2 version on Fedora + * Wed Mar 27 2019 Antonio Trande - 3.0.5-1 - Release 3.0.5