Everyone has patches

You've been running qmail, so you've got a local set of patches you rely on. In the years when qmail wasn't being updated, your patches easily applied (and re-applied) to a non-moving target. As notqmail's code evolves, some of your patches will no longer be needed, and others may need to be "rebased" to apply. (Sometimes this is easy and mechanical. Other times it will require deeper understanding of C, Unix, and qmail's design and implementation. In either case, Git can be a helpful tool.)

On balance, over time, we intend to reduce your patch-related maintenance effort. For more about our intent, see #17.

Check our work

Once your patched notqmail is happily compiling, please help it stay that way: add -DDEPRECATED_FUNCTIONS_REMOVED to conf-cc and report an issue if the build now fails. Otherwise, we may unknowingly remove functions your patches are relying on in an upcoming release.

Let us help

For your convenience, we've rebased several popular patches onto notqmail, each on its own git branch:

Branch Original Patch
big-concurrency Johannes Erdfelt's big-concurrency
big-todo Russell Nelson's big-todo
dkim Manvendra Bhangui's dkim
ext-todo Claudio Jeker's and André Oppermann's ext-todo (for "silly qmail syndrome")
maildir-uniqueness Toby Betts' maildir-uniq
remote-outgoingip Sergio Gelato's and Andy Repton's outgoingip
smtp-auth Erwin Hoffmann's smtpauth
smtp-tls Frederik Vermeulen's qmail-smtp-tls
smtpd-badmailfrom-wildcard Tom Clegg's badmailfrom wildcard
smtpd-badmailfrom-x-relayclient Jeremy Kitchen's badmailfrom-x-relayclient
smtpd-logging Andrew Richards' qmail-logmsg
smtpd-rcptcheck Jay Soffian's rcptcheck
smtpd-spf Jana Saout's qmail-spf
smtpd-spp Paweł Foremski's qmail-spp
tai-leapsecs Toby Betts' tai-leapsecs

How to use:

  1. Make sure the first commit on the branch is identical to the patch you were trying to apply.
  2. Read the subsequent commits on the branch to see what we've changed and why.
  3. Diff the branch against main, and apply that patch to notqmail.

Please note that the patch branches are likely to be re-rebased from time to time (for instance, around notqmail release time). Take care when fetching these branches, especially if you have local changes you need to preserve.