add a fallback mirror to be added in case when a local mirror is removed
[grml-debootstrap.git] / chroot-script
index 7caf4dd..89f0f8d 100755 (executable)
 
 # use aptitude only if it's available
 if [ -x /usr/bin/aptitude ] ; then
-   APTINSTALL="aptitude -y --without-recommends install $DPKG_OPTIONS"
    APTUPDATE='aptitude update'
-   APTUPGRADE='aptitude -y safe-upgrade'
+   # Debian ISOs do not contain signed Release files
+   if [ -n "$ISO" ] ; then
+      APTINSTALL="aptitude -y --allow-untrusted --without-recommends install $DPKG_OPTIONS"
+      APTUPGRADE='aptitude -y --allow-untrusted safe-upgrade'
+   else
+      APTINSTALL="aptitude -y --without-recommends install $DPKG_OPTIONS"
+      APTUPGRADE='aptitude -y safe-upgrade'
+   fi
 else
    APTINSTALL="apt-get --force-yes -y --no-install-recommends install $DPKG_OPTIONS"
    APTUPDATE='apt-get update'
@@ -91,6 +97,29 @@ chrootmirror() {
 }
 # }}}
 
+# remove local chroot mirror {{{
+remove_chrootmirror() {
+  if [ -n "$KEEP_SRC_LIST" ] ; then
+    echo "KEEP_SRC_LIST has been set, skipping remove_chrootmirror stage."
+    return
+  fi
+
+  if [ -n "$ISO" ] ; then
+    echo "Removing ISO (${ISO}) from sources.list."
+    TMP_ISO=$(echo "$ISO" |sed 's#/#\\/#g')
+    sed -i "/deb $TMP_ISO $RELEASE $COMPONENTS/ D" /etc/apt/sources.list
+  else
+    if [ -n "$MIRROR" -a -n "$(echo $MIRROR|grep file:)" ] ; then
+      echo "Removing local mirror (${MIRROR}) from sources.list."
+      TMP_MIRROR=$(echo "$MIRROR" |sed 's#/#\\/#g')
+      sed -i "/deb $TMP_MIRROR $RELEASE $COMPONENTS/ D" /etc/apt/sources.list
+      echo "Adding fallback mirror entry (${FALLBACK_MIRROR}) to sources.list instead."
+      echo "deb $FALLBACK_MIRROR $RELEASE $COMPONENTS" >> /etc/apt/sources.list
+    fi
+  fi
+}
+# }}}
+
 # set up grml repository {{{
 grmlrepos() {
   if [ -n "$GRMLREPOS" ] ; then
@@ -526,7 +555,8 @@ trap signal_handler HUP INT QUIT TERM
  for i in chrootmirror grmlrepos kernelimg_conf \
      kernel packages extrapackages  reconfigure hosts interfaces \
      timezone fstab hostname initrd grub_install passwords        \
-     custom_scripts upgrade_system remove_apt_cache services ; do
+     custom_scripts upgrade_system remove_apt_cache services \
+     remove_chrootmirror; do
      if stage $i ; then
        $i && stage $i done || exit 1
      fi