Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions base/comps/kernel-headers/kernel-headers.comp.toml
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
[components.kernel-headers]
# Kernel-headers using Fedora spec with overlays for Azure Linux 6.18.
# Fedora's spec expects a pre-built headers tarball. These overlays adapt it to
# use Azure Linux kernel source and generate headers during build.
spec = { type = "upstream" }
# Azure Linux maintains kernel-headers as a local spec (migrated away from the
# azldev TOML-overlay-on-Fedora-upstream approach) so it can track the local
# kernel spec, share its version/release scheme, and generate headers directly
# from the AZL kernel source (Fedora's spec expects a pre-built headers
# tarball). Edit kernel-headers.spec directly; AZL-specific changes are marked
# with "AZL:" comments.
spec = { type = "local", path = "kernel-headers.spec" }

# Manual release calculation required because the spec uses %{specrelease} macro
# Release: %{specrelease}
# The spec uses %{specrelease} (kextraversion.azl_pkgrelease.dist) which the
# auto-calculator cannot parse. Release is managed manually: bump azl_pkgrelease
# in kernel-headers.spec when rebuilding without a version change. The
# %changelog is hand-curated inline in the spec (matches base/comps/kernel).
release = { calculation = "manual" }
Comment thread
ddstreetmicrosoft marked this conversation as resolved.

# Version updates: Fedora -> Azure Linux 6.18.31.1
# Uses 3-part version (6.18.31) + kextraversion (1) scheme matching kernel.
[components.kernel-headers.build.defines]
# RPM release number for the Azure Linux kernel-headers package
azl_pkgrelease = "1"
# 4th version component from the AZL kernel source (6.18.31.1).
kextraversion = "1"

# Azure Linux kernel source tarball (rolling-lts/azl4). Same tarball as
# base/comps/kernel; kept as a separate declaration so kernel-headers builds
# stand-alone.
[[components.kernel-headers.source-files]]
filename = "kernel-6.18.31.1.tar.gz"
hash = "1bf684812ff3fc38974dc99b3e2309cb46dc5af93ac794e79a4a4f3dd17debfadb14510aeaaa7fa2d4c6254876a9f8bc67b900a1951c8dda5d94e5f5028a7557"
filename = "kernel-6.18.39.1.tar.gz"
hash = "cd70c68662ae5fca906a45d2feae1e4cdaed63b0427856f46cbfa6398f2e4b32b6a233f05ea49b359abf9119b0644177637b9638ec773b1d26e8725db042e0c5"
hash-type = "SHA512"
origin = { type = "download", uri = "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/azl4/6.18.31.1.tar.gz" }
origin = { type = "download", uri = "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/azl4/6.18.39.1.tar.gz" }
129 changes: 129 additions & 0 deletions base/comps/kernel-headers/kernel-headers.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Azure Linux local kernel-headers spec.
#
# This is a maintained local spec (migrated from the previous azldev TOML
# overlay approach). Edit this file directly. Azure Linux customizations are
# marked with "AZL:" comments throughout.
#
# The build tracks kernel.spec: same source tarball, same version scheme
# (%{specversion}.%{kextraversion}), same manual release bump discipline.
# When rebuilding without a version change, bump azl_pkgrelease.

# For a stable, released kernel, released_kernel should be 1. For rawhide
# and/or a kernel built from an rc or git snapshot, released_kernel should
# be 0.
%global released_kernel 1

# AZL: RPM release counter. Bump for rebuilds without a version change.
%define azl_pkgrelease 1

Choose a reason for hiding this comment

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

suggestion(non-blocking):
if i'm reading both this and the kernel spec files correctly, this is identical to upstream's pkgrelease macro (and in the kernel spec, pkgrelease is simply set to %{azl_pkgrelease}).

To clarify this (and in the kernel spec), can you add a sentence to this macro's comment saying something like "This corresponds to upstream's %{pkgrelease} macro, and we use it in the %{specrelease} macro instead of a hardcoded value".
Or if you changed our macro to simply be pkgrelease then it would be easy to just state "we use this in the %{specrelease} macro instead of a hardcoded value"

also, another minor suggestion, i feel like the ordering of this macro and %kextraversion macro should be swapped, because %kextraversion is the "more significant" digit in the %specrelease macro. What do you think about moving the %azl_pkgrelease define to below the %kextraversion define?

# AZL: 4th version component from the AZL kernel source (6.18.39.1). Flows
# into Version:, Release:, and the extracted source tree name.
%define kextraversion 1

