X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=c75d9886877a33a66390af74d96d77c83ca8dc88;hp=d66c9952a8f1f101d89aee992ebde8769797fb80;hb=refs%2Ftags%2Fv0.9.35;hpb=bbc4b9db068e7ed536161680c84fbed328ddb3af diff --git a/grml-live b/grml-live index d66c995..c75d988 100755 --- a/grml-live +++ b/grml-live @@ -23,7 +23,7 @@ fi set -e # global variables -GRML_LIVE_VERSION='0.9.35-pre1' +GRML_LIVE_VERSION='0.9.35' PN="$(basename $0)" CMDLINE="$0 $@" SOURCES_LIST_FILE='/etc/grml/fai/apt/sources.list' @@ -304,31 +304,34 @@ if [ -z "$FORCE" ] ; then echo "${PN} [${GRML_LIVE_VERSION}]: check your configuration (or use -F to force execution):" echo echo " FAI classes: $CLASSES" - [ -r "$LOCAL_CONFIG" ] && echo " local config: /etc/grml/grml-live.local" - [ -n "$CONFIG" ] && echo " configuration: $CONFIG" + [ -r "$LOCAL_CONFIG" ] && echo " Local config: /etc/grml/grml-live.local" + [ -n "$CONFIG" ] && echo " Configuration: $CONFIG" echo " main directory: $OUTPUT" - [ -n "$CHROOT_OUTPUT" ] && echo " chroot target: $CHROOT_OUTPUT" - [ -n "$BUILD_OUTPUT" ] && echo " build target: $BUILD_OUTPUT" - [ -n "$ISO_OUTPUT" ] && echo " ISO target: $ISO_OUTPUT" - [ -n "$GRML_NAME" ] && echo " grml name: $GRML_NAME" - [ -n "$RELEASENAME" ] && echo " release name: $RELEASENAME" - [ -n "$DATE" ] && echo " build date: $DATE" - [ -n "$VERSION" ] && echo " grml version: $VERSION" - [ -n "$SUITE" ] && echo " Debian suite: $SUITE" - [ -n "$ARCH" ] && echo " Architecture: $ARCH" - [ -n "$BOOT_METHOD" ] && echo " Boot method: $BOOT_METHOD" - [ -n "$TEMPLATE_DIRECTORY" ] && echo " Template files: $TEMPLATE_DIRECTORY" - [ -n "$CHROOT_INSTALL" ] && echo " Install files from directory to chroot: $CHROOT_INSTALL" - [ -n "$FAI_ARGS" ] && echo " additional arguments for FAI: $FAI_ARGS" - [ -n "$LOGFILE" ] && echo " Logging to file: $LOGFILE" - [ -n "$SQUASHFS_ZLIB" ] && echo " Using ZLIB (instead of LZMA) compression." - [ -n "$SQUASHFS_OPTIONS" ] && echo " Using SQUASHFS_OPTIONS ${SQUASHFS_OPTIONS}" - [ -n "$VERBOSE" ] && echo " Using VERBOSE mode." - [ -n "$UPDATE" ] && echo " Executing UPDATE instead of fresh installation." - [ -n "$SKIP_MKSQUASHFS" ] && echo " Skipping creation of SQUASHFS file." - [ -n "$SKIP_MKISOFS" ] && echo " Skipping creation of ISO file." - [ -n "$BUILD_ONLY" ] && echo " Executing BUILD_ONLY instead of fresh installation or UPDATE." - [ -n "$BUILD_DIRTY" ] && echo " Executing BUILD_DIRTY to leave chroot untouched." + [ -n "$CHROOT_OUTPUT" ] && echo " Chroot target: $CHROOT_OUTPUT" + [ -n "$BUILD_OUTPUT" ] && echo " Build target: $BUILD_OUTPUT" + [ -n "$ISO_OUTPUT" ] && echo " ISO target: $ISO_OUTPUT" + [ -n "$GRML_NAME" ] && echo " Grml name: $GRML_NAME" + [ -n "$RELEASENAME" ] && echo " Release name: $RELEASENAME" + [ -n "$DATE" ] && echo " Build date: $DATE" + [ -n "$VERSION" ] && echo " Grml version: $VERSION" + [ -n "$SUITE" ] && echo " Debian suite: $SUITE" + [ -n "$ARCH" ] && echo " Architecture: $ARCH" + [ -n "$BOOT_METHOD" ] && echo " Boot method: $BOOT_METHOD" + [ -n "$TEMPLATE_DIRECTORY" ] && echo " Template files: $TEMPLATE_DIRECTORY" + [ -n "$CHROOT_INSTALL" ] && echo " Install files from directory to chroot: $CHROOT_INSTALL" + [ -n "$BOOTID" ] && echo " Boot identifier: $BOOTID" + [ -n "$NO_BOOTID" ] && echo " Skipping bootid feature." + [ -n "$DEFAULT_BOOTOPTIONS" ] && echo " Adding default bootoptions: \"$DEFAULT_BOOTOPTIONS\"" + [ -n "$FAI_ARGS" ] && echo " Additional arguments for FAI: $FAI_ARGS" + [ -n "$LOGFILE" ] && echo " Logging to file: $LOGFILE" + [ -n "$SQUASHFS_ZLIB" ] && echo " Using ZLIB (instead of LZMA) compression." + [ -n "$SQUASHFS_OPTIONS" ] && echo " Using SQUASHFS_OPTIONS ${SQUASHFS_OPTIONS}" + [ -n "$VERBOSE" ] && echo " Using VERBOSE mode." + [ -n "$UPDATE" ] && echo " Executing UPDATE instead of fresh installation." + [ -n "$SKIP_MKSQUASHFS" ] && echo " Skipping creation of SQUASHFS file." + [ -n "$SKIP_MKISOFS" ] && echo " Skipping creation of ISO file." + [ -n "$BUILD_ONLY" ] && echo " Executing BUILD_ONLY instead of fresh installation or UPDATE." + [ -n "$BUILD_DIRTY" ] && echo " Executing BUILD_DIRTY to leave chroot untouched." echo echo -n "Is this ok for you? [y/N] " read a @@ -392,7 +395,7 @@ if [ -n "$MIRROR_DIRECTORY" ] ; then # NOTE: This file is *NOT* meant for manual customisation! This file is # modified by grml-live and any changes might be overriden. # You might consider using GRML_LIVE_SOURCES in /etc/grml/grml-live.conf* -# and using /etc/grml/fai/files/etc/apt instead!' +# or FAI's fcopy command with /etc/grml/fai/config/files instead! EOF echo "$MIRROR_SOURCES" >> "$SOURCES_LIST_FILE" if [ -n "$GRML_LIVE_SOURCES" ] ; then @@ -403,7 +406,7 @@ elif [ -n "$GRML_LIVE_SOURCES" ] ; then # NOTE: This file is *NOT* meant for manual customisation! This file is # modified by grml-live and any changes might be overriden. # You might consider using GRML_LIVE_SOURCES in /etc/grml/grml-live.conf* -# and using /etc/grml/fai/files/etc/apt instead!' +# or FAI's fcopy command with /etc/grml/fai/config/files instead! EOF echo "$GRML_LIVE_SOURCES" >> "$SOURCES_LIST_FILE" fi @@ -593,7 +596,7 @@ CHECKLOG=/var/log/fai/$HOSTNAME/last # package validator if [ -r "$CHECKLOG/package_errors.log" ] && grep -q '[a-z]' "$CHECKLOG/package_errors.log" ; then - if [ -n "$EXIT_ON_MISSING_PACKAGES" ] ; then + if [ -n "$EXIT_ON_MISSING_PACKAGES" -a -z "$BUILD_DIRTY" ] ; then eerror "The following packages were requested for installation but could not be processed:" cat $CHECKLOG/package_errors.log eerror "... exiting as requested via \$EXIT_ON_MISSING_PACKAGES." @@ -714,6 +717,18 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then # make sure the squashfs filename is set accordingly: SQUASHFS_NAME="$GRML_NAME.squashfs" + if [ -n "$NO_BOOTID" ] ; then + log 'Skipping bootid feature as requested via $NO_BOOTID.' + einfo 'Skipping bootid feature as requested via $NO_BOOTID.' + else + [ -n "$BOOTID" ] || BOOTID="$(echo ${GRML_NAME}${VERSION} | tr -d ',./;\- ')" + [ -d "$BUILD_OUTPUT"/conf ] || mkdir "$BUILD_OUTPUT"/conf + einfo "Generating /conf/bootid.txt with entry ${BOOTID}." + log "Generating /conf/bootid.txt with entry ${BOOTID}." + echo "$BOOTID" > "$BUILD_OUTPUT"/conf/bootid.txt + eend $? + fi + # adjust all variables in the templates with the according distribution information for file in "${BUILD_OUTPUT}"/boot/isolinux/*.cfg "${BUILD_OUTPUT}"/boot/isolinux/*.msg \ "${BUILD_OUTPUT}"/boot/grub/* ; do @@ -727,6 +742,14 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then sed -i "s/%RELEASE_INFO%/$RELEASE_INFO/g" "${file}" sed -i "s/%SHORT_NAME%/$SHORT_NAME/g" "${file}" sed -i "s/%VERSION%/$VERSION/g" "${file}" + + [ -n "$DEFAULT_BOOTOPTIONS" ] && sed -i "s/ boot=live/ boot=live $DEFAULT_BOOTOPTIONS/" "${file}" + + if [ -n "$NO_BOOTID" ] ; then + sed -i "s/ bootid=%BOOTID%//g" "${file}" # drop bootid bootoption + else + sed -i "s/%BOOTID%/$BOOTID/g" "${file}" # adjust bootid=... argument + fi done # adjust bootsplash accordingly but make sure the string has the according lenght @@ -826,6 +849,15 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then 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"/