From 9d1a983cc8fe12966d1a2c24a6ee0cfb419b3ce5 Mon Sep 17 00:00:00 2001 From: Adrian Gibanel Lopez Date: Mon, 18 Jan 2016 03:07:48 +0000 Subject: Added new multi bootloader helper functions * Added: functions/bootloaders.sh . This file adds bootloader functions that are heavily used in efi scenarios where a bootloader can act as a first or an extra bootloader. Since the introduction of the new switch: --bootloaders you can setup it like this: --bootloaders=syslinux,grub-efi . This means that syslinux is the first bootloader and grub-efi is the extra bootloader. * Added new bootloader functions: Check_Non_First_Bootloader and Check_Non_Extra_Bootloader. These functions let each one of the bootloaders abort the build because they cannot perform a role either as a first bootloader or as an extra bootloader. * Added bootloader functions: Check_First_Bootloader_Role, Check_Extra_Bootloader_Role and Check_Any_Bootloader_Role These functions let bootloaders to force their default role in a single line. At the same time many binary bootloaders were rewritten to make use of the new bootloader role functions explained above. These roles were enforced: binary_grub-legacy : First bootloader binary_grub-pc : Either first or extra bootloader binary_syslinux : Either first or extra bootloader If a bootloader is tried to be used in a role that it's not meant to be used then the build fails because that might lead to a non-bootable system. --- scripts/build/binary_grub-legacy | 17 +---------------- scripts/build/binary_grub-pc | 19 +------------------ scripts/build/binary_hdd | 8 ++++---- scripts/build/binary_iso | 2 +- scripts/build/binary_syslinux | 19 +------------------ 5 files changed, 8 insertions(+), 57 deletions(-) (limited to 'scripts') diff --git a/scripts/build/binary_grub-legacy b/scripts/build/binary_grub-legacy index f885c00cc..93d9b9e14 100755 --- a/scripts/build/binary_grub-legacy +++ b/scripts/build/binary_grub-legacy @@ -24,22 +24,7 @@ Arguments "${@}" Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source Set_defaults -FOUND_MYSELF="" -IFS="," -for BOOTLOADER in ${LB_BOOTLOADERS} -do - - case ${BOOTLOADER} in - "grub-legacy" ) - FOUND_MYSELF="True" - break ;; - esac - -done - -if [ -z ${FOUND_MYSELF} ] ; then - exit 0 -fi +Check_First_Bootloader_Role "grub-legacy" Echo_message "Begin installing grub-legacy..." diff --git a/scripts/build/binary_grub-pc b/scripts/build/binary_grub-pc index 1eae93a2a..9252f7acf 100755 --- a/scripts/build/binary_grub-pc +++ b/scripts/build/binary_grub-pc @@ -24,24 +24,7 @@ Arguments "${@}" Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source Set_defaults -FOUND_MYSELF="" -OLDIFS="$IFS" -IFS="," -for BOOTLOADER in ${LB_BOOTLOADERS} -do - - case ${BOOTLOADER} in - "grub-pc" ) - FOUND_MYSELF="True" - break ;; - esac - -done -IFS="$OLDIFS" - -if [ -z ${FOUND_MYSELF} ] ; then - exit 0 -fi +Check_Any_Bootloader_Role "grub-pc" Echo_message "Begin installing grub-pc..." diff --git a/scripts/build/binary_hdd b/scripts/build/binary_hdd index b45b2a900..400403c0a 100755 --- a/scripts/build/binary_hdd +++ b/scripts/build/binary_hdd @@ -67,7 +67,7 @@ do esac done -case ${LB_PRIMARY_BOOTLOADER} in +case ${LB_FIRST_BOOTLOADER} in syslinux) case ${LB_BINARY_FILESYSTEM} in fat*|ntfs) @@ -182,7 +182,7 @@ case "${LB_BUILD_WITH_CHROOT}" in Chroot chroot "parted -s ${FREELO} set 1 boot on" || true Chroot chroot "parted -s ${FREELO} set 1 lba off" || true - if [ "${LB_PRIMARY_BOOTLOADER}" = "syslinux" ] + if [ "${LB_FIRST_BOOTLOADER}" = "syslinux" ] then dd if=chroot/usr/lib/$(echo ${_BOOTLOADER} | tr [a-z] [A-Z])/mbr.bin of=${FREELO} bs=440 count=1 fi @@ -202,7 +202,7 @@ case "${LB_BUILD_WITH_CHROOT}" in parted -s "${FREELO}" set 1 boot on || true parted -s "${FREELO}" set 1 lba off || true - if [ "${LB_PRIMARY_BOOTLOADER}" = "syslinux" ] + if [ "${LB_FIRST_BOOTLOADER}" = "syslinux" ] then dd if=/usr/lib/$(echo ${_BOOTLOADER} | tr [a-z] [A-Z])/mbr.bin of=${FREELO} bs=440 count=1 fi @@ -268,7 +268,7 @@ cp -T ${CP_OPTIONS} binary/ chroot/binary.tmp FIXME() { -if [ "${LB_PRIMARY_BOOTLOADER}" = "grub" ] +if [ "${LB_FIRST_BOOTLOADER}" = "grub" ] then cat > chroot/grub.sh << EOF diff --git a/scripts/build/binary_iso b/scripts/build/binary_iso index 67dfc85a2..a390f61a4 100755 --- a/scripts/build/binary_iso +++ b/scripts/build/binary_iso @@ -149,7 +149,7 @@ esac # XORRISO_OPTIONS="${XORRISO_OPTIONS} -m ${XORRISO_EXCLUDE}" #fi -if [ "${LB_PRIMARY_BOOTLOADER}" = "grub-pc" ] +if [ "${LB_FIRST_BOOTLOADER}" = "grub-pc" ] then cat > binary.sh << EOF diff --git a/scripts/build/binary_syslinux b/scripts/build/binary_syslinux index 66c14a059..1a442d7a2 100755 --- a/scripts/build/binary_syslinux +++ b/scripts/build/binary_syslinux @@ -24,24 +24,7 @@ Arguments "${@}" Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source Set_defaults -FOUND_MYSELF="" -OLDIFS="$IFS" -IFS="," -for BOOTLOADER in ${LB_BOOTLOADERS} -do - - case ${BOOTLOADER} in - "syslinux" ) - FOUND_MYSELF="True" - break ;; - esac - -done -IFS="$OLDIFS" - -if [ -z ${FOUND_MYSELF} ] ; then - exit 0 -fi +Check_Any_Bootloader_Role "syslinux" Echo_message "Begin installing syslinux..." -- cgit v1.2.3