update to db59a1a2dd 2019-03-07
[automated-distro-installer] / fai / config / scripts / LAST / 50-misc
index 62c31db7b3a3ceafe726aa5ad180a387fcce75a8..eebb3792e3922e684b96be6af9d841a162d7bc3d 100755 (executable)
@@ -1,23 +1,27 @@
 #! /bin/bash
 
-# copyright Thomas Lange 2001-2015, lange@debian.org
+# copyright Thomas Lange 2001-2016, lange@debian.org
 
 error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
 
-# check if mdadm has been forgotten
-if grep -q active /proc/mdstat 2>/dev/null; then
+if [ "$FAI_ACTION" = "dirinstall" -o $do_init_tasks -eq 0 ] ; then
+  :
+else
+  # check if mdadm has been forgotten
+  if grep -q active /proc/mdstat 2>/dev/null; then
     if [ ! -d $target/etc/mdadm ]; then
        echo ERROR: Found Software RAID, but the mdadm package was not installed
        error=1
     fi
-fi
+  fi
 
-usedm=$(dmsetup ls | egrep -v '^live-rw|^live-base|^No devices found' | wc -l)
-if [ $usedm -ne 0 ]; then
+  usedm=$(dmsetup ls 2>/dev/null | egrep -v '^live-rw|^live-base|^No devices found' | wc -l)
+  if [ $usedm -ne 0 ]; then
     if [ ! -d $target/etc/lvm ]; then
        echo ERROR: Found lvm devices, but the lvm2 package was not installed
        error=1
     fi
+  fi
 fi
 
 # remove backup files from cfengine, but only if cfengine is installed
@@ -42,16 +46,58 @@ fi
 
 # Make sure everything is configured properly
 if ifclass DEBIAN ; then
-        echo "Running \"apt-get -f install\" for the last time."
         $ROOTCMD apt-get -f install
 fi
 
 if [ $FAI_ACTION = "install" ]; then
     lskernels=$(echo $target/boot/vmlinu*)
-    [ -f ${lskernels%% *} ] || echo "ERROR: No kernel was installed. Have a look at shell.log" >&2
+    if [ ! -f ${lskernels%% *} ]; then
+       echo "ERROR: No kernel was installed. Have a look at shell.log" >&2
+       error=1
+    fi
 fi
 
 # copy sources.list
-fcopy -iM /etc/apt/sources.list
+fcopy -iSM /etc/apt/sources.list
+
+
+setrel() {
+
+    # if release is not set, try to determine it
+
+    if [ -n "$release" ]; then
+       return
+    fi
+    if [ ! -f $target/etc/os-release ]; then
+       return
+    fi
+
+    dists="jessie stretch buster bullseye bookworm bionic xenial trusty"
+    for d in $dists; do
+       if grep -iq $d $target/etc/os-release; then
+           release=$d
+           break
+       fi
+    done
+}
+
+# if installation was done from CD, replace useless sources.list
+setrel
+if [ -f $target/etc/apt/sources.list -a -n "$release" ]; then
+    grep -q 'file generated by fai-cd' $target/etc/apt/sources.list && cat <<EOF > $target/etc/apt/sources.list
+deb $apt_cdn/debian $release main contrib non-free
+deb $apt_cdn/debian-security $release/updates main contrib non-free
+#deb [trusted=yes] http://fai-project.org/download $release koeln
+EOF
+    # if the package fai-server was installed, enable the project's repository
+    if [ -f $target/var/lib/dpkg/info/fai-server.list ]; then
+       sed -i -e '/fai-project.org/s/^#//' $target/etc/apt/sources.list
+    fi
+fi
+
+# for ARM architecture, we may need the kernel and initrd to boot or flash the device
+if ifclass ARM64; then
+    cp -pv $target/boot/vmlinuz* $target/boot/initrd* $FAI_RUNDIR
+fi
 
 exit $error