SHA256
1
0
forked from pool/llvm

Accepting request 710291 from devel:tools:compiler

OBS-URL: https://build.opensuse.org/request/show/710291
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/llvm?expand=0&rev=105
This commit is contained in:
Dominique Leuenberger 2019-06-22 09:22:23 +00:00 committed by Git OBS Bridge
commit 5c85b77346
3 changed files with 76 additions and 69 deletions

View File

@ -14,58 +14,58 @@ version updates.
LLVM version numbers come in three levels. For version LLVM version numbers come in three levels. For version
X.Y.Z, changes to the X level are major updates, changes to X.Y.Z, changes to the X level are major updates, changes to
the Y level are minor updates, and changes to the Z level the Y level are minor updates, and changes to the Z level
are patch-level updates. Library .so numbers are based on are patch-level updates. Since LLVM 4, the minor version
the major and minor version, for example libllvm.so.X.Y. is always expected to be 0. [1] Library .so numbers are
based on the major version, for example libLLVM.so.X.
Patch-level updates do not update the version number of Patch-level updates do not update the version number of
libraries. For this reason, only changes to major and minor libraries. For this reason, only changes to the major
version numbers get a new llvm package. version number get a new llvm package.
There are up to three packages that need to be handled in a There are up to three packages that need to be handled in a
given update. This package, the base "llvm" package, the given update. This package, the base "llvm" package, the
current "llvmX_Y" package (X and Y are the major and minor current "llvmX" package (X is the major version numbers),
version numbers, respectively), and the next "llvmX_Y" and the next "llvmX" package if the major version has changed.
package if the major or minor version has been changed.
NOTE: This package should always have the same "License" NOTE: This package should always have the same "License"
tag as the currently-supported version of the llvmX_Y tag as the currently-supported version of the llvmX package.
package.
[1] http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html
=========================================== ===========================================
PATCH-LEVEL UPDATES TO CURRENT LLVM VERSION PATCH-LEVEL UPDATES TO CURRENT LLVM VERSION
For patch level updates, this package (llvm) and the current For patch level updates, this package (llvm) and the current
llvmX_Y package need to be updated. llvmX package need to be updated.
1. llvmX_Y package: 1. llvmX package:
1. Add the new sources to the package and delete the old 1. Add the new sources to the package and delete the old
ones. This will not include cfe-docs-X.Y.Z.src.tar.xz ones. This will not include cfe-docs-X.Y.Z.src.tar.xz
or llvm-docs-X.Y.Z.src.tar.xz (see next item). or llvm-docs-X.Y.Z.src.tar.xz (see next item).
2. Build cfe-docs-X.Y.Z.src.tar.xz and 2. Build cfe-docs-X.Y.Z.src.tar.xz and
llvm-docs-X.Y.Z.src.tar.xz. The instructions are in llvm-docs-X.Y.Z.src.tar.xz. The instructions are in
the %install sectionf of llvmX_Y.spec. The version the %install section of llvmX.spec. The version
numbers in the instructions will need to be updated numbers in the instructions will need to be updated
first. Add those sources as well and delete the old first. Add those sources as well and delete the old
ones. ones.
3. Update the "Version" tag in llvmX_Y.spec and 3. Update the "Version" tag in llvmX.spec to match the
lldbX_Y.spec to match the new sources. new sources.
4. Update the version number in the patches to match the 4. Update the version number in the patches to match the
new sources. new sources.
5. Update the "_revsn" tag in llvmX_Y.spec and 5. Update the "_revsn" tag in llvmX.spec to match the
lldbX_Y.spec to match the revision number of the revision number of the tag. This can be found on
tag. This can be found on
https://lists.llvm.org/pipermail/llvm-branch-commits https://lists.llvm.org/pipermail/llvm-branch-commits
and should have like "[llvm-tag]" and and should have like "[llvm-tag]" and
"Creating release candidate final" in the subject "Creating release candidate final" in the subject
line. You want to find the one for the current LLVM line. You want to find the one for the current LLVM
release. release.
6. Update the "_relver" tag in llvmX_Y.spec to match 6. Update the "_relver" tag in llvmX.spec to match
the "Version" tag. the "Version" tag.
7. Confirm everything builds successfully and there are 7. Confirm everything builds successfully and there are
no new rpmlint issues. no new rpmlint issues.
8. Update the llvmX_Y.changes and lldbX_Y.changes files. 8. Update the llvmX.changes file.
2. llvm package: 2. llvm package:
1. Update the "Version" tag to match the new llvmX_Y 1. Update the "Version" tag to match the new llvmX
version. version.
2. Update the llvm.changes file. 2. Update the llvm.changes file.
@ -74,82 +74,74 @@ llvmX_Y package need to be updated.
PATCH-LEVEL UPDATES TO OLD LLVM VERSIONS PATCH-LEVEL UPDATES TO OLD LLVM VERSIONS
For patch-level updates to versions of LLVM before the For patch-level updates to versions of LLVM before the
current version, only the corresponding llvmX_Y package current version, only the corresponding llvmX package
needs to be updated. needs to be updated.
1. llvmX_Y package: 1. llvmX package:
1. Add the new sources to the package and delete the old 1. Add the new sources to the package and delete the old
ones. This will not include cfe-docs-X.Y.Z.src.tar.xz ones. This will not include cfe-docs-X.Y.Z.src.tar.xz
or llvm-docs-X.Y.Z.src.tar.xz (see next item). or llvm-docs-X.Y.Z.src.tar.xz (see next item).
2. Build cfe-docs-X.Y.Z.src.tar.xz and 2. Build cfe-docs-X.Y.Z.src.tar.xz and
llvm-docs-X.Y.Z.src.tar.xz. The instructions are in llvm-docs-X.Y.Z.src.tar.xz. The instructions are in
the %install sectionf of llvmX_Y.spec. The version the %install section of llvmX.spec. The version
numbers in the instructions will need to be updated numbers in the instructions will need to be updated
first. Add those sources as well and delete the old first. Add those sources as well and delete the old
ones. ones.
3. Update the "Version" tag in llvmX_Y.spec and 3. Update the "Version" tag in llvmX.spec to match the
lldbX_Y.spec to match the new sources. new sources.
4. Update the version number in the patches to match the 4. Update the version number in the patches to match the
new sources. new sources.
5. Update the "_revsn" tag in llvmX_Y.spec and 5. Update the "_revsn" tag in llvmX.spec to match the
lldbX_Y.spec to match the revision number of the revision number of the tag. This can be found on
tag. This can be found on
https://lists.llvm.org/pipermail/llvm-branch-commits https://lists.llvm.org/pipermail/llvm-branch-commits
and should have like "[llvm-tag]" and and should have like "[llvm-tag]" and
"Creating release candidate final" in the subject "Creating release candidate final" in the subject
line. You want to find the one for the current LLVM line. You want to find the one for the current LLVM
release. release.
6. Update the "_relver" tag in llvmX_Y.spec to match 6. Update the "_relver" tag in llvmX.spec to match
the "Version" tag. the "Version" tag.
7. Confirm everything builds successfully and there are 7. Confirm everything builds successfully and there are
no new rpmlint issues. Some patches may need to be no new rpmlint issues. Some patches may need to be
removed or rebased. removed or rebased.
8. Update the llvmX_Y.changes and lldbX_Y.changes files. 8. Update the llvmX.changes file.
=============================== ===============================
MAJOR AND MINOR VERSION UPDATES MAJOR AND MINOR VERSION UPDATES
For updates that change the major or minor version number, For updates that change the major or minor version number,
this package (llvm) needs to be updated, a new llvmX_Y this package (llvm) needs to be updated, a new llvmX
package needs to be created, and the old llvmX_Y package package needs to be created, and the old llvmX package
needs to be modified. needs to be modified.
1. New llvmX_Y package: 1. New llvmX package:
1. Copy (do not link) the old llvmX_Y to the new 1. Copy (do not link) the old llvmX to the new
major/minor version number. major/minor version number.
2. Add the new sources to the package and delete the old 2. Add the new sources to the package and delete the old
ones. This will not include cfe-docs-X.Y.Z.src.tar.xz ones. This will not include cfe-docs-X.Y.Z.src.tar.xz
or llvm-docs-X.Y.Z.src.tar.xz (see next item). or llvm-docs-X.Y.Z.src.tar.xz (see next item).
3. Build cfe-docs-X.Y.Z.src.tar.xz and 3. Build cfe-docs-X.Y.Z.src.tar.xz and
llvm-docs-X.Y.Z.src.tar.xz. The instructions are in llvm-docs-X.Y.Z.src.tar.xz. The instructions are in
the %install sectionf of llvmX_Y.spec. The version the %install section of llvmX.spec. The version
numbers in the instructions will need to be updated numbers in the instructions will need to be updated
first. Add those sources as well and delete the old first. Add those sources as well and delete the old
ones. ones.
4. Rename the .spec, .changes, and rpmlintrc files in the 4. Rename the .spec, .changes, and rpmlintrc files in the
new llvmX_Y package to the new major/minor version new llvmX package to the new major/minor version
number number
5. Rename the base llvm and lldb package in their 5. Rename the packages in llvmX.spec files to match the
respective .spec files to match the new package name. new package name.
6. Change the "_sonum" tag in llvmX_Y.spec and 6. Change the "_sonum" tag in llvmX.spec to match the
lldbX_Y.spec to match the new major/minor versions. new major/minor versions. It should be of the form "X".
It should be of the form "X" if if the "X" minor 7. Change the "_minor" tag in llvmX.spec to match
version is 0 or "X_Y" if theminor version is greater
than 0.
7. Change the "_minor" tag in llvmX_Y.spec to match
the new major/minor versions. It should be of the the new major/minor versions. It should be of the
form "X.Y". form "X.0".
8. Change the "_uaver" tag in llvmX_Y.spec and 8. Change the "_uaver" tag in llvmX.spec to match the
lldb3_8.spec to match the new major/minor versions. new major/minor versions. It should be of the form "X00".
It should be of the form "XYY", where "YY" is the
two-digit minor version. If the minor version is one
digit, put a "0" at the beginning. So "3.8" becomes
"308", while "3.10" becomes "310".
9. Update the "Version", "_revsn", and "_relver" tags 9. Update the "Version", "_revsn", and "_relver" tags
and the version numbers in the patches as described in and the version numbers in the patches as described in
PATCH-LEVEL UPDATES above. PATCH-LEVEL UPDATES above.
10. Confirm llvmX_Y.spec builds successfully and there are 10. Confirm llvmX.spec builds successfully and there are
no new rpmlint issues. no new rpmlint issues.
11. Check whether the .so number of "libc++.so.W.V" has 11. Check whether the .so number of "libc++.so.W.V" has
changed. If so, change "_socxx" tag to match. changed. If so, change "_socxx" tag to match.
@ -158,21 +150,21 @@ needs to be modified.
12. Confirm everything builds successfully and there are 12. Confirm everything builds successfully and there are
no new rpmlint issues. Some patches may need to be no new rpmlint issues. Some patches may need to be
removed or rebased. removed or rebased.
13. Update the llvmX_Y.changes and lldbX_Y.changes files. 13. Update the llvmX.changes file.
2. Old llvmX_Y package: 2. Old llvmX package:
1. If the .so number of libc++.so.W.V has not changed, 1. If the .so number of libc++.so.W.V has not changed,
remove the "%if" and %ifarch" tests around remove the "%if" and %ifarch" tests around
%bcond_without/%bcond_with libcxx in llvmX_Y.spec %bcond_without/%bcond_with libcxx in llvmX.spec
and make it always %bcond_with. If the .so numbers and make it always %bcond_with. If the .so numbers
have changed, these can be left-as-is. have changed, these can be left-as-is.
3. Change "%bcond_without pyclang" to 3. Change "%bcond_without pyclang" to
"%bcond_with pyclang" in llvmX_Y.spec. "%bcond_with pyclang" in llvmX.spec.
4. Confirm everything builds successfully and there are 4. Confirm everything builds successfully and there are
no new rpmlint issues. no new rpmlint issues.
5. Update the llvmX_Y.changes and lldbX_Y.changes files. 5. Update the llvmX.changes file.
3. llvm package: 3. llvm package:
1. update the "Version" tag to match the new llvmX_Y 1. Update the "Version" tag to match the new llvmX
version. version.
2. Change the "_sonum" tag to match the one in the 2. Change the "_sonum" tag to match the one in the
new "llvmX_Y.spec" and "lldbX_Y.spec" files. new "llvmX.spec" file.
3. Update the llvmX_Y.changes and lldbX_Y.changes files. 3. Update the llvm.changes file.

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Jun 10 17:07:38 UTC 2019 - Aaron Puchert <aaronpuchert@alice-dsl.net>
- Change some groups:
* devel packages in Development/Libraries,
* clang in Development/Languages/C and C++,
* the gold plugin in Development/Tools/Building.
- Add some URLs.
- Update packaging guidelines: the minor version is always 0 since
LLVM 4, and the subpackage is now llvmX instead of llvmX_Y.
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Mar 18 08:43:45 UTC 2019 - msrb@suse.com Mon Mar 18 08:43:45 UTC 2019 - msrb@suse.com

