diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | src/org/euandre/queue.scm | 174 | ||||
-rw-r--r-- | tests/internet/etc/dovecot2/dovecot2.conf.in (renamed from tests/internet/etc/dovecot/dovecot.conf.in) | 2 | ||||
-rw-r--r-- | tests/internet/system.scm | 2 |
5 files changed, 92 insertions, 92 deletions
@@ -3,4 +3,4 @@ /*.sentinel /tests/internet/etc/postfix/main.cf /tests/internet/etc/dkimproxyout.conf -/tests/internet/etc/dovecot/dovecot.conf +/tests/internet/etc/dovecot2/dovecot2.conf @@ -16,7 +16,7 @@ N = `nproc` test-config-files = \ tests/internet/etc/postfix/main.cf \ tests/internet/etc/dkimproxyout.conf \ - tests/internet/etc/dovecot/dovecot.conf \ + tests/internet/etc/dovecot2/dovecot2.conf \ derived-assets = \ queue.scm.sentinel \ @@ -67,7 +67,7 @@ internet-files = \ $(local-files) \ /etc/sasl2/smtpd.conf \ /etc/dkimproxyout.conf \ - /etc/dovecot/dovecot.conf \ + /etc/dovecot2/dovecot2.conf \ check-guix-static-local: local.scm.sentinel $(test-config-files) for f in $(local-files); do \ diff --git a/src/org/euandre/queue.scm b/src/org/euandre/queue.scm index e9f5d1d..783f813 100644 --- a/src/org/euandre/queue.scm +++ b/src/org/euandre/queue.scm @@ -126,37 +126,37 @@ internet-postfix-service-type - <dovecot-configuration> - dovecot-configuration - make-dovecot-configuration - dovecot-configuration? - - dovecot-configuration-package - dovecot-configuration-mail-location - dovecot-configuration-raw-file - dovecot-configuration-extra-content - dovecot-configuration-config-dirname - dovecot-configuration-config-filename - dovecot-configuration-user - dovecot-configuration-group - dovecot-configuration-supplementary-groups - dovecot-configuration-auth-worker-group - dovecot-configuration-untrusted-user - dovecot-configuration-untrusted-group - dovecot-configuration-untrusted-supplementary-groups - dovecot-configuration-base-dir - dovecot-configuration-state-dir - dovecot-configuration-hostname - dovecot-configuration-run-in-container? - dovecot-configuration-container-name - dovecot-configuration-container-namespaces - dovecot-configuration-extra-mappings - - dovecot-etc-files - dovecot-accounts - dovecot-activation - dovecot-shepherd-service - dovecot-service-type)) + <dovecot2-configuration> + dovecot2-configuration + make-dovecot2-configuration + dovecot2-configuration? + + dovecot2-configuration-package + dovecot2-configuration-mail-location + dovecot2-configuration-raw-file + dovecot2-configuration-extra-content + dovecot2-configuration-config-dirname + dovecot2-configuration-config-filename + dovecot2-configuration-user + dovecot2-configuration-group + dovecot2-configuration-supplementary-groups + dovecot2-configuration-auth-worker-group + dovecot2-configuration-untrusted-user + dovecot2-configuration-untrusted-group + dovecot2-configuration-untrusted-supplementary-groups + dovecot2-configuration-base-dir + dovecot2-configuration-state-dir + dovecot2-configuration-hostname + dovecot2-configuration-run-in-container? + dovecot2-configuration-container-name + dovecot2-configuration-container-namespaces + dovecot2-configuration-extra-mappings + + dovecot2-etc-files + dovecot2-accounts + dovecot2-activation + dovecot2-shepherd-service + dovecot2-service-type)) (use-package-modules admin check @@ -1450,33 +1450,33 @@ correctly."))) -(define-record-type* <dovecot-configuration> - dovecot-configuration - make-dovecot-configuration - dovecot-configuration? - (package dovecot-configuration-package (default dovecot)) - (mail-location dovecot-configuration-mail-location (default "/var/mail/")) - (raw-file dovecot-configuration-raw-file (default #f)) - (extra-content dovecot-configuration-extra-content (default "")) - (config-dirname dovecot-configuration-config-dirname (default "dovecot")) - (config-filename dovecot-configuration-config-filename (default "dovecot.conf")) - (user dovecot-configuration-user (default "dovecot")) - (group dovecot-configuration-group (default "dovecot")) - (supplementary-groups dovecot-configuration-supplementary-groups (default '())) - (auth-worker-group dovecot-configuration-auth-worker-group (default "etc-shadow")) - (untrusted-user dovecot-configuration-untrusted-user (default "dovenull")) - (untrusted-group dovecot-configuration-untrusted-group (default "dovenull")) - (untrusted-supplementary-groups dovecot-configuration-untrusted-supplementary-groups (default '())) - (base-dir dovecot-configuration-base-dir (default "/var/run/dovecot")) - (state-dir dovecot-configuration-state-dir (default "/var/lib/dovecot")) - (hostname dovecot-configuration-hostname (default (gethostname))) - (run-in-container? dovecot-configuration-run-in-container? (default #f)) - (container-name dovecot-configuration-container-name (default "dovecot")) - (container-namespaces dovecot-configuration-container-namespaces (default (s1:fold delq container:%namespaces '(net)))) - (extra-mappings dovecot-configuration-extra-mappings (default '()))) - -(define (generate-dovecot-config config) - (match-record config <dovecot-configuration> +(define-record-type* <dovecot2-configuration> + dovecot2-configuration + make-dovecot2-configuration + dovecot2-configuration? + (package dovecot2-configuration-package (default dovecot)) + (mail-location dovecot2-configuration-mail-location (default "/var/mail/")) + (raw-file dovecot2-configuration-raw-file (default #f)) + (extra-content dovecot2-configuration-extra-content (default "")) + (config-dirname dovecot2-configuration-config-dirname (default "dovecot2")) + (config-filename dovecot2-configuration-config-filename (default "dovecot2.conf")) + (user dovecot2-configuration-user (default "dovecot2")) + (group dovecot2-configuration-group (default "dovecot2")) + (supplementary-groups dovecot2-configuration-supplementary-groups (default '())) + (auth-worker-group dovecot2-configuration-auth-worker-group (default "etc-shadow")) + (untrusted-user dovecot2-configuration-untrusted-user (default "dovenull")) + (untrusted-group dovecot2-configuration-untrusted-group (default "dovenull")) + (untrusted-supplementary-groups dovecot2-configuration-untrusted-supplementary-groups (default '())) + (base-dir dovecot2-configuration-base-dir (default "/var/run/dovecot2")) + (state-dir dovecot2-configuration-state-dir (default "/var/lib/dovecot2")) + (hostname dovecot2-configuration-hostname (default (gethostname))) + (run-in-container? dovecot2-configuration-run-in-container? (default #f)) + (container-name dovecot2-configuration-container-name (default "dovecot2")) + (container-namespaces dovecot2-configuration-container-namespaces (default (s1:fold delq container:%namespaces '(net)))) + (extra-mappings dovecot2-configuration-extra-mappings (default '()))) + +(define (generate-dovecot2-config config) + (match-record config <dovecot2-configuration> (mail-location user group auth-worker-group untrusted-user hostname base-dir state-dir extra-content) (format #f @@ -1548,18 +1548,18 @@ namespace inbox { mail-location extra-content))) -(define (dovecot-etc-files config) - (match-record config <dovecot-configuration> +(define (dovecot2-etc-files config) + (match-record config <dovecot2-configuration> (raw-file config-dirname config-filename) `((,config-dirname ,(file-union config-dirname `((,config-filename ,(plain-file config-filename (or raw-file - (generate-dovecot-config config)))))))))) + (generate-dovecot2-config config)))))))))) -(define (dovecot-accounts config) - (match-record config <dovecot-configuration> +(define (dovecot2-accounts config) + (match-record config <dovecot2-configuration> ( user group supplementary-groups untrusted-user untrusted-group untrusted-supplementary-groups) (list @@ -1567,7 +1567,7 @@ namespace inbox { (name user) (group group) (supplementary-groups supplementary-groups) - (comment "Dovecot system user") + (comment "Dovecot2 system user") (home-directory "/var/empty") (create-home-directory? #f) (shell @@ -1577,7 +1577,7 @@ namespace inbox { (name untrusted-user) (group untrusted-group) (supplementary-groups untrusted-supplementary-groups) - (comment "Dovecot user for untrusted logins") + (comment "Dovecot2 user for untrusted logins") (home-directory "/var/empty") (create-home-directory? #f) (shell @@ -1590,15 +1590,15 @@ namespace inbox { (name untrusted-group) (system? #t))))) -(define (dovecot-activation config) - (match-record config <dovecot-configuration> +(define (dovecot2-activation config) + (match-record config <dovecot2-configuration> (base-dir state-dir) #~(begin (use-modules (guix build utils)) (let ((user (getpwnam "root")) (dhparam.pem (string-append #$state-dir "/dhparam.pem"))) (format (current-error-port) - "Creating Dovecot base_dir directory: \"~a\".~%" #$base-dir) + "Creating Dovecot2 base_dir directory: \"~a\".~%" #$base-dir) (mkdir-p/perms #$base-dir user #o755) (mkdir-p/perms #$state-dir user #o755) (unless (file-exists? dhparam.pem) @@ -1613,8 +1613,8 @@ namespace inbox { (format (current-error-port) "Failed to create dhparam.pem file: \"~a\".~%" dhparam.pem)))))))) -(define (dovecot-shepherd-service config) - (match-record config <dovecot-configuration> +(define (dovecot2-shepherd-service config) + (match-record config <dovecot2-configuration> (package config-dirname config-filename run-in-container? container-name container-namespaces extra-mappings) (let* ((config-file (string-append "/etc/" config-dirname "/" config-filename)) @@ -1633,8 +1633,8 @@ namespace inbox { extra-mappings))))) (list (shepherd-service - (provision '(dovecot)) - (documentation "Run the Dovecot daemon.") + (provision '(dovecot2)) + (documentation "Run the Dovecot2 daemon.") (start #~(make-forkexec-constructor (list #$cmd "-F" "-c" #$config-file))) (stop #~(make-kill-destructor)) @@ -1648,7 +1648,7 @@ namespace inbox { (format #t "~a~%" #$config-file)))) (shepherd-action (name 'reload) - (documentation "Re-read the configuration file without restarting the running dovecot daemon.") + (documentation "Re-read the configuration file without restarting the running dovecot2 daemon.") (procedure #~(lambda _ (invoke #$(file-append package "/bin/doveadm") @@ -1656,32 +1656,32 @@ namespace inbox { #$config-file "reload"))))))))))) -(define dovecot-service-type +(define dovecot2-service-type (service-type - (name 'dovecot) + (name 'dovecot2) (extensions (list (service-extension etc-service-type - dovecot-etc-files) + dovecot2-etc-files) (service-extension account-service-type - dovecot-accounts) + dovecot2-accounts) (service-extension activation-service-type - dovecot-activation) + dovecot2-activation) (service-extension profile-service-type - (compose list dovecot-configuration-package)) + (compose list dovecot2-configuration-package)) (service-extension shepherd-root-service-type - dovecot-shepherd-service))) - (default-value (dovecot-configuration)) - (description "Run the Dovecot IMAP @code{dovecot} daemon. + dovecot2-shepherd-service))) + (default-value (dovecot2-configuration)) + (description "Run the Dovecot2 IMAP @code{dovecot2} daemon. -This is the top-level system service for Dovecot, using the UNIX password stored +This is the top-level system service for Dovecot2, using the UNIX password stored at @file{/etc/shadow} for authenticating IMAP connections. It includes: @itemize -@item creating the configuration file at @file{/etc/dovecot/dovecot.conf} by +@item creating the configuration file at @file{/etc/dovecot2/dovecot2.conf} by default; -@item the user and groups used by Dovecot both system and untrusted users; +@item the user and groups used by Dovecot2 both system and untrusted users; @item the activation script for creating the required directories and the @file{dhparam.pem} file if it is missing; @item the Shepherd service for starting, stopping and @emph{reloading} the @@ -1694,9 +1694,9 @@ An extension to the log-rotation service isn't included: the default rottlog configuration already includes @file{/var/log/maillog} in its routine, so it is kept out. -The defaults of @code{<dovecot-configuration>} provides sane default values for +The defaults of @code{<dovecot2-configuration>} provides sane default values for most things, such as group names, data and mail directories, etc. When used -as-is, it creates a Dovecot server that and serve and authenticate IMAP +as-is, it creates a Dovecot2 server that and serve and authenticate IMAP connections correctly."))) diff --git a/tests/internet/etc/dovecot/dovecot.conf.in b/tests/internet/etc/dovecot2/dovecot2.conf.in index 6ac013d..03d9cc9 100644 --- a/tests/internet/etc/dovecot/dovecot.conf.in +++ b/tests/internet/etc/dovecot2/dovecot2.conf.in @@ -19,7 +19,7 @@ service auth-worker { ssl = required ssl_cert = </etc/letsencrypt/live/@HOSTNAME@/fullchain.pem ssl_key = </etc/letsencrypt/live/@HOSTNAME@/privkey.pem -ssl_dh = </var/lib/dovecot/dhparam.pem +ssl_dh = </var/lib/dovecot2/dhparam.pem base_dir = /var/run/dovecot state_dir = /var/lib/dovecot diff --git a/tests/internet/system.scm b/tests/internet/system.scm index 192f500..ee02be2 100644 --- a/tests/internet/system.scm +++ b/tests/internet/system.scm @@ -54,7 +54,7 @@ (service q:shadow-group-service-type) (service q:dkimproxyout-service-type) (service q:cyrus-sasl-service-type) - (service q:dovecot-service-type) + (service q:dovecot2-service-type) (service q:internet-postfix-service-type) (service mail-aliases-service-type '())) pkg:base-services)) |