(name . Guix-patches)(address . guix-patches@gnu.org)
Hello Guix!
I noticed recently my little dovecot mailserver failed to boot, I
tracked it down to our service installing a symlink as:
/etc/dovecot/modules -> /run/current-system/profile/lib/dovecot
However, I didn't have the dovecot package globally installed, the
service does not install it AFAICT.
We could extend the service to install dovecot into the global profile,
however instead we can just symlink /etc/dovecot/modules to the dovecot
package in the store directly.
Here's the patch to do that! WDYT?
Thanks,
Pierre
-----BEGIN PGP SIGNATURE-----
iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAl9b0pYYHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31UoIYH/0D7Xm/vRKCmPSCR8mJ/I0tG
VkY5kt3AjY9kbnyaqzGypxd0jhBhhjCAsziZ/m5AUoq/Fet0Afc5dKVfXN2cdRG2
2bZ0wRTq3DuwPofEHRvIQcNkp9x/GS3tvuF5i3ByfRqxZ4xVWXuMvK+hF7vJp3cL
kzH+8lmfuEfJTZS+cHShcdf/05+8dlKNboX6h/AmdByjTuSy6fCoYl6smqICMbZ+
2Y9UxsLZ3yLkDBNO0RwTxAJqb+GNHFTEdTC6aPU6E3h8fB+TpzPfMhcpml5S5xgy
CIN+hWKX6XS1kbZUzw6weVfU+KNxOQxQ/pBc5WNs+FmEwwedidwol9lr2XxtOWo=
=Js9v
-----END PGP SIGNATURE-----
From a85def0a578bc1b53b8af5e524a5ea9ce18f8403 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Thu, 10 Sep 2020 23:25:02 +0100
Subject: [PATCH] services: dovecot: Do not require dovecot to be globally
installed.
* gnu/services/mail.scm (%dovecot-activation): Unconditionally symlink
/etc/dovecot/modules to the dovecot package's /lib dir instead of
hardcoding /run/current-system/profile/lib.
---
gnu/services/mail.scm | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
Toggle diff (38 lines)
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index 291a2db8e1..47f686852a 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Kristofer Buffington <kristoferbuffington@gmail.com>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1476,7 +1477,10 @@ greyed out, instead of only later giving \"not selectable\" popup error.
(with-output-to-string
(lambda ()
(serialize-configuration config
- dovecot-configuration-fields)))))))
+ dovecot-configuration-fields))))))
+ (dovecot (if (opaque-dovecot-configuration? config)
+ (opaque-dovecot-configuration-dovecot config)
+ (dovecot-configuration-dovecot config))))
#~(begin
(use-modules (guix build utils))
(define (mkdir-p/perms directory owner perms)
@@ -1533,8 +1537,9 @@ greyed out, instead of only later giving \"not selectable\" popup error.
(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))
+ (if (file-exists? moduledir)
+ (delete-file moduledir))
+ (symlink (string-append #$dovecot "/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