View File

@ -36,7 +36,7 @@ Release: 0
Summary: Low Level Virtual Machine Summary: Low Level Virtual Machine
License: NCSA License: NCSA
Group: Development/Languages/Other Group: Development/Languages/Other
URL: https://www.llvm.org URL: https://www.llvm.org/
# This file documents the process for updating llvm # This file documents the process for updating llvm
Source0: README.packaging Source0: README.packaging
Source101: baselibs.conf Source101: baselibs.conf
@ -77,7 +77,7 @@ don't require a specific LLVM version should depend on this.
%package devel %package devel
Summary: Header Files for LLVM Summary: Header Files for LLVM
Group: Development/Languages/Other Group: Development/Libraries/C and C++
Requires: llvm%{_sonum}-devel = %{version} Requires: llvm%{_sonum}-devel = %{version}
%if %{with gold} %if %{with gold}
Requires: llvm-gold Requires: llvm-gold
@ -93,7 +93,8 @@ don't require a specific LLVM version should depend on this.
%package -n clang %package -n clang
Summary: CLANG frontend for LLVM Summary: CLANG frontend for LLVM
Group: Development/Languages/Other Group: Development/Languages/C and C++
Url: https://clang.llvm.org/
Requires: clang%{_sonum} = %{version} Requires: clang%{_sonum} = %{version}
Provides: llvm-clang = %{version} Provides: llvm-clang = %{version}
Obsoletes: llvm-clang < %{version} Obsoletes: llvm-clang < %{version}
@ -107,7 +108,8 @@ don't require a specific Clang version should depend on this.
%package -n clang-checker %package -n clang-checker
Summary: Static code analyzer for CLANG Summary: Static code analyzer for CLANG
Group: Development/Languages/Other Group: Development/Languages/C and C++
Url: https://clang-analyzer.llvm.org/
Requires: clang%{_sonum}-checker = %{version} Requires: clang%{_sonum}-checker = %{version}
Provides: llvm-clang-checker = %{version} Provides: llvm-clang-checker = %{version}
Obsoletes: llvm-clang-checker < %{version} Obsoletes: llvm-clang-checker < %{version}
@ -122,7 +124,7 @@ don't require a specific Clang version should depend on this.
%package -n clang-devel %package -n clang-devel
Summary: CLANG frontend for LLVM (devel package) Summary: CLANG frontend for LLVM (devel package)
Group: Development/Languages/Other Group: Development/Libraries/C and C++
Requires: clang%{_sonum}-devel = %{version} Requires: clang%{_sonum}-devel = %{version}
Provides: llvm-clang-devel = %{version} Provides: llvm-clang-devel = %{version}
Obsoletes: llvm-clang-devel < %{version} Obsoletes: llvm-clang-devel < %{version}
@ -139,7 +141,7 @@ don't require a specific Clang version should depend on this.
%package LTO-devel %package LTO-devel
Summary: Link-time optimizer for LLVM (devel package) Summary: Link-time optimizer for LLVM (devel package)
Group: Development/Languages/Other Group: Development/Libraries/C and C++
Requires: llvm%{_sonum}-LTO-devel = %{version} Requires: llvm%{_sonum}-LTO-devel = %{version}
%description LTO-devel %description LTO-devel
@ -153,7 +155,7 @@ don't require a specific LLVM version should depend on this.
%if %{with gold} %if %{with gold}
%package gold %package gold
Summary: Gold linker plugin for LLVM Summary: Gold linker plugin for LLVM
Group: Development/Languages/Other Group: Development/Tools/Building
Requires: llvm%{_sonum}-gold = %{version} Requires: llvm%{_sonum}-gold = %{version}
%description gold %description gold
@ -193,6 +195,7 @@ don't require a specific LLVM version should depend on this.
%package -n lldb %package -n lldb
Summary: Software debugger built using LLVM libraries Summary: Software debugger built using LLVM libraries
Group: Development/Tools/Debuggers Group: Development/Tools/Debuggers
Url: https://lldb.llvm.org/
Requires: lldb%{_sonum} = %{version} Requires: lldb%{_sonum} = %{version}
%description -n lldb %description -n lldb
@ -207,7 +210,7 @@ don't require a specific LLDB version should depend on this.
%package -n lldb-devel %package -n lldb-devel
Summary: Development files for LLDB Summary: Development files for LLDB
Group: Development/Languages/Other Group: Development/Libraries/C and C++
Requires: lldb%{_sonum}-devel = %{version} Requires: lldb%{_sonum}-devel = %{version}
%description -n lldb-devel %description -n lldb-devel
@ -219,7 +222,7 @@ don't require a specific LLDB version should depend on this.
%package -n python3-lldb %package -n python3-lldb
Summary: Python bindings for liblldb Summary: Python bindings for liblldb
Group: Development/Languages/Python Group: Development/Libraries/Python
Requires: python3-lldb%{_sonum} = %{version} Requires: python3-lldb%{_sonum} = %{version}
%description -n python3-lldb %description -n python3-lldb
@ -232,6 +235,7 @@ don't require a specific LLDB version should depend on this.
%package -n lld %package -n lld
Summary: Linker for Clang/LLVM Summary: Linker for Clang/LLVM
Group: Development/Tools/Building Group: Development/Tools/Building
Url: https://lld.llvm.org/
Requires: lld%{_sonum} = %{version} Requires: lld%{_sonum} = %{version}
%description -n lld %description -n lld