diff options
author | Daniel Baumann <daniel@debian.org> | 2012-08-27 15:59:56 +0200 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2012-08-27 16:05:49 +0200 |
commit | a0a5bbfd1c9b6fc58d1b102ee56fb7d3b8b7bfcf (patch) | |
tree | 584a8f8174bdcbafddb6652e469c5ae5381ce3da /scripts/build/binary_iso | |
parent | d6e45a34376c9c80d1488ad4f3c9c1f85bedb338 (diff) | |
download | vyos-live-build-a0a5bbfd1c9b6fc58d1b102ee56fb7d3b8b7bfcf.tar.gz vyos-live-build-a0a5bbfd1c9b6fc58d1b102ee56fb7d3b8b7bfcf.zip |
Dropping lb prefix from live-build scripts, not needed anymore.
Previously, we needed to keep the lb_* prefix as the scripts
could also be executed standalone. Since the lb wrapper is
mandatory since squeeze, we can drop this now.
Diffstat (limited to 'scripts/build/binary_iso')
-rwxr-xr-x | scripts/build/binary_iso | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/scripts/build/binary_iso b/scripts/build/binary_iso new file mode 100755 index 000000000..c25674bbb --- /dev/null +++ b/scripts/build/binary_iso @@ -0,0 +1,235 @@ +#!/bin/sh + +## live-build(7) - System Build Scripts +## Copyright (C) 2006-2012 Daniel Baumann <daniel@debian.org> +## +## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +## This is free software, and you are welcome to redistribute it +## under certain conditions; see COPYING for details. + + +set -e + +# Including common functions +[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh + +# Setting static variables +DESCRIPTION="$(Echo 'build iso binary image')" +HELP="" +USAGE="${PROGRAM} [--force]" + +Arguments "${@}" + +# Reading configuration files +Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source +Set_defaults + +case "${LB_BINARY_IMAGES}" in + iso) + IMAGE="binary.iso" + ;; + + iso-hybrid) + IMAGE="binary.hybrid.iso" + ;; + + *) + exit 0 + ;; +esac + +Echo_message "Begin building binary iso image..." + +# Requiring stage file +Require_stagefile .build/config .build/bootstrap + +# Checking stage file +Check_stagefile .build/binary_iso + +# Checking lock file +Check_lockfile .lock + +# Creating lock file +Create_lockfile .lock + +# Checking depends +Check_package chroot/usr/bin/genisoimage genisoimage + +if [ "${LB_BINARY_IMAGES}" = "iso-hybrid" ] +then + Check_package chroot/usr/bin/isohybrid syslinux +fi + +# Restoring cache +Restore_cache cache/packages.binary + +# Installing depends +Install_package + +# Remove old iso image +if [ -f ${IMAGE} ] +then + rm -f ${IMAGE} +fi + +# Handle genisoimage generic options +GENISOIMAGE_OPTIONS="-J -l -cache-inodes -allow-multidot" + +# Handle genisoimage live-build specific options +if [ "${_QUIET}" = "true" ] +then + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -quiet" +fi + +if [ "${_VERBOSE}" = "true" ] +then + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -v" +fi + +if [ -n "${LB_ISO_APPLICATION}" ] && [ "${LB_ISO_APPLICATION}" != "none" ] +then + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -A \"${LB_ISO_APPLICATION}\"" +fi + +if [ -n "${LB_ISO_PREPARER}" ] && [ "${LB_ISO_PREPARER}" != "none" ] +then + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -p \"${LB_ISO_PREPARER}\"" +fi + +if [ -n "${LB_ISO_PUBLISHER}" ] && [ "${LB_ISO_PUBLISHER}" != "none" ] +then + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -publisher \"${LB_ISO_PUBLISHER}\"" +fi + +if [ -n "${LB_ISO_VOLUME}" ] && [ "${LB_ISO_VOLUME}" != "none" ] +then + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -V \"${LB_ISO_VOLUME}\"" +fi + +# Handle genisoimage architecture specific options +case "${LB_BOOTLOADER}" in + grub) + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -no-emul-boot -boot-load-size 4 -boot-info-table" + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -r -b boot/grub/stage2_eltorito" + GENISOIMAGE_EXCLUDE="boot/grub/stage2_eltorito" + ;; + + grub2) + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -no-emul-boot -boot-load-size 4 -boot-info-table" + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -r -b boot/grub/grub_eltorito -J" + GENISOIMAGE_EXCLUDE="boot/grub/grub_eltorito" + ;; + + silo) + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -r -G boot/isofs.b -B ..." + GENISOIMAGE_EXCLUDE="boot/isofs.b" + ;; + + syslinux) + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -no-emul-boot -boot-load-size 4 -boot-info-table" + case "${LB_MODE}" in + progress) + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -r -b boot/boot.bin -c boot/boot.cat" + GENISOIMAGE_EXCLUDE="boot/boot.bin" + ;; + + *) + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -r -b isolinux/isolinux.bin -c isolinux/boot.cat" + GENISOIMAGE_EXCLUDE="isolinux/isolinux.bin" + ;; + esac + ;; + + yaboot) + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -r --iso-level 2 --netatalk -hfs -probe -map" + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} binary/yaboot/hfs.map --chrp-boot -part -no-desktop" + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -hfs-bless binary/yaboot -hfs-volid Debian/Live_powerpc" + GENISOIMAGE_EXCLUDE="yaboot/hfs.map" + ;; + + *) + Echo_warning "Bootloader on your architecture not yet supported by live-build." + Echo_warning "This will produce a most likely not bootable image (Continuing in 5 seconds)." + sleep 5 + ;; +esac + +#if [ "${LB_DEBIAN_INSTALLER}" != "live" ] +#then +# GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -m ${GENISOIMAGE_EXCLUDE}" +#fi + +if [ "${LB_BOOTLOADER}" = "grub2" ] +then + +cat > binary.sh << EOF +#!/bin/sh + +input_dir=/usr/lib/grub/i386-pc + +# build core.img +core_img=\$(mktemp) +grub-mkimage -d \${input_dir} -o \${core_img} -O i386-pc biosdisk iso9660 + +# build grub_eltorito image +cat \${input_dir}/cdboot.img \${core_img} > binary/boot/grub/grub_eltorito + +rm -f \${core_img} + +for file in \${input_dir}/*.mod \${input_dir}/efiemu??.o \ + \${input_dir}/command.lst \${input_dir}/moddep.lst \${input_dir}/fs.lst \ + \${input_dir}/handler.lst \${input_dir}/parttool.lst +do + if test -f "\$file" + then + cp -f "\$file" binary/boot/grub + fi +done +EOF + +else + echo "#!/bin/sh" > binary.sh +fi + +cat >> binary.sh << EOF + +genisoimage ${GENISOIMAGE_OPTIONS} -o ${IMAGE} binary +EOF + +if [ "${LB_BINARY_IMAGES}" = "iso-hybrid" ] +then + +cat >> binary.sh << EOF + +isohybrid ${ISOHYBRID_OPTIONS} ${IMAGE} +EOF + +fi + +case "${LB_BUILD_WITH_CHROOT}" in + true) + # Moving image + mv binary.sh chroot + mv binary chroot + + Chroot chroot "sh binary.sh" + + # Move image + mv chroot/binary chroot/${IMAGE} ./ + rm -f chroot/binary.sh + ;; + + false) + sh binary.sh + rm -f binary.sh + ;; +esac + +# Saving cache +Save_cache cache/packages.binary + +# Removing depends +Remove_package + +# Creating stage file +Create_stagefile .build/binary_iso |