X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=etc%2Fgrml%2Ffai%2Fconfig%2Fhooks%2Fupdatebase.GRMLBASE;h=82a2fb9ab54ac4732d165691dd7d23b2846eba85;hp=d50e6002cc30707d33224b792604e9831393b8fe;hb=005cdc1ea39899e025f302f05e16fb93bb66fee9;hpb=c8546cb8d8d0870c6993343a7b5cfe27694cbf4e diff --git a/etc/grml/fai/config/hooks/updatebase.GRMLBASE b/etc/grml/fai/config/hooks/updatebase.GRMLBASE index d50e600..82a2fb9 100755 --- a/etc/grml/fai/config/hooks/updatebase.GRMLBASE +++ b/etc/grml/fai/config/hooks/updatebase.GRMLBASE @@ -1,29 +1,86 @@ -#!/bin/sh -# Filename: /etc/grml/fai/config/hooks/updatebase.GRMLBASE -# Purpose: skip task updatebase of FAI when running softupdate +#!/bin/bash +# Filename: ${GRML_FAI_CONFIG}/hooks/updatebase.GRMLBASE +# Purpose: Updates the base packages of the system, prepare chroot for instsoft # Authors: grml-team (grml.org), (c) Michael Prokop # 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 [ -n "$APT_PROXY" ] ; then + cat > $target/etc/apt/apt.conf.d/90grml-apt-proxy.conf < $target/usr/sbin/policy-rc.d << EOF -##!/bin/sh -## FAI_ACTION=updatebase -#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 || /bin/true + echo "Action $FAI_ACTION of FAI (hooks/updatebase.GRMLBASE) via grml-live running" + + ## we want to use our own sources.list: + skiptask updatebase + + ## based on FAI's lib/updatebase: + # some packages must access /proc even in chroot environment + if ! [ -d $FAI_ROOT/proc/1 ] ; then + mount -t proc proc $FAI_ROOT/proc || true + fi + # some packages must access /sys even in chroot environment + if ! [ -d $FAI_ROOT/sys/kernel ] ; then + mount -t sysfs sysfs $FAI_ROOT/sys + fi + # if we are using udev, also mount it into $FAI_ROOT + if [ -f /etc/init.d/udev ] ; then + mount --bind /dev $FAI_ROOT/dev || true + fi + + mount -t devpts devpts $FAI_ROOT/dev/pts || true + + # skip the task if we want to build a new ISO only, + # this means we do NOT update any packages + if [ -n "$BUILD_ONLY" ] ; then + skiptask instsoft || true + fi + + exit # make sure we don't continue behind the following "fi" +fi + +if [ -n "$BOOTSTRAP_ONLY" ] ; then + echo "Skipping task configure in hooks/updatebase.GRMLBASE as BOOTSTRAP_ONLY environment is set." + skiptask configure fi +# no softupdate but updating chroot e.g. based on ${GRML_FAI_CONFIG}/basefiles/* +echo "Action $FAI_ACTION of FAI (hooks/updatebase.GRMLBASE) via grml-live running" + +# work around #632624: udev fails to install on systems with old kernel versions +if ! [ -e ${target}/etc/udev/kernel-upgrade ] ; then + echo "Working around udev package bug, creating /etc/udev/kernel-upgrade" + echo "# installed via updatebase.GRMLBASE" > ${target}/etc/udev/kernel-upgrade +fi + +# install all apt related files +fcopy -v /etc/apt/grml.key +fcopy -v /etc/apt/preferences +fcopy -v /etc/apt/apt.conf.d/20pdiffs +fcopy -v /etc/apt/apt.conf.d/15grml-live + +# this is the auto-generated sources.list file by grml-live, +# will be overriden by $GRML_FAI_CONFIG/scripts/GRMLBASE/33-aptsetup +fcopy -v -c GRML_LIVE_SOURCES_LIST /etc/apt/sources.list + +# install Grml gpg key: +$ROOTCMD apt-key add /etc/apt/grml.key + ## END OF FILE ################################################################# -# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3 +# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2