summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLyndon Brown <jnqnfe@gmail.com>2020-03-28 02:21:36 +0000
committerLyndon Brown <jnqnfe@gmail.com>2020-04-23 11:52:04 +0100
commitf73797158e631d9fa2d4c9994e2feff542a7501b (patch)
treec977bc05f20d3ace1df3166fd904ac288f2c1611
parentae9143141d460ffbbe6084209977653cdc375bdb (diff)
downloadvyos-live-build-f73797158e631d9fa2d4c9994e2feff542a7501b.tar.gz
vyos-live-build-f73797158e631d9fa2d4c9994e2feff542a7501b.zip
bootloaders: improve bootloader list handling
two parts of the code worked with both comma and space separated lists, while two others only worked with comma separated. swapping out commas with spaces when we setup the var in Set_config_defaults() means that individual scripts no longer need to worry about it and everything supports both; and that we can avoid the IFS/OLDIFS mess. Gbp-Dch: Short
-rwxr-xr-xfunctions/bootloaders.sh4
-rwxr-xr-xfunctions/defaults.sh3
-rw-r--r--manpages/en/lb_config.12
-rwxr-xr-xscripts/build/binary_hdd2
-rwxr-xr-xscripts/build/binary_iso3
-rwxr-xr-xscripts/build/source_debian2
6 files changed, 5 insertions, 11 deletions
diff --git a/functions/bootloaders.sh b/functions/bootloaders.sh
index 14e50ac4c..a6883a67f 100755
--- a/functions/bootloaders.sh
+++ b/functions/bootloaders.sh
@@ -10,16 +10,12 @@
Is_Requested_Bootloader ()
{
- local OLDIFS="$IFS"
- local IFS=","
local BOOTLOADER
for BOOTLOADER in ${LB_BOOTLOADERS}; do
if [ "${BOOTLOADER}" = "${1}" ]; then
- IFS="$OLDIFS"
return 0
fi
done
- IFS="$OLDIFS"
return 1
}
diff --git a/functions/defaults.sh b/functions/defaults.sh
index f1bb85dce..85efca7df 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -381,8 +381,9 @@ Set_config_defaults ()
;;
esac
fi
+ LB_BOOTLOADERS="$(echo "${LB_BOOTLOADERS}" | tr "," " ")"
- LB_FIRST_BOOTLOADER=$(echo "${LB_BOOTLOADERS}" | awk -F, '{ print $1 }')
+ LB_FIRST_BOOTLOADER=$(echo "${LB_BOOTLOADERS}" | awk '{ print $1 }')
# Setting checksums
LB_CHECKSUMS="${LB_CHECKSUMS:-sha256}"
diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
index 31d63d72e..c011ad496 100644
--- a/manpages/en/lb_config.1
+++ b/manpages/en/lb_config.1
@@ -286,7 +286,7 @@ sets boot parameters specific to debian\-live. A complete list of boot parameter
.IP "\fB\-\-bootappend\-live\-failsafe\fR \fIPARAMETER\fR|""\fIPARAMETERS\fR""" 4
sets boot parameters specific to debian\-live failsafe boot entries. A complete list of boot parameters can be found in the \fIlive\-boot\fR(7) and \fIlive\-config\fR(7) manual pages.
.IP "\fB\-\-bootloaders\fR grub-legacy|grub-pc|syslinux|grub-efi" 4
-defines which bootloaders to use in the generated image. This only has an effect if the selected binary image type lets you choose the bootloader. For example, if you build an ISO then syslinux (or more precise, isolinux) is always used. Also note that not all combinations of binary images types and bootloaders are supported (\fBlb config\fR will fail to create such an unsupported configuration and will give a explanation about it). For HDD images on amd64 and i386, the default is syslinux. This option supports more than one bootloader to be specified (comma separated) in order to allow for both BIOS and EFI bootloaders to be included, though note that only one of each type can be used (i.e. do not try to use two BIOS bootloaders).
+defines which bootloaders to use in the generated image. This only has an effect if the selected binary image type lets you choose the bootloader. For example, if you build an ISO then syslinux (or more precise, isolinux) is always used. Also note that not all combinations of binary images types and bootloaders are supported (\fBlb config\fR will fail to create such an unsupported configuration and will give a explanation about it). For HDD images on amd64 and i386, the default is syslinux. This option supports more than one bootloader to be specified (space or comma separated) in order to allow for both BIOS and EFI bootloaders to be included, though note that only one of each type can be used (i.e. do not try to use two BIOS bootloaders).
.IP "\fB\-\-bootstrap\-qemu\-arch \fIARCH\fR" 4
sets the architectures to use foreign bootstrap. Defaults to empty.
.IP "\fB\-\-bootstrap\-qemu\-exclude \fIPACKAGES\fR" 4
diff --git a/scripts/build/binary_hdd b/scripts/build/binary_hdd
index b81c301da..437913929 100755
--- a/scripts/build/binary_hdd
+++ b/scripts/build/binary_hdd
@@ -53,7 +53,7 @@ Check_package chroot /sbin/parted parted
Check_package host /sbin/fdisk fdisk
Check_package host /sbin/losetup mount
-for BOOTLOADER in $(echo "${LB_BOOTLOADERS}" | tr "," "\n"); do
+for BOOTLOADER in ${LB_BOOTLOADERS}; do
case "${BOOTLOADER}" in
grub-legacy)
Check_package chroot /usr/sbin/grub grub
diff --git a/scripts/build/binary_iso b/scripts/build/binary_iso
index eef752f80..9f1b11a86 100755
--- a/scripts/build/binary_iso
+++ b/scripts/build/binary_iso
@@ -104,8 +104,6 @@ fi
# Set an explicit modification date
XORRISO_OPTIONS="${XORRISO_OPTIONS} --modification-date=$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m%d%H%m%S00)"
-OLDIFS="$IFS"
-IFS=","
BOOTLOADER_NUMBER=0
for BOOTLOADER in ${LB_BOOTLOADERS}
do
@@ -156,7 +154,6 @@ do
esac
done
-IFS="$OLDIFS"
#if [ "${LB_DEBIAN_INSTALLER}" != "live" ]
#then
diff --git a/scripts/build/source_debian b/scripts/build/source_debian
index b9899b2bc..5e37edbca 100755
--- a/scripts/build/source_debian
+++ b/scripts/build/source_debian
@@ -54,7 +54,7 @@ Chroot chroot "sh source-selection.sh"
rm -f chroot/source-selection.sh
mv chroot/source-selection.txt ./
-for BOOTLOADER in $(echo "${LB_BOOTLOADERS}" | tr "," "\n"); do
+for BOOTLOADER in ${LB_BOOTLOADERS}; do
echo "${BOOTLOADER}" >> source-selection.txt
done