# }}}
# assume sane defaults (if not set already) {{{
-[ -n "$ARCH" ] || ARCH="$(dpkg --print-architecture)"
-[ -n "$BOOT_METHOD" ] || BOOT_METHOD='isolinux'
-[ -n "$CLASSES" ] || CLASSES='GRML,I386'
-[ -n "$GRML_FAI_CONFIG" ] || GRML_FAI_CONFIG='/etc/grml/fai'
-[ -n "$GRML_NAME" ] || GRML_NAME='grml'
-[ -n "$HOSTNAME" ] || HOSTNAME='grml'
-[ -n "$NFSROOT_CONF" ] || NFSROOT_CONF='/etc/grml/fai/make-fai-nfsroot.conf'
-[ -n "$RELEASENAME" ] || RELEASENAME='grml-live rocks'
-[ -n "$SUITE" ] || SUITE='stable'
-[ -n "$USERNAME" ] || USERNAME='grml'
-[ -n "$VERSION" ] || VERSION='0.0.1'
+[ -n "$ARCH" ] || ARCH="$(dpkg --print-architecture)"
+[ -n "$BOOT_METHOD" ] || BOOT_METHOD='isolinux'
+[ -n "$BUILD_OUTPUT" ] || BUILD_OUTPUT="$OUTPUT/grml_cd"
+[ -n "$CHROOT_OUTPUT" ] || CHROOT_OUTPUT="$OUTPUT/grml_chroot"
+[ -n "$CLASSES" ] || CLASSES="GRMLBASE,GRML_MEDIUM,I386"
+[ -n "$DISTRI_INFO" ] || DISTRI_INFO='Grml - Live Linux for system administrators '
+[ -n "$DISTRI_NAME" ] || DISTRI_NAME="grml"
+[ -n "$DISTRI_SPLASH" ] || DISTRI_SPLASH='grml.png'
+[ -n "$GRML_FAI_CONFIG" ] || GRML_FAI_CONFIG='/etc/grml/fai'
+[ -n "$GRML_NAME" ] || GRML_NAME='grml'
+[ -n "$HOSTNAME" ] || HOSTNAME='grml'
+[ -n "$ISOLINUX_METHOD" ] || ISOLINUX_METHOD='console'
+[ -n "$ISO_OUTPUT" ] || ISO_OUTPUT="$OUTPUT/grml_isos"
+[ -n "$NFSROOT_CONF" ] || NFSROOT_CONF='/etc/grml/fai/make-fai-nfsroot.conf'
+[ -n "$OUTPUT" ] || OUTPUT='/grml/grml-live'
+[ -n "$RELEASENAME" ] || RELEASENAME='grml-live rocks'
+[ -n "$SQUASHFS_EXCLUDES_FILE " ] || SQUASHFS_EXCLUDES_FILE='/etc/grml/fai/squashfs-excludes'
+[ -n "$SUITE" ] || SUITE='stable'
+[ -n "$TEMPLATE_DIRECTORY" ] || TEMPLATE_DIRECTORY='/usr/share/grml-live/templates'
+[ -n "$USERNAME" ] || USERNAME='grml'
+[ -n "$VERSION" ] || VERSION='0.0.1'
+[ -n "$WINDOWS_BINARIES" ] || WINDOWS_BINARIES='http://the.earth.li/~sgtatham/putty/latest/x86/'
# }}}
# some misc checks before executing FAI {{{
# i386:
if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
- if [ -d "$BUILD_OUTPUT"/boot -a -z "$UPDATE" -a -z "$BUILD_ONLY" ] ; then
- log "$BUILD_OUTPUT/boot exists already, skipping stage 'boot'"
- ewarn "$BUILD_OUTPUT/boot exists already, skipping stage 'boot'" ; eend 0
+ if [ -d "$BUILD_OUTPUT"/boot/isolinux -a -z "$UPDATE" -a -z "$BUILD_ONLY" ] ; then
+ log "$BUILD_OUTPUT/boot/isolinux exists already, skipping stage 'boot'"
+ ewarn "$BUILD_OUTPUT/boot/isolinux exists already, skipping stage 'boot'" ; eend 0
else
# booting stuff:
[ -d "$BUILD_OUTPUT"/boot/isolinux ] || mkdir -p "$BUILD_OUTPUT"/boot/isolinux
cp ${TEMPLATE_DIRECTORY}/boot/isolinux/* "$BUILD_OUTPUT"/boot/isolinux/
- if [ -z "$NO_ADDONS" ] ; then
+ if [ -n "$NO_ADDONS" ] ; then
+ log "Skipping installation boot addons requested via \$NO_ADDONS."
+ einfo "Skipping installation boot addons requested via \$NO_ADDONS."
+ eend 0
+ else
if ! [ -d /usr/share/grml-live/templates/boot/addons/bsd4grml ] ; then
ewarn "Boot addons not found, skipping therefore. (Consider installing package grml-live-addons)" ; eend 0
else
sed -i "s/%VERSION%/$VERSION/" "$BUILD_OUTPUT"/boot/grub/grub.cfg
sed -i "s/%GRML_NAME%/$SHORT_GRML_NAME/" "$BUILD_OUTPUT"/boot/grub/grub.cfg
+ sed -i "s/%VERSION%/$VERSION/" "$BUILD_OUTPUT"/boot/isolinux/grml.cfg
+ sed -i "s/%GRML_NAME%/$GRML_NAME/" "$BUILD_OUTPUT"/boot/isolinux/grml.cfg
+ sed -i "s/%ARCH%/$ARCH/" "$BUILD_OUTPUT"/boot/isolinux/grml.cfg
+
+ sed -i "s/%DISTRI_INFO%/$DISTRI_INFO/" "$BUILD_OUTPUT"/boot/isolinux/vesamenu.cfg
+ sed -i "s/%DISTRI_SPLASH%/$DISTRI_SPLASH/" "$BUILD_OUTPUT"/boot/isolinux/vesamenu.cfg
+
# make sure the squashfs filename is set accordingly:
GRML_NAME_SQUASHFS="$GRML_NAME.squashfs"
sed -i "s/%GRML_NAME_SQUASHFS%/$GRML_NAME_SQUASHFS/" "$BUILD_OUTPUT"/boot/isolinux/isolinux.cfg
sed -i "s/%GRML_NAME_SQUASHFS%/$GRML_NAME_SQUASHFS/" "$BUILD_OUTPUT"/boot/isolinux/f4
sed -i "s/%GRML_NAME_SQUASHFS%/$GRML_NAME_SQUASHFS/" "$BUILD_OUTPUT"/boot/isolinux/f5
+ if ! [ -r "${BUILD_OUTPUT}/boot/isolinux/${DISTRI_NAME}.cfg" ] ; then
+ log "including grml.cfg in ${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ echo "include grml.cfg" > "${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ [ -n "$NO_ADDONS" ] || echo "include addons.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/distri.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."
+ einfo "include for ${DISTRI_NAME}.cfg already present, nothing to do."
+ 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:
if [ -e "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6 ]; then
if [ -e "$BUILD_OUTPUT"/boot/grub/core.img ]; then
fi
# windows-binaries:
- if [ -n "$WINDOWS_BINARIES" ] ; then
+ 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 "$BUILD_OUTPUT/windows exists already, skipping stage 'WINDOWS_BINARIES'"
ewarn "$BUILD_OUTPUT/windows exists already, skipping stage 'WINDOWS_BINARIES'" ; eend 0
done )
fi
fi
- log "Finished execution of stage 'WINDOWS_BINARIES' [$(date)]"
- einfo "Finished execution of stage 'WINDOWS_BINARIES'" ; eend 0
+ log "Finished execution of stage 'WINDOWS_BINARIES' [$(date)]"
+ einfo "Finished execution of stage 'WINDOWS_BINARIES'" ; eend 0
fi
einfo "Finished execution of stage 'boot'" ; eend 0
fi