Choose a reason for hiding this comment

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

suggestion(non-blocking):
The comment is confusing here, as well as having a redundant explicit version number. What do you think of this text instead:

Our kernel source comes to us with a non-standard 4-digit version number (e.g. A.B.C.D), so we remove the 4th number (e.g. D) and use the standard 3-digit version (e.g. A.B.C), and place the 4th number into the leading (dot-separated) position of our release value, in the %specrelease macro below. For example, if kernel source is version "A.B.C.D", our rpm (and uname -r) V-R would start with "A.B.C-D." plus the remaining release macro/arch values.


# define buildid .local

Choose a reason for hiding this comment

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

suggestion(non-blocking):
upstream's specrelease is (e.g.) 100%{?buildid}%{?dist}. The %buildid is clearly intended to be used by uncommenting this macro define, and I don't think there's any reason that we should diverge from upstream on this - what do you think about adding %{?buildid} back into our specrelease macro (here and in the kernel spec)?

%define specversion 6.18.39
%define tarfile_release 6.18.39
# This is needed to do merge window version magic
# This allows pkg_release to have configurable %%{?dist} tag
%define specrelease %{kextraversion}.%{azl_pkgrelease}%{?dist}

# This package doesn't contain any binary, thus no debuginfo package is needed
%global debug_package %{nil}

Name: kernel-headers
Summary: Header files for the Linux kernel for use by glibc
License: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-2-Clause) AND ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) AND ((GPL-2.0-only WITH Linux-syscall-note) OR CDDL-1.0) AND ((GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB) AND ((GPL-2.0-only WITH Linux-syscall-note) OR MIT) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR BSD-3-Clause) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR MIT) AND BSD-3-Clause AND (GPL-1.0-or-later WITH Linux-syscall-note) AND GPL-2.0-only AND (GPL-2.0-only WITH Linux-syscall-note) AND (GPL-2.0-or-later WITH Linux-syscall-note) AND (LGPL-2.0-or-later WITH Linux-syscall-note) AND (LGPL-2.1-only WITH Linux-syscall-note) AND (LGPL-2.1-or-later WITH Linux-syscall-note) AND MIT
URL: http://www.kernel.org/
Version: %{specversion}
Release: %{specrelease}
# AZL: Source0 points at the Azure Linux kernel tarball
# (rolling-lts/azl4/%{specversion}.%{kextraversion}); upstream Fedora ships a
# pre-built headers tarball, we generate headers from source instead (%build
# below).
Source0: kernel-%{specversion}.%{kextraversion}.tar.gz
Obsoletes: glibc-kernheaders < 3.0-46
Provides: glibc-kernheaders = 3.0-46
%if "0%{?variant}"
Obsoletes: kernel-headers < %{specversion}-%{specrelease}
Provides: kernel-headers = %{specversion}-%{specrelease}
%endif

# AZL: `make headers_install` is invoked directly, so a small build toolchain
# (make/gcc/perl/rsync) is enough — no full kernel build deps.
BuildRequires: make
BuildRequires: gcc
BuildRequires: perl
BuildRequires: rsync
%description
Kernel-headers includes the C header files that specify the interface
between the Linux kernel and userspace libraries and programs. The
header files define structures and constants that are needed for
building most standard programs and are also needed for rebuilding the
glibc package.

%package -n kernel-cross-headers
Summary: Header files for the Linux kernel for use by cross-glibc

%description -n kernel-cross-headers
Kernel-cross-headers includes the C header files that specify the interface
between the Linux kernel and userspace libraries and programs. The
header files define structures and constants that are needed for
building most standard programs and are also needed for rebuilding the
cross-glibc package.

%prep
%setup -q -n CBL-Mariner-Linux-Kernel-rolling-lts-azl4-%{specversion}.%{kextraversion}

# AZL: generate headers from the kernel source tree for both native and the
# opposite architecture (for kernel-cross-headers). Upstream Fedora consumes a
# pre-built headers tarball; we build them here instead.
%build

make mrproper
make headers_install INSTALL_HDR_PATH=headers-native

# Determine native kernel arch and cross-compile for the other
native_karch=$(uname -m | sed 's/x86_64/x86/;s/aarch64/arm64/')
for cross_arch in arm64 x86; do
[ "$cross_arch" = "$native_karch" ] && continue
make ARCH=$cross_arch headers_install INSTALL_HDR_PATH=headers-$cross_arch
done

