From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id wECuCvLOR19FOwAA0tVLHw (envelope-from ) for ; Thu, 27 Aug 2020 15:19: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 mp2 with LMTPS id oOidBvLOR18zZQAAB5/wlQ (envelope-from ) for ; Thu, 27 Aug 2020 15:19: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 DEC42940631 for ; Thu, 27 Aug 2020 15:19:13 +0000 (UTC) Received: from localhost ([::1]:35276 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kBJgG-0002N1-Qs for larch@yhetil.org; Thu, 27 Aug 2020 11:19:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kBJg6-0002Jx-GD for guix-patches@gnu.org; Thu, 27 Aug 2020 11:19:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:60353) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kBJg6-0004cX-7E for guix-patches@gnu.org; Thu, 27 Aug 2020 11:19:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kBJg6-0007gd-1H for guix-patches@gnu.org; Thu, 27 Aug 2020 11:19:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#42899] [PATCH v3 2/9] 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: Thu, 27 Aug 2020 15:19:01 +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.159854148729429 (code B ref 42899); Thu, 27 Aug 2020 15:19:01 +0000 Received: (at 42899) by debbugs.gnu.org; 27 Aug 2020 15:18:07 +0000 Received: from localhost ([127.0.0.1]:43644 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kBJf9-0007dx-EO for submit@debbugs.gnu.org; Thu, 27 Aug 2020 11:18:07 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:50004) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kBJf6-0007dG-Ui for 42899@debbugs.gnu.org; Thu, 27 Aug 2020 11:18:02 -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 794A89CE5D for <42899@debbugs.gnu.org>; Thu, 27 Aug 2020 14:47:13 +0000 (UTC) From: Alexey Abramov Date: Thu, 27 Aug 2020 17:17:36 +0200 Message-Id: <20200827151743.27712-2-levenson@mmer.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200827151743.27712-1-levenson@mmer.org> References: <20200827151743.27712-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: 5to025ACBguX * 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