fix lid close, other improvements
[automated-distro-installer] / fai / config / hooks / instsoft.DEFAULT
index 22c8104162eb6a9335f14bbc2eb712c06398eae0..3bf0f62939ff27719751f0037dc7b5f1abbfb649 100755 (executable)
@@ -7,6 +7,15 @@ if ifclass VM && ! ifclass demohost || ifclass VOL_BULLSEYE_BOOTSTRAP || [[ ! $F
   exit 0
 fi
 
+if ifclass FSF; then
+  exit 0
+fi
+
+fcopy -riB /etc/apt/preferences.d
+# ian: i'm guessing fai does this already
+#fcopy -riB /etc/apt/sources.list.d
+
+
 keyfile=/var/lib/fai/config/distro-install-common/luks/host-$HOSTNAME
 f=$target/root/keyscript
 cat > $f <<EOFOUTER
@@ -33,17 +42,21 @@ if [[ ${files[0]}  ]]; then
 fi
 
 
-#### this bit is duplicated in rootsshsync, except we skip update-initramfs,
-# since I suspect its not needed. I'm not sure any of this is needed
-# since we initially embed the key, and with distro-begin, we run rootsshsync
-# around the same time as we remove it.
-d=/etc/initramfs-tools
-if [[ -e $d ]] && ! diff -q /root/.ssh/authorized_keys $d/root/.ssh/authorized_keys &>/dev/null; then
-  mkdir -p $d/root/.ssh /etc/dropbear-initramfs
-  chmod 700 $d/root $d/root/.ssh
-  cp -p /root/.ssh/authorized_keys $d/root/.ssh/authorized_keys
-  cp -p /root/.ssh/authorized_keys /etc/dropbear-initramfs
-  if [[ -e /root/.ssh/authorized_keys2 ]]; then
-    cat /root/.ssh/authorized_keys2 >>/etc/dropbear-initramfs
-  fi
+#### This bit is duplicated in rootsshsync, except we skip
+#### update-initramfs and add $target
+####
+# We generally shouldn't need this, because we don't ssh in on the 1st
+# reboot since we initially embed the luks key, and with distro-begin,
+# we run rootsshsync around the same time as we remove it. However, it
+# could be helpful in case of problems.
+
+auth_dir=$target/etc/dropbear/initramfs/
+candidate=$(apt-cache policy dropbear-initramfs | awk '$1 == "Candidate:" { print $2 }' | head -n1 ||:)
+if [[ $candidate ]] && dpkg --compare-versions "$candidate" lt 2020.81-4; then
+  auth_dir=$target/etc/dropbear-initramfs
+fi
+auth_file=$auth_dir/authorized_keys
+mkdir -p $auth_dir
+if [[ ! -e $auth_file ]] || ! diff -q /root/.ssh/authorized_keys $auth_file; then
+  cp -p /root/.ssh/authorized_keys $auth_file
 fi