From 28b9d9d6bf304586bb4ba3529e5294047f649b73 Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Sat, 8 Aug 2026 19:46:01 +0000 Subject: Kernel: T9181: stop re-reading data/defaults.toml during build build-kernel.sh parsed kernel_flavor out of defaults.toml itself via a brittle awk one-liner, even though build.py already has that value from its own defaults.toml read. Pass kernel_flavor down as an env var instead, so defaults.toml is read in exactly one place (build.py's main) and everything downstream flows through kernel-vars or explicit parameters. --- scripts/package-build/linux-kernel/build-kernel.sh | 7 ++++++- scripts/package-build/linux-kernel/build.py | 8 +++++--- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'scripts/package-build/linux-kernel') diff --git a/scripts/package-build/linux-kernel/build-kernel.sh b/scripts/package-build/linux-kernel/build-kernel.sh index a4a4fc3c..dea71aa9 100755 --- a/scripts/package-build/linux-kernel/build-kernel.sh +++ b/scripts/package-build/linux-kernel/build-kernel.sh @@ -22,8 +22,13 @@ if [ -d /usr/lib/ccache/ ]; then export PATH=/usr/lib/ccache:$PATH fi +if [ -z "${KERNEL_FLAVOR}" ]; then + echo "E: KERNEL_FLAVOR is not set, run via ./build.py so it can be passed from data/defaults.toml" + exit 1 +fi + KERNEL_VERSION=$(make kernelversion) -KERNEL_SUFFIX=-$(awk -F "= " '/kernel_flavor/ {print $2}' ../../../../data/defaults.toml | tr -d \") +KERNEL_SUFFIX=-${KERNEL_FLAVOR} echo "I: Generate Kernel config" ARCH=$(dpkg --print-architecture) diff --git a/scripts/package-build/linux-kernel/build.py b/scripts/package-build/linux-kernel/build.py index f2cc9145..46a6a2ba 100755 --- a/scripts/package-build/linux-kernel/build.py +++ b/scripts/package-build/linux-kernel/build.py @@ -137,7 +137,7 @@ def build_package(package: dict, dependencies: list, # Execute the build command if package['build_cmd'] == 'build_kernel': - source_dir = build_kernel(package['kernel_version']) + source_dir = build_kernel(package['kernel_version'], package['kernel_flavor']) if linux_kernel_tarball is not None: linux_kernel_tarball.clear() linux_kernel_tarball['package_name'] = package['name'] @@ -191,7 +191,7 @@ def merge_dicts(defaults, package): return {**defaults, **package} -def build_kernel(kernel_version) -> str: +def build_kernel(kernel_version, kernel_flavor) -> str: """Build the Linux kernel""" source_dir = 'linux' # Git source repo name - preferred over TAR if not os.path.exists(source_dir): @@ -205,7 +205,9 @@ def build_kernel(kernel_version) -> str: source_dir = f'linux-{kernel_version}' os.symlink(source_dir, 'linux') - run(['./build-kernel.sh'], check=True) + # kernel_flavor is only known here (merged from data/defaults.toml); pass it down + # via the environment so build-kernel.sh doesn't need to re-read defaults.toml itself. + run(['./build-kernel.sh'], check=True, env={**os.environ, 'KERNEL_FLAVOR': kernel_flavor}) return(source_dir) -- cgit v1.2.3