Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package llvm18 for openSUSE:Factory checked in at 2026-06-12 19:26:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/llvm18 (Old) and /work/SRC/openSUSE:Factory/.llvm18.new.1981 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm18" Fri Jun 12 19:26:08 2026 rev:18 rq:1358707 version:18.1.8 Changes: -------- --- /work/SRC/openSUSE:Factory/llvm18/llvm18.changes 2026-05-10 16:48:24.276976448 +0200 +++ /work/SRC/openSUSE:Factory/.llvm18.new.1981/llvm18.changes 2026-06-12 19:26:23.303335573 +0200 @@ -1,0 +2,7 @@ +Sun Jun 7 21:34:50 UTC 2026 - Aaron Puchert <[email protected]> + +- Migrate away from update-alternatives. The packages only provide + versioned binaries and man pages now. The metapackage will + provide symbolic links to the current distro default version. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ llvm18.spec ++++++ --- /var/tmp/diff_new_pack.V0aboQ/_old 2026-06-12 19:26:25.387422927 +0200 +++ /var/tmp/diff_new_pack.V0aboQ/_new 2026-06-12 19:26:25.387422927 +0200 @@ -24,8 +24,6 @@ %global _version %_relver%{?_rc:rc%_rc} %global _tagver %_relver%{?_rc:-rc%_rc} %global _itsme18 1 -# Integer version used by update-alternatives -%global _uaver %{_sonum}1%{_patch_level} %global _soclang 13 %global _socxx 1 @@ -452,8 +450,6 @@ BuildRequires: pkgconfig(libedit) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(zlib) -Requires(post): update-alternatives -Requires(postun): update-alternatives # llvm does not work on s390 ExcludeArch: s390 %if %{with ffi} || %{with openmp} @@ -465,6 +461,8 @@ %if %{with oprofile} BuildRequires: oprofile-devel %endif +OrderWithRequires(pre): update-alternatives +Provides: llvm%{_sonum}-update-alternatives-removed Suggests: %{name}-doc %description @@ -542,8 +540,8 @@ Group: Development/Languages/C and C++ URL: https://clang.llvm.org/ Requires: libclang_rt%{_sonum} -Requires(post): update-alternatives -Requires(postun): update-alternatives +OrderWithRequires(pre): update-alternatives +Provides: clang%{_sonum}-update-alternatives-removed Recommends: clang-tools Recommends: gcc Recommends: glibc-devel @@ -762,9 +760,8 @@ Summary: Linker for Clang/LLVM Group: Development/Tools/Building URL: https://lld.llvm.org/ -Requires(post): update-alternatives -Requires(postun): update-alternatives OrderWithRequires(pre): update-alternatives +Provides: lld%{_sonum}-update-alternatives-removed %description -n lld%{_sonum} LLD is a linker from the LLVM project. That is a drop-in replacement for system linkers and runs much faster than them. It also provides features that are useful for toolchain developers. @@ -796,8 +793,8 @@ BuildRequires: pkgconfig(panel) BuildRequires: pkgconfig(python3) BuildRequires: pkgconfig(zlib) -Requires(post): update-alternatives -Requires(postun): update-alternatives +OrderWithRequires(pre): update-alternatives +Provides: lldb%{_sonum}-update-alternatives-removed Recommends: python3-lldb%{_sonum} %description -n lldb%{_sonum} @@ -1315,8 +1312,10 @@ %if %{with lldb_python} # Python: fix binary libraries location. rm %{buildroot}%{python3_sitearch}/lldb/_lldb.%{cpython3_soabi}.so +rm %{buildroot}%{python3_sitearch}/lldb/lldb-argdumper liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so)) ln -vsf "../../../${liblldb}" %{buildroot}%{python3_sitearch}/lldb/_lldb.%{cpython3_soabi}.so +ln -vsf ../../../../bin/lldb-argdumper-%{_sonum} %{buildroot}%{python3_sitearch}/lldb/lldb-argdumper %endif # Stuff we don't want to include @@ -1333,10 +1332,7 @@ rm %{buildroot}%{_libdir}/libarcher_static.a %endif -# Prepare for update-alternatives usage -mkdir -p %{buildroot}%{_sysconfdir}/alternatives - -# Fix the clang -> clang-X symlink to work with update-alternatives +# Move clang-X to clang because we're going to add a version to all binaries. mv %{buildroot}%{_bindir}/clang-%{_sonum} %{buildroot}%{_bindir}/clang # Rewrite symlinks to point to new location @@ -1347,11 +1343,9 @@ done for p in %{shrink:%binfiles} ; do mv %{buildroot}%{_bindir}/$p %{buildroot}%{_bindir}/$p-%{_sonum} - ln -s -f %{_sysconfdir}/alternatives/$p %{buildroot}%{_bindir}/$p done for p in %{shrink:%manfiles} ; do mv %{buildroot}%{_mandir}/man1/$p.1 %{buildroot}%{_mandir}/man1/$p-%{_sonum}.1 - ln -s -f %{_sysconfdir}/alternatives/$p.1%{ext_man} %{buildroot}%{_mandir}/man1/$p.1%{ext_man} done # Also rewrite the CMake files referring to the binaries. @@ -1550,112 +1544,52 @@ %postun polly-devel -p /sbin/ldconfig %endif -%global ua_install() %{_sbindir}/update-alternatives \\\ - --install %{_bindir}/%1 %1 %{_bindir}/%1-%{_sonum} %{_uaver} -%global ua_bin_slave() \\\ - --slave %{_bindir}/%1 %1 %{_bindir}/%1-%{_sonum} -%global ua_man_slave() \\\ - --slave %{_mandir}/man1/%1.1%{ext_man} %1.1%{ext_man} %{_mandir}/man1/%1-%{_sonum}.1%{ext_man} -%global ua_remove() \ -if [ ! -f %{_bindir}/%1-%{_sonum} ] ; then \ +%global ua_final_remove() \ +if [ $1 -gt 1 ] && [ -f %{_sysconfdir}/alternatives/%1 ] ; then \ %{_sbindir}/update-alternatives --remove %1 %{_bindir}/%1-%{_sonum} \ fi -%post -%{ua_install %llvm_ua_anchor} \ - %{lapply -p ua_bin_slave %llvm_tools} \ - %{lapply -p ua_bin_slave %llvm_elf_dwarf_tools} \ - %{lapply -p ua_bin_slave %llvm_abi_coff_macho_tools} \ - %{lapply -p ua_bin_slave %llvm_instr_devel_tools} \ - %{lapply -p ua_man_slave %llvm_man} \ - %{lapply -p ua_man_slave %llvm_bin_utils_man} \ - %{lapply -p ua_man_slave %llvm_devel_utils_man} - -%postun -%{ua_remove %llvm_ua_anchor} - -%post -n clang%{_sonum} -%{ua_install %clang_ua_anchor} \ - %{lapply -p ua_bin_slave %clang_binfiles} \ - %{lapply -p ua_bin_slave %clang_tools_extra_binfiles} \ - %{lapply -p ua_man_slave %clang_manfiles} +%pre +%{ua_final_remove %llvm_ua_anchor} -%postun -n clang%{_sonum} -%{ua_remove %clang_ua_anchor} +%pre -n clang%{_sonum} +%{ua_final_remove %clang_ua_anchor} %if %{with lld} %pre -n lld%{_sonum} if [ $1 -gt 1 ] && [ -f %{_sysconfdir}/alternatives/ld ] ; then %{_sbindir}/update-alternatives --remove ld %{_bindir}/ld.lld fi - -%post -n lld%{_sonum} -%{ua_install %lld_ua_anchor} \ - %{lapply -p ua_bin_slave %lld_binfiles} - -%postun -n lld%{_sonum} -%{ua_remove %lld_ua_anchor} +%{ua_final_remove %lld_ua_anchor} %endif %if %{with lldb} -%post -n lldb%{_sonum} -%{ua_install %lldb_ua_anchor} \ - %{lapply -p ua_bin_slave %lldb_binfiles} - -%postun -n lldb%{_sonum} -%{ua_remove %lldb_ua_anchor} +%pre -n lldb%{_sonum} +%{ua_final_remove %lldb_ua_anchor} %endif -%global bin_path() \ -%{_bindir}/%1 %global bin_sonum_path() \ %{_bindir}/%1-%{_sonum} -%global ghost_ua_bin_link() \ -%ghost %{_sysconfdir}/alternatives/%1 -%global man_path() \ -%{_mandir}/man1/%1.1%{ext_man} %global man_sonum_path() \ %{_mandir}/man1/%1-%{_sonum}.1%{ext_man} -%global ghost_ua_man_link() \ -%ghost %{_sysconfdir}/alternatives/%1.1%{ext_man} %files %license CREDITS.TXT LICENSE.TXT -%{lapply -p bin_path %llvm_ua_anchor %llvm_tools} -%{lapply -p bin_path %llvm_elf_dwarf_tools} -%{lapply -p bin_path %llvm_abi_coff_macho_tools} -%{lapply -p bin_path %llvm_instr_devel_tools} %{lapply -p bin_sonum_path %llvm_ua_anchor %llvm_tools} %{lapply -p bin_sonum_path %llvm_elf_dwarf_tools} %{lapply -p bin_sonum_path %llvm_abi_coff_macho_tools} %{lapply -p bin_sonum_path %llvm_instr_devel_tools} -%{lapply -p ghost_ua_bin_link %llvm_ua_anchor %llvm_tools} -%{lapply -p ghost_ua_bin_link %llvm_elf_dwarf_tools} -%{lapply -p ghost_ua_bin_link %llvm_abi_coff_macho_tools} -%{lapply -p ghost_ua_bin_link %llvm_instr_devel_tools} - -%{lapply -p man_path %llvm_man} -%{lapply -p man_path %llvm_bin_utils_man} -%{lapply -p man_path %llvm_devel_utils_man} + %{lapply -p man_sonum_path %llvm_man} %{lapply -p man_sonum_path %llvm_bin_utils_man} %{lapply -p man_sonum_path %llvm_devel_utils_man} -%{lapply -p ghost_ua_man_link %llvm_man} -%{lapply -p ghost_ua_man_link %llvm_bin_utils_man} -%{lapply -p ghost_ua_man_link %llvm_devel_utils_man} %files -n clang%{_sonum} %license CREDITS.TXT LICENSE.TXT -%{lapply -p bin_path %clang_ua_anchor %clang_binfiles} -%{lapply -p bin_path %clang_tools_extra_binfiles} %{lapply -p bin_sonum_path %clang_ua_anchor %clang_binfiles} %{lapply -p bin_sonum_path %clang_tools_extra_binfiles} -%{lapply -p ghost_ua_bin_link %clang_ua_anchor %clang_binfiles} -%{lapply -p ghost_ua_bin_link %clang_tools_extra_binfiles} -%{lapply -p man_path %clang_manfiles} %{lapply -p man_sonum_path %clang_manfiles} -%{lapply -p ghost_ua_man_link %clang_manfiles} %dir %{_libdir}/clang %dir %{_libdir}/clang/%{_sonum} @@ -1843,17 +1777,13 @@ %if %{with lld} %files -n lld%{_sonum} %license CREDITS.TXT LICENSE.TXT -%{lapply -p bin_path %lld_ua_anchor %lld_binfiles} %{lapply -p bin_sonum_path %lld_ua_anchor %lld_binfiles} -%{lapply -p ghost_ua_bin_link %lld_ua_anchor %lld_binfiles} %endif %if %{with lldb} %files -n lldb%{_sonum} %license CREDITS.TXT LICENSE.TXT -%{lapply -p bin_path %lldb_ua_anchor %lldb_binfiles} %{lapply -p bin_sonum_path %lldb_ua_anchor %lldb_binfiles} -%{lapply -p ghost_ua_bin_link %lldb_ua_anchor %lldb_binfiles} %if %{with lldb_python} %files -n python3-lldb%{_sonum}
