+ done
+
+ # adjust bootsplash accordingly but make sure the string has the according lenght
+ SQUASHFS_NAME="$(cut_string 20 "$SQUASHFS_NAME")"
+ SQUASHFS_NAME="$(extend_string_end 20 "$SQUASHFS_NAME")"
+ for file in f4 f5 ; do
+ if [ -r "${BUILD_OUTPUT}/boot/isolinux/${file}" ] ; then
+ sed -i "s/%SQUASHFS_NAME%/$SQUASHFS_NAME/" "${BUILD_OUTPUT}/boot/isolinux/${file}"
+ sed -i "s/%SQUASHFS_NAME%/$SQUASHFS_NAME/" "${BUILD_OUTPUT}/boot/isolinux/${file}"
+ fi
+ done
+
+ # generate addon list
+ rm "${BUILD_OUTPUT}/${ADDONS_LIST_FILE}"
+ for name in "${BUILD_OUTPUT}"/boot/isolinux/addon_*.cfg ; do
+ include_name=$(basename "$name")
+ echo "include $include_name" >> "${BUILD_OUTPUT}/${ADDONS_LIST_FILE}"
+ done
+
+ if ! [ -r "${BUILD_OUTPUT}/boot/isolinux/${DISTRI_NAME}.cfg" ] || [ "$DISTRI_NAME" = "grml" ] ; then
+ log "including grmlmain.cfg in ${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ echo "include grmlmain.cfg" > "${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ echo "include default.cfg" > "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include menuoptions.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include grml.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+
+ for f in "${BUILD_OUTPUT}"/boot/isolinux/submenu*.cfg ; do
+ echo "include $(basename $f)" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ done
+
+ echo "include options.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ if [ ! -n "$NO_ADDONS" ] ; then
+ echo "include addons.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ fi
+ echo "include isoprompt.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include hd.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include hidden.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ else # assume we are building a custom distribution:
+ log "File ${BUILD_OUTPUT}/boot/isolinux/${DISTRI_NAME}.cfg found, using it."
+ einfo "File ${BUILD_OUTPUT}/boot/isolinux/${DISTRI_NAME}.cfg found, using it."
+ if grep -q "^include ${DISTRI_NAME}.cfg" "${BUILD_OUTPUT}/boot/isolinux/distri.cfg" ; then
+ log "include for ${DISTRI_NAME}.cfg already present, nothing to do."
+ eindent
+ einfo "include for ${DISTRI_NAME}.cfg already present, nothing to do."
+ eoutdent
+ eend $?
+ else
+ log "including ${DISTRI_NAME}.cfg in ${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ echo "include ${DISTRI_NAME}.cfg" > "${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ [ -n "$NO_ADDONS" ] || echo "include addons.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ fi
+ fi
+
+ # use old style console based isolinux method only if requested:
+ if [[ "${ISOLINUX_METHOD}" == "console" ]] ; then
+ log 'Using console based isolinux method as requested via $ISOLINUX_METHOD.'
+ einfo 'Using console based isolinux method as requested via $ISOLINUX_METHOD.'
+ if grep -q '^include console.cfg' "${BUILD_OUTPUT}/boot/isolinux/distri.cfg" ; then
+ einfo "include for console.cfg already foud, nothing to do."
+ eend 0
+ else
+ log "including console.cfg in ${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ einfo "including console.cfg in ${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ echo "include console.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ eend $?
+ fi
+ else
+ log 'Using graphical boot menu.'
+ if grep -q '^include vesamenu.cfg' "${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg" ; then
+ log "include for vesamenu.cfg already foud, nothing to do."
+ else
+ log "including vesamenu.cfg in ${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ echo "include vesamenu.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ fi
+ fi
+
+ # jump back to grub from bsd4grml (/boot/grub/stage2):
+ GRUB_LEGACY=stage2
+
+ if [ -e "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6 ]; then
+ if [ -e "$BUILD_OUTPUT"/boot/grub/core.img ]; then
+ GRUB_VERSION=2
+ else
+ GRUB_VERSION=1
+ fi
+
+ for file in "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6 \
+ "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.cfg \
+ "$BUILD_OUTPUT"/boot/isolinux/*.cfg \
+ "$BUILD_OUTPUT"/boot/grub/grub.cfg \
+ "$BUILD_OUTPUT"/boot/grub/menu.lst ; do
+ if [ -e "$file" ] ; then
+ sed -i -e "s!%GRUB_VERSION%!$GRUB_VERSION!g" \
+ -e "s!%GRUB_LEGACY%!$GRUB_LEGACY!g" "$file"
+ fi
+ done
+
+ sed -i "s/%RELEASE_INFO%/$GRML_NAME $VERSION - $RELEASENAME/" "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6
+ fi
+
+ if [ -e "$BUILD_OUTPUT"/boot/grub/$GRUB_LEGACY ]; then
+ sed -i "s/%GRUB_LEGACY%/$GRUB_LEGACY/g" "$BUILD_OUTPUT"/boot/grub/menu.lst
+ sed -i "s/%GRUB_LEGACY%/$GRUB_LEGACY/g" "$BUILD_OUTPUT"/boot/grub/grub.cfg
+ elif [ -e "$BUILD_OUTPUT"/boot/grub/menu.lst -a -e "$BUILD_OUTPUT"/boot/grub/grub.cfg ] ; then
+ sed -i "/%GRUB_LEGACY%/d" "$BUILD_OUTPUT"/boot/grub/menu.lst
+ sed -i "/%GRUB_LEGACY%/d" "$BUILD_OUTPUT"/boot/grub/grub.cfg
+ fi
+
+ DPKG_LIST="/var/log/fai/$HOSTNAME/last/dpkg.list" # the dpkg --list output of the chroot
+ if ! [ -r "$DPKG_LIST" ] ; then
+ ewarn "$DPKG_LIST could not be read, ignoring to store package information on ISO therefore."
+ else
+ einfo "Storing package list information as /GRML/${GRML_NAME}-packages.txt on ISO."
+ cp "$DPKG_LIST" "${BUILD_OUTPUT}/GRML/${GRML_NAME}-packages.txt"
+ eend $?
+ fi
+
+ # autostart for Windows:
+ if [ -d "${TEMPLATE_DIRECTORY}/windows/autostart/" ] ; then
+ cp ${TEMPLATE_DIRECTORY}/windows/autostart/* "$BUILD_OUTPUT"/
+ fi
+
+ # windows-binaries:
+ if [ -n "$NO_WINDOWS_BINARIES" ] ; then
+ log "Skipping download of windows binaries as requested via \$NO_WINDOWS_BINARIES."
+ einfo "Skipping download of windows binaries as requested via \$NO_WINDOWS_BINARIES."
+ eend 0
+ else
+ if [ -f "$BUILD_OUTPUT"/windows/putty.exe ] ; then
+ log "Skipping stage 'WINDOWS_BINARIES' as $BUILD_OUTPUT/windows exists already."
+ ewarn "Skipping stage 'WINDOWS_BINARIES' as $BUILD_OUTPUT/windows exists already." ; eend 0
+ else
+ if ! [ -d "$BUILD_OUTPUT"/windows ] ; then
+ mkdir "$BUILD_OUTPUT"/windows
+ ( cd "$BUILD_OUTPUT"/windows
+ for file in pageant plink pscp psftp putty puttygen ; do
+ wget -O ${file}.exe ${WINDOWS_BINARIES}/${file}.exe
+ md5sum ${file}.exe > ${file}.exe.md5
+ done )
+ fi
+
+ log "Finished execution of stage 'WINDOWS_BINARIES' [$(date)]"
+ einfo "Finished execution of stage 'WINDOWS_BINARIES'" ; eend 0
+ fi
+ fi
+
+ FORCE_ISO_REBUILD=true
+ einfo "Finished execution of stage 'boot'" ; eend 0
+ fi
+ fi # BOOTSTRAP_ONLY