summaryrefslogtreecommitdiff
path: root/scripts/package-build/linux-kernel
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-08-08 19:46:01 +0000
committerChristian Breunig <christian@breunig.cc>2026-08-08 22:39:56 +0200
commit28b9d9d6bf304586bb4ba3529e5294047f649b73 (patch)
treeefbc6ee071643456a14134ead2a172a4f61693a6 /scripts/package-build/linux-kernel
parent24f6ed6ee8fa009dd7e7fbf4db8c70ef5f6ef04b (diff)
downloadvyos-build-28b9d9d6bf304586bb4ba3529e5294047f649b73.tar.gz
vyos-build-28b9d9d6bf304586bb4ba3529e5294047f649b73.zip
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.
Diffstat (limited to 'scripts/package-build/linux-kernel')
-rwxr-xr-xscripts/package-build/linux-kernel/build-kernel.sh7
-rwxr-xr-xscripts/package-build/linux-kernel/build.py8
2 files changed, 11 insertions, 4 deletions
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)