Hello,
thank you for maintaining greetd on Debian :)
currently greetd, when used with sysvinit, is restarted on upgrade, because of
this snipped that is added by debhelper (dh_intallinit) in postinstall
# Automatically added by dh_installinit/13.28
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
if [ -z "$DPKG_ROOT" ] && [ -x "/etc/init.d/greetd" ]; then
update-rc.d greetd defaults >/dev/null
if [ -n "$2" ]; then
_dh_action=restart
else
_dh_action=start
fi
invoke-rc.d --skip-systemd-native greetd $_dh_action || exit 1
fi
fi
# End automatically added section
usually restarting a display manager is disruptive (it crashes the running session)
so every other display manager just skips the restart action on upgrade;
also, greetd itself already skips the restart action for the systemd service.
skipping restart on upgrade can be done by overriding dh_intallinit in rules file,
as follow
diff -Naur ./greetd-0.10.3/debian/rules ./greetd-0.10.3-patched/debian/rules
--- ./greetd-0.10.3/debian/rules 2025-11-10 11:26:53.000000000 +0100
+++ ./greetd-0.10.3-patched/debian/rules 2026-05-19 07:19:16.790198750 +0200
@@ -33,6 +33,9 @@
override_dh_installsystemd:
dh_installsystemd --no-stop-on-upgrade --no-start
+override_dh_installinit:
+ dh_installinit --no-stop-on-upgrade
+
execute_after_dh_fixperms:
chmod a-x debian/greetd/usr/lib/systemd/system/greetd.service
Optionally you can also add --no-start if you want to match more closely systemd
Please consider this change for the next greetd upload.
Best,
Lorenzo