Skip to content

Commit 28b9d9d

Browse files
committed
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.
1 parent 24f6ed6 commit 28b9d9d

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

scripts/package-build/linux-kernel/build-kernel.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,13 @@ if [ -d /usr/lib/ccache/ ]; then
2222
export PATH=/usr/lib/ccache:$PATH
2323
fi
2424

25+
if [ -z "${KERNEL_FLAVOR}" ]; then
26+
echo "E: KERNEL_FLAVOR is not set, run via ./build.py so it can be passed from data/defaults.toml"
27+
exit 1
28+
fi
29+
2530
KERNEL_VERSION=$(make kernelversion)
26-
KERNEL_SUFFIX=-$(awk -F "= " '/kernel_flavor/ {print $2}' ../../../../data/defaults.toml | tr -d \")
31+
KERNEL_SUFFIX=-${KERNEL_FLAVOR}
2732

2833
echo "I: Generate Kernel config"
2934
ARCH=$(dpkg --print-architecture)

scripts/package-build/linux-kernel/build.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ def build_package(package: dict, dependencies: list,
137137

138138
# Execute the build command
139139
if package['build_cmd'] == 'build_kernel':
140-
source_dir = build_kernel(package['kernel_version'])
140+
source_dir = build_kernel(package['kernel_version'], package['kernel_flavor'])
141141
if linux_kernel_tarball is not None:
142142
linux_kernel_tarball.clear()
143143
linux_kernel_tarball['package_name'] = package['name']
@@ -191,7 +191,7 @@ def merge_dicts(defaults, package):
191191
return {**defaults, **package}
192192

193193

194-
def build_kernel(kernel_version) -> str:
194+
def build_kernel(kernel_version, kernel_flavor) -> str:
195195
"""Build the Linux kernel"""
196196
source_dir = 'linux' # Git source repo name - preferred over TAR
197197
if not os.path.exists(source_dir):
@@ -205,7 +205,9 @@ def build_kernel(kernel_version) -> str:
205205
source_dir = f'linux-{kernel_version}'
206206
os.symlink(source_dir, 'linux')
207207

208-
run(['./build-kernel.sh'], check=True)
208+
# kernel_flavor is only known here (merged from data/defaults.toml); pass it down
209+
# via the environment so build-kernel.sh doesn't need to re-read defaults.toml itself.
210+
run(['./build-kernel.sh'], check=True, env={**os.environ, 'KERNEL_FLAVOR': kernel_flavor})
209211
return(source_dir)
210212

211213

0 commit comments

Comments
 (0)