- 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
This commit is contained in:
Aaron Puchert 2022-04-03 20:07:55 +00:00 committed by Git OBS Bridge
parent 61932ee6e0
commit d6a2053282
4 changed files with 50 additions and 43 deletions

View File

@ -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.

View File

@ -1,5 +0,0 @@
llvm-devel
lldb-devel
clang-devel
llvm-LTO-devel
llvm-gold

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Sun Apr 3 13:42:27 UTC 2022 - Aaron Puchert <aaronpuchert@alice-dsl.net>
- 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 <aaronpuchert@alice-dsl.net>

View File

@ -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