Revert "services: dovecot: Use modules via symlink to system profile."

This reverts commit bcfe0f0c1e for now.

It breaks most current use(r)s of the Dovecot service and needs to be
combined with an extra modules configuration field of some kind.

See <https://issues.guix.gnu.org/43347>.
This commit is contained in:
Tobias Geerinckx-Rice 2020-09-11 22:19:02 +02:00
parent ef500f9be4
commit d9d88c2ff0
No known key found for this signature in database
GPG key ID: 0DB0FF884F556D79
2 changed files with 4 additions and 12 deletions

View file

@ -18625,8 +18625,7 @@ Defaults to @samp{"/var/run/dovecot/auth-userdb"}.
@deftypevr {@code{dovecot-configuration} parameter} file-name mail-plugin-dir @deftypevr {@code{dovecot-configuration} parameter} file-name mail-plugin-dir
Directory where to look up mail plugins. Directory where to look up mail plugins.
Defaults to @samp{"/etc/dovecot/modules"}, a union of all enabled mail Defaults to @samp{"/usr/lib/dovecot"}.
plugins.
@end deftypevr @end deftypevr
@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins @deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins

View file

@ -988,10 +988,8 @@ (define-configuration dovecot-configuration
This is used by imap (for shared users) and lda.") This is used by imap (for shared users) and lda.")
(mail-plugin-dir (mail-plugin-dir
(file-name "/etc/dovecot/modules") (file-name "/usr/lib/dovecot")
"Directory where to look up mail plugins. "Directory where to look up mail plugins.")
Defaults to @samp{\"/etc/dovecot/modules\"}, a union of all enabled mail
plugins.")
(mail-plugins (mail-plugins
(space-separated-string-list '()) (space-separated-string-list '())
@ -1523,18 +1521,13 @@ (define* (create-self-signed-certificate-if-absent
(else (else
(format (current-error-port) (format (current-error-port)
"Failed to create public key at ~a.\n" public-key))))) "Failed to create public key at ~a.\n" public-key)))))
(let ((user (getpwnam "dovecot")) (let ((user (getpwnam "dovecot")))
;; This is Dovecot's term for the base directory for
;; dynamically loadable modules. It supports only one.
(moduledir "/etc/dovecot/modules"))
(mkdir-p/perms "/var/run/dovecot" user #o755) (mkdir-p/perms "/var/run/dovecot" user #o755)
(mkdir-p/perms "/var/lib/dovecot" user #o755) (mkdir-p/perms "/var/lib/dovecot" user #o755)
(mkdir-p/perms "/etc/dovecot" user #o755) (mkdir-p/perms "/etc/dovecot" user #o755)
(copy-file #$(plain-file "dovecot.conf" config-str) (copy-file #$(plain-file "dovecot.conf" config-str)
"/etc/dovecot/dovecot.conf") "/etc/dovecot/dovecot.conf")
(mkdir-p/perms "/etc/dovecot/private" user #o700) (mkdir-p/perms "/etc/dovecot/private" user #o700)
(unless (file-exists? moduledir)
(symlink "/run/current-system/profile/lib/dovecot" moduledir))
(create-self-signed-certificate-if-absent (create-self-signed-certificate-if-absent
#:private-key "/etc/dovecot/private/default.pem" #:private-key "/etc/dovecot/private/default.pem"
#:public-key "/etc/dovecot/default.pem" #:public-key "/etc/dovecot/default.pem"