summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi3
-rw-r--r--gnu/services/mail.scm13
2 files changed, 12 insertions, 4 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 1d6782e6fa..cfd90471f7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -18615,7 +18615,8 @@ Defaults to @samp{"/var/run/dovecot/auth-userdb"}.
@deftypevr {@code{dovecot-configuration} parameter} file-name mail-plugin-dir
Directory where to look up mail plugins.
-Defaults to @samp{"/usr/lib/dovecot"}.
+Defaults to @samp{"/etc/dovecot/modules"}, a union of all enabled mail
+plugins.
@end deftypevr
@deftypevr {@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index cfcaf4601b..c3ecbb394b 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1044,8 +1044,10 @@ directories are prefixed with the chroot directory, append \"/.\" to
This is used by imap (for shared users) and lda.")
(mail-plugin-dir
- (file-name "/usr/lib/dovecot")
- "Directory where to look up mail plugins.")
+ (file-name "/etc/dovecot/modules")
+ "Directory where to look up mail plugins.
+Defaults to @samp{\"/etc/dovecot/modules\"}, a union of all enabled mail
+plugins.")
(mail-plugins
(space-separated-string-list '())
@@ -1519,13 +1521,18 @@ greyed out, instead of only later giving \"not selectable\" popup error.
(else
(format (current-error-port)
"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/lib/dovecot" user #o755)
(mkdir-p/perms "/etc/dovecot" user #o755)
(copy-file #$(plain-file "dovecot.conf" config-str)
"/etc/dovecot/dovecot.conf")
(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
#:private-key "/etc/dovecot/private/default.pem"
#:public-key "/etc/dovecot/default.pem"