services: opensmtpd: Use 'match-record' instead of 'match'.

* gnu/services/mail.scm (opensmtpd-shepherd-service)
(opensmtpd-activation)
(opensmtpd-set-gids): Use 'match-record' instead of 'match'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Bruno Victal 2022-12-06 16:52:09 +00:00 committed by Ludovic Courtès
parent 2880dc3046
commit 3011e8ae11
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1666,18 +1666,17 @@ (define %default-opensmtpd-config-file
match from local for any action outbound
"))
(define opensmtpd-shepherd-service
(match-lambda
(($ <opensmtpd-configuration> package config-file)
(list (shepherd-service
(provision '(smtpd))
(requirement '(loopback))
(documentation "Run the OpenSMTPD daemon.")
(start (let ((smtpd (file-append package "/sbin/smtpd")))
#~(make-forkexec-constructor
(list #$smtpd "-f" #$config-file)
#:pid-file "/var/run/smtpd.pid")))
(stop #~(make-kill-destructor)))))))
(define (opensmtpd-shepherd-service config)
(match-record config <opensmtpd-configuration> (package config-file)
(list (shepherd-service
(provision '(smtpd))
(requirement '(loopback))
(documentation "Run the OpenSMTPD daemon.")
(start (let ((smtpd (file-append package "/sbin/smtpd")))
#~(make-forkexec-constructor
(list #$smtpd "-f" #$config-file)
#:pid-file "/var/run/smtpd.pid")))
(stop #~(make-kill-destructor))))))
(define %opensmtpd-accounts
(list (user-group
@ -1698,58 +1697,56 @@ (define %opensmtpd-accounts
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin")))))
(define opensmtpd-activation
(match-lambda
(($ <opensmtpd-configuration> package config-file)
(let ((smtpd (file-append package "/sbin/smtpd")))
#~(begin
(use-modules (guix build utils))
;; Create mbox and spool directories.
(mkdir-p "/var/mail")
(mkdir-p "/var/spool/smtpd")
(chmod "/var/spool/smtpd" #o711)
(mkdir-p "/var/spool/mail")
(chmod "/var/spool/mail" #o711))))))
(define (opensmtpd-activation config)
(match-record config <opensmtpd-configuration> (package config-file)
(let ((smtpd (file-append package "/sbin/smtpd")))
#~(begin
(use-modules (guix build utils))
;; Create mbox and spool directories.
(mkdir-p "/var/mail")
(mkdir-p "/var/spool/smtpd")
(chmod "/var/spool/smtpd" #o711)
(mkdir-p "/var/spool/mail")
(chmod "/var/spool/mail" #o711)))))
(define %opensmtpd-pam-services
(list (unix-pam-service "smtpd")))
(define opensmtpd-set-gids
(match-lambda
(($ <opensmtpd-configuration> package config-file set-gids?)
(if set-gids?
(list
(setuid-program
(program (file-append package "/sbin/smtpctl"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/sendmail"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/send-mail"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/makemap"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/mailq"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/newaliases"))
(setuid? #false)
(setgid? #true)
(group "smtpq")))
'()))))
(define (opensmtpd-set-gids config)
(match-record config <opensmtpd-configuration> (package config-file setgid-commands?)
(if setgid-commands?
(list
(setuid-program
(program (file-append package "/sbin/smtpctl"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/sendmail"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/send-mail"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/makemap"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/mailq"))
(setuid? #false)
(setgid? #true)
(group "smtpq"))
(setuid-program
(program (file-append package "/sbin/newaliases"))
(setuid? #false)
(setgid? #true)
(group "smtpq")))
'())))
(define opensmtpd-service-type
(service-type