* support something like a directory /etc/grml/fai/packages to install
additional Debian packages without the need for a Debian repository
+* provide hooks/options for updating an existing chroot/squashfs-file/ISO
+(work in progress, see patches directory inside source)
+
* document the available classes in more detail (GRMLBASE, LATEX_CLEANUP,
NO_ONLINE, REMOVE_DOCS, GRML_SMALL,...)
--- /dev/null
+fai_dirupdate_[1234].diff:
+
+Try to provide an "update chroot" action, like:
+
+ # TARGET=/dev/shm/grml_chroot fai -C/etc/grml/fai -cGRMLBASE,I386 dirupdate
+
+Needs work though...
--- /dev/null
+--- /usr/lib/fai/subroutines.orig 2007-09-21 10:04:05.000000000 +0200
++++ /usr/lib/fai/subroutines 2007-09-21 10:34:40.000000000 +0200
+@@ -266,6 +266,9 @@
+ dirinstall)
+ task dirinstall
+ ;;
++ dirupdate)
++ task dirupdate
++ ;;
+ softupdate)
+ echo Performing FAI system update. All data may be overwritten!
+ task softupdate
+@@ -491,6 +494,29 @@
+ fi
+ }
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++task_dirupdate() {
++
++ > $stamp
++
++ mkdir -p $FAI_ROOT
++ FAI_ROOT=$(cd $FAI_ROOT;pwd)
++ echo "Updating directory $FAI_ROOT"
++ task configure
++ task updatechroot
++ task finish
++
++ rm -f $stamp
++ unset LOGUSER # so logfile are not saved to remote
++ task savelog
++
++ if [ -f $stamp ]; then
++ echo "Error while executing commands in subshell."
++ echo "$stamp was not removed."
++ sendmon "TASKERROR install 21"
++ die "Please look at the log files in $LOGDIR for errors."
++ fi
++}
++# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ task_softupdate() {
+
+ local stamp=/var/run/fai/fai_softupdate_is_running
--- /dev/null
+--- /usr/lib/fai/get-config-dir.orig 2007-09-21 10:13:24.000000000 +0200
++++ /usr/lib/fai/get-config-dir 2007-09-21 10:14:11.000000000 +0200
+@@ -9,6 +9,11 @@
+ # Short-Description: get $FAI directory from $FAI_CONFIG_SRC
+ ### END SUBROUTINE INFO
+
++if [ -n "FAI_NO_CONFIG_SRC" ] ; then
++ echo "Notice: skipping get-dir-config as requested"
++ exit 0
++fi
++
+ if [ -z "$FAI_CONFIG_SRC" ]; then
+ sendmon "TASKERROR get_fai_dir 21"
+ echo "Error: Provide the URL to obtain the fai config storage in \$FAI_CONFIG_SRC"
--- /dev/null
+--- /usr/sbin/fai.orig 2007-09-21 10:45:21.000000000 +0200
++++ /usr/sbin/fai 2007-09-21 10:45:22.000000000 +0200
+@@ -280,7 +280,7 @@
+ trap 'clean_exit' EXIT
+ fi
+
+-mkfifo $LOGDIR/logfifo
++[ -w $LOGDIR/logfifo ] || mkfifo $LOGDIR/logfifo
+ tee -a $LOGDIR/fai.log < $LOGDIR/logfifo &
+ # in bash &> redirect stdout and stderr to file
+ fstart &> $LOGDIR/logfifo
--- /dev/null
+--- /usr/lib/fai/subroutines-linux.orig 2007-09-21 10:47:35.000000000 +0200
++++ /usr/lib/fai/subroutines-linux 2007-09-21 10:49:09.000000000 +0200
+@@ -229,6 +229,18 @@
+ updatebase
+ }
+ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
++task_updatechroot() {
++
++ # update the chroot
++ echo "Updating chroot"
++ if [ -z "$TARGET" ] ; then
++ echo "Error: \$TARGET not set, exiting.">&2
++ return 1
++ else
++ chroot $TARGET apt-get update
++ fi
++}
++# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ task_instsoft() {
+
+ echo "Installing software may take a while"