#!/bin/sh # lh_binary_iso(1) - build iso binary image # Copyright (C) 2006-2008 Daniel Baumann # # live-helper 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 LH_BASE="${LH_BASE:-/usr/share/live-helper}" for FUNCTION in "${LH_BASE}"/functions/*.sh do . "${FUNCTION}" done # Setting static variables DESCRIPTION="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 if ! In_list iso "${LH_BINARY_IMAGES}" then exit 0 fi Echo_message "Begin building binary iso image..." # Requiring stage file Require_stagefile .stage/config .stage/bootstrap # Checking stage file Check_stagefile .stage/binary_iso # Checking lock file Check_lockfile .lock # Creating lock file Create_lockfile .lock # Checking depends Check_package chroot/usr/bin/genisoimage genisoimage # Restoring cache Restore_cache cache/packages_binary # Installing depends Install_package # Remove old iso image if [ -f binary.iso ] then rm -f binary.iso fi # Handle genisoimage generic options GENISOIMAGE_OPTIONS="-J -l -cache-inodes -allow-multidot" # Handle genisoimage live-helper specific options if [ "${_QUIET}" = "enabled" ] then GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -quiet" fi if [ "${LH_VERBOSE}" = "enabled" ] then GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -v" fi if [ -n "${LH_ISO_APPLICATION}" ] && [ "${LH_ISO_APPLICATION}" != "none" ] then GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -A \"${LH_ISO_APPLICATION}\"" fi if [ -n "${LH_ISO_PREPARER}" ] && [ "${LH_ISO_PREPARER}" != "none" ] then GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -p \"${LH_ISO_PREPARER}\"" fi if [ -n "${LH_ISO_PUBLISHER}" ] && [ "${LH_ISO_PUBLISHER}" != "none" ] then GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -publisher \"${LH_ISO_PUBLISHER}\"" fi if [ -n "${LH_ISO_VOLUME}" ] && [ "${LH_ISO_VOLUME}" != "none" ] then GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -V \"${LH_ISO_VOLUME}\"" fi if In_list "stripped minimal" "${LH_PACKAGES_LISTS}" then if [ "${LH_DEBIAN_INSTALLER}" != "live" ] then GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -m ${GENISOIMAGE_EXCLUDE}" fi fi # Handle genisoimage architecture specific options case "${LH_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" ;; 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" GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -r -b isolinux/isolinux.bin -c isolinux/boot.cat" GENISOIMAGE_EXCLUDE="isolinux/isolinux.bin" ;; 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-helper." Echo_warning "This will produce a most likely not bootable image (Continuing in 5 seconds)." sleep 5 ;; esac cat > binary.sh << EOF genisoimage ${GENISOIMAGE_OPTIONS} -o binary.iso binary EOF case "${LH_CHROOT_BUILD}" in enabled) # Moving image mv binary.sh chroot mv binary chroot Chroot chroot "sh binary.sh" # Move image mv chroot/binary chroot/binary.iso ./ rm -f chroot/binary.sh ;; disabled) sh binary.sh rm -f binary.sh ;; esac # Saving cache Save_cache cache/packages_binary # Removing depends Remove_package # Creating stage file Create_stagefile .stage/binary_iso