diff --git a/README.packaging b/README.packaging index c40d9ef..906cb81 100644 --- a/README.packaging +++ b/README.packaging @@ -14,58 +14,58 @@ 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. +are patch-level updates. Since LLVM 4, the minor version +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 -libraries. For this reason, only changes to major and minor -version numbers get a new llvm package. +libraries. For this reason, only changes to the major +version number 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. +current "llvmX" package (X is the major version numbers), +and the next "llvmX" package if the major version has changed. NOTE: This package should always have the same "License" -tag as the currently-supported version of the llvmX_Y -package. +tag as the currently-supported version of the llvmX package. + +[1] http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html =========================================== PATCH-LEVEL UPDATES TO CURRENT LLVM VERSION 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 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). 2. Build cfe-docs-X.Y.Z.src.tar.xz and 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 first. Add those sources as well and delete the old ones. - 3. Update the "Version" tag in llvmX_Y.spec and - lldbX_Y.spec to match the new sources. + 3. Update the "Version" tag in llvmX.spec to match the + new sources. 4. Update the version number in the patches to match the new sources. - 5. 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 + 5. Update the "_revsn" tag in llvmX.spec to match the + revision number of the tag. This can be found on https://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. - 6. Update the "_relver" tag in llvmX_Y.spec to match + 6. Update the "_relver" tag in llvmX.spec to match the "Version" tag. 7. Confirm everything builds successfully and there are no new rpmlint issues. - 8. Update the llvmX_Y.changes and lldbX_Y.changes files. + 8. Update the llvmX.changes file. 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. 2. Update the llvm.changes file. @@ -74,82 +74,74 @@ llvmX_Y package need to be updated. 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 +current version, only the corresponding llvmX package needs to be updated. -1. llvmX_Y package: +1. llvmX package: 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 or llvm-docs-X.Y.Z.src.tar.xz (see next item). 2. Build cfe-docs-X.Y.Z.src.tar.xz and 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 first. Add those sources as well and delete the old ones. - 3. Update the "Version" tag in llvmX_Y.spec and - lldbX_Y.spec to match the new sources. + 3. Update the "Version" tag in llvmX.spec to match the + new sources. 4. Update the version number in the patches to match the new sources. - 5. 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 + 5. Update the "_revsn" tag in llvmX.spec to match the + revision number of the tag. This can be found on https://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. - 6. Update the "_relver" tag in llvmX_Y.spec to match + 6. Update the "_relver" tag in llvmX.spec to match the "Version" tag. 7. Confirm everything builds successfully and there are no new rpmlint issues. Some patches may need to be 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 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 +this package (llvm) needs to be updated, a new llvmX +package needs to be created, and the old llvmX package needs to be modified. -1. New llvmX_Y package: - 1. Copy (do not link) the old llvmX_Y to the new +1. New llvmX package: + 1. Copy (do not link) the old llvmX to the new major/minor version number. 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 or llvm-docs-X.Y.Z.src.tar.xz (see next item). 3. Build cfe-docs-X.Y.Z.src.tar.xz and 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 first. Add those sources as well and delete the old ones. 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 - 5. Rename the base llvm and lldb package in their - respective .spec files to match the new package name. - 6. 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. - 7. Change the "_minor" tag in llvmX_Y.spec to match + 5. Rename the packages in llvmX.spec files to match the + 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". + 7. Change the "_minor" tag in llvmX.spec to match the new major/minor versions. It should be of the - form "X.Y". - 8. Change the "_uaver" tag in llvmX_Y.spec and - lldb3_8.spec to match the new major/minor versions. - 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". + form "X.0". + 8. Change the "_uaver" tag in llvmX.spec to match the + new major/minor versions. It should be of the form "X00". 9. Update the "Version", "_revsn", and "_relver" tags and the version numbers in the patches as described in 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. 11. Check whether the .so number of "libc++.so.W.V" has changed. If so, change "_socxx" tag to match. @@ -158,21 +150,21 @@ needs to be modified. 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_Y.changes and lldbX_Y.changes files. -2. Old llvmX_Y package: + 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_Y.spec + %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 pyclang" to - "%bcond_with pyclang" in llvmX_Y.spec. + "%bcond_with pyclang" in llvmX.spec. 4. Confirm everything builds successfully and there are no new rpmlint issues. - 5. Update the llvmX_Y.changes and lldbX_Y.changes files. + 5. Update the llvmX.changes file. 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. 2. Change the "_sonum" tag to match the one in the - new "llvmX_Y.spec" and "lldbX_Y.spec" files. - 3. Update the llvmX_Y.changes and lldbX_Y.changes files. + new "llvmX.spec" file. + 3. Update the llvm.changes file. diff --git a/llvm.changes b/llvm.changes index e330111..0e8a854 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Mon Jun 10 17:07:38 UTC 2019 - Aaron Puchert + +- 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 diff --git a/llvm.spec b/llvm.spec index b877d38..35e702b 100644 --- a/llvm.spec +++ b/llvm.spec @@ -36,7 +36,7 @@ Release: 0 Summary: Low Level Virtual Machine License: NCSA Group: Development/Languages/Other -URL: https://www.llvm.org +URL: https://www.llvm.org/ # This file documents the process for updating llvm Source0: README.packaging Source101: baselibs.conf @@ -77,7 +77,7 @@ don't require a specific LLVM version should depend on this. %package devel Summary: Header Files for LLVM -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: llvm%{_sonum}-devel = %{version} %if %{with gold} Requires: llvm-gold @@ -93,7 +93,8 @@ don't require a specific LLVM version should depend on this. %package -n clang Summary: CLANG frontend for LLVM -Group: Development/Languages/Other +Group: Development/Languages/C and C++ +Url: https://clang.llvm.org/ Requires: clang%{_sonum} = %{version} Provides: 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 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} Provides: 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 Summary: CLANG frontend for LLVM (devel package) -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: clang%{_sonum}-devel = %{version} Provides: 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 Summary: Link-time optimizer for LLVM (devel package) -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: llvm%{_sonum}-LTO-devel = %{version} %description LTO-devel @@ -153,7 +155,7 @@ don't require a specific LLVM version should depend on this. %if %{with gold} %package gold Summary: Gold linker plugin for LLVM -Group: Development/Languages/Other +Group: Development/Tools/Building Requires: llvm%{_sonum}-gold = %{version} %description gold @@ -193,6 +195,7 @@ don't require a specific LLVM version should depend on this. %package -n lldb Summary: Software debugger built using LLVM libraries Group: Development/Tools/Debuggers +Url: https://lldb.llvm.org/ Requires: lldb%{_sonum} = %{version} %description -n lldb @@ -207,7 +210,7 @@ don't require a specific LLDB version should depend on this. %package -n lldb-devel Summary: Development files for LLDB -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: lldb%{_sonum}-devel = %{version} %description -n lldb-devel @@ -219,7 +222,7 @@ don't require a specific LLDB version should depend on this. %package -n python3-lldb Summary: Python bindings for liblldb -Group: Development/Languages/Python +Group: Development/Libraries/Python Requires: python3-lldb%{_sonum} = %{version} %description -n python3-lldb @@ -232,6 +235,7 @@ don't require a specific LLDB version should depend on this. %package -n lld Summary: Linker for Clang/LLVM Group: Development/Tools/Building +Url: https://lld.llvm.org/ Requires: lld%{_sonum} = %{version} %description -n lld