Re: qmail.org DEAD?
"Amitai Schleier" <[email protected]> 3 Jul 2019 11:42:08 -0400
| Newsgroups | gmane.mail.qmail.general |
|---|---|
| Message-ID | <[email protected]> |
On 2 Jul 2019, at 12:13, Amitai Schleier wrote: > I suspect a more fruitful question is, how could we arrive at an > active and agreed group of developers collaborating to ship sensible, > trustworthy, seamless, and therefore sufficiently authoritative > updates to qmail? A couple updates, both off-list but public: 1. Russ Nelson wasn't aware that qmail.org had gone nxdomain, and said he'd take a look. 2. Dave Sill reminded me that qmail's design integrity and extremely low bug count are what made it special, and a modernized version that loses these characteristics wouldn't be worth much. I agreed (as I imagine we all do), and went on to muse on my design choices and future plans. Sharing that here: ----- qmail's design is why it met our needs so well back then, and it's why I've found it worthwhile and possible to keep adapting it to the present. For example, the popular SMTP AUTH patch always felt hacky to me, so I finally wrote acceptutils (https://schmonz.com/qmail/acceptutils) to cohere with Russ's design for POP3 authentication. By matching the existing design, old programs gained new user-controlled features. And then I noticed I could easily handle TLS in acceptutils too (thanks to UCSPI-TLS in tcpserver) and get rid of the qmail-smtpd half of the popular TLS patch. My plan to get rid of the other half is to break up qmail-remote, something like so: - qmail-remoteip will do DNS lookups and determine where to connect - qmail-remoteio is the SMTP client, reading stdin and writing stdout - qmail-newremote matches the qmail-remote interface and coordinates the subprograms, running qmail-remoteio via tcpclient - tcpclient can be ucspi-tcp6's tcpclient, or ucspi-ssl's sslclient - sslclient will grow an UCSPI-TLS interface - qmail-newremote will use UCSPI-TLS instead of the popular TLS patch - Admins can choose qmail-newremote by applying a tiny QMAILQUEUE-like patch (https://schmonz.com/qmail/remote) and setting QMAILREMOTE to qmail-newremote After that, my plan for outbound DKIM and SRS rounds into focus: - qmail-rfilter (https://schmonz.com/qmail/rfilter) will be a lot like qmail-qfilter, but wrapping qmail-remote (or $QMAILREMOTE) - DKIM signing is a Unix filter - SRS rewriting for forwarded messages is a Unix filter - Admins list them (or alternate implementations, or nothing) in control/remotefilters For inbound accept/reject/tag decisions, I really like http://qmail-spp.sourceforge.net, and have published rejectutils (https://schmonz.com/qmail/rejectutils) that runs in that environment. For SPF, I use https://www.caputo.com/foss/qmail-spp-spf/. Everything mentioned here is integrated into pkgsrc's qmail-run package, except for the stuff that doesn't exist yet :-) I've deliberately avoided making my own fork; I like the design pressure of needing to produce small patches that will apply cleanly to an arbitrarily patched netqmail. If the handful of us who are still actively developing qmail-derived works don't come up with a way to join our efforts, I'll keep working on mine as time permits. I'm just hoping we can figure out how to put our heads together and make informed, conservative, consensus-driven changes the way you netqmail folks did.