X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=9197b3e3648ecc31aed73833dacaf484269c87c6;hp=cc4c8d8b5924f40abdda178e4bccf57bb07a5b27;hb=18de83fa6503c91a261c71ff05a7d407892d63ce;hpb=ba2cfcc2601a2d6cc80e8c6766d5853079a98dc0 diff --git a/grml-live b/grml-live index cc4c8d8..9197b3e 100755 --- a/grml-live +++ b/grml-live @@ -47,6 +47,8 @@ Usage: $PN [options, see as follows] -g ] set the grml flavour name -h display short usage information and exit -i name of ISO + -I directory which provides files that should become + part of the chroot/ISO -o main output directory of the build process -q skip mksquashfs -r "${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 @@ -679,7 +746,11 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; 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 @@ -693,19 +764,30 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then 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 -# ppc: -elif [ "$ARCH" = powerpc ] ; then - ewarn 'Warning: formorer, it is your turn. :)'>&2 -# unsuported: else + log 'Error: Unsupported ARCH, sorry. Want to support it? Contribute!' eerror 'Error: Unsupported ARCH, sorry. Want to support it? Contribute!' ; eend 1 fi +# support installation of local files into the chroot/ISO +if [ -n "$CHROOT_INSTALL" ] ; then + if ! [ -d "$CHROOT_INSTALL" ] ; then + log "Configuration variable \$CHROOT_INSTALL is set but not a directory; ignoring" + ewarn "Configuration variable \$CHROOT_INSTALL is set but not a directory; ignoring" + else + log "Copying local files to chroot as requested via \$CHROOT_INSTALL" + einfo "Copying local files to chroot as requested via \$CHROOT_INSTALL" + rsync -avz --inplace "$CHROOT_INSTALL"/ "$CHROOT_OUTPUT/" + eend $? + einfo "Make sure to run squashfs stage, otherwise your local files won't be part of the ISO." + fi +fi + if [ -f "$BUILD_OUTPUT"/live/${GRML_NAME}.squashfs -a -z "$UPDATE" -a -z "$BUILD_ONLY" -a -z "$BUILD_DIRTY" ] ; then log "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'" ewarn "$BUILD_OUTPUT/live exists already, skipping stage 'squashfs'" ; eend 0