+# if hooks/updatebase.GRMLBASE fails for whatever reason
+# and can't skip instsoft.GRMLBASE we have to make sure
+# we exit here as well
+if [ -n "$BUILD_ONLY" ] ; then
+ "Exiting hooks/instsoft.GRMLBASE as BUILD_ONLY environment is set."
+ exit 0
+fi
+
+if [ "$FAI_ACTION" = "softupdate" ] ; then
+ echo "Action $FAI_ACTION of FAI (hooks/instsoft.GRMLBASE) via grml-live running"
+
+ if [ -r /etc/resolv.conf ] ; then
+ if [ -d $target/etc/resolvconf/run ] ; then # resolvconf without /run
+ # sanity check to avoid "input file is output file",
+ # see http://bts.grml.org/grml/issue984
+ if ! [ -L $target/etc/resolvconf/run/resolv.conf ] ; then
+ cat /etc/resolv.conf >> $target/etc/resolvconf/run/resolv.conf
+ else
+ echo "Error: /etc/resolvconf/run/resolv.conf in chroot should not be a symlink." >&2
+ echo " Looks like something is wrong, please fix manually." >&2
+ exit 1
+ fi
+ elif [ -L $target/etc/resolvconf/run ] ; then # resolvconf with /run
+ # /etc/resolvconf/run symlinks to /run/resolvconf
+ mkdir -p $target/run/resolvconf
+ cat /etc/resolv.conf >> $target/run/resolvconf/resolv.conf
+ else # no resolvconf installed in chroot
+ if ! [ -L $target/etc/resolv.conf ] ; then
+ cat /etc/resolv.conf >> $target/etc/resolv.conf
+ else
+ echo "Error: /etc/resolv.conf in chroot should not be a symlink (resolvconf not installed)." >&2
+ exit 1
+ fi
+ fi
+ fi
+
+ if [ -r $target/etc/policy-rc.d.conf ] ; then
+ sed -i "s/EXITSTATUS=.*/EXITSTATUS='101'/" $target/etc/policy-rc.d.conf
+ fi
+
+ # we definitely don't want to fail running fai sofupdate just
+ # because of some well known bugs:
+ [ -d $target/etc/apt/apt.conf.d ] || mkdir $target/etc/apt/apt.conf.d
+ cat > $target/etc/apt/apt.conf.d/10apt-listbugs << EOF
+// Check all packages whether they has critical bugs before they are installed.
+// If you don't like it, comment it out.
+//DPkg::Pre-Install-Pkgs {"/usr/sbin/apt-listbugs apt || exit 10"};
+//DPkg::Tools::Options::/usr/sbin/apt-listbugs "";
+//DPkg::Tools::Options::/usr/sbin/apt-listbugs::Version "2";
+EOF
+
+ # run it on our own, as updatebase is used at the wrong stage for our needs,
+ # see ${GRML_FAI_CONFIG}/hooks/updatebase.GRMLBASE
+ # the apt-get update might return an error if there's for example
+ # a hashsum mismatch on Debian mirror sources, we might want to continue
+ # but should warn the user
+ if ! $ROOTCMD apt-get update ; then
+ echo "Warning: there was an error executing apt-get update, continuing anyway."
+ fi
+
+ # work around /etc/kernel/postinst.d/zz-update-grub failing
+ # inside openvz environment, see #597084
+ if ! $ROOTCMD dpkg-divert --list | grep -q '/usr/sbin/update-grub' ; then
+ echo "Diverting update-grub executable"
+ $ROOTCMD dpkg-divert --rename --add /usr/sbin/update-grub
+ $ROOTCMD ln -s /bin/true /usr/sbin/update-grub
+ fi
+
+ # newer aptitude versions won't remove essential packages using
+ # 'aptitude -f -y install file-rc' anymore, therefore force it:
+ $ROOTCMD aptitude -o Aptitude::ProblemResolver::Keep-All-Tier=60000 -f -y install file-rc
+
+ if ! $ROOTCMD test -x /usr/bin/aptitude ; then
+ $ROOTCMD apt-get -y install aptitude
+ fi