Rework apt.conf handling in instsoft/updatebase (provide /etc/apt/apt.conf.d/15grml...
[grml-live.git] / etc / grml / fai / config / hooks / updatebase.GRMLBASE
index 6187260..b063b50 100755 (executable)
@@ -1,16 +1,40 @@
-#!/bin/sh
+#!/bin/bash
 # Filename:      /etc/grml/fai/config/hooks/updatebase.GRMLBASE
-# Purpose:       skip task updatebase of FAI when running softupdate
+# Purpose:       Updates the base packages of the system, prepare chroot for instsoft
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2 or any later version.
 ################################################################################
 
+set -u
+set -e
+
+# visualize chroot inside zsh:
+echo grml_chroot > $target/etc/debian_chroot
+
+HOSTNAME=''
+[ -r /etc/grml/grml-live.conf ]  && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
+[ -n "$HOSTNAME" ] || HOSTNAME=grml
+echo "$HOSTNAME" > $target/etc/hostname
+
 if [ "$FAI_ACTION" = "softupdate" ] ; then
-   # we want to use our own sources.list:
+   echo "Action $FAI_ACTION of FAI (hooks/updatebase.GRMLBASE) via grml-live running"
+
+   ## we want to use our own sources.list:
    skiptask updatebase
-   # make sure we don't start any daemons - removed
-   # later on via /etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot
+
+   ## taken from FAI's lib/updatebase:
+   # some packages must access /proc even in chroot environment
+   mount -t proc proc $FAI_ROOT/proc
+   # some packages must access /sys even in chroot environment
+   mount -t sysfs sysfs $FAI_ROOT/sys
+   # if we are using udev, also mount it into $FAI_ROOT
+   [ -f /etc/init.d/udev ] && mount --bind /dev $FAI_ROOT/dev
+   mount -t devpts devpts $FAI_ROOT/dev/pts
+
+   ## make sure we don't start any daemons - removed
+   ## later on via /etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot
    if ! [ -r $target/usr/sbin/policy-rc.d ] ; then
       cat > $target/usr/sbin/policy-rc.d << EOF
 #!/bin/sh
@@ -19,9 +43,27 @@ exit 101
 EOF
       chmod 755 $target/usr/sbin/policy-rc.d
    fi
+
    # skip the task if we want to build a new ISO only:
-   [ -n "$BUILD_ONLY" ] && skiptask instsoft
+   [ -n "$BUILD_ONLY" ] && skiptask instsoft || /bin/true
+
+   exit # make sure we don't continue behind the following "fi"
 fi
 
+# no softupdate but updating chroot e.g. based on /etc/grml/fai/config/basefiles/*
+echo "Action $FAI_ACTION of FAI (hooks/updatebase.GRMLBASE) via grml-live running"
+
+# install all apt related files
+fcopy -r /etc/apt
+
+# remove grml-live's notice file from chroot:
+if [ -r $target/etc/apt/important_note.txt ] ; then
+   grep -q GRML_LIVE_SOURCES $target/etc/apt/important_note.txt && rm $target/etc/apt/important_note.txt
+fi
+
+# install grml gpg key:
+fcopy /etc/apt/grml.key
+$ROOTCMD apt-key add /etc/apt/grml.key
+
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3