--- /dev/null
+Shepherd and Mate: restore suspend/poweroff/reboot, automounting drives
+=======================================================================
+
+lightdm and Mate will offer that automatically or with a click on a
+menu. But today they will ask directly systemd for these functions,
+and that won't work with shepherd.
+
+Package elogind is intended to help you in that case, but it has a
+conflict with systemd (which has the competing executable
+systemd-logind). In the case of running shepherd-debian with
+systemd-sysv as the failsafe init system, this is not a real conflict,
+so I offer also a modified elogind package (with dependencies
+libpam-elogind and libelogind0) which you can install. It uses
+alternatives to not clobber original systemd files, and elogind-daemon
+is dbus activated.
+
+In the case of Mate, you still have a polkit issue
+(polkit-mate-authentication-agent-1 can't be launched, so no
+authentication window). This can be solved by editing these files:
+
+/usr/share/polkit-1/actions/org.freedesktop.login1.policy
+
+/usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy
+
+and setting the appropriate "allow_any" and "allow_inactive" to
+"yes". See files login1.patch and udisk2.patch for a minimal set of
+mofifications.
+
+For halt/reboot, you have also to add the following script in
+/lib/elogind/system-shutdown:
+
+#! /bin/sh
+if [ "$1" = "reboot" ]; then
+ /sbin/reboot
+elif [ "$1" = "poweroff" ]; then
+ /sbin/halt
+fi
--- /dev/null
+*** org.freedesktop.login1.policy 2023-08-15 10:01:46.720294356 +0200
+--- org.freedesktop.login1.policy-ORI 2021-03-02 09:29:23.000000000 +0100
+***************
+*** 159,164 ****
+ <message gettext-domain="elogind">Authentication is required to power off the system.</message>
+ <defaults>
+! <allow_any>yes</allow_any>
+! <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+--- 159,164 ----
+ <message gettext-domain="elogind">Authentication is required to power off the system.</message>
+ <defaults>
+! <allow_any>auth_admin_keep</allow_any>
+! <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+***************
+*** 170,175 ****
+ <message gettext-domain="elogind">Authentication is required to power off the system while other users are logged in.</message>
+ <defaults>
+! <allow_any>yes</allow_any>
+! <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+--- 170,175 ----
+ <message gettext-domain="elogind">Authentication is required to power off the system while other users are logged in.</message>
+ <defaults>
+! <allow_any>auth_admin_keep</allow_any>
+! <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+***************
+*** 192,197 ****
+ <message gettext-domain="elogind">Authentication is required to reboot the system.</message>
+ <defaults>
+! <allow_any>yes</allow_any>
+! <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+--- 192,197 ----
+ <message gettext-domain="elogind">Authentication is required to reboot the system.</message>
+ <defaults>
+! <allow_any>auth_admin_keep</allow_any>
+! <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+***************
+*** 203,208 ****
+ <message gettext-domain="elogind">Authentication is required to reboot the system while other users are logged in.</message>
+ <defaults>
+! <allow_any>yes</allow_any>
+! <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+--- 203,208 ----
+ <message gettext-domain="elogind">Authentication is required to reboot the system while other users are logged in.</message>
+ <defaults>
+! <allow_any>auth_admin_keep</allow_any>
+! <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+***************
+*** 258,263 ****
+ <message gettext-domain="elogind">Authentication is required to suspend the system.</message>
+ <defaults>
+! <allow_any>yes</allow_any>
+! <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+--- 258,263 ----
+ <message gettext-domain="elogind">Authentication is required to suspend the system.</message>
+ <defaults>
+! <allow_any>auth_admin_keep</allow_any>
+! <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+***************
+*** 268,273 ****
+ <message gettext-domain="elogind">Authentication is required to suspend the system while other users are logged in.</message>
+ <defaults>
+! <allow_any>yes</allow_any>
+! <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+--- 268,273 ----
+ <message gettext-domain="elogind">Authentication is required to suspend the system while other users are logged in.</message>
+ <defaults>
+! <allow_any>auth_admin_keep</allow_any>
+! <allow_inactive>auth_admin_keep</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
--- /dev/null
+*** org.freedesktop.UDisks2.policy 2023-08-15 10:13:32.284536213 +0200
+--- org.freedesktop.UDisks2.policy-ORI 2021-11-05 13:15:50.000000000 +0100
+***************
+*** 85,90 ****
+ <message xml:lang="af">Verifiëring is nodig om die lêerstelsel te heg</message>
+ <defaults>
+! <allow_any>yes</allow_any>
+! <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+--- 85,90 ----
+ <message xml:lang="af">Verifiëring is nodig om die lêerstelsel te heg</message>
+ <defaults>
+! <allow_any>auth_admin</allow_any>
+! <allow_inactive>auth_admin</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>