Conversation
Rename spec file from kernel.spec to kernel-clk6.12.spec.
Introduce %{pkg_suffix} macro (clk%{patchversion}) and use it for:
- package_name: kernel-%{pkg_suffix}
- tool packages: perf, python3-perf, libperf, rtla, rv
Tool packages now named:
- perf-%{pkg_suffix}
- python3-perf-%{pkg_suffix}
- libperf-%{pkg_suffix}
- libperf-%{pkg_suffix}-devel
- rtla-%{pkg_suffix}
- rv-%{pkg_suffix}
- *-debuginfo variants
Each tool package includes:
- Provides: <original-name> = %{specrpmversion}-%{release}
- Conflicts: <original-name>
Adds Provides and Conflicts tags to kernel-clk6.12-* packages that
cannot be parallel installed with stock Rocky kernel packages:
- kernel-doc
- kernel-headers
- kernel-cross-headers
- kernel-debuginfo-common
- kernel-tools
- kernel-tools-libs
- kernel-tools-libs-devel
- kernel-selftests-internal
This allows these packages to satisfy dependencies for stock kernel
packages while preventing simultaneous installation with stock Rocky
kernel tools.
Remove gemini switch, which comes from kernel-ark and is part of their
solution for a kernel variant that should supplant the factory kernel.
Fix config file naming in %prep to use %{name} instead of hardcoded
'kernel' prefix.
Update generate_tarball.sh to reference kernel-clk6.12.spec.
Switch Module.symvers compression from the dynamic %compression macro (xz) to hardcoded gzip -c9, matching the upstream kernel spec. Also fixes the ghost file permissions from 0644 to 0600. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Jonathan Dieter <jdieter@ciq.com>
Inject +%{pkg_suffix} into KVERREL and the shell-level equivalents
(KernelVer, DevelDir, EXTRAVERSION) so that uname -r shows the CLK
kernel identity, e.g. 6.12.78-1.1.el9_ciq.x86_64+clk6.12.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jonathan Dieter <jdieter@ciq.com>
- Consolidate version defines (kernel_major_minor, kernel_patch, buildid)
- Derive specversion, pkgrelease, tarfile_release from base defines
- Rework -default package with proper scriptlets and kernel-provider
- Convert tools subpackages to short form naming
- Bundle bindgen-cli for Rocky 9.6 builds
- Export GRUB_NON_STANDARD_KERNEL to prevent boot default hijacking
- Update generate_tarball.sh for new version scheme
Fix Provides/Requires to use %{name} instead of hardcoded kernel
Package names should use %{name} (kernel-clk6.12) instead of hardcoded
'kernel' in Provides and Requires to ensure dependency resolution works
correctly for CLK kernels.
Add Obsoletes tags to all packages to enable smooth upgrades from non-namespaced kernel-6.12.x packages to kernel-clk6.12-6.12.x. Use explicit version lists (6.12.15, 6.12.30, 6.12.43, 6.12.63, 6.12.74, 6.12.77) instead of version ranges to avoid unintentionally obsoleting future major versions like kernel-7.0. Changes: - Add Obsoletes for kernel-core and all kernel variant packages - Add Obsoletes for all non-parallel installable packages: * kernel-doc, kernel-headers, kernel-cross-headers * perf, python3-perf, libperf * rtla, rv * kernel-tools, kernel-tools-libs * kernel-selftests-internal * All corresponding debuginfo packages
ciq/SPECS/kernel-clk6.12.spec
Outdated
|
|
||
| # Pick the right kernel config file | ||
| Config=%{name}-%{_target_cpu}${Variant:+-${Variant}}.config | ||
| Config=kernel-%{_target_cpu}${Variant:+-${Variant}}.config |
There was a problem hiding this comment.
There was a problem hiding this comment.
Good call out. I just now realized that this naming difference was driven by the fact that we have a stub merge.py in the 6.12 branch and a functional one in the 6.18 branch. I've synced up both of these things with 6.18
ciq/SPECS/kernel-clk6.12.spec
Outdated
| %define kernel_reqprovconf(o) \ | ||
| %if %{-o:0}%{!-o:1}\ | ||
| Provides: kernel = %{specversion}-%{pkg_release}\ | ||
| Obsoletes: kernel = 6.12.15\ |
There was a problem hiding this comment.
This is also missing : https://github.com/ctrliq/kernel-src-tree/pull/1009/changes#diff-face1c233097b07bb75d643ae2a9010a12475a0801e430206bcccd86da577ca8R1166
Provides: %{name} = %{specversion}-%{pkg_release}\
There was a problem hiding this comment.
Do these obsoletes show up anywhere except the kernel package? Are they in kernel-debug or any other variant we might build?
There was a problem hiding this comment.
There were a couple packages missing obsoletes, but I think with what I have now everything that needs them has them. The only packages that don't explicitly have them are meta packages (which I don't think need them) and our -default packages.
bmastbergen@troas ~/ciq/build_files
% for rpm in *x86_64*.rpm; do echo "=== $rpm ==="; rpm -qp --qf '[%{OBSOLETENAME} = %{OBSOLETEVERSION}\n]' "$rpm" 2>/dev/null \
| grep -E "6\.12\.(15|30|43|63|74|77)"; echo; done
=== kernel-clk6.12-6.12.78-1.1.el9.x86_64.rpm ===
=== kernel-clk6.12-core-6.12.78-1.1.el9.x86_64.rpm ===
kernel = 6.12.15
kernel = 6.12.30
kernel = 6.12.43
kernel = 6.12.63
kernel = 6.12.74
kernel = 6.12.77
kernel-core = 6.12.15
kernel-core = 6.12.30
kernel-core = 6.12.43
kernel-core = 6.12.63
kernel-core = 6.12.74
kernel-core = 6.12.77
=== kernel-clk6.12-cross-headers-6.12.78-1.1.el9.x86_64.rpm ===
kernel-cross-headers = 6.12.15
kernel-cross-headers = 6.12.30
kernel-cross-headers = 6.12.43
kernel-cross-headers = 6.12.63
kernel-cross-headers = 6.12.74
kernel-cross-headers = 6.12.77
=== kernel-clk6.12-debug-6.12.78-1.1.el9.x86_64.rpm ===
=== kernel-clk6.12-debug-core-6.12.78-1.1.el9.x86_64.rpm ===
kernel = 6.12.15
kernel = 6.12.30
kernel = 6.12.43
kernel = 6.12.63
kernel = 6.12.74
kernel = 6.12.77
kernel-debug-core = 6.12.15
kernel-debug-core = 6.12.30
kernel-debug-core = 6.12.43
kernel-debug-core = 6.12.63
kernel-debug-core = 6.12.74
kernel-debug-core = 6.12.77
=== kernel-clk6.12-debug-debuginfo-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-debuginfo = 6.12.15
kernel-debug-debuginfo = 6.12.30
kernel-debug-debuginfo = 6.12.43
kernel-debug-debuginfo = 6.12.63
kernel-debug-debuginfo = 6.12.74
kernel-debug-debuginfo = 6.12.77
=== kernel-clk6.12-debug-devel-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-devel = 6.12.15
kernel-debug-devel = 6.12.30
kernel-debug-devel = 6.12.43
kernel-debug-devel = 6.12.63
kernel-debug-devel = 6.12.74
kernel-debug-devel = 6.12.77
=== kernel-clk6.12-debug-devel-matched-6.12.78-1.1.el9.x86_64.rpm ===
=== kernel-clk6.12-debuginfo-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debuginfo = 6.12.15
kernel-debuginfo = 6.12.30
kernel-debuginfo = 6.12.43
kernel-debuginfo = 6.12.63
kernel-debuginfo = 6.12.74
kernel-debuginfo = 6.12.77
=== kernel-clk6.12-debuginfo-common-x86_64-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debuginfo-common-x86_64 = 6.12.15
kernel-debuginfo-common-x86_64 = 6.12.30
kernel-debuginfo-common-x86_64 = 6.12.43
kernel-debuginfo-common-x86_64 = 6.12.63
kernel-debuginfo-common-x86_64 = 6.12.74
kernel-debuginfo-common-x86_64 = 6.12.77
=== kernel-clk6.12-debug-modules-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-modules = 6.12.15
kernel-debug-modules = 6.12.30
kernel-debug-modules = 6.12.43
kernel-debug-modules = 6.12.63
kernel-debug-modules = 6.12.74
kernel-debug-modules = 6.12.77
=== kernel-clk6.12-debug-modules-core-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-modules-core = 6.12.15
kernel-debug-modules-core = 6.12.30
kernel-debug-modules-core = 6.12.43
kernel-debug-modules-core = 6.12.63
kernel-debug-modules-core = 6.12.74
kernel-debug-modules-core = 6.12.77
=== kernel-clk6.12-debug-modules-extra-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-modules-extra = 6.12.15
kernel-debug-modules-extra = 6.12.30
kernel-debug-modules-extra = 6.12.43
kernel-debug-modules-extra = 6.12.63
kernel-debug-modules-extra = 6.12.74
kernel-debug-modules-extra = 6.12.77
=== kernel-clk6.12-debug-modules-internal-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-modules-internal = 6.12.15
kernel-debug-modules-internal = 6.12.30
kernel-debug-modules-internal = 6.12.43
kernel-debug-modules-internal = 6.12.63
kernel-debug-modules-internal = 6.12.74
kernel-debug-modules-internal = 6.12.77
=== kernel-clk6.12-debug-modules-partner-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-modules-partner = 6.12.15
kernel-debug-modules-partner = 6.12.30
kernel-debug-modules-partner = 6.12.43
kernel-debug-modules-partner = 6.12.63
kernel-debug-modules-partner = 6.12.74
kernel-debug-modules-partner = 6.12.77
=== kernel-clk6.12-debug-uki-virt-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-uki-virt = 6.12.15
kernel-debug-uki-virt = 6.12.30
kernel-debug-uki-virt = 6.12.43
kernel-debug-uki-virt = 6.12.63
kernel-debug-uki-virt = 6.12.74
kernel-debug-uki-virt = 6.12.77
=== kernel-clk6.12-debug-uki-virt-addons-6.12.78-1.1.el9.x86_64.rpm ===
kernel-debug-uki-virt-addons = 6.12.15
kernel-debug-uki-virt-addons = 6.12.30
kernel-debug-uki-virt-addons = 6.12.43
kernel-debug-uki-virt-addons = 6.12.63
kernel-debug-uki-virt-addons = 6.12.74
kernel-debug-uki-virt-addons = 6.12.77
=== kernel-clk6.12-default-6.12.78-1.1.el9.x86_64.rpm ===
=== kernel-clk6.12-devel-6.12.78-1.1.el9.x86_64.rpm ===
kernel-devel = 6.12.15
kernel-devel = 6.12.30
kernel-devel = 6.12.43
kernel-devel = 6.12.63
kernel-devel = 6.12.74
kernel-devel = 6.12.77
=== kernel-clk6.12-devel-matched-6.12.78-1.1.el9.x86_64.rpm ===
=== kernel-clk6.12-headers-6.12.78-1.1.el9.x86_64.rpm ===
kernel-headers = 6.12.15
kernel-headers = 6.12.30
kernel-headers = 6.12.43
kernel-headers = 6.12.63
kernel-headers = 6.12.74
kernel-headers = 6.12.77
=== kernel-clk6.12-ipaclones-internal-6.12.78-1.1.el9.x86_64.rpm ===
kernel-ipaclones-internal = 6.12.15
kernel-ipaclones-internal = 6.12.30
kernel-ipaclones-internal = 6.12.43
kernel-ipaclones-internal = 6.12.63
kernel-ipaclones-internal = 6.12.74
kernel-ipaclones-internal = 6.12.77
=== kernel-clk6.12-modules-6.12.78-1.1.el9.x86_64.rpm ===
kernel-modules = 6.12.15
kernel-modules = 6.12.30
kernel-modules = 6.12.43
kernel-modules = 6.12.63
kernel-modules = 6.12.74
kernel-modules = 6.12.77
=== kernel-clk6.12-modules-core-6.12.78-1.1.el9.x86_64.rpm ===
kernel-modules-core = 6.12.15
kernel-modules-core = 6.12.30
kernel-modules-core = 6.12.43
kernel-modules-core = 6.12.63
kernel-modules-core = 6.12.74
kernel-modules-core = 6.12.77
=== kernel-clk6.12-modules-extra-6.12.78-1.1.el9.x86_64.rpm ===
kernel-modules-extra = 6.12.15
kernel-modules-extra = 6.12.30
kernel-modules-extra = 6.12.43
kernel-modules-extra = 6.12.63
kernel-modules-extra = 6.12.74
kernel-modules-extra = 6.12.77
=== kernel-clk6.12-modules-internal-6.12.78-1.1.el9.x86_64.rpm ===
kernel-modules-internal = 6.12.15
kernel-modules-internal = 6.12.30
kernel-modules-internal = 6.12.43
kernel-modules-internal = 6.12.63
kernel-modules-internal = 6.12.74
kernel-modules-internal = 6.12.77
=== kernel-clk6.12-modules-partner-6.12.78-1.1.el9.x86_64.rpm ===
kernel-modules-partner = 6.12.15
kernel-modules-partner = 6.12.30
kernel-modules-partner = 6.12.43
kernel-modules-partner = 6.12.63
kernel-modules-partner = 6.12.74
kernel-modules-partner = 6.12.77
=== kernel-clk6.12-selftests-internal-6.12.78-1.1.el9.x86_64.rpm ===
kernel-selftests-internal = 6.12.15
kernel-selftests-internal = 6.12.30
kernel-selftests-internal = 6.12.43
kernel-selftests-internal = 6.12.63
kernel-selftests-internal = 6.12.74
kernel-selftests-internal = 6.12.77
=== kernel-clk6.12-tools-6.12.78-1.1.el9.x86_64.rpm ===
kernel-tools = 6.12.15
kernel-tools = 6.12.30
kernel-tools = 6.12.43
kernel-tools = 6.12.63
kernel-tools = 6.12.74
kernel-tools = 6.12.77
=== kernel-clk6.12-tools-debuginfo-6.12.78-1.1.el9.x86_64.rpm ===
kernel-tools-debuginfo = 6.12.15
kernel-tools-debuginfo = 6.12.30
kernel-tools-debuginfo = 6.12.43
kernel-tools-debuginfo = 6.12.63
kernel-tools-debuginfo = 6.12.74
kernel-tools-debuginfo = 6.12.77
=== kernel-clk6.12-tools-libs-6.12.78-1.1.el9.x86_64.rpm ===
kernel-tools-libs = 6.12.15
kernel-tools-libs = 6.12.30
kernel-tools-libs = 6.12.43
kernel-tools-libs = 6.12.63
kernel-tools-libs = 6.12.74
kernel-tools-libs = 6.12.77
=== kernel-clk6.12-tools-libs-devel-6.12.78-1.1.el9.x86_64.rpm ===
kernel-tools-libs-devel = 6.12.15
kernel-tools-libs-devel = 6.12.30
kernel-tools-libs-devel = 6.12.43
kernel-tools-libs-devel = 6.12.63
kernel-tools-libs-devel = 6.12.74
kernel-tools-libs-devel = 6.12.77
=== kernel-clk6.12-uki-virt-6.12.78-1.1.el9.x86_64.rpm ===
kernel-uki-virt = 6.12.15
kernel-uki-virt = 6.12.30
kernel-uki-virt = 6.12.43
kernel-uki-virt = 6.12.63
kernel-uki-virt = 6.12.74
kernel-uki-virt = 6.12.77
=== kernel-clk6.12-uki-virt-addons-6.12.78-1.1.el9.x86_64.rpm ===
kernel-uki-virt-addons = 6.12.15
kernel-uki-virt-addons = 6.12.30
kernel-uki-virt-addons = 6.12.43
kernel-uki-virt-addons = 6.12.63
kernel-uki-virt-addons = 6.12.74
kernel-uki-virt-addons = 6.12.77
=== libperf-clk6.12-6.12.78-1.1.el9.x86_64.rpm ===
libperf = 6.12.15
libperf = 6.12.30
libperf = 6.12.43
libperf = 6.12.63
libperf = 6.12.74
libperf = 6.12.77
=== libperf-clk6.12-debuginfo-6.12.78-1.1.el9.x86_64.rpm ===
libperf-debuginfo = 6.12.15
libperf-debuginfo = 6.12.30
libperf-debuginfo = 6.12.43
libperf-debuginfo = 6.12.63
libperf-debuginfo = 6.12.74
libperf-debuginfo = 6.12.77
=== libperf-clk6.12-devel-6.12.78-1.1.el9.x86_64.rpm ===
libperf-devel = 6.12.15
libperf-devel = 6.12.30
libperf-devel = 6.12.43
libperf-devel = 6.12.63
libperf-devel = 6.12.74
libperf-devel = 6.12.77
=== perf-clk6.12-6.12.78-1.1.el9.x86_64.rpm ===
perf = 6.12.15
perf = 6.12.30
perf = 6.12.43
perf = 6.12.63
perf = 6.12.74
perf = 6.12.77
=== perf-clk6.12-debuginfo-6.12.78-1.1.el9.x86_64.rpm ===
perf-debuginfo = 6.12.15
perf-debuginfo = 6.12.30
perf-debuginfo = 6.12.43
perf-debuginfo = 6.12.63
perf-debuginfo = 6.12.74
perf-debuginfo = 6.12.77
=== python3-perf-clk6.12-6.12.78-1.1.el9.x86_64.rpm ===
python3-perf = 6.12.15
python3-perf = 6.12.30
python3-perf = 6.12.43
python3-perf = 6.12.63
python3-perf = 6.12.74
python3-perf = 6.12.77
=== python3-perf-clk6.12-debuginfo-6.12.78-1.1.el9.x86_64.rpm ===
python3-perf-debuginfo = 6.12.15
python3-perf-debuginfo = 6.12.30
python3-perf-debuginfo = 6.12.43
python3-perf-debuginfo = 6.12.63
python3-perf-debuginfo = 6.12.74
python3-perf-debuginfo = 6.12.77
=== rtla-clk6.12-6.12.78-1.1.el9.x86_64.rpm ===
rtla = 6.12.15
rtla = 6.12.30
rtla = 6.12.43
rtla = 6.12.63
rtla = 6.12.74
rtla = 6.12.77
=== rv-clk6.12-6.12.78-1.1.el9.x86_64.rpm ===
rv = 6.12.15
rv = 6.12.30
rv = 6.12.43
rv = 6.12.63
rv = 6.12.74
rv = 6.12.77
There was a problem hiding this comment.
Sorry, I should have been clearer. We can have, at most, one obsolete for any particular package/version combination, otherwise dnf throws up its hands and complains that it doesn't know which package to obsolete with. So, in the above, the kernel-clk6.12 package should obsolete the old kernel, while kernel-clk6.12-core should obsolete the old kernel-core. kernel-clk6.12-debug should obsolete kernel-debug and kernel-clk6.12-debug-core should obsolete kernel-debug-core.
Please make sure each package is only obsoleted by one package here.
There was a problem hiding this comment.
Ok, I think this looks good. I'm assuming you've tested by having those kernels on a system and doing a DNF update.
Do note that this will remove all of our older kernels, rather than keeping 3 of them around. This might be a surprise for those using this kernel.
And, as I'm thinking about it, it might be worth having kernel-clk6.12-default Obsoleting the base kernel packages. This is making the assumption that anyone with our old non-namespaced kernels installed wants them to continue being the default when doing updates. Otherwise, if they still had some old stock Rocky kernels installed, updates to those would become the default moving forward.
There was a problem hiding this comment.
Ok, I think this looks good. I'm assuming you've tested by having those kernels on a system and doing a DNF update.
Yea, it does what I expect. If I have a kernel-6.12.74 installed and a repo with kernel-clk6.12 in it, a 'dnf upgrade' gets me kernel-clk6.12 packages.
Do note that this will remove all of our older kernels, rather than keeping 3 of them around. This might be a surprise for those using this kernel.
I haven't had more than one 6.12 kernel installed, so I guess I didn't notice this. I can test to confirm. I'm not sure how to get around this. Also, maybe its ok for this one paradigm change (non-namespaced 6.12 -> namespaced 6.12) for that to happen? I'm not sure
And, as I'm thinking about it, it might be worth having kernel-clk6.12-default Obsoleting the base kernel packages. This is making the assumption that anyone with our old non-namespaced kernels installed wants them to continue being the default when doing updates. Otherwise, if they still had some old stock Rocky kernels installed, updates to those would become the default moving forward.
So the scenario you are thinking about is:
- User has kernel-6.12.77 installed
- User also has kernel-5.14.0 installed
- They upgrade, kernel-6.12.77 is replaced by kernel-clk6.12
- They upgrade and a newer kernel-5.14.0 package is available, and since /etc/sysconfig/kernel still says DEFAULT_KERNEL=kernel-core the newer 5.14.0 is going to be the default.
To ensure that the 6.12 kernel continues to be the default (via future kernel-clk6.12 updates) we would make kernel-clk6.12-default obsolete kernel-6.12.* so it gets installed on upgrade AND sets DEFAULT_KERNEL=kernel-clk6.12-core
That makes sense to me, but just to clarify, we'd be MOVING the obsoletes of the base kernel package from kernel-clk6.12 to kernel-clk6.12-default, right? they can't both obsolete the same thing.
There was a problem hiding this comment.
Do note that this will remove all of our older kernels, rather than keeping 3 of them around. This might be a surprise for those using this kernel.
I haven't had more than one 6.12 kernel installed, so I guess I didn't notice this. I can test to confirm. I'm not sure how to get around this. Also, maybe its ok for this one paradigm change (non-namespaced 6.12 -> namespaced 6.12) for that to happen? I'm not sure
There is no easy way to get around it, but I think it's ok. At the very least it needs to be documented.
And, as I'm thinking about it, it might be worth having kernel-clk6.12-default Obsoleting the base kernel packages. This is making the assumption that anyone with our old non-namespaced kernels installed wants them to continue being the default when doing updates. Otherwise, if they still had some old stock Rocky kernels installed, updates to those would become the default moving forward.
So the scenario you are thinking about is:
* User has kernel-6.12.77 installed * User also has kernel-5.14.0 installed * They upgrade, kernel-6.12.77 is replaced by kernel-clk6.12 * They upgrade and a newer kernel-5.14.0 package is available, and since /etc/sysconfig/kernel still says DEFAULT_KERNEL=kernel-core the newer 5.14.0 is going to be the default.To ensure that the 6.12 kernel continues to be the default (via future kernel-clk6.12 updates) we would make kernel-clk6.12-default obsolete kernel-6.12.* so it gets installed on upgrade AND sets DEFAULT_KERNEL=kernel-clk6.12-core
That makes sense to me, but just to clarify, we'd be MOVING the obsoletes of the base kernel package from kernel-clk6.12 to kernel-clk6.12-default, right? they can't both obsolete the same thing.
Yes, your summary is correct, and, yes, we'd move the obsoletes because we can't have multiple packages obsoleting the same thing.
There was a problem hiding this comment.
Ok, moved the obsoletes to kernel-clk6.12-default BUT...
I apparently lied when I said the 'dnf update' path worked. I cannot get that to work (with the obsoletes in kernel-clk6.12 or kernel-clk6.12-default). I swear it worked before but maybe my AI was just telling me what I wanted to hear.
Adds Obsoletes tags for kernel*-uki-virt and kernel*-uki-virt-addons packages to ensure proper upgrade path from versions 6.12.15-77.
Adds Obsoletes tags for kernel-tools-debuginfo to ensure proper upgrade path from versions 6.12.15-77.
Adds Obsoletes tags for kernel*-ipaclones-internal to ensure proper upgrade path from versions 6.12.15-77.
Fixes issue where both kernel-core and kernel-debug-core were obsoleting
the 'kernel' metapackage, causing DNF conflicts.
Changes:
- Removed 'Obsoletes: kernel = ...' from kernel_reqprovconf macro
- Added 'Obsoletes: kernel = ...' to base metapackage (kernel-clk6.12)
- Added 'Obsoletes: kernel-%{1} = ...' to kernel_meta_package macro
for variants (kernel-clk6.12-debug, etc.)
Now each old package is obsoleted by exactly one new package:
- kernel → kernel-clk6.12
- kernel-core → kernel-clk6.12-core
- kernel-debug → kernel-clk6.12-debug
- kernel-debug-core → kernel-clk6.12-debug-core
Move 'Obsoletes: kernel = ...' from the base metapackage to the kernel-clk6.12-default package. This ensures that: 1. Users upgrading from old kernel-6.12.* packages will automatically get kernel-clk6.12-default installed (via Obsoletes) 2. kernel-clk6.12-default takes ownership of /etc/sysconfig/kernel to ensure kernel-clk6.12 variants remain the default kernel on the system 3. Without this, users with old CIQ kernels AND stock Rocky kernels might end up with stock Rocky kernels becoming the default after upgrade The kernel-clk6.12-debug metapackage still keeps its Obsoletes since there is no kernel-clk6.12-debug-default package.
This PR brings CLK 6.12 in sync with CLK 6.18 with respect to namespacing
for Rocky 9.6, and exports GRUB_NON_STANDARD_KERNEL to prevent boot menu hijacking. Also fixes Provides/Requires to use %{name} instead of hardcoded "kernel".