2018-09-12
A surprise discovery about procmail (and wondering about what next)
I've been using procmail for a very long time now, and over that
time I generally haven't paid much attention to the program itself.
It was there in the operating systems I used, it worked, and so
everything was fine; it was just sort of there, like cat
. Thus,
I was rather surprised to stumble over the 2010 LWN article Reports
of procmail's death are not terribly exaggerated (via, sort of via, via, via
Planet Debian), which covers how procmail development and maintenance
had stopped. Things don't exactly seem to have gotten more lively
since 2010 (for example, the procmail domain seems to have mostly
vanished, and then there's the message from Philip Guenther that's
linked to from the wikipedia page). This raises a number of
questions.
The obvious question is whether this even matters (as LWN notes in the original article). Procmail still works fine, and just as importantly, it's still being packaged by Debian, Ubuntu, and so on. There are outstanding Debian bugs, but Debian appears to also be fixing issues in their patches (and there's a 2017 patch in there, so it's not all old stuff). While we have quite a few users that depend a lot on procmail and we'd thus have real problems if, say, Ubuntu stopped packaging it, this doesn't appear likely to happen any time soon.
(Actually, if Ubuntu dropped procmail our answer would likely be to start building the package ourselves. It's not like it changes much.)
But, well, procmail is sort of Internet software, and I've said before that Internet software decays if not actively maintained. Knowing that procmail is only sort of being looked after does make me a little bit uncomfortable. However, this raises the question of what alternatives I (and we) would have for equivalent mail filtering systems. Many people seem to use Sieve, but I believe that has to be integrated into your MTA instead of run through a program in the way that procmail operates, and I don't think it can run external programs (which is important for some people). The closest thing to procmail that I've read about is maildrop, but it's slightly more limited than procmail in several spots and I'm not sure it could fully cover the various ways people here use procmail for spam filtering and running spam filters.
Exim itself has its own filtering system (documented here). These are more powerful than Exim-based Sieve filters (they can deliver to external programs, for example) but of course they require Exim specifically and couldn't be moved to another mailer. They're still not quite as capable as procmail; specifically Exim filters can't directly write to MH format directories (which matters to me because of how I now do a bunch of mail filtering).
We've historically declined to enable either Sieve based filtering or Exim's own filtering in our mail system on the grounds that we wanted to preserve our freedom to change mailers. In light of what I've now learned about procmail, I'm wondering if that's still the right choice. We also don't currently have maildrop installed on our central mail machine (where people already run procmail); perhaps we should change that as well, to give people the option (even if they most likely won't take it).
PS: A quick check suggests that we have around 195 people or so who
are using procmail (in that they have it set up in their .forward
),
which is actually more than I expected. Not all of them are
necessarily using our mail system much any more, though.