Store package list on ISO. [Closes: issue779] [Closes: issue749]
[grml-live.git] / grml-live
index d66c995..6eadde8 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -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."
@@ -826,6 +826,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"/