fix(iso): render isolinux flavour before validation

This commit is contained in:
Mikhail Chusavitin
2026-09-01 15:22:31 +03:00
parent 0a6ca8ba0f
commit 642e68631d
3 changed files with 64 additions and 20 deletions
+31 -12
View File
@@ -57,21 +57,40 @@ if render_bootloader_template "$literal_template" "$literal_output" \
echo "ERROR: bootloader renderer accepted a missing required placeholder" >&2
exit 1
fi
if render_bootloader_template "$BUILDER_DIR/config/bootloaders/isolinux/live.cfg.in" "$literal_output" \
'13.0-test' '@LINUX@' '/live/vmlinuz' 'boot=live' '@INITRD@' '/live/initrd.img' >/dev/null 2>&1; then
echo "ERROR: isolinux renderer accepted a missing flavour" >&2
exit 1
fi
live_build_config_root="$TEST_ROOT/live-build-config"
mkdir -p "$live_build_config_root/config"
printf '%s\n' \
'LB_BOOTAPPEND_LIVE="boot=live live-media-label=EASY_BEE_TEST"' > "$live_build_config_root/config/binary"
printf '%s\n' \
'LB_LINUX_FLAVOURS_WITH_ARCH="amd64:amd64 686-pae:i386"' > "$live_build_config_root/config/chroot"
load_live_build_boot_config "$live_build_config_root"
if [ "$live_build_append" != 'boot=live live-media-label=EASY_BEE_TEST' ] || \
[ "$live_build_flavour" != amd64 ]; then
echo "ERROR: failed to load the default live-build boot settings" >&2
exit 1
fi
rendered_grub="$TEST_ROOT/grub.cfg"
rendered_isolinux="$TEST_ROOT/live.cfg"
sed \
-e 's#@APPEND_LIVE@#boot=live live-media-label=EASY_BEE_TEST#g' \
-e 's#@KERNEL_LIVE@#/live/vmlinuz#g' \
-e 's#@INITRD_LIVE@#/live/initrd.img#g' \
-e 's#@VERSION@#13.0-test#g' \
"$BUILDER_DIR/config/bootloaders/grub-efi/grub.cfg" > "$rendered_grub"
sed \
-e 's#@APPEND_LIVE@#boot=live live-media-label=EASY_BEE_TEST#g' \
-e 's#@LINUX@#/live/vmlinuz#g' \
-e 's#@INITRD@#/live/initrd.img#g' \
-e 's#@VERSION@#13.0-test#g' \
"$BUILDER_DIR/config/bootloaders/isolinux/live.cfg.in" > "$rendered_isolinux"
write_canonical_grub_cfg "$rendered_grub" /live/vmlinuz \
'boot=live live-media-label=EASY_BEE_TEST' /live/initrd.img
write_canonical_isolinux_cfg "$rendered_isolinux" /live/vmlinuz /live/initrd.img \
'boot=live live-media-label=EASY_BEE_TEST' "$live_build_flavour"
if grep -Eq '@[A-Z][A-Z_]*@' "$rendered_grub" "$rendered_isolinux"; then
echo "ERROR: canonical bootloader renderer left an unresolved placeholder" >&2
exit 1
fi
if ! grep -q '^label live-amd64-normal$' "$rendered_isolinux"; then
echo "ERROR: canonical isolinux renderer did not apply the live-build flavour" >&2
exit 1
fi
validate_live_cmdline_params "$rendered_grub" linux GRUB "$BEE_ISO_VOLUME"
validate_live_cmdline_params "$rendered_isolinux" append isolinux "$BEE_ISO_VOLUME"