diff mbox series

[bug#42899,03/10] services: dovecot: Use modules via symlink to system profile.

Message ID 20200817093124.30611-3-levenson@mmer.org
State New
Headers show
Series Dovecot improvements. Add support for pigeonhole. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Alexey Abramov Aug. 17, 2020, 9:31 a.m. UTC
* gnu/services/mail.scm (%dovecot-activation): Link the location with multiple
plugins (dovecot-pigeonhole, etc), to a place where dovecot can find them.
* gnu/services/mail.scm (dovecot-configuration): Use the symlink.

Signed-off-by: Alexey Abramov <levenson@mmer.org>
---
 gnu/services/mail.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index cfcaf4601b..da17933d6b 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1044,7 +1044,7 @@  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")
+   (file-name "/etc/dovecot/modules")
    "Directory where to look up mail plugins.")
 
   (mail-plugins
@@ -1519,13 +1519,16 @@  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"))
+              (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"