-#!/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
+ echo "Action $FAI_ACTION of FAI (hooks/updatebase.GRMLBASE) via grml-live running"
## we want to use our own sources.list:
skiptask updatebase
+ ## 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
# skip the task if we want to build a new ISO only:
[ -n "$BUILD_ONLY" ] && skiptask instsoft || /bin/true
-else # no softupdate but updating chroot based on /etc/grml/fai/config/basefiles/*
+ 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
-if [ -r /etc/grml/fai/files/etc/apt ] ; then
- cp -a /etc/grml/fai/files/etc/apt/* $target/etc/apt/
- # remove grml-live's sources.list 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
-fi
+fcopy -r /etc/apt
-# install all present (but at least the grml) gpg keys:
-if [ -r /etc/grml/fai/files/etc/apt/grml.key ] ; then
- for file in /etc/grml/fai/files/etc/apt/*.key ; do
- FILE="$(basename $file)"
- # installed via 'cp -a /etc/grml/fai/files/etc/apt/* $target/etc/apt/' above already
- # cp $file $target/etc/apt/"$FILE"
- $ROOTCMD apt-key add /etc/apt/"$FILE"
- done
-else
- gpg --keyserver subkeys.pgp.net --recv-keys F61E2E7CECDEA787 || \
- gpg --keyserver blackhole.pca.dfn.de --recv-keys F61E2E7CECDEA787
- gpg --export F61E2E7CECDEA787 > $target/etc/apt/grml.key
- $ROOTCMD apt-key add /etc/apt/grml.key
+# 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
-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