unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Alexey Abramov <levenson@mmer.org>
To: 42899@debbugs.gnu.org
Subject: [bug#42899] [PATCH v3 2/9] services: dovecot: Use modules via symlink to system profile.
Date: Thu, 27 Aug 2020 17:17:36 +0200	[thread overview]
Message-ID: <20200827151743.27712-2-levenson@mmer.org> (raw)
In-Reply-To: <20200827151743.27712-1-levenson@mmer.org>

* 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.
---
 doc/guix.texi         |  9 +++++++--
 gnu/services/mail.scm | 13 ++++++++++---
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 0b79a49814..dfa83c409c 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -18360,8 +18360,13 @@ Defaults to @samp{"/var/run/dovecot/auth-userdb"}.
 @end deftypevr
 
 @deftypevr {@code{dovecot-configuration} parameter} file-name mail-plugin-dir
-Directory where to look up mail plugins.
-Defaults to @samp{"/usr/lib/dovecot"}.
+Directory where to look up mail plugins.  In Guix, dovecot plugins have
+all its modules under /gnu/store/xxx-plugin/(lib|libexec)/dovecot. To be
+able to load all those modules by doveconf or services like sieve,
+@samp{mail-plugin-dir} is a symlink "/run/current-system/profile/lib/dovecot",
+which creates during the activation step.
+
+Defaults to @samp{"/etc/dovecot/modules"}.
 @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..2832303d88 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1044,8 +1044,12 @@ 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.  In Guix, dovecot plugins have
+all its modules under /gnu/store/xxx-plugin/(lib|libexec)/dovecot. To be able
+to load all those modules by doveconf or services like imap,
+@samp{mail-plugin-dir} is a symlink `/run/current-system/profile/lib/dovecot`,
+which creates during the activation step.")
 
   (mail-plugins
    (space-separated-string-list '())
@@ -1519,13 +1523,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"
-- 
2.28.0





  reply	other threads:[~2020-08-27 15:19 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-17  9:27 [bug#42899] [PATCH 00/10] Dovecot improvements. Add support for pigeonhole Alexey Abramov
2020-08-17  9:31 ` [bug#42899] [PATCH 01/10] gnu: dovecot: Add lucene library to support fts indexing Alexey Abramov
2020-08-17  9:31   ` [bug#42899] [PATCH 02/10] gnu: dovecot: Patch and provide a static path for module directory Alexey Abramov
2020-08-17  9:31   ` [bug#42899] [PATCH 03/10] services: dovecot: Use modules via symlink to system profile Alexey Abramov
2020-08-17  9:31   ` [bug#42899] [PATCH 04/10] gnu: dovecot-pigeonhole: Add new variable Alexey Abramov
2020-08-26  4:23     ` Tobias Geerinckx-Rice via Guix-patches via
2020-08-17  9:31   ` [bug#42899] [PATCH 05/10] services: dovecot: Serialize global settings first Alexey Abramov
2020-08-17  9:31   ` [bug#42899] [PATCH 06/10] services: dovecot: Only serialize settings with non-empty values Alexey Abramov
2020-08-17  9:31   ` [bug#42899] [PATCH 07/10] services: dovecot: Add 'mail-attribute-dict' configuration option Alexey Abramov
2020-08-17  9:31   ` [bug#42899] [PATCH 08/10] services: dovecot: Add 'imap-metadata?' protocol " Alexey Abramov
2020-08-17  9:31   ` [bug#42899] [PATCH 09/10] services: dovecot: Add 'managesieve-notify-capability' configuration Alexey Abramov
2020-08-17  9:31   ` [bug#42899] [PATCH 10/10] services: dovecot: Add 'managesieve-sieve-capability' option Alexey Abramov
2020-08-18 12:00 ` [bug#42899] [PATCH v2 01/10] gnu: dovecot: Add lucene library to support fts indexing Alexey Abramov
2020-08-18 12:00   ` [bug#42899] [PATCH v2 02/10] gnu: dovecot: Patch and provide a static path for module directory Alexey Abramov
2020-08-19  7:41     ` Efraim Flashner
2020-08-19  9:44       ` Alexey Abramov
2020-08-23 20:45         ` Efraim Flashner
2020-08-24 10:01           ` Alexey Abramov
2020-08-18 12:00   ` [bug#42899] [PATCH v2 03/10] services: dovecot: Use modules via symlink to system profile Alexey Abramov
2020-08-18 12:00   ` [bug#42899] [PATCH v2 04/10] gnu: dovecot-pigeonhole: Add new variable Alexey Abramov
2020-08-23 21:16     ` Efraim Flashner
2020-08-24 10:47       ` Alexey Abramov
2020-08-18 12:00   ` [bug#42899] [PATCH v2 05/10] services: dovecot: Serialize global settings first Alexey Abramov
2020-08-18 12:00   ` [bug#42899] [PATCH v2 06/10] services: dovecot: Only serialize settings with non-empty values Alexey Abramov
2020-08-18 12:00   ` [bug#42899] [PATCH v2 07/10] services: dovecot: Add 'mail-attribute-dict' configuration option Alexey Abramov
2020-08-18 12:00   ` [bug#42899] [PATCH v2 08/10] services: dovecot: Add 'imap-metadata?' protocol " Alexey Abramov
2020-08-18 12:00   ` [bug#42899] [PATCH v2 09/10] services: dovecot: Add 'managesieve-notify-capability' option Alexey Abramov
2020-08-23 21:18   ` [bug#42899] [PATCH v2 01/10] gnu: dovecot: Add lucene library to support fts indexing Efraim Flashner
2020-08-23 21:23 ` [bug#42899] [PATCH 00/10] Dovecot improvements. Add support for pigeonhole Efraim Flashner
2020-08-27 15:17 ` [bug#42899] [PATCH v3 1/9] gnu: dovecot: Set moduledir to global directory Alexey Abramov
2020-08-27 15:17   ` Alexey Abramov [this message]
2020-08-27 15:17   ` [bug#42899] [PATCH v3 3/9] gnu: dovecot-pigeonhole: Add new variable Alexey Abramov
2020-08-27 15:17   ` [bug#42899] [PATCH v3 4/9] services: dovecot: Serialize global settings first Alexey Abramov
2020-08-27 15:17   ` [bug#42899] [PATCH v3 5/9] services: dovecot: Only serialize settings with non-empty values Alexey Abramov
2020-08-27 15:17   ` [bug#42899] [PATCH v3 6/9] services: dovecot: Add 'mail-attribute-dict' configuration option Alexey Abramov
2020-08-27 15:17   ` [bug#42899] [PATCH v3 7/9] services: dovecot: Add 'imap-metadata?' protocol " Alexey Abramov
2020-08-27 15:17   ` [bug#42899] [PATCH v3 8/9] services: dovecot: Add 'managesieve-notify-capability' option Alexey Abramov
2020-08-27 15:17   ` [bug#42899] [PATCH v3 9/9] services: dovecot: Add 'managesieve-sieve-capability' option Alexey Abramov
2020-09-08 13:53 ` [bug#42899] [PATCH v4 1/8] gnu: dovecot: Set moduledir to global directory Alexey Abramov
2020-09-08 13:53   ` [bug#42899] [PATCH v4 2/8] services: dovecot: Use modules via symlink to system profile Alexey Abramov
2020-09-08 13:53   ` [bug#42899] [PATCH v4 3/8] services: dovecot: Serialize global settings first Alexey Abramov
2020-09-08 13:53   ` [bug#42899] [PATCH v4 4/8] services: dovecot: Only serialize settings with non-empty values Alexey Abramov
2020-09-08 13:53   ` [bug#42899] [PATCH v4 5/8] services: dovecot: Add 'mail-attribute-dict' configuration option Alexey Abramov
2020-09-08 13:53   ` [bug#42899] [PATCH v4 6/8] services: dovecot: Add 'imap-metadata?' protocol " Alexey Abramov
2020-09-08 13:53   ` [bug#42899] [PATCH v4 7/8] services: dovecot: Add 'managesieve-notify-capability' option Alexey Abramov
2020-09-08 13:53   ` [bug#42899] [PATCH v4 8/8] services: dovecot: Add 'managesieve-sieve-capability' option Alexey Abramov
2020-09-08 14:03   ` [bug#42899] [PATCH v4 1/8] gnu: dovecot: Set moduledir to global directory Tobias Geerinckx-Rice via Guix-patches via
2020-09-08 14:21     ` Alexey Abramov
2020-10-20 15:06 ` [bug#42899] [PATCH v5 0/6] Dovecot improvements Alexey Abramov
2020-10-20 15:06   ` [bug#42899] [PATCH v5 1/6] gnu: dovecot: Set moduledir to global directory Alexey Abramov
2020-10-20 15:06   ` [bug#42899] [PATCH v5 2/6] services: dovecot: Provide plugins through a /gnu/store directory Alexey Abramov
2020-10-20 15:06   ` [bug#42899] [PATCH v5 3/6] services: dovecot: Add 'mail-attribute-dict' configuration option Alexey Abramov
2020-10-20 15:06   ` [bug#42899] [PATCH v5 4/6] services: dovecot: Add 'imap-metadata?' protocol " Alexey Abramov
2020-10-20 15:06   ` [bug#42899] [PATCH v5 5/6] services: dovecot: Add 'managesieve-notify-capability' option Alexey Abramov
2020-10-20 15:06   ` [bug#42899] [PATCH v5 6/6] services: dovecot: Add 'managesieve-sieve-capability' option Alexey Abramov
2020-12-25 16:15 ` [bug#42899] [PATCH 00/10] Dovecot improvements. Add support for pigeonhole Alexey Abramov via web

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200827151743.27712-2-levenson@mmer.org \
    --to=levenson@mmer.org \
    --cc=42899@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).