From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 4GHmNgrDO19FVAAA0tVLHw (envelope-from ) for ; Tue, 18 Aug 2020 12:01:14 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id WBrdMgrDO1/CPgAA1q6Kng (envelope-from ) for ; Tue, 18 Aug 2020 12:01:14 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A80609402C2 for ; Tue, 18 Aug 2020 12:01:14 +0000 (UTC) Received: from localhost ([::1]:50474 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k80Ij-0007hr-J6 for larch@yhetil.org; Tue, 18 Aug 2020 08:01:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53714) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k80IZ-0007gB-3h for guix-patches@gnu.org; Tue, 18 Aug 2020 08:01:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:51080) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k80IY-0007Fw-Os for guix-patches@gnu.org; Tue, 18 Aug 2020 08:01:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1k80IY-0006Gy-Mf for guix-patches@gnu.org; Tue, 18 Aug 2020 08:01:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#42899] [PATCH v2 03/10] services: dovecot: Use modules via symlink to system profile. Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 18 Aug 2020 12:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42899 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 42899@debbugs.gnu.org Received: via spool by 42899-submit@debbugs.gnu.org id=B42899.159775204724003 (code B ref 42899); Tue, 18 Aug 2020 12:01:02 +0000 Received: (at 42899) by debbugs.gnu.org; 18 Aug 2020 12:00:47 +0000 Received: from localhost ([127.0.0.1]:34377 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k80II-0006Ez-DE for submit@debbugs.gnu.org; Tue, 18 Aug 2020 08:00:46 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:36771) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k80IF-0006EN-RI for 42899@debbugs.gnu.org; Tue, 18 Aug 2020 08:00:44 -0400 Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id B03629CE69 for <42899@debbugs.gnu.org>; Tue, 18 Aug 2020 11:29:56 +0000 (UTC) From: Alexey Abramov Date: Tue, 18 Aug 2020 14:00:31 +0200 Message-Id: <20200818120037.30722-3-levenson@mmer.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200818120037.30722-1-levenson@mmer.org> References: <20200818120037.30722-1-levenson@mmer.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -1.0 (-) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: 3.99 X-TUID: IPsHnHgNV3tp * 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 --- 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 e0c138533f..9f803fdbac 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -18333,8 +18333,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.27.0