Allow etdump, makefs and mkimg to be overridden.

Recent changes to makefs and mkimg have led to situations where the
disconnect between this script and the versions installed on the host cause
failures. Provide a way to work around this that doesn't require the
installation of new versions to the host system if that's not desired.

With this change mkisoimages.sh will honour the $ETDUMP, $MAKEFS and $MKIMG
environment variables but fall back to the previous behaviour of finding them
within $PATH.

Reviewed by:	gjb
Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D15181
This commit is contained in:
benno 2018-04-25 18:47:52 +00:00
parent 6c5a0d7011
commit 498102ca2b

View File

@ -23,6 +23,18 @@
# extra-bits-dir, if provided, contains additional files to be merged
# into base-bits-dir as part of making the image.
if [ -z $ETDUMP ]; then
ETDUMP=etdump
fi
if [ -z $MAKEFS ]; then
MAKEFS=makefs
fi
if [ -z $MKIMG ]; then
MKIMG=mkimg
fi
if [ "$1" = "-b" ]; then
# This is highly x86-centric and will be used directly below.
bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot"
@ -55,13 +67,13 @@ NAME="$1"; shift
publisher="The FreeBSD Project. https://www.FreeBSD.org/"
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
$MAKEFS -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
rm -f "$1/etc/fstab"
rm -f efiboot.img
if [ "$bootable" != "" ]; then
# Look for the EFI System Partition image we dropped in the ISO image.
for entry in `etdump --format shell $NAME`; do
for entry in `$ETDUMP --format shell $NAME`; do
eval $entry
if [ "$et_platform" = "efi" ]; then
espstart=`expr $et_lba \* 2048`
@ -73,7 +85,7 @@ if [ "$bootable" != "" ]; then
# Create a GPT image containing the partitions we need for hybrid boot.
imgsize=`stat -f %z $NAME`
mkimg -s gpt \
$MKIMG -s gpt \
--capacity $imgsize \
-b $4/boot/pmbr \
$espparam \