summaryrefslogtreecommitdiff
path: root/doc/guix.texi
diff options
context:
space:
mode:
authorAlexey Abramov <levenson@mmer.org>2024-11-21 12:25:57 +0000
committerRodion Goritskov <rodion.goritskov@gmail.com>2025-01-23 23:42:31 +0100
commit0906829e9a8429a54617ee334604b68ffb2d1b72 (patch)
tree7c5561d9cfe628dfec76255a2ae84f5c5038cb1a /doc/guix.texi
parentd2474ee8a59c73e76b9437822d6e9334aff9af00 (diff)
services: dovecot: Provide plugins through a /gnu/store directory.
* gnu/services/mail.scm (package-list?, serialize-package-list): * gnu/services/mail.scm (dovecot-configuration)[extensions]: New field. The field lets you provide a list of dovecot plugins that need to be available during the runtime. A union of the set of modules will be created on the activation time. * gnu/services/mail.scm (opaque-dovecot-configuration)[extensions]: Likewise. * gnu/services/mail.scm (make-dovecot-moduledir): New function. * gnu/services/mail.scm (%dovecot-activation): Add step to compute a set of modules, and provide them over the shared link at /usr/lib/dovecot. * doc/guix.texi (Mail Services)[extension]: Add documentation. Clarify the purpose and usage of the extensions parameter. Add an example showing how to enable Sieve filtering using dovecot-pigeonhole. Better explain the module directory structure and requirements.
Diffstat (limited to 'doc/guix.texi')
-rw-r--r--doc/guix.texi19
1 files changed, 19 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 3b32d5408ea..c2b8ade1d34 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -26983,6 +26983,25 @@ Available @code{dovecot-configuration} fields are:
The dovecot package.
@end deftypevr
+@deftypevr {@code{dovecot-configuration} parameter} package-list extensions
+A list of additional Dovecot plugin packages to make available at runtime. During
+service activation, the @file{lib/dovecot} directory from each specified package
+is combined with Dovecot's core modules into a unified module directory.
+
+For example, to enable Sieve filtering:
+
+@lisp
+(extensions (list dovecot-pigeonhole))
+@end lisp
+
+Each package in the list must provide its modules at @file{lib/dovecot},
+as this is where @code{make-dovecot-moduledir} expects to find its
+extensions. The service combines these directories to create a unified
+module structure.
+
+The default value is an empty list, providing only core Dovecot functionality.
+@end deftypevr
+
@deftypevr {@code{dovecot-configuration} parameter} comma-separated-string-list listen
A list of IPs or hosts where to listen for connections. @samp{*}
listens on all IPv4 interfaces, @samp{::} listens on all IPv6