system: pam: Let PAM extensions add shepherd requirements.

* gnu/system/pam.scm (<pam-extension>): New record type.
(pam-shepherd-service): Add Shepherd synchronization point.

* gnu/services/mail.scm (dovecot-shepherd-service)
* gnu/services/lightdm.scm (lightdm-shepherd-service)
* gnu/services/mail.scm (opensmtpd-shepherd-service)
* gnu/services/sddm.scm (sddm-shepherd-service)
* gnu/services/ssh.scm (lsh-shepherd-service, openssh-shepherd-service)
* gnu/services/xorg.scm (slim-shepherd-service, gdm-shepherd-service)
* gnu/services/base.scm (greetd-shepherd-services): Add PAM requirement.

* gnu/system/pam.scm (/etc-entry, extend-configuration,
pam-root-service-type, pam-root-service)
* gnu/services/authentication.scm (pam-ldap-pam-service)
* gnu/services/base.scm (pam-limits-service-type)
(greetd-pam-service)
* gnu/services/desktop.scm (pam-gnome-keyring)
* gnu/services/kerberos.scm (pam-krb5-pam-service)
* gnu/services/pam-mount.scm (pam-mount-pam-service): Adapt to use
pam-extension.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Josselin Poiret 2023-05-09 18:45:07 +02:00 committed by Ludovic Courtès
parent b2a65b4c8c
commit 2df5d4fd18
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
11 changed files with 178 additions and 111 deletions

View file

@ -197,9 +197,11 @@
interfaces)))))
(define requires
(if (and daemonic? (lsh-configuration-syslog-output? config))
'(networking syslogd)
'(networking)))
`(networking
pam
,@(if (and daemonic? (lsh-configuration-syslog-output? config))
'(syslogd)
'())))
(list (shepherd-service
(documentation "GNU lsh SSH server")
@ -566,7 +568,7 @@ of user-name/file-like tuples."
(list (shepherd-service
(documentation "OpenSSH server.")
(requirement '(syslogd loopback))
(requirement '(pam syslogd loopback))
(provision '(ssh-daemon ssh sshd))
(start #~(if #$inetd-style?