mostly fixes
[distro-setup] / distro-begin
index 4a1ab215d6649eb69d9f2922247246c0ae3f27b6..f022ec3c4db1fda270cc76d5615e44bd7a12f1c9 100755 (executable)
@@ -78,7 +78,10 @@ fi
 
 ### arg parsing
 recompile=false
-emacs=true
+emacs=false
+if [[ -e /a/opt/emacs ]]; then
+  emacs=true
+fi
 while [[ $1 == -* ]]; do
   case $1 in
     -r) recompile=true; shift ;;
@@ -97,7 +100,7 @@ source $script_dir/pkgs
 set +x
 source /a/bin/distro-functions/src/identify-distros
 $interactive || set -x
-for f in kd x2 x3 frodo tp li bk je demohost kw; do
+for f in kd x2 x3 frodo tp li bk je demohost kw sy bo; do
   eval "$f() { [[ $HOSTNAME == $f ]]; }"
 done
 codename=$(debian-codename)
@@ -152,7 +155,7 @@ EOF
 
   sudo dd of=/etc/systemd/system/keyscriptoff.service <<'EOF'
 [Unit]
-Description=keyscriptoffIMG_20200803_221621
+Description=keyscriptoff
 
 [Service]
 Type=oneshot
@@ -235,6 +238,11 @@ EOF
 
 ##### exit first stage if running as root
 if [[ $EUID == 0 ]]; then
+  if [[ ! -e /home/iank/.ssh/authorized_keys && ! -L /home/iank/.ssh/authorized_keys ]]; then
+    sudo -u iank mkdir -p /home/iank/.ssh
+    chmod 0700 /home/iank/.ssh
+    sudo -u iank ln -sf /p/c/machine_specific/vps/subdir_files/.ssh/authorized_keys /home/iank/.ssh
+  fi
   echo "$0: running as root. exiting now that users are setup"
   exit 0
 fi
@@ -248,11 +256,33 @@ lnf $x /root
 EOF
 done
 
+###### link files
+# convenient to just do all file linking in one place
+sudo /a/exe/lnf -T /a/bin /b
+sudo /a/exe/lnf -T /a/f /f
+sudo /a/exe/lnf -T /var/log/exim4 /el
+sudo /a/exe/lnf -T /a/f/ans /c
+sudo /a/exe/lnf -T /nocow/t /t
+if has_p; then
+  lnf -T /p/News ~/News
+fi
+dirs=(/q/root /q/root/.editor-backups /q/root/.undo-tree-history)
+sudo mkdir -p ${dirs[@]}
+sudo chmod 600 ${dirs[@]}
+sudo /a/exe/lnf /q/root/.editor-backups /q/root/.undo-tree-history \
+     /a/opt /a/c/.emacs.d $HOME/mw_vars /k/backup /root
+/a/bin/ds/install-my-scripts # needed for rootsshsync cronjob
+sudo /a/exe/lnf /a/c/.vim /a/c/.vimrc /a/c/.gvimrc /root
+
+
 ###### do conflink
 # vps needs bind group before conflink
 if vps; then
   pi-nostart bind9
 fi
+if bitfolk; then
+  pi-nostart unbound
+fi
 # this needs to be before installing pacserve so we have gpg conf.
 conflink
 rootsshsync
@@ -260,6 +290,8 @@ if [[ -e /etc/rootsudoenv ]]; then
   source /etc/rootsudoenv
 fi
 
+
+
 ###### bash environment setup
 set +x
 err-allow
@@ -289,6 +321,12 @@ fi
 case $HOSTNAME in
   bk)
     sudo sed -i --follow-symlinks 's/^ *hosts:.*/hosts: files dns myhostname/' /etc/nsswitch.conf
+    soff systemd-resolved
+    sudo ln -sf 127.0.0.1-resolv/stub-resolv.conf /etc/resolv.conf
+    sgo unbound
+    sgo named
+    # cautious measure to make sure bind is up
+    sleep 1
     ;;
   *)
     # default is
@@ -329,10 +367,11 @@ if bitfolk; then
   sudo sed -ri "/^127\./n;/[[:space:]]$HOSTNAME\$/d" /etc/hosts
 fi
 
-# firefox exists but is 2 versions outdated
+# libfdk just has some patent worries.
+# https://www.gnu.org/licenses/license-list.en.html#fdk
 if isdeb && [[ $(debian-codename) == nabia ]]; then
   sudo dd of=/etc/apt/preferences.d/nabia-focal-missing <<'EOF'
-Package: unrar-free firefox libfdk-aac1 ansible
+Package: libfdk-aac1
 Pin: release n=focal,o=Ubuntu
 Pin-Priority: 500
 EOF
@@ -347,7 +386,6 @@ Pin: release a=nabia-backports
 Pin-Priority: -100
 EOF
 
-
 fi
 
 
@@ -428,26 +466,6 @@ case $(debian-codename-compat) in
 esac
 
 
-###### link files
-# convenient to just do all file linking in one place
-sudo /a/exe/lnf -T /a/bin /b
-sudo /a/exe/lnf -T /a/f /f
-sudo /a/exe/lnf -T /var/log/exim4 /el
-sudo /a/exe/lnf -T /a/f/ans /c
-sudo /a/exe/lnf -T /nocow/t /t
-if has_p; then
-  lnf -T /p/News ~/News
-fi
-dirs=(/q/root /q/root/.editor-backups /q/root/.undo-tree-history)
-sudo mkdir -p ${dirs[@]}
-sudo chmod 600 ${dirs[@]}
-sudo /a/exe/lnf /q/root/.editor-backups /q/root/.undo-tree-history \
-     /a/opt /a/c/.emacs.d $HOME/mw_vars /k/backup /root
-/a/bin/ds/install-my-scripts # needed for rootsshsync cronjob
-sudo /a/exe/lnf /a/c/.vim /a/c/.vimrc /a/c/.gvimrc /root
-
-
-
 
 #### arch specific early packages
 case $(distro-name) in
@@ -594,7 +612,9 @@ EOF
     ;;
 esac
 
-
+if bitfolk; then
+  sudo systemctl disable systemd-networkd
+fi
 
 ##### setup email
 primary-setup