From 3ca4714d6b02ff279a0c724415f3e0a3a6f49059 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Sat, 12 Nov 2022 14:03:03 -0500 Subject: [PATCH] fixes and refactor --- brc | 24 +++ distro-begin | 13 +- distro-end | 30 +++- filesystem/etc/profile.d/environment.sh | 5 +- .../etc/systemd/logind.conf.d/iank.conf | 1 + mail-setup | 158 +++++++++--------- switch-mail-host | 2 - 7 files changed, 135 insertions(+), 98 deletions(-) create mode 100644 filesystem/etc/systemd/logind.conf.d/iank.conf diff --git a/brc b/brc index 3c54796..5f43270 100644 --- a/brc +++ b/brc @@ -2171,6 +2171,30 @@ nonet() { m() { printf "%s\n" "$*"; "$@"; } +# update file. note: duplicated in mail-setup +u() { + local tmp tmpdir dest="$1" + local base="${dest##*/}" + local dir="${dest%/*}" + if [[ $dir != "$base" ]]; then + # dest has a directory component + mkdir -p "$dir" + fi + ur=false # u result + tmpdir=$(mktemp -d) + cat >$tmpdir/"$base" + tmp=$(rsync -ic $tmpdir/"$base" "$dest") + if [[ $tmp ]]; then + printf "%s\n" "$tmp" + ur=true + if [[ $dest == /etc/systemd/system/* ]]; then + reload=true + fi + fi + rm -rf $tmpdir +} + + uptime() { if type -p uprecords &>/dev/null; then uprecords -B diff --git a/distro-begin b/distro-begin index ac86b2d..4b591c1 100755 --- a/distro-begin +++ b/distro-begin @@ -705,20 +705,17 @@ if has_monitor; then dir=/etc/X11/xinit/xinitrc.d/ sudo mkdir -p $dir sudo cp /a/bin/distro-setup/desktop-20-autostart.sh $dir - s teeu /etc/systemd/logind.conf <<'EOF' -HandleLidSwitch= -EOF - # this works on - dir=/etc/gdm3 - sudo mkdir -p $dir/PostLogin - sudo cp /a/bin/distro-setup/desktop-20-autostart.sh $dir/PostLogin/Default + ## disabled since i'm not using gdm atm + # dir=/etc/gdm3 + # sudo mkdir -p $dir/PostLogin + # sudo cp /a/bin/distro-setup/desktop-20-autostart.sh $dir/PostLogin/Default sudo mkdir -p /etc/lightdm/lightdm.conf.d # etiona lightdm.log: # [SeatDefaults] is now called [Seat:*], please update this configuration sudo dd of=/etc/lightdm/lightdm.conf.d/12-iank.conf <<'EOF' [Seat:*] -display-setup-script=/a/bin/ds/lightdm-start +# display-setup-script=/a/bin/ds/lightdm-start session-setup-script=/a/bin/distro-setup/desktop-20-autostart.sh EOF diff --git a/distro-end b/distro-end index e07ab78..ce51793 100755 --- a/distro-end +++ b/distro-end @@ -1070,6 +1070,22 @@ esac # dependent packages. pi ${pall[@]} $(apt-cache search ruby[.0-9]+-doc| awk '{print $1}') $($src/distro-pkgs) +# schroot service will restart schroot sessions after reboot. +# I dont want that. +pi-nostart schroot + +# fix systemd unit failure. i dont know of any actual impact +# other than systemd showing in degraded state. So, we dont bother +# fixing the current state, let it fix on the next reboot. +# https://gitlab.com/cjwatson/binfmt-support/-/commit/54f0e1af8a +tmp=$(systemctl cat binfmt-support.service | grep ^After=) +if [[ $tmp != *systemd-binfmt.service* ]]; then + s u /etc/systemd/system/binfmt-support.service.d/override.conf <$tmpdir/"$base" tmp=$(rsync -ic $tmpdir/"$base" "$dest") if [[ $tmp ]]; then printf "%s\n" "$tmp" - ir=true + ur=true if [[ $dest == /etc/systemd/system/* ]]; then touch /var/local/mail-setup-reload reload=true @@ -432,7 +432,7 @@ fi # * Mail clean cronjob -i /etc/systemd/system/mailclean.timer <<'EOF' +u /etc/systemd/system/mailclean.timer <<'EOF' [Unit] Description=Run mailclean daily @@ -443,7 +443,7 @@ OnCalendar=monthly WantedBy=timers.target EOF -i /etc/systemd/system/mailclean.service < EOF -i /etc/fail2ban/jail.d/exim.local <<'EOF' +u /etc/fail2ban/jail.d/exim.local <<'EOF' [exim] enabled = true port = 25,587 @@ -1030,7 +1030,7 @@ banaction = iptables-exim # 10.173.8.1 = non-nn net ignoreip = 209.51.188.13 2001:470:142::13 209.51.188.92 2001:470:142:3::10 72.14.176.105 2600:3c00:e000:280::2 10.173.8.1 EOF -if $ir; then +if $ur; then m systemctl restart fail2ban fi @@ -1300,7 +1300,7 @@ fi rm -fv /etc/exim4/rcpt_local_acl # old path -i /etc/exim4/conf.d/local_deny_exceptions_acl <<'EOF' +u /etc/exim4/conf.d/local_deny_exceptions_acl <<'EOF' # This acl already exists in rcpt, this just makes it more widespread. # See the comment there for its rationale. The reason it needs to be # more widespread is that I've turned on sender verification, but cron @@ -1317,7 +1317,7 @@ EOF rm -fv /etc/exim4/data_local_acl # old path -i /etc/exim4/conf.d/data_local_acl <<'EOF' +u /etc/exim4/conf.d/data_local_acl <<'EOF' # Except for the "condition =", this was # a comment in the check_data acl. The comment about this not # being suitable has been changed in newer exim versions. The only thing @@ -1364,7 +1364,7 @@ rm -fv /etc/exim4/conf.d/router/8{8,9}0_backup_copy \ # but that is a problem if we change mail host and still have something # in the queue which was destined for this router, but hosts were # unreachable, the routers will be reevaluated on the next retry. -i /etc/exim4/conf.d/router/170_backup_copy < @@ -2252,7 +2252,7 @@ if [[ $HOSTNAME == bk ]]; then mkdir -p $myncdir # copied from debians cronjob - i /etc/cron.d/$rcbase </dev/null @@ -2312,7 +2312,7 @@ EOF rctmpdir=/var/tmp/$rcbase rcdb=/m/rc/$rcbase.sqlite # config from mailinabox - i $rcdir/config/config.inc.php <>/etc/fstab fi - i /etc/systemd/system/exim4.service.d/override.conf <<'EOF' + u /etc/systemd/system/exim4.service.d/override.conf <<'EOF' [Unit] # without local-fs on exim, we get these kind of errors in paniclog on shutdown: # Failed to create spool file /var/spool/exim4//input//1jCLxz-0008V4-V9-D: Permission denied @@ -3534,7 +3534,7 @@ case $HOSTNAME in # note: cronjob "ian" also does some important monitoring # todo: this will sometimes cause an alert because mailtest-check will run # before we have setup network namespace and spamassassin - i /etc/cron.d/mailtest </dev/null; then - export XDG_RUNTIME_DIR=/run/user/1000 bufs="$(sudo -u iank emacsclient --eval "$(cat /a/bin/ds/unsaved-buffers.el)"| sed '/^"nil"$/d;s/^"(/E: /;s/)"$//')" if [[ $bufs ]]; then echo "error: on $HOSTNAME, unsaved emacs files: $bufs" >&2 @@ -218,7 +217,6 @@ EOF $old_shell bash -s <<'EOF' if pgrep -G iank -u iank -f 'emacs --daemon' &>/dev/null; then - export XDG_RUNTIME_DIR=/run/user/1000 bufs="$(sudo -u iank emacsclient --eval "$(cat /a/bin/ds/unsaved-buffers.el)"| sed '/^"nil"$/d;s/^"(/E: /;s/)"$//')" if [[ $bufs ]]; then echo "error: on $HOSTNAME, unsaved emacs files: $bufs" >&2 -- 2.30.2