mirror of
https://src.fedoraproject.org/rpms/llvm.git
synced 2024-11-24 17:34:47 +00:00
Fix rhbz #2248872
Ensure the versioned llvm-config alternative gets removed during major upgrades of the non-compat package. Also add code that removes the versioned llvm-config alternatives of the previous 3 LLVM versions. These versions didn't remove their own versioned llvm-config alternative, leading to broken output, e.g. llvm-config-16 points to llvm-config-64 from LLVM 17.
This commit is contained in:
parent
18588fefc1
commit
b9e4db6642
1 changed files with 22 additions and 4 deletions
26
llvm.spec
26
llvm.spec
|
@ -93,6 +93,16 @@ exec &>> >(/usr/bin/ts)
|
|||
%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config%{exec_suffix} llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits}
|
||||
%if %{without compat_build}
|
||||
%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config-%{maj_ver} llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits} %{__isa_bits}
|
||||
|
||||
# During the upgrade from LLVM 16 (F38) to LLVM 17 (F39), we found out the
|
||||
# main llvm-devel package was leaving entries in the alternatives system.
|
||||
# Try to remove them now.
|
||||
for v in 14 15 16; do
|
||||
if [[ -e %{_bindir}/llvm-config-$v
|
||||
&& "x$(%{_bindir}/llvm-config-$v --version | awk -F . '{ print $1 }')" != "x$v" ]]; then
|
||||
%{_sbindir}/update-alternatives --remove llvm-config-$v %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits}
|
||||
fi
|
||||
done
|
||||
%endif
|
||||
|
||||
%postun -n %{pkg_name_llvm}-devel
|
||||
|
@ -101,12 +111,20 @@ exec &>> >(/usr/bin/ts)
|
|||
%endif
|
||||
if [ $1 -eq 0 ]; then
|
||||
%{_sbindir}/update-alternatives --remove llvm-config%{exec_suffix} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits}
|
||||
%if %{without compat_build}
|
||||
%{_sbindir}/update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits}
|
||||
%endif
|
||||
fi
|
||||
%if %{without compat_build}
|
||||
# When upgrading between minor versions (i.e. from x.y.1 to x.y.2), we must
|
||||
# not remove the alternative.
|
||||
# However, during a major version upgrade (i.e. from 16.x.y to 17.z.w), the
|
||||
# alternative must be removed in order to give priority to a newly installed
|
||||
# compat package.
|
||||
if [[ $1 -eq 0
|
||||
|| "x$(%{_bindir}/llvm-config-%{maj_ver} --version | awk -F . '{ print $1 }')" != "x%{maj_ver}" ]]; then
|
||||
%{_sbindir}/update-alternatives --remove llvm-config-%{maj_ver} %{install_bindir}/llvm-config%{exec_suffix}-%{__isa_bits}
|
||||
fi
|
||||
%endif
|
||||
|
||||
%include %{_sourcedir}/files.spec.inc
|
||||
|
||||
%changelog
|
||||
%include %{_sourcedir}/changelog.spec.inc
|
||||
%include %{_sourcedir}/changelog.spec.inc
|
||||
|
|
Loading…
Reference in a new issue