Happy 2019! Another three months, another stable branch for pkgsrc, the practical cross-platform Unix package manager. I’ve shipped quite a few improvements for qmail users in our 2018Q4 release. In three sentences:
- qmail-run gains TLS, SPF, IPv6, SMTP recipient checks, and many other sensible defaults.
- Most qmail-related packages — including the new ones used by qmail-run — are available on most pkgsrc platforms.
- rc.d-boot
starts
rc.conf
-enabled pkgsrc services at boot time on many platforms.
In one:
It’s probably easy for you to run qmail now.
On this basis, at my DevOpsDays NYC talk in a few weeks, I’ll be recommending that everyone try it.
Try it
Here’s a demo on CentOS 7, using binary packages:
The main command I ran:
$ sudo env PKG_RCD_SCRIPTS=yes pkgin -y install qmail-run rc.d-boot
Here’s another demo on Debian 9, building from source packages:
The commands I ran:
$ cd ...pkgsrc/mail/qmail-run && make PKG_RCD_SCRIPTS=yes install
$ cd ../../pkgtools/rc.d-boot && make PKG_RCD_SCRIPTS=yes install
These improvements were made possible by acceptutils, my redesigned TLS and SMTP AUTH implementation that obviates the need for several large and conflicting patches. Further improvements are expected.
Here’s the full changelog for qmail as packaged in pkgsrc-2018Q4.
Removed
- From
mail/mess822
:- The SMTP AUTH patch.
- From
mail/qmail
:- The SMTP AUTH patch.
- The
qmail-smtpd
half of the TLS patch. - The RCPTCHECK patch.
- From
mail/qmail-run
:- Dependency on spamdyke.
- Dependency on stunnel.
- From
sysutils/checkpassword
andsysutils/checkpassword-pam
:- The setuid bit.
Updated
mail/qmail
:- To the latest
qmail-remote
half of the TLS patch. - To warn if the queue filesystem is case-insensitive.
- To the latest
mail/qmail-rejectutils
:- To let
qmail-rcptcheck
run under qmail-spp, so that other RCPTCHECK programs can continue to run unmodified. - To deprecate
qmail-qfilter-ofmipd-queue
andqmail-qfilter-smtpd-queue
in favor ofqmail-qfilter-queue
.
- To let
mail/qmail-run
’s defaults:- To
sslserver
(fromtcpserver
). - To listen on IPv6 when available.
- To auto-enable TLS for message submission, incoming SMTP, and POP3 (as well as remote delivery) when certs are in place.
- To tag log entries with
nbqmail/send
,nbqmail/smtpd
, etc. (inspired by Postfix). - To find tcprules in
control/tcprules/*
(and auto-migrate from/etc/qmail/tcp.*
). - To rebuild outdated tcprules CDBs on startup.
- To delay the SMTP greeting by 2 seconds (a simple anti-spam measure).
- To check the
zen.spamhaus.org
RBL. - To check recipients using qmail’s delivery logic before accepting mail.
- To record a
Received-SPF:
header. - To skip greylisting (if any) when SPF returns “pass”.
- To record a
Received:
header with TLS protocol and ciphers. - To let users
configure their own
ofmipd
address-rewriting rules.
- To
Added
mail/greylisting-spp
:- For greylisting.
mail/qmail-spp-spf
:- For SPF checks.
pkgtools/rc.d-boot
:- For starting pkgsrc-provided services at boot on a variety of systems.
- To
devel/syncdir
:- A
dlsym()
-based implementation, for systems withoutsyscall()
.
- A
- To
mail/qmail
:- The qmail-spp patch, for flexibly modifying SMTP behavior at runtime.
- To
mail/qmail-rejectutils
:- Manual pages.
- To
mail/qmail-run
:greylisting-spp-wrapper
, for whitelisting recipient addresses or whole domains, and optionally omitting IP address from greylisting’s tuples.
- To
mail/qmail
andmail/qmail-run
:- Cleaner uninstall, so people can feel comfortable trying qmail.