# AZL: install natively-generated headers under %{_includedir}; cross-arch
# headers land under %{_prefix}/<arch>-linux-gnu/include for the
# kernel-cross-headers subpackage.
%install
native_karch=$(uname -m | sed 's/x86_64/x86/;s/aarch64/arm64/')

mkdir -p $RPM_BUILD_ROOT%{_includedir}
cp -rv headers-native/include/* $RPM_BUILD_ROOT%{_includedir}

for cross_arch in arm64 x86; do
[ "$cross_arch" = "$native_karch" ] && continue
cross_arch_includedir=$RPM_BUILD_ROOT%{_prefix}/${cross_arch}-linux-gnu/include
mkdir -p $cross_arch_includedir
cp -rv headers-$cross_arch/include/* $cross_arch_includedir
done

%files
%defattr(-,root,root)
%{_includedir}/*

%files -n kernel-cross-headers
%defattr(-,root,root)
%{_prefix}/*-linux-gnu/*

%changelog
* Wed Aug 19 2026 Rachel Menge <rachelmenge@microsoft.com> - 6.18.39-1.1
- feat(kernel): update kernel and kernel-headers to 6.18.39.1

* Mon May 18 2026 Rachel Menge <rachelmenge@microsoft.com> - 6.18.31-1.1
- feat(kernel): update kernel and kernel-headers to 6.18.31.1

* Thu May 14 2026 Rachel Menge <rachelmenge@microsoft.com> - 6.18.3-4
- feat(kernel-headers): update source to 6.18.29.1

* Wed May 13 2026 Daniel McIlvaney <damcilva@microsoft.com> - 6.18.3-3
- chore(locks): update kernel locks to work with azldev 9696597 (allow file replacement)

* Thu Apr 30 2026 Daniel McIlvaney <damcilva@microsoft.com> - 6.18.3-2
- feat: introduce deterministic commit resolution via Azure Linux lock file

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

5 changes: 4 additions & 1 deletion base/comps/kernel/6.18-aarch64-azl.config
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# arm64
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.18.31.1 Kernel Configuration
# Linux/arm64 6.18.39.1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 15.2.1 20260123 (Red Hat 15.2.1-7)"
CONFIG_CC_IS_GCC=y
Expand Down Expand Up @@ -461,6 +461,7 @@ CONFIG_ARM64_ERRATUM_2966298=y
CONFIG_ARM64_ERRATUM_3117295=y
CONFIG_ARM64_ERRATUM_3194386=y
CONFIG_ARM64_ERRATUM_4193714=y
CONFIG_ARM64_ERRATUM_4118414=y
CONFIG_CAVIUM_ERRATUM_22375=y
CONFIG_CAVIUM_ERRATUM_23144=y
CONFIG_CAVIUM_ERRATUM_23154=y
Expand Down Expand Up @@ -1411,6 +1412,7 @@ CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_TCP_CONG_DCTCP=m
CONFIG_TCP_CONG_CDG=m
CONFIG_TCP_CONG_BBR=m
CONFIG_TCP_CONG_BBR3=m
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
Expand Down Expand Up @@ -8492,6 +8494,7 @@ CONFIG_DRM_VIRTIO_GPU_KMS=y
CONFIG_DRM_MSM=m
CONFIG_DRM_MSM_GPU_STATE=y
# CONFIG_DRM_MSM_GPU_SUDO is not set
# CONFIG_DRM_MSM_VALIDATE_XML is not set
CONFIG_DRM_MSM_KMS=y
CONFIG_DRM_MSM_KMS_FBDEV=y
CONFIG_DRM_MSM_MDSS=y
Expand Down
3 changes: 2 additions & 1 deletion base/comps/kernel/6.18-x86_64-azl.config
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# x86_64
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 6.18.31.1 Kernel Configuration
# Linux/x86_64 6.18.39.1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 15.2.1 20260123 (Red Hat 15.2.1-7)"
CONFIG_CC_IS_GCC=y
Expand Down Expand Up @@ -1431,6 +1431,7 @@ CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_TCP_CONG_DCTCP=m
CONFIG_TCP_CONG_CDG=m
CONFIG_TCP_CONG_BBR=m
CONFIG_TCP_CONG_BBR3=m
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
Expand Down
6 changes: 3 additions & 3 deletions base/comps/kernel/kernel.comp.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ release = { calculation = "manual" }

# Azure Linux kernel source tarball (rolling-lts/azl4).
[[components.kernel.source-files]]
filename = "kernel-6.18.31.1.tar.gz"
hash = "1bf684812ff3fc38974dc99b3e2309cb46dc5af93ac794e79a4a4f3dd17debfadb14510aeaaa7fa2d4c6254876a9f8bc67b900a1951c8dda5d94e5f5028a7557"
filename = "kernel-6.18.39.1.tar.gz"
hash = "cd70c68662ae5fca906a45d2feae1e4cdaed63b0427856f46cbfa6398f2e4b32b6a233f05ea49b359abf9119b0644177637b9638ec773b1d26e8725db042e0c5"
hash-type = "SHA512"
origin = { type = "download", uri = "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/azl4/6.18.31.1.tar.gz" }
origin = { type = "download", uri = "https://github.com/microsoft/CBL-Mariner-Linux-Kernel/archive/rolling-lts/azl4/6.18.39.1.tar.gz" }
replace-upstream = true
replace-reason = "The local spec vendors the rendered sources manifest; this declaration supplies the download URI for the same pinned source and intentionally replaces the duplicate manifest entry."

Expand Down
12 changes: 9 additions & 3 deletions base/comps/kernel/kernel.spec
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
# Azure Linux kernel build defines. These were previously injected via the
# azldev-generated kernel.azl.macros file; they now live directly in the spec.
# When rebuilding without a version change, bump azl_pkgrelease (manual release).
%define azl_pkgrelease 16
# 4th version component from the AZL kernel source (6.18.31.1). Flows into
%define azl_pkgrelease 2
# 4th version component from the AZL kernel source (6.18.39.1). Flows into
# Release:, uname -r, and the /lib/modules/ path.
%define kextraversion 1
# NVIDIA open GPU kernel module version (built as a kmod subpackage).
Expand Down Expand Up @@ -189,7 +189,7 @@ Summary: The Linux kernel
# the --with-release option overrides this setting.)
%define debugbuildsenabled 1
# define buildid .local
%define specrpmversion 6.18.31
%define specrpmversion 6.18.39
%define specversion %{specrpmversion}
%define patchversion 6.18
%define pkgrelease %{azl_pkgrelease}
Expand Down Expand Up @@ -4609,6 +4609,12 @@ fi\

# AZL-KMOD-FILES-ANCHOR — do not remove (kmod overlays chain here)
%changelog
* Wed Aug 19 2026 Rachel Menge <rachelmenge@microsoft.com> - 6.18.39-1.2
- feat(kernel): enable TCP BBR3 congestion control as a module

* Wed Aug 19 2026 Rachel Menge <rachelmenge@microsoft.com> - 6.18.39-1.1
- feat(kernel): update kernel and kernel-headers to 6.18.39.1

* Tue Aug 11 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.18.31-1.16
- feat(kernel): enable USB RNDIS host driver (USB_NET_RNDIS_HOST) as module on x86_64

Expand Down
2 changes: 1 addition & 1 deletion base/comps/kernel/sources
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
SHA512 (linux-6.18.13.tar.xz) = a1d1b27391ed55ae2b17dd25841037d3399e4d87900eb098af45b5b6bcedc095626971d069ff7a9daf46b6379705f3b88076206ecac68600bd04a35e7872440b
SHA512 (kernel-abi-stablelists-6.18.13.tar.xz) = 69bbcdd86ae7999b19de306c29bc5cef442e309a8b033900c10a206a97d61b8b4e6d7c6baf6d356daf14e85766bd6a31120b54cfd1eb1c773450e44bae5d2d9b
SHA512 (kernel-kabi-dw-6.18.13.tar.xz) = 6473ea636d813e602a59d7332255c4b4597032501a2ed0507985800500451065618a0b6909663e3dc8db2b75c6f4ba10d498dbc41a3b42758cae38f30ca13115
SHA512 (kernel-6.18.31.1.tar.gz) = 1bf684812ff3fc38974dc99b3e2309cb46dc5af93ac794e79a4a4f3dd17debfadb14510aeaaa7fa2d4c6254876a9f8bc67b900a1951c8dda5d94e5f5028a7557
SHA512 (kernel-6.18.39.1.tar.gz) = cd70c68662ae5fca906a45d2feae1e4cdaed63b0427856f46cbfa6398f2e4b32b6a233f05ea49b359abf9119b0644177637b9638ec773b1d26e8725db042e0c5
SHA512 (open-gpu-kernel-modules-595.58.03.tar.gz) = a422b6935209d590f57fa6766f59bb207d9130f8a6777af9245c4ff8cd0f4c4ccef4602a0b26d543e1e8efba24241180992fdb749ea4e5d2aa5218a584b85101
Loading
Loading