diff --git a/iso/builder/build.sh b/iso/builder/build.sh index fce5b46..90ac606 100755 --- a/iso/builder/build.sh +++ b/iso/builder/build.sh @@ -658,6 +658,21 @@ extract_live_grub_entry() { return 0 } +load_live_build_append() { + lb_dir="$1" + binary_cfg="$lb_dir/config/binary" + [ -f "$binary_cfg" ] || return 1 + + # config/binary is generated by live-build and contains shell variable + # assignments such as LB_BOOTAPPEND_LIVE="boot=live ...". + # shellcheck disable=SC1090 + . "$binary_cfg" + + [ -n "${LB_BOOTAPPEND_LIVE:-}" ] || return 1 + live_build_append="$LB_BOOTAPPEND_LIVE" + return 0 +} + extract_live_isolinux_entry() { cfg="$1" isolinux_linux="$(awk '/^[[:space:]]*linux[[:space:]]+\/live\// { print; exit }' "$cfg")" @@ -799,13 +814,18 @@ enforce_live_build_bootloader_assets() { grub_dir="$lb_dir/binary/boot/grub" isolinux_cfg="$lb_dir/binary/isolinux/live.cfg" + if ! load_live_build_append "$lb_dir"; then + echo "bootloader sync: WARNING: could not load LB_BOOTAPPEND_LIVE from $lb_dir/config/binary" >&2 + live_build_append="" + fi + if [ -f "$grub_cfg" ]; then if extract_live_grub_entry "$grub_cfg"; then mkdir -p "$grub_dir/live-theme" cp "${BUILDER_DIR}/config/bootloaders/grub-efi/config.cfg" "$grub_dir/config.cfg" cp "${BUILDER_DIR}/config/bootloaders/grub-efi/theme.cfg" "$grub_dir/theme.cfg" cp -R "${BUILDER_DIR}/config/bootloaders/grub-efi/live-theme/." "$grub_dir/live-theme/" - write_canonical_grub_cfg "$grub_cfg" "$grub_kernel" "$grub_append" "$grub_initrd" + write_canonical_grub_cfg "$grub_cfg" "$grub_kernel" "${live_build_append:-$grub_append}" "$grub_initrd" echo "bootloader sync: rewrote binary/boot/grub/grub.cfg with canonical EASY-BEE menu" else echo "bootloader sync: WARNING: could not extract live entry from $grub_cfg" >&2 @@ -814,7 +834,7 @@ enforce_live_build_bootloader_assets() { if [ -f "$isolinux_cfg" ]; then if extract_live_isolinux_entry "$isolinux_cfg"; then - write_canonical_isolinux_cfg "$isolinux_cfg" "$isolinux_kernel" "$isolinux_initrd_path" "$isolinux_append" + write_canonical_isolinux_cfg "$isolinux_cfg" "$isolinux_kernel" "$isolinux_initrd_path" "${live_build_append:-$isolinux_append}" echo "bootloader sync: rewrote binary/isolinux/live.cfg with canonical EASY-BEE menu" else echo "bootloader sync: WARNING: could not extract live entry from $isolinux_cfg" >&2