From d6a205328288908fe013b1ccaa270df11dfbec0823dd745525f3b3bc30f47615 Mon Sep 17 00:00:00 2001 From: Aaron Puchert Date: Sun, 3 Apr 2022 20:07:55 +0000 Subject: [PATCH] - Now that python3-clang uses libclang.so.XX and is versioned, we provide a metapackage for it to replace existing installations. - Merge llvm-LTO-devel into llvm-devel just like the underlying versioned packages have been merged. - Remove baselibs.conf: it didn't do anything, and we shouldn't need any of these to be imported. - Only suggest documentation packages. - Update README.packaging to reflect the new packaging strategy. We don't need to touch the old package on version updates any longer, but we need to change the project configuration. OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=548 --- README.packaging | 31 +++++++++++++++++-------------- baselibs.conf | 5 ----- llvm.changes | 14 ++++++++++++++ llvm.spec | 43 +++++++++++++++++++------------------------ 4 files changed, 50 insertions(+), 43 deletions(-) delete mode 100644 baselibs.conf diff --git a/README.packaging b/README.packaging index c46d020..1af1713 100644 --- a/README.packaging +++ b/README.packaging @@ -116,6 +116,7 @@ needs to be modified. new package name. 6. Change the "_sonum" tag in llvmX.spec to match the new major/minor versions. It should be of the form "X". + Change the "_itsme" definition to "%define _itsmeX 1". 7. Change the "_minor" tag in llvmX.spec to match the new major/minor versions. It should be of the form "X.0". @@ -125,28 +126,30 @@ needs to be modified. the patches as described in PATCH-LEVEL UPDATES above. 10. Confirm llvmX.spec builds successfully and there are no new rpmlint issues. - 11. Check whether the .so number of "libc++.so.W.V" has - changed. If so, change "_socxx" tag to match. + 11. Check whether the .so numbers of "libc++.so.W.V" or + "libclang.so.X" have changed. If so, change the + "_socxx" or "_soclang" tag to match. It should be of the form "W" if the "V" value is 0 or "W_V" if the "V" value is greater than 0. 12. Confirm everything builds successfully and there are no new rpmlint issues. Some patches may need to be removed or rebased. 13. Update the llvmX.changes file. -2. Old llvmX package: - 1. If the .so number of libc++.so.W.V has not changed, - remove the "%if" and %ifarch" tests around - %bcond_without/%bcond_with libcxx in llvmX.spec - and make it always %bcond_with. If the .so numbers - have changed, these can be left-as-is. - 3. Change "%bcond_without clang_scripts" to - "%bcond_with clang_scripts" in llvmX.spec. - 4. Confirm everything builds successfully and there are - no new rpmlint issues. - 5. Update the llvmX.changes file. -3. llvm package: +2. llvm package: 1. Update the "Version" tag to match the new llvmX version. 2. Change the "_sonum" tag to match the one in the new "llvmX.spec" file. 3. Update the llvm.changes file. +3. Project config: + 1. Change %product_libs_llvm_ver to X. + 2. If one of the .so version numbers for libclang, libc++ + or libc++abi changed, add a corresponding + Prefer: libcxxW + Prefer: libcxxabiW + Prefer: libclangW + for the new .so version and a corresponding definition + %product_libs_llvm_ver_libcxxW X + %product_libs_llvm_ver_libcxxabiW X + %product_libs_llvm_ver_libclangW X + with W the old .so version and X the old LLVM version. diff --git a/baselibs.conf b/baselibs.conf deleted file mode 100644 index 5df4764..0000000 --- a/baselibs.conf +++ /dev/null @@ -1,5 +0,0 @@ -llvm-devel -lldb-devel -clang-devel -llvm-LTO-devel -llvm-gold diff --git a/llvm.changes b/llvm.changes index 05887da..d61cf1a 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Sun Apr 3 13:42:27 UTC 2022 - Aaron Puchert + +- Now that python3-clang uses libclang.so.XX and is versioned, we + provide a metapackage for it to replace existing installations. +- Merge llvm-LTO-devel into llvm-devel just like the underlying + versioned packages have been merged. +- Remove baselibs.conf: it didn't do anything, and we shouldn't + need any of these to be imported. +- Only suggest documentation packages. +- Update README.packaging to reflect the new packaging strategy. + We don't need to touch the old package on version updates any + longer, but we need to change the project configuration. + ------------------------------------------------------------------- Thu Feb 3 21:56:28 UTC 2022 - Aaron Puchert diff --git a/llvm.spec b/llvm.spec index f29b0cc..f440861 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,7 +1,7 @@ # # spec file for package llvm # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -44,14 +44,12 @@ Group: Development/Languages/Other URL: https://www.llvm.org/ # This file documents the process for updating llvm Source0: README.packaging -Source101: baselibs.conf # Avoid multiple providers error BuildRequires: clang%{_sonum} = %{version} BuildRequires: clang%{_sonum}-devel = %{version} BuildRequires: clang%{_sonum}-doc = %{version} BuildRequires: lld%{_sonum} = %{version} BuildRequires: llvm%{_sonum} = %{version} -BuildRequires: llvm%{_sonum}-LTO-devel = %{version} BuildRequires: llvm%{_sonum}-devel = %{version} BuildRequires: llvm%{_sonum}-doc = %{version} BuildRequires: llvm%{_sonum}-gold = %{version} @@ -61,10 +59,11 @@ Requires: llvm%{_sonum} = %{version} BuildRequires: lldb%{_sonum} = %{version} BuildRequires: lldb%{_sonum}-devel = %{version} %endif +BuildRequires: python3-clang%{_sonum} = %{version} %if 0%{?has_lldb_python} BuildRequires: python3-lldb%{_sonum} = %{version} %endif -Recommends: %{name}-doc +Suggests: %{name}-doc # Mirrors ExcludeArch in llvm%{_sonum} ExcludeArch: s390 @@ -84,6 +83,8 @@ don't require a specific LLVM version should depend on this. Summary: Header Files for LLVM Group: Development/Libraries/C and C++ Requires: llvm%{_sonum}-devel = %{version} +Provides: llvm-LTO-devel = %{version} +Obsoletes: llvm-LTO-devel <= %{version} Requires: llvm-gold %obsolete_llvm_versioned llvm devel @@ -114,10 +115,10 @@ Summary: CLANG frontend for LLVM Group: Development/Languages/C and C++ URL: https://clang.llvm.org/ Requires: clang%{_sonum} = %{version} -Recommends: clang-doc Provides: llvm-clang = %{version} Obsoletes: llvm-clang < %{version} Provides: llvm-emacs-plugins +Suggests: clang-doc %description -n clang This package contains the clang (C language) frontend for LLVM. @@ -158,20 +159,6 @@ This package is a dummy package that depends on the version of clang-doc that openSUSE currently supports. Packages that don't require a specific Clang version should depend on this. -%package LTO-devel -Summary: Link-time optimizer for LLVM (devel package) -Group: Development/Libraries/C and C++ -Requires: llvm%{_sonum}-LTO-devel = %{version} -%obsolete_llvm_versioned llvm LTO-devel - -%description LTO-devel -This package contains the link-time optimizer for LLVM. -(development files) - -This package is a dummy package that depends on the version of -llvm-LTO-devel that openSUSE currently supports. Packages that -don't require a specific LLVM version should depend on this. - %package gold Summary: Gold linker plugin for LLVM Group: Development/Tools/Building @@ -246,6 +233,16 @@ This package is a dummy package that depends on the version of lldb-devel that openSUSE currently supports. Packages that don't require a specific LLDB version should depend on this. +%package -n python3-clang +Summary: Python bindings for libclang +Group: Development/Libraries/Python +Requires: python3-clang%{_sonum} +BuildArch: noarch + +%description -n python3-clang +This package contains the Python bindings to clang (C language) +frontend for LLVM. + %package -n python3-lldb Summary: Python bindings for liblldb Group: Development/Libraries/Python @@ -333,9 +330,6 @@ echo "This is a dummy package to provide a dependency on the system compiler." > %files -n clang-doc %doc README -%files LTO-devel -%doc README - %files vim-plugins %doc README @@ -348,13 +342,14 @@ echo "This is a dummy package to provide a dependency on the system compiler." > %files -n lldb-devel %doc README - %endif +%files -n python3-clang +%doc README + %if 0%{?has_lldb_python} %files -n python3-lldb %doc README - %endif %files -n lld