unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Efraim Flashner <efraim@flashner.co.il>
To: Alexey Abramov <levenson@mmer.org>
Cc: 42899@debbugs.gnu.org
Subject: [bug#42899] [PATCH v2 02/10] gnu: dovecot: Patch and provide a static path for module directory.
Date: Sun, 23 Aug 2020 23:45:35 +0300	[thread overview]
Message-ID: <20200823204535.GA1392@E5400> (raw)
In-Reply-To: <87lfib2cnf.fsf@mmer.org>


[-- Attachment #1.1: Type: text/plain, Size: 2742 bytes --]

On Wed, Aug 19, 2020 at 11:44:20AM +0200, Alexey Abramov wrote:
> Hi,
> 
> Efraim Flashner <efraim@flashner.co.il> writes:
> 
> > How are all the XXX_MODULE_DIR variables set? Would it be possible to
> > just set MODULE_DIR to /etc/dovecot/modules and leave the others as-is?
> > They seem to just use a file/folder under MODULE_DIR.
> 
> They set during compilation time. If I pass it as a configuration option, dovecot will try to install libraries there which won't work.

This was enough to jog my memory that we have a couple of packages (with
services) that have configure flags for one directory and install to
%outputs as expected. I came up with the attached patch to make that
happen.

> 
> For example:
> 
> --8<---------------cut here---------------start------------->8---
> -*- mode: rg; default-directory: "~/factory/dovecot/" -*-
> rg started at Wed Aug 19 10:35:00
> 
> /gnu/store/cxy9n8aic4c9zd0r372m6b6yzw3dhcyl-ripgrep-12.1.1/bin/rg --color always --colors match:fg:red -n --type-add gn\:\*.gn --type-add gn\:\*.gni --type-add gyp\:\*.gyp --type-add gyp\:\*.gypi --no-heading --type all -e AUTH_MODULE_DIR
> 
> src/auth/Makefile.am:42:	-DAUTH_MODULE_DIR=\""$(auth_moduledir)"\" \
> src/auth/main.c:195:	modules = module_dir_load(AUTH_MODULE_DIR, NULL, &mod_set);
> src/auth/main.c:226:	modules = module_dir_load_missing(modules, AUTH_MODULE_DIR, names,
> src/doveadm/doveadm-pw.c:40:	modules = module_dir_load_missing(modules, AUTH_MODULE_DIR, NULL, &mod_set);
> src/doveadm/Makefile.am:28:	-DAUTH_MODULE_DIR=\""$(moduledir)/auth"\" \
> 
> rg finished (5 matches found) at Wed Aug 19 10:35:00
> --8<---------------cut here---------------end--------------->8---
> 
> --8<---------------cut here---------------start------------->8---
> -*- mode: rg; default-directory: "~/factory/dovecot/" -*-
> rg started at Wed Aug 19 11:33:25
> 
> /gnu/store/cxy9n8aic4c9zd0r372m6b6yzw3dhcyl-ripgrep-12.1.1/bin/rg --color always --colors match:fg:red -n --type-add gn\:\*.gn --type-add gn\:\*.gni --type-add gyp\:\*.gyp --type-add gyp\:\*.gypi --no-heading --type all -e DOVEADM_MODULEDIR
> 
> src/doveadm/doveadm-util.c:36:	modules = module_dir_load_missing(modules, DOVEADM_MODULEDIR,
> src/doveadm/doveadm-util.c:61:	dir = opendir(DOVEADM_MODULEDIR);
> src/doveadm/Makefile.am:29:	-DDOVEADM_MODULEDIR=\""$(doveadm_moduledir)"\" \
> 
> rg finished (3 matches found) at Wed Aug 19 11:33:25
> --8<---------------cut here---------------end--------------->8---
> 
> --
> Alexey

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #1.2: 0001-gnu-dovecot-Set-moduledir-to-global-directory.patch --]
[-- Type: text/plain, Size: 1976 bytes --]

From e4dd3230739bca94896343d64c6756d346016296 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Sun, 23 Aug 2020 23:43:43 +0300
Subject: [PATCH] gnu: dovecot: Set moduledir to global directory.

* gnu/packages/mail.scm (dovecot)[arguments]: Add configure-flag to set
moduledir. Adjust custom 'install phase to override moduledir so it
successfully installs.
---
 gnu/packages/mail.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 01ba9dc057..d3d1bda1b6 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1442,7 +1442,8 @@ facilities for checking incoming mail.")
      `(#:configure-flags '("--sysconfdir=/etc"
                            "--localstatedir=/var"
                            "--with-sqlite"  ; not auto-detected
-                           "--with-lucene")
+                           "--with-lucene"
+                           "--with-moduledir=/etc/dovecot/modules")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-file-names
@@ -1459,9 +1460,13 @@ facilities for checking incoming mail.")
                (("cat") (which "cat")))
              #t))
          (replace 'install
-           (lambda* (#:key make-flags #:allow-other-keys)
+           (lambda* (#:key outputs make-flags #:allow-other-keys)
+             ;; The .la files don't like having the moduledir moved.
+             (for-each delete-file (find-files "." "\\.la"))
              ;; Simple hack to avoid installing a trivial README in /etc.
              (apply invoke "make" "install" "sysconfdir=/tmp/bogus"
+                    (string-append "moduledir=" (assoc-ref outputs "out")
+                                   "/lib/dovecot")
                     make-flags))))))
     (home-page "https://www.dovecot.org")
     (synopsis "Secure POP3/IMAP server")
-- 
2.28.0


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2020-08-23 20:47 UTC|newest]

Thread overview: 61+ 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 [this message]
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   ` [bug#42899] [PATCH v3 2/9] services: dovecot: Use modules via symlink to system profile Alexey Abramov
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
2024-07-16 21:37   ` Thomas Ieong
2024-11-21 12:25 ` [bug#42899] [PATCH v6 0/3] services: dovecot: Add pigeonhole support Alexey Abramov via Guix-patches via
2024-11-21 12:25   ` [bug#42899] [PATCH v6 1/3] gnu: dovecot: Set moduledir to global directory Alexey Abramov via Guix-patches via
2024-11-21 12:25   ` [bug#42899] [PATCH v6 2/3] services: dovecot: Provide plugins through a /gnu/store directory Alexey Abramov via Guix-patches via
2024-11-21 12:25   ` [bug#42899] [PATCH v6 3/3] tests: dovecot: Add sieve Alexey Abramov via Guix-patches via

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=20200823204535.GA1392@E5400 \
    --to=efraim@flashner.co.il \
    --cc=42899@debbugs.gnu.org \
    --cc=levenson@mmer.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).