diff --git a/install.sh b/install.sh index 650a91dd..e1c66a15 100755 --- a/install.sh +++ b/install.sh @@ -273,6 +273,10 @@ install_exec mxstartup/mxstartupctl "$DESTDIR$usr_sbindir/ install_exec mxstartup/mxvipctl "$DESTDIR$usr_sbindir/mxvipctl" install_data mxstartup/mxstartup.service "$DESTDIR$systemdunitdir/mxstartup.service" install_data misc_systemd_units/lightdm.service "$DESTDIR$systemdunitdir/lightdm.service" +install_data pdist/pdistd.socket "$DESTDIR$systemdunitdir/pdistd.socket" +install_data pdist/pdistd@.service "$DESTDIR$systemdunitdir/pdistd@.service" +install_exec pdist/pdist-bootcheck "$DESTDIR$usr_exec_prefix/libexec/pdist-bootcheck" +install_data pdist/pdist-bootcheck.service "$DESTDIR$systemdunitdir/pdist-bootcheck.service" postinstall exit diff --git a/pdist/pdist-bootcheck b/pdist/pdist-bootcheck new file mode 100755 index 00000000..3c8e4f1a --- /dev/null +++ b/pdist/pdist-bootcheck @@ -0,0 +1,42 @@ +#! /bin/bash + +set -e + +if [ -e /.pdist_status ]; then + now=$(date +%s) + if [ $now -lt $(date +%s -d 2023-06-01) ]; then + echo $(date -d $now): implausible system time + exit 1 + fi + echo "system time: $(date -d @$now)" + pdist_time=$(stat -c%Y /.pdist_status) + echo "pdist time: $(date -d @$pdist_time)" + pdist_age=$(( ($now - $pdist_time) /60 /60 /24 )) + echo "pdist age: $pdist_age days" + if [ $pdist_age -ge 7 ]; then + need_pdist_and_reboot=1 + elif [ $pdist_age -ge 1 ]; then + need_async_pdist=1 + else + echo no update required + fi +else + echo "no recorded update time" + need_pdist_and_reboot=1 +fi + +if [ "$need_async_pdist" ]; then + netcat $(distmaster) 237 >/dev/null 2>&1