On Fri, Jun 01, 2007 at 01:02:03PM -0400, Guy Hulbert wrote:
> On Fri, 2007-06-01 at 09:33 -0700, Robin H. Johnson wrote:
> > My basic outline was to take the architecture of qmail, and
> > incrementally replace the parts of qmail with Perl re-implementations.
> > qpsmtpd was built as a qmail-smtpd replacement in the first place, so
> > this is a reasonable route to take.
> What problem(s) are you trying to solve ?  The answer for qpsmtpd is
> obvious (to me) but I don't see any reason to replace the rest.
Pain of maintenance.

> Why not just install qmail ?
A little background here.

Background
----------
Starting nearly 4 years ago, and up until about a month ago, I've been
Gentoo's qmail maintainer. I am _painfully_ aware of the process of
patching qmail. The Gentoo qmail package at it's peak had approximately
30 different patches, getting it closer to the feature-set presently
available in other more-updated MTAs.

http://viewcvs.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qmail/qmail-1.03-r15.ebuild?hideattic=0&rev=1.47&view=markup
^^^ Look at the src_unpack function, and all of the epatch statements
therein.

The problem was, maintaining a build that can apply 30 patches is a LOT
of work. We had to abide by DJB's rules of not modifying the original
qmail tarball, and also wanted to keep patches separate wherever
possible (to allow updating specific patches). 

Long term, this meant that if you changed a patch early in the stack,
there was a significant non-zero probability that you would have to
change a patch later in the stack.

This got to be so much work, that we didn't get very many revisions of
the package out, and eventually changed our policy that if you want to
patch up qmail, you do it on your own (with netqmail), and keep the
pieces when it breaks.

On moving forward
-----------------
If there is any MTA that I think is closest to a good design, it's
qmail. It's also modular enough that incremental replacement is easily
possible.

Why move qmail to Perl? For the same exact reason that qpsmtpd is such a
large improvement over qmail-send. Ease of maintenance and plugin
support.

Here's the rough outline and implementation order
qmail-smtpd - qpsmtpd, already exists
qmail-remote - outgoing mail is important to me, I have a need for routing 
based on envelope sender.

The rest of the components would be nice to have in Perl for
extensibility and future work, but I don't have a personal need to
replace them right now.
qmail-queue
qmail-inject
qmail-send
qmail-rspawn
qmail-lspawn
qmail-local

-- 
Robin Hugh Johnson
Gentoo Linux Developer & Council Member
E-Mail     : [EMAIL PROTECTED]
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85

Attachment: pgp9BqqcjWZTt.pgp
Description: PGP signature

Reply via email to