http:// / patches / combined-details.shtml

qmail Combined Patch Details

This page documents the extra features introduced into qmail with the use of each version of my combined patch. I've written a quick little Javascript menu to allow you to choose the version of the patch whose list of features you wish to see, without my having to maintain a separate web page for each version.


PGP Signature

Click here for a list of downloadable files.

For qmailrocks users

If you are reading this page because you are looking at, or using, the "qmailrocks" package, you shold be aware that qmailrocks has not been updated in several years. The current "stable" version, 2.2.1, was released (according to the qmailrocks web site) on 2006-04-19, which is over three years ago as I write this. Even the "development" version, 3.0, was only released a week later- and neither version has been touched since then.

Unfortunately, the qmailrocks distribution consists of a single tarball, which contains all of the other packages- qmail itself, a copy of this ancient version of my patch, as well as ancient versions of vpopmail, courier-imap, and so forth. And even though qmailrocks has stopped updating, none of the other packages have- and that includes this combined patch.

Which means that, unless you take the time to hunt down the current versions of the individual packages, read through their documentation well enough to understand what has changed since whatever version qmailrocks is using, and update the qmailrocks scripts to work with the current versions of the underlying packages, you will be setting up a server based on ancient software, configured in an insecure manner, and the first time soemthing goes wrong with that server, you will suddenly discover that qmailrocks' total lack of documentation has not prepared you to deal with the issues which WILL arise.

And if you're smart enough to do that, you may as well not use qmailrocks to begin with.

Stop wasting your time with qmailrocks.

Do yourself a favour. Take the time to learn how qmail actually works, and then build a server which you understand how to operate. See Life with qmail (LWQ) for a much better set of directions. Most people start learning qmail by following along with the LWQ directions, then going back and adding any other patches they may need for their own servers (the "netqmail" patch that LWQ uses is a very minimal patch.)

If you're curious, the current version of my patch includes every patch which is part of netqmail-1.05. I haven't looked at netqmail-1.06 yet.


Why did you add this notice to the web page?

Because I'm tired of having people like this guy (scroll to the bottom of that page) blaming ME for qmailrocks' problems. (Of course, the fact that he added this note to his web page, telling people to not use my patch, without so much as talking to me about it first, is a separate issue...)

Is this notice always going to be here?

I will take this notice down when one of these things happens:

  • qmailrocks is brought up to date, and the documents are changed so that they actually make an honest attempt to teach the user about how to administer their server; or
  • qmailrocks disappears from the internet.

Unfortunately, I suspect that means this notice will always be here.


Version 7.10 of the combined patch includes the following individual patches.

Changes in Version 5, released 2004-06-23, and included as part of "qmailrocks".

Changes in Version 5f, released 2005-04-11

Changes in Version 6, released 2005-05-04

Changes in Version 6a, released 2005-05-12

Changes in Version 6b, released 2005-05-23

Changes in Version 6c, released 2005-10-27

Changes in Version 6c2, released 2005-12-26

Changes in Version 6c3, released 2006-01-03

Changes in Version 6c4, released 2006-01-17

Changes in Version 6c5, released 2006-03-08

Changes in Version 6c6, released 2006-11-02

Changes in Version 6c7, released 2006-11-04

Changes in Version 6c8, released 2006-11-26

Changes in Version 6c9, released 2006-12-04

Changes in Version 6ca, released 2006-12-15

Changes in Version 6cb, released 2006-12-24

Changes in Version 6cc, released 2007-03-11

Changes in Version 6cd, released 2007-03-22

Changes in Version 6ce, released 2007-06-22

Changes in Version 6cf, released 2007-07-13

Changes in Version 6cg, released 2007-08-01

Changes in Version 7, released 2007-09-03

Changes in Version 7.01, released 2007-09-12

Changes in Version 7.02, released 2007-09-12

Changes in Version 7.03, released 2007-09-28

Changes in Version 7.04, released 2007-10-09

Changes in Version 7.05, released 2007-11-09

Changes in Version 7.06, released 2008-05-12 (individual patches)

Changes in Version 7.07, released 2008-06-02 (individual patches)

Changes in Version 7.08, released 2008-12-04 (individual patches)

Changes in Version 7.09, released 2010-02-05 (individual patches)

Changes in Version 7.10, released 2010-02-14 (individual patches)

How to use the patch file

I've been asked a few times how to actually use these patch files. Here's a quick example. Note that this does NOT need to be done as root, except where noted at the end. I'm also leaving out the process of creating the user and group IDs that qmail needs.

% wget
% wget
% tar xvzf qmail-1.03.tar.gz
% mv qmail-1.03 qmail-1.03-jms1-7.10
% cd qmail-1.03-jms1-7.10
% patch < ../qmail-1.03-jms1-7.10.patch <-- This line is where the magic happens...

If you are building qmail under Mac OS X 10.4, you will need to add one thing before you compile the code:
% sed -ie '1s/$/ -DBIND_8_COMPAT/' conf-cc

% make
% make man

The following commands must be run as root.
% su

If you are "upgrading" an existing qmail installation, you must shut down everything which has to do with qmail before typing this next command. This includes qmail-send, as well as any SMTP, IMAP, or POP3 services.

# make setup check

If you are "upgrading", you should now start up your qmail-send service, and then all of the other services. Otherwise, finish configuring qmail as root.

When you are through configuring qmail, make sure to leave the root account so that you don't accidentally cause any damage.

# exit