Subject: [bug#42899] [PATCH v4 0/8] Dovecot and pigeonhole improvements.

From: Alexey Abramov <[email-masked]>
Date: Tue, 8 Sep 2020 15:51:06 +0200

Hi Guix,

I have been a happy user of dovecot+pigeonhole for a few weeks now. I am adding @guix-devel to give these changes more attention. dovecot-pigeonhole is already merged, Thank you Tobias.

The next step is to provide some common location where dovecot services can find plugins and their settings. I created /etc/dovecot/modules directory, which is actually a link to "/run/current-system/profile/lib/dovecot" and it is creating during the activation time. By doing this we can make sure, that all dovecot services, those which come with dovecot, can find extensions like sieve/managesieve and their extra settings.

I am using mbsync for my email synchronization. And use the following snippet for my IMAPAccount/IMAPStore.

--8<---------------cut here---------------start------------->8---
IMAPAccount current-user
    Host localhost
    User aabramov
    Tunnel /run/current-system/profile/libexec/dovecot/imap

IMAPStore current-user
    Account current-user
--8<---------------cut here---------------end--------------->8---

I noticed that when I run imap this way, it reads dovecot configuration, and if some global (dovecot) settings are defined below the service ones, I get a lot of warning message that they won't affect those, and I should move them above in order to make them work. That is why I changed the order of serialization.

I also added some extra settings to the configuration, but those are not for all the services. If you don't apply any values to them, they are still serialized to every service, hence services are crashing with a fatal error. I added a change that will prevent it.

I have rebased my changes and provide v4 series of patches.

Please let me know what you think.

Alexey Abramov (7):
  services: dovecot: Use modules via symlink to system profile.
  services: dovecot: Serialize global settings first.
  services: dovecot: Only serialize settings with non-empty values.
  services: dovecot: Add 'mail-attribute-dict' configuration option.
  services: dovecot: Add 'imap-metadata?' protocol configuration option.
  services: dovecot: Add 'managesieve-notify-capability' option.
  services: dovecot: Add 'managesieve-sieve-capability' option.

Efraim Flashner (1):
  gnu: dovecot: Set moduledir to global directory.

 doc/guix.texi         |  53 +++++++++++++-
 gnu/packages/mail.scm |   9 ++-
 gnu/services/mail.scm | 165 ++++++++++++++++++++++++++----------------
 3 files changed, 159 insertions(+), 68 deletions(-)

--
Alexey