[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

qmail reimplementation



I have been using qmail since version 1.03 was released and although I
have had a few problems, overall I am quite happy with it.  In the past
12 months I have collected a large number of patches and programs and
build a set or RPMs which can instantly provide a complete and modern
replacement to using sendmail and friends.

I am sure that I am not the only person to have done this but
unfortunately, due to the lack of license and copyright terms, probably
no one outside of my site will ever get to use my packages.

It is for this reason that I am going to start a project to reimplement
qmail under the GPL.  To the best of my knowledge, there are no patients
or restrictions on the qmail design so I believe that a reimplementation
is quite legal.  It will also provide an opportunity to fix some of the
source code problems in qmail, which I see as:
·	Non standard build system
·	Non standard install system
·	Non compliance with the FHS
·	Compile time dependency on uid & gid’s
·	Reinvention of the wheel when it comes to many POSIX api’s
·	Over simplified run time configuration
·	Overall (IMHO) hard to read code.

As I am starting this project mainly for myself, my primary goal is to
support modern linux distributions.  I don’t see a great need to work
around historical bugs which may have been present in other libraries
and tools that qmail relies on.  I would assume that a linux code base
would require little, if any changes to run on modern *BSD systems.  I
have no desire to support other UNIX flavors such as AIX, HP-UX, Solars
etc. although I am not going to stop anyone who wants to support these
platforms.

Why send to this list?
By my count there is under 17 thousand lines of code in DJB’s qmail
which is not unmanageable for a single programmer, but I feel that
community support will be what makes this project a success.  Using
DJB’s qmail as a working prototype, a team of developers could develop a
new qmail in a matter of months.

Many of the patch authors may be willing to license their patches under
the GPL which will mean that once the qmail 1.03 base line is reached,
many of the modern features will be ready to integrate, resulting in a
fully featured product in a short period of time.

For the curious, here is a list of patches which I have applied to my
copy of qmail which I think are worthy of becoming a standard part a new
qmail:
·	qmail.dynamicuid.patch.  Look up uids & gids at run time (Me)
·	qmail-popup-auth.patch.  Implement auth in qmail-popup (Me)
	Required by some POP3 client libraries (eg Courier).
·	qregex.patch-20020129.  badmailfrom and badmailto regular
	expressions (Evan Borgstrom)
·	qmail-maildir-debug.patch.  Enhanced error messages for maildir
	delivery (Me)
·	qmail-nomailbox-verbose.patch. Enhanced error messages for local
	delivery failure (Me)
·	auth.patch2 Implemented authenticated SMTP. (Krzysztof Dabrowski
	I think.  Modified by me).  I also implemented a checkpassword
	for this.
·	tls.patch2.  Implements STARTTLS.  (Frederik Vermeulen).
·	auth.patch3.  Prevent relayclients from using AUTH to keep
	netscape happy.  (Me)
·	qmail-smtp-log_and_mfcheck.  Implements sender domain checks.
	Also logs smtpd errors through splogger. (Nagy Balazs & me)
·	qmail-pop-mailboxes.  Allows users to specify a mailbox in their
	pop user name (Me).

Anyone who wants to support this effort is more than welcome to do so. 
For now I guess this list is a good place for comment, or you can email 
me directly.  If necessary I will create a new list for discusson.

John.

-- 
Information Technology Innovation Group
Swinburne University. Melbourne, Australia
http://uranus.it.swin.edu.au/~jn