Nemo Qmail - Changes

Changes of the second generation of Daniel Bernstein's Qmail package.

This software is not compatible with…

  • CDBs created by Nemo CBD prior to version 3.0 or any version of DJB CDBs.

v2.0 - Major Changes from Original Distribution - UNRELEASED

General:

Version Notes
• New IPv6 support.
• New Make target: "clean".
• New To avoid name clashes with header files, header files are installed in a subdirectory "nemo" (in the includes directory).
• New Implemented some of the standard integer types in the POSIX standard.
• Changed conf-users has been split into individual files.
• Changed conf-groups has been split into individual files.
• Changed Changed many messages to be "person neutral".
• Changed Build/installation framework provided by Nemo DJB Library (nemo-libdjb).
• Changed Converted K&R prototypes to ANSI.
• Changed Imported manual pages from third party sources.
• Changed All manual pages have been converted to mdoc(7) format.
• Changed Now possible to build package using /usr/local as the file hierarchy base.
• Changed Additional annotations/comments - source code files.
• Changed Implemented errno fix - patched source code to use #include <errno.h>
• Changed Resolved all compile errors and warnings from the GNU C compiler (-W -Wall -Werror, et al).
• Changed Many routines replaced by those found in Nemo DJB Library.
• Changed Routines that used the 1st generation of buffered I/O are now using Nemo BUFIO Library based buffered I/O.
• Changed All calendar (date/time) routines now using Nemo CALDATETIME Library.
• Changed All Constant DataBase (CDB) routines now using Nemo CDB Library.
• Changed All Constant DataBase (CDB) routines now using modern API of Nemo CDB Library.
• Changed replaced all comparison instances of '== -1' to '< 0'.
• Changed Using some of the standard integer types in the POSIX standard.
• Changed Changed many signed integers into unsigned integers.
• Changed Changed many signed return values into unsigned return values.
• Changed In scipts and the Makefile, all references to "head -1" have been changed to "head -n 1".
• Changed Source code formatting is now "Compact Control Readability Style" - variant of K&R, similar to the Stroustrup variant. One exception: single line conditional returns are on same line as the conditional. Long lines are rarely wrapped. Indent size is two spaces.
• Changed All public header files are compatible with C++ development environments.
• Removed FILES - unused and high maintenance.
• Removed install-big.
• Removed "systype" processing.

Programs:

Version Notes
• New badmailfrom processing now uses Constant Database (badmailfrom.cdb) to handle large lists.
• New condredirect-badmailfrom - perhaps redirect mail to another address based apon the From header and the badmailfrom.cdb control file.
• New condredirect-clamdscan - perhaps redirect mail to another address as a result of detection of virus or junk by clamdscan.
• New condredirect-dbl - perhaps redirect mail to another address as a result of a search to a Domain Block List (DBL) list.
• New condredirect-hashbl - perhaps redirect mail to another address as a result of a search to a (Email) Hash Block List (EBL) list.
• New condredirect-junk - perhaps redirect mail to another address.
• New condredirect-spf - perhaps redirect mail to another address based apon the message SPF status.
• New condredirect-virus - perhaps redirect mail to another address.
• New qmail-newbmf - prepare control/badmailfrom.cdb for qmail-smtpd or qmail-smtp6d.
• New qmail-newofmipname - prepare ofmipname/cdb for qmail-ofmipd or qmail-ofmip6d.
• New qmail-ofmipd - message submission - imported and renamed 'ofmipd' from mess822.
• New qmail-ofmip6d - IPv6 implementation of qmail-ofmipd.
• New qmail-ofmipname - imported and renamed 'ofmipname' from mess822.
• New qmail-ofmipup - implements SMTP AUTH for qmail-ofmipd.
• New qmail-ofmipup6 - IPv6 implementation of qmail-ofmipup.
• New qmail-inject - imported and renamed 'new-inject' from mess822.
• New qmail-822save - save a message into a maildir, with CR/LF endings.
• New qmail-a2u - address to username query via IPv4 network connection.
• New qmail-a2ud - address to username server via IPv4 network connection.
• New qmail-a2u6 - address to username query via IPv6 network connection.
• New qmail-a2u6d - address to username server via IPv6 network connection.
• New qmail-newbmf - prepare badmailfrom for qmail-smtpd or qmail-smtp6d.
• New qmail-smtp6d - IPv6 implementation of qmail-smtpd.
• New qmail-spfcheck - print a SPF query result.
• New qmail-popup6 - IPv6 implementation of qmail-popup.
• New qmail-smtpd, qmail-smtp6d - implement hash-block-list processing to block messages based header fields: From and Reply-To.
• Changed forward - properly forward in a DMARC world.
• Changed qmail-ofmipup, qmail-ofmipup6 - reject and disconnect on HTTP commands: GET, CONNECT, POST.
• Changed qmail-ofmipup, qmail-ofmipup6 - reject and disconnect on FTP commands: USER, PASS.
• Changed qmail-popup, qmail-popup6, qmail-pop3d - implement the POP3 CAPA extension.
• Changed qmail-smtpd, qmail-smtp6d - reject and disconnect on HTTP commands: GET, CONNECT, POST.
• Changed qmail-smtpd, qmail-smtp6d - reject and disconnect on FTP commands: USER, PASS.
• Changed qmail-smtpd, qmail-smtp6d - extend badmailfrom processing to also assess message header fields: From, and Reply-To.
• Changed qmail-smtpd, qmail-smtp6d - implemented SPF tagging or bouncing.
• Changed qmail-smtpd, qmail-smtp6d - implemented recipient verification.
• Changed qmail-showctl - various control file changes.
• Fixed qmail-inject - now produces a Return-Path header in message, in certain circumstances.
• Removed splogger - moved to Nemo Daemontools.

File System:

Version Notes
• Changed /var/qmail/queue/lock/tcpto - is now a directory that can accomodate IPv4 and IPv6 TCP transmit timeouts.