d5a4de3aad
Version of the llvm package that has been turned into a dummy that points to the current real llvm package. This submission is meant to go along with request 427057 and should not be accepted until after that submission is accepted. OBS-URL: https://build.opensuse.org/request/show/427058 OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=478
140 lines
5.5 KiB
Plaintext
140 lines
5.5 KiB
Plaintext
========
|
|
OVERVIEW
|
|
|
|
This package is a dummy package that always depends on the
|
|
version of corresponding LLVM packages that openSUSE
|
|
currently supports. This file documents the procedure for
|
|
updating the various LLVM components.
|
|
|
|
There are three major update scenarios that will be addressed
|
|
here, patch-level updates to the current LLVM version,
|
|
patch-level updates to older LLVM versions, and major/minor
|
|
version updates.
|
|
|
|
LLVM version numbers come in three levels. For version
|
|
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
|
|
are patch-level updates. Library .so numbers are based on
|
|
the major and minor version, for example libllvm.so.X.Y.
|
|
Patch-level updates do not update the version number of
|
|
libraries. For this reason, only changes to major and minor
|
|
version numbers get a new llvm package.
|
|
|
|
There are up to three packages that need to be handled in a
|
|
given update. This package, the base "llvm" package, the
|
|
current "llvmX_Y" package (X and Y are the major and minor
|
|
version numbers, respectively), and the next "llvmX_Y"
|
|
package if the major or minor version has been changed.
|
|
|
|
NOTE: This package should always have the same "License"
|
|
tag as the currently-supported version of the llvmX_Y
|
|
package.
|
|
|
|
===========================================
|
|
PATCH-LEVEL UPDATES TO CURRENT LLVM VERSION
|
|
|
|
For patch level updates, this package (llvm) and the current
|
|
llvmX_Y package need to be updated.
|
|
|
|
1. llvmX_Y package:
|
|
1. Add the new sources to the package and delete the old
|
|
ones
|
|
2. Update the "Version" tag in llvmX_Y.spec and
|
|
lldbX_Y.spec to match the new sources.
|
|
3. Update the "_revsn" tag in llvmX_Y.spec and
|
|
lldbX_Y.spec to match the revision number of the
|
|
tag. This can be found on
|
|
http://lists.llvm.org/pipermail/llvm-branch-commits
|
|
and should have like "[llvm-tag]" and
|
|
"Creating release candidate final" in the subject
|
|
line. You want to find the one for the current LLVM
|
|
release.
|
|
4. Update the "_relver" tag in llvmX_Y.spec to match
|
|
the "Version" tag.
|
|
5. Confirm everything builds successfully and there are
|
|
no new rpmlint issues.
|
|
2. llvm package:
|
|
1. Update the "Version" tag to match the new llvmX_Y
|
|
version.
|
|
|
|
========================================
|
|
PATCH-LEVEL UPDATES TO OLD LLVM VERSIONS
|
|
|
|
For patch-level updates to versions of LLVM before the
|
|
current version, only the corresponding llvmX_Y package
|
|
needs to be updated.
|
|
|
|
1. llvmX_Y package:
|
|
1. Add the new sources to the package and delete the old
|
|
ones
|
|
2. Update the "Version" tag in llvmX_Y.spec and
|
|
lldbX_Y.spec to match the new sources.
|
|
3. Update the "_revsn" tag in llvmX_Y.spec and
|
|
lldbX_Y.spec to match the revision number of the
|
|
tag. This can be found on
|
|
http://lists.llvm.org/pipermail/llvm-branch-commits
|
|
and should have like "[llvm-tag]" and
|
|
"Creating release candidate final" in the subject
|
|
line. You want to find the one for the current LLVM
|
|
release.
|
|
4. Update the "_relver" tag in llvmX_Y.spec to match
|
|
the "Version" tag.
|
|
5. Confirm everything builds successfully and there are
|
|
no new rpmlint issues.
|
|
|
|
|
|
===============================
|
|
MAJOR AND MINOR VERSION UPDATES
|
|
|
|
For updates that change the major or minor version number,
|
|
this package (llvm) needs to be updated, a new llvmX_Y
|
|
package needs to be created, and the old llvmX_Y package
|
|
needs to be modified.
|
|
|
|
1. New llvmX_Y package:
|
|
1. Copy (do not link) the old llvmX_Y to the new
|
|
major/minor version number.
|
|
2. Rename the .spec, .changes, and rpmlintrc files in the
|
|
new llvmX_Y package to the new major/minor version
|
|
number
|
|
3. Rename the base llvm and lldb package in their
|
|
respective .spec files to match the new package name.
|
|
4. Change the "_sonum" tag in llvmX_Y.spec and
|
|
lldbX_Y.spec to match the new major/minor versions.
|
|
It should be of the form "X" if if the "X" minor
|
|
version is 0 or "X_Y" if theminor version is greater
|
|
than 0.
|
|
5. Change the "_minor" tag in llvmX_Y.spec to match
|
|
the new major/minor versions. It should be of the
|
|
form "X.Y".
|
|
6. Update the "Version", "_revsn", and "_relver" tags
|
|
as described in PATCH-LEVEL UPDATES above.
|
|
7. Confirm llvmX_Y.spec builds successfully and there are
|
|
no new rpmlint issues.
|
|
8. Check whether the .so number of "libc++.so.W.V" has
|
|
changed. If so, change "_socxx" 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.
|
|
9. Confirm everything builds successfully and there are
|
|
no new rpmlint issues.
|
|
2. Old llvmX_Y 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_Y.spec
|
|
and make it always %bcond_with. If the .so numbers
|
|
have changed, these can be left-as-is.
|
|
2. Remove the "%if" and %ifarch" tests around
|
|
%bcond_without/%bcond_with libomp in llvmX_Y.spec
|
|
and make it always %bcond_with.
|
|
3. Change "%bcond_without pyclang" to
|
|
"%bcond_with pyclang" in llvmX_Y.spec.
|
|
4. Change BuildRequires "llvm%{_sonum}-gold = %{version}"
|
|
to "llvm-gold" in lldbX_Y.spec.
|
|
5. Confirm everything builds successfully and there are
|
|
no new rpmlint issues.
|
|
3. llvm package:
|
|
1. update the "Version" tag to match the new llvmX_Y
|
|
version.
|
|
2. Change the "_sonum" tag to match the one in the
|
|
new "llvmX_Y.spec" and "lldbX_Y.spec" files.
|