From 4dadf12bb8613a610bfd1b6b044cd6b5b4ec8ed3 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Fri, 17 Mar 2023 15:06:19 -0300 Subject: Makefile: Streamline verification of generated config files --- .gitignore | 4 ++- Makefile | 32 +++++++++++++++---- src/org/euandre/queue.scm | 14 +++------ tests/internet/etc/dkimproxyout.conf.in | 9 ++++++ tests/internet/etc/dovecot.conf.in | 54 +++++++++++++++++++++++++++++++++ tests/internet/etc/postfix/main.cf.in | 36 ++++++++++++++++++++++ tests/internet/etc/postfix/master.cf | 51 +++++++++++++++++++++++++++++++ tests/internet/etc/sasl2/smtpd.conf | 3 ++ tests/internet/main.cf.in | 36 ---------------------- tests/internet/master.cf | 51 ------------------------------- tests/local/etc/postfix/main.cf | 21 +++++++++++++ tests/local/etc/postfix/master.cf | 30 ++++++++++++++++++ tests/local/main.cf | 21 ------------- tests/local/master.cf | 30 ------------------ 14 files changed, 238 insertions(+), 154 deletions(-) create mode 100644 tests/internet/etc/dkimproxyout.conf.in create mode 100644 tests/internet/etc/dovecot.conf.in create mode 100644 tests/internet/etc/postfix/main.cf.in create mode 100644 tests/internet/etc/postfix/master.cf create mode 100644 tests/internet/etc/sasl2/smtpd.conf delete mode 100644 tests/internet/main.cf.in delete mode 100644 tests/internet/master.cf create mode 100644 tests/local/etc/postfix/main.cf create mode 100644 tests/local/etc/postfix/master.cf delete mode 100644 tests/local/main.cf delete mode 100644 tests/local/master.cf diff --git a/.gitignore b/.gitignore index 6b54c16..0275198 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ /result* -/tests/internet/main.cf +/tests/internet/etc/postfix/main.cf +/tests/internet/etc/dkimproxyout.conf +/tests/internet/etc/dovecot.conf diff --git a/Makefile b/Makefile index 26893ea..6ec9c2e 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,14 @@ all: EuAndreh.key guix nix +test-config-files = \ + tests/internet/etc/postfix/main.cf \ + tests/internet/etc/dkimproxyout.conf \ + tests/internet/etc/dovecot.conf \ + +derived-assets = \ + $(test-config-files) \ + guix: guix-packages guix-services guix-packages: @@ -22,17 +30,29 @@ guix-packages: -f src/org/euandre/packages.scm \ -f src/org/euandre/queue.scm \ +local-files = \ + /etc/postfix/master.cf \ + /etc/postfix/main.cf \ + +internet-files = \ + $(local-files) \ + /etc/sasl2/smtpd.conf \ + /etc/dkimproxyout.conf \ + /etc/dovecot.conf \ + guix-services-local: rm -f result-local guix system -v3 -Lsrc/ -K -r result-local build tests/local/system.scm - cmp -s result-local/etc/postfix/master.cf tests/local/master.cf - cmp -s result-local/etc/postfix/main.cf tests/local/main.cf + for f in $(local-files); do \ + diff -U5 --color=always result-local$$f tests/local$$f; \ + done -guix-services-internet: tests/internet/main.cf +guix-services-internet: $(test-config-files) rm -f result-internet guix system -v3 -Lsrc/ -K -r result-internet build tests/internet/system.scm - cmp -s result-internet/etc/postfix/master.cf tests/internet/master.cf - cmp -s result-internet/etc/postfix/main.cf tests/internet/main.cf + for f in $(internet-files); do \ + diff -U5 --color=always result-internet$$f tests/internet$$f; \ + done guix-services: guix-services-local guix-services-internet @@ -47,7 +67,7 @@ check: clean: rm -rf \ - result* .paku/ deb/ tests/internet/main.cf + $(derived-assets) result* .paku/ deb/ public: diff --git a/src/org/euandre/queue.scm b/src/org/euandre/queue.scm index 340bc1e..c331cdd 100644 --- a/src/org/euandre/queue.scm +++ b/src/org/euandre/queue.scm @@ -1366,13 +1366,15 @@ max_age: 604800 (state-dir dovecot-configuration-state-dir (default "/var/lib/dovecot")) (hostname dovecot-configuration-hostname (default (gethostname)))) + +;; FIXME: +;; mail_plugins (define (generate-dovecot-config config) (match-record config (mail-in-home? user group auth-worker-group untrusted-user hostname base-dir state-dir extra-content) (format #f - " -protocols = imap + "protocols = imap default_internal_user = ~a default_internal_group = ~a @@ -1390,7 +1392,6 @@ service auth-worker { group = ~a } - ssl = required ssl_cert =