SW: Move scsiadd from GRML_* to GRMLBASE.
[grml-live.git] / grml-live
index 20df250..186f092 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -23,7 +23,7 @@ fi
 set -e
 
 # global variables
 set -e
 
 # global variables
-GRML_LIVE_VERSION='0.9.33-pre1'
+GRML_LIVE_VERSION='0.9.34-pre1'
 PN="$(basename $0)"
 CMDLINE="$0 $@"
 SOURCES_LIST_FILE='/etc/grml/fai/apt/sources.list'
 PN="$(basename $0)"
 CMDLINE="$0 $@"
 SOURCES_LIST_FILE='/etc/grml/fai/apt/sources.list'
@@ -554,13 +554,6 @@ else
          grep 'FAILED with exit code' $CHECKLOG/shell.log >> $LOGFILE && ERROR=2
       fi
 
          grep 'FAILED with exit code' $CHECKLOG/shell.log >> $LOGFILE && ERROR=2
       fi
 
-      # package validator
-      if [ -r "$CHECKLOG/package_errors.log" ] && grep -q '[a-z]' "$CHECKLOG/package_errors.log" ; then
-         ewarn "The following packages were requested for installation but could not be processed:"
-         cat $CHECKLOG/package_errors.log
-         eend 0
-      fi
-
       if [ -n "$ERROR" ] ; then
          log    "Error: there was a critical error [${ERROR}] during execution of stage 'fai dirinstall' [$(date)]"
          eerror "Error: there was a critical error during execution of stage 'fai dirinstall'"
       if [ -n "$ERROR" ] ; then
          log    "Error: there was a critical error [${ERROR}] during execution of stage 'fai dirinstall' [$(date)]"
          eerror "Error: there was a critical error during execution of stage 'fai dirinstall'"
@@ -579,6 +572,25 @@ else
 fi # BUILD_DIRTY?
 # }}}
 
 fi # BUILD_DIRTY?
 # }}}
 
+# package validator {{{
+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
+      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."
+      eend 1
+      bailout 13
+   else
+      ewarn "The following packages were requested for installation but could not be processed:"
+      cat $CHECKLOG/package_errors.log
+      eend 0
+   fi
+fi
+# }}}
+
 # BUILD_OUTPUT - execute arch specific stuff and squashfs {{{
 [ -n "$BUILD_OUTPUT" ] || BUILD_OUTPUT="$OUTPUT/grml_cd"
 mkdir -p "$BUILD_OUTPUT" || bailout 6 "Problem with creating $BUILD_OUTPUT for stage ARCH"
 # BUILD_OUTPUT - execute arch specific stuff and squashfs {{{
 [ -n "$BUILD_OUTPUT" ] || BUILD_OUTPUT="$OUTPUT/grml_cd"
 mkdir -p "$BUILD_OUTPUT" || bailout 6 "Problem with creating $BUILD_OUTPUT for stage ARCH"
@@ -602,8 +614,8 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
             log "Installing /boot/memtest86+.bin"
             cp /boot/memtest86+.bin "$BUILD_OUTPUT"/boot/addons/memtest
          else
             log "Installing /boot/memtest86+.bin"
             cp /boot/memtest86+.bin "$BUILD_OUTPUT"/boot/addons/memtest
          else
-            ewarn "No memtest binary found, skipping."
-            log "No memtest binary found, skipping."
+            ewarn "No memtest binary found (either install package grml-live-addons or memtest86+), skipping."
+            log "No memtest binary found (either install package grml-live-addons or memtest86+), skipping."
             eend 0
          fi
       fi
             eend 0
          fi
       fi
@@ -1050,6 +1062,13 @@ else
          else
            log "Creating hybrid ISO file with isohybrid method"
            einfo "Creating hybrid ISO file with isohybrid method"
          else
            log "Creating hybrid ISO file with isohybrid method"
            einfo "Creating hybrid ISO file with isohybrid method"
+           # Notes for consideration:
+           # "-entry 4 -type 1c"
+           # * using 4 as the partition number is supposed to help with BIOSes
+           #   that only support USB-Zip boot
+           # * using 1c (i.e. hidden FAT32 LBA), instead of the default 0x17
+           #   (hidden NTFS, IIRC), as the partition type is sometimes needed
+           #   to get the BIOS even look at the partition created by isohybrid
            isohybrid "${ISO_OUTPUT}/${ISO_NAME}"
            eend $?
          fi
            isohybrid "${ISO_OUTPUT}/${ISO_NAME}"
            eend $?
          fi