Update documentation regarding bootid feature.
[grml-live.git] / grml-live
index 51e8859..e2dcb30 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -23,7 +23,7 @@ fi
 set -e
 
 # global variables
-GRML_LIVE_VERSION='0.9.34'
+GRML_LIVE_VERSION='0.9.35-pre1'
 PN="$(basename $0)"
 CMDLINE="$0 $@"
 SOURCES_LIST_FILE='/etc/grml/fai/apt/sources.list'
@@ -288,7 +288,7 @@ ISO_OUTPUT="$OUTPUT/grml_isos"
 [ -n "$RELEASENAME" ] && export RELEASENAME="$RELEASENAME"
 # }}}
 
-# ZERO_LOGFILE - check for backwards compability reasons {{{
+# ZERO_LOGFILE - check for backwards compatibility reasons {{{
 # this was default behaviour until grml-live 0.9.34:
 if [ -n "$ZERO_LOGFILE" ] ; then
    PRESERVE_LOGFILE='' # make sure it's cleaned then
@@ -392,7 +392,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 +403,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 +593,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 +714,12 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
       # make sure the squashfs filename is set accordingly:
       SQUASHFS_NAME="$GRML_NAME.squashfs"
 
+      [ -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}."
+      echo "$BOOTID" > "$BUILD_OUTPUT"/conf/bootid.txt
+      eend $?
+
       # 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 +733,7 @@ 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}"
+        sed -i "s/%BOOTID%/$BOOTID/g"                "${file}"
       done
 
       # adjust bootsplash accordingly but make sure the string has the according lenght
@@ -826,6 +833,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"/
@@ -898,7 +914,7 @@ else
          bailout
       fi
    else # no $SQUASHFS_BINARY configured, let's find the according binary:
-      # Note: this is ALL for backward compability and yes: it's serious PITA.
+      # Note: this is ALL for backward compatibility and yes: it's serious PITA.
       # We'll definitely drop this once people build >2.6.28-grml* only and
       # the squashfs-tools vs. squashfs-lzma-tools + zlib vs. lzma situation
       # is settling...
@@ -913,7 +929,7 @@ else
          else # neither -nolzma nor -z and mksquashfs-lzma is available:
             SQUASHFS_BINARY='mksquashfs-lzma'
 
-            # backwards compability: someone has squashfs-lzma-tools >=4 installed but
+            # backwards compatibility: someone has squashfs-lzma-tools >=4 installed but
             # 1) doesn't use -nolzma in $SQUASHFS_OPTIONS or the grml-live's -z option *and*
             # 2) builds against kernel version <=2.6.28-grml[64]
             if ls $CHROOT_OUTPUT/boot/vmlinuz* >/dev/null 2>&1 ; then