rework sources setup (deprecated GRML_LIVE_SOURCES, install /etc/apt files recursively)
[grml-live.git] / etc / grml / fai / config / hooks / updatebase.GRMLBASE
index cb56f07..c7f343c 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Filename:      /etc/grml/fai/config/hooks/updatebase.GRMLBASE
+# 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 <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
@@ -18,41 +18,62 @@ HOSTNAME=''
 [ -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 <<EOF
+Acquire::http { Proxy "$APT_PROXY"; };
+EOF
+fi
+
 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:
+   ## based on FAI's lib/updatebase:
    # some packages must access /proc even in chroot environment
-   mount -t proc proc $FAI_ROOT/proc
+   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
-   mount -t sysfs sysfs $FAI_ROOT/sys
+   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
-   [ -f /etc/init.d/udev ] && mount --bind /dev $FAI_ROOT/dev
-   mount -t devpts devpts $FAI_ROOT/dev/pts
+   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:
-   [ -n "$BUILD_ONLY" ] && skiptask instsoft || /bin/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
 
-# 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"
+if [ -n "$BOOTSTRAP_ONLY" ] ; then
+  echo "Skipping task configure in hooks/updatebase.GRMLBASE as BOOTSTRAP_ONLY environment is set."
+  skiptask configure
+fi
 
-# install all apt related files
-fcopy -r /etc/apt
+# 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"
 
-# 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
+# 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 grml gpg key:
-fcopy /etc/apt/grml.key
+# install all apt related files
+fcopy -v -r /etc/apt
+
+# 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