guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/04: services: dovecot: Use modules via symlink to system profile.


From: guix-commits
Subject: 03/04: services: dovecot: Use modules via symlink to system profile.
Date: Wed, 9 Sep 2020 14:38:23 -0400 (EDT)

nckx pushed a commit to branch master
in repository guix.

commit bcfe0f0c1e9a2b91049d7c6c591c7f0c6a002c14
Author: Alexey Abramov <levenson@mmer.org>
AuthorDate: Tue Sep 8 15:53:42 2020 +0200

    services: dovecot: Use modules via symlink to system profile.
    
    * 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: Tobias Geerinckx-Rice <me@tobias.gr>
---
 doc/guix.texi         |  3 ++-
 gnu/services/mail.scm | 13 ++++++++++---
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 1d6782e..cfd9047 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 cfcaf46..c3ecbb3 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"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]