Changes for version 0.002 - 2026-09-06
- postfix: accumulate sender_dependent_relayhost_maps and smtpd_sender_login_maps, which are lists of lookup tables like the rest of the *_maps family and were missed. Not accumulating the second one is dangerous rather than merely wrong: it is what reject_authenticated_sender_login_mismatch reads, so a host with two domains ends up naming one domain's table and refuses the other domain's users when they send.
- postfix: document what adopting main.cf does not reach -- the lookup tables it names, and what to do about the ones behind a restriction list.
- An empty value on an accumulating directive now resets it, the way a systemd drop-in does. Without it a fragment could only ever add to what 00-original held, and 00-original is sometimes wrong rather than incomplete: a guest whose hostname is a domain it hosts has the package's own mydestination naming a domain that must be a virtual mailbox domain instead, postfix refuses to have it in both, and nothing could take it out.
Documentation
Adopt a config file that has no conf.d, and keep it generated.
Modules
Give software without a conf.d one anyway.
Base class for the languages: how one config file format is read, merged and written back.
opendkim.conf, which has never had a conf.d.
opendmarc.conf, which has never had a conf.d.
main.cf and master.cf, which postfix has never had a conf.d for.
redis.conf, which has no conf.d and a handful of directives you say more than once.
Config files that are a directive, some whitespace and a value.
The systemd drop-in that rebuilds a language's files before the daemon reads them.