Skip to content

CLK 6.12 Namespacing#1172

Open
bmastbergen wants to merge 13 commits intociq-6.12.yfrom
{bmastbergen}_ciq-6.12.y-namespacing
Open

CLK 6.12 Namespacing#1172
bmastbergen wants to merge 13 commits intociq-6.12.yfrom
{bmastbergen}_ciq-6.12.y-namespacing

Conversation

@bmastbergen
Copy link
Copy Markdown
Collaborator

Continuation of PR #1065 which got automatically closed because ciq-6.12.y got updated.

This PR brings CLK 6.12 in sync with CLK 6.18 with respect to namespacing

  • Introduces the kernel-clk6.12 package name with %{pkg_suffix} macro. Renames all tool packages (perf, libperf, rtla, rv, etc.) with the clk6.12 suffix. Adds Provides/Conflicts tags for non-parallel installable packages (headers, tools, doc) to prevent conflicts with stock Rocky packages while satisfying their dependencies.
  • Switches Module.symvers compression from xz to gzip to align with upstream kernel spec. Fixes ghost file permissions from 0644 to 0600.
  • Injects +clk6.12 into KVERREL and EXTRAVERSION so running kernels display their CLK identity in uname output (e.g., 6.12.78-1.1.el9.x86_64+clk6.12).
  • Sync spec changes from 6.18 branch - Consolidates version defines, reworks the -default package with proper scriptlets, converts tools to short-form naming, bundles bindgen-cli
    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".

The changes to add generic kernel-headers and kernel-devel Provides is not currently in 6.18, but a PR exists to add them to 6.18 as well: #1155

bmastbergen and others added 11 commits May 1, 2026 15:11
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.
Adds 'Provides: kernel = version' to base package for compatibility
with packages depending on generic kernel capability.
Add versioned Provides for kernel-headers, kernel-devel, and
kernel-devel-<arch> so the namespaced CLK packages satisfy the same
dependency capabilities as stock Rocky kernel packages.

Remove Conflicts on kernel-headers and kernel-cross-headers since the
namespaced packages now provide those capabilities directly.
Comment thread ciq/SOURCES/merge.py
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this was an accident on no longer being a stub ... its still commented out in the SPEC as well.

Comment thread ciq/SPECS/kernel-clk6.12.spec Outdated
Comment thread ciq/SPECS/kernel-clk6.12.spec Outdated
Comment thread ciq/SPECS/kernel-clk6.12.spec Outdated
Comment thread ciq/SOURCES/bundle_bindgen.sh
Comment thread ciq/SOURCES/bundle_bindgen.sh Outdated
Comment thread ciq/SOURCES/bundle_bindgen.sh Outdated
@PlaidCat PlaidCat requested review from a team, ajorgens-ciq and jdieter May 4, 2026 18:23
…ons, ipaclones

Replace remaining hardcoded 'kernel' references with %{name} in:
- kernel_kvm_package: Summary, Requires, Provides, %description
- uki-virt-addons: Requires
- kernel_ipaclones_package: Summary
- Add set -e so the script exits on any command failure
- Add -f (--fail) to curl so HTTP errors are caught
- Verify the downloaded crate against the known SHA256 from crates.io
  before extracting
@bmastbergen bmastbergen requested a review from PlaidCat May 4, 2026 19:40
Copy link
Copy Markdown
Collaborator

@PlaidCat PlaidCat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

Provides: kernel-headers = %{specversion}-%{release}
Obsoletes: kernel-headers < %{specversion}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably Conflicts: kernel-headers

Provides: kernel-cross-headers = %{specversion}-%{release}
Obsoletes: kernel-cross-headers < %{specversion}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably Conflicts: kernel-cross-headers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants