summaryrefslogtreecommitdiff
path: root/mail/qmail
diff options
context:
space:
mode:
authorTim Vanderhoek <hoek@FreeBSD.org>1998-07-18 19:59:55 +0000
committerTim Vanderhoek <hoek@FreeBSD.org>1998-07-18 19:59:55 +0000
commit64885f557e3e45d5bd8a6b341ff18f66c638dcd2 (patch)
tree805676e4bb8503cc20123cd5bd86c55c4cd5e46a /mail/qmail
parentRevert to compiling agaist stock ncurses by default (requested by ache) (diff)
I think most of us are familiar with that particular program.
Notes
Notes: svn path=/head/; revision=11951
Diffstat (limited to 'mail/qmail')
-rw-r--r--mail/qmail/Makefile139
-rw-r--r--mail/qmail/distinfo1
-rw-r--r--mail/qmail/files/PORT_NOTES122
-rw-r--r--mail/qmail/files/maildir7
-rw-r--r--mail/qmail/files/mkaliasdir109
-rw-r--r--mail/qmail/files/patch-aa155
-rw-r--r--mail/qmail/files/patch-ab5
-rw-r--r--mail/qmail/files/patch-ac13
-rw-r--r--mail/qmail/pkg-comment1
-rw-r--r--mail/qmail/pkg-descr23
-rw-r--r--mail/qmail/pkg-install106
-rw-r--r--mail/qmail/pkg-message8
12 files changed, 689 insertions, 0 deletions
diff --git a/mail/qmail/Makefile b/mail/qmail/Makefile
new file mode 100644
index 000000000000..67880f2ad643
--- /dev/null
+++ b/mail/qmail/Makefile
@@ -0,0 +1,139 @@
+# New ports collection makefile for: qmail
+# Version required: 1.03
+# Date created: 25 May 1998
+# Whom: Mario S F Ferreira <lioux@gns.com.br> et al.
+#
+# $Id$
+#
+
+DISTNAME= qmail-1.03
+CATEGORIES= mail
+MASTER_SITES= ftp://koobera.math.uic.edu/pub/software/ \
+ ftp://ftp.hpcl.titech.ac.jp/qmail/ \
+ ftp://ftp.net.ohio-state.edu/pub/networking/mail/qmail/ \
+ ftp://ftp.ntnu.no/pub/unix/mail/qmail/ \
+ ftp://ftp.mira.net.au/pub/unix/mail/qmail/ \
+ ftp://ftp.id.wustl.edu/pub/qmail/ \
+ ftp://ftp.pipex.net/mirrors/qmail/ \
+ ftp://ftp.jp.qmail.org/qmail/
+#PATCH_SITES= http://hippo.ail-inc.co.jp/air/ports/patches/
+#PATCHFILES= patch-qmail-date-localtime.gz \
+# patch-qmail-smtpd.gz
+
+MAINTAINER= lioux@gns.com.br
+
+# A normal qmail installation puts everything into /var/qmail/.
+# If you want to install to /usr/local/, then "/usr/local/qmail" is
+# suggested instead of "/usr/local", but both will work.
+PREFIX= /var/qmail
+
+ALL_TARGET= default dot-qmail.5 qmail-control.5 qmail-getpw.8 \
+ qmail-limits.7 qmail-newmrh.8 qmail-newu.8 qmail-pw2u.8 \
+ qmail-send.8 qmail-start.8 qmail-users.5
+
+MAN1= forward.1 condredirect.1 bouncesaying.1 except.1 maildirmake.1 \
+ maildir2mbox.1 maildirwatch.1 mailsubj.1 qreceipt.1 qbiff.1 preline.1 \
+ tcp-env.1
+MAN5= addresses.5 envelopes.5 maildir.5 mbox.5 dot-qmail.5 qmail-control.5 \
+ qmail-header.5 qmail-log.5 qmail-users.5 tcp-environ.5
+MAN7= forgeries.7 qmail-limits.7 qmail.7
+MAN8= qmail-local.8 qmail-lspawn.8 qmail-getpw.8 qmail-remote.8 \
+ qmail-rspawn.8 qmail-clean.8 qmail-send.8 qmail-start.8 splogger.8 \
+ qmail-queue.8 qmail-inject.8 qmail-showctl.8 qmail-newmrh.8 \
+ qmail-newu.8 qmail-pw2u.8 qmail-qread.8 qmail-qstat.8 qmail-tcpok.8 \
+ qmail-tcpto.8 qmail-pop3d.8 qmail-popup.8 qmail-qmqpc.8 qmail-qmqpd.8 \
+ qmail-qmtpd.8 qmail-smtpd.8 qmail-command.8
+
+DOCFILES= ${WRKSRC}/BLURB ${WRKSRC}/BLURB2 ${WRKSRC}/BLURB3 \
+ ${WRKSRC}/BLURB4 ${WRKSRC}/INTERNALS ${WRKSRC}/SECURITY \
+ ${WRKSRC}/THOUGHTS ${FILESDIR}/PORT_NOTES
+
+# The following docfiles are normally installed with qmail-hier
+DOCFILES+= ${WRKSRC}/FAQ ${WRKSRC}/UPGRADE ${WRKSRC}/SENDMAIL \
+ ${WRKSRC}/INSTALL ${WRKSRC}/INSTALL.alias \
+ ${WRKSRC}/INSTALL.ctl ${WRKSRC}/INSTALL.ids \
+ ${WRKSRC}/INSTALL.maildir ${WRKSRC}/INSTALL.mbox \
+ ${WRKSRC}/INSTALL.vsm ${WRKSRC}/TEST.deliver \
+ ${WRKSRC}/TEST.receive ${WRKSRC}/REMOVE.sendmail \
+ ${WRKSRC}/REMOVE.binmail ${WRKSRC}/PIC.local2alias \
+ ${WRKSRC}/PIC.local2ext ${WRKSRC}/PIC.local2local \
+ ${WRKSRC}/PIC.local2rem ${WRKSRC}/PIC.local2virt \
+ ${WRKSRC}/PIC.nullclient ${WRKSRC}/PIC.relaybad \
+ ${WRKSRC}/PIC.relaygood ${WRKSRC}/PIC.rem2local
+
+# More files normally installed with from hier.c
+BOOTFILES= ${WRKSRC}/home ${WRKSRC}/home+df ${WRKSRC}/proc \
+ ${WRKSRC}/proc+df ${WRKSRC}/binm1 ${WRKSRC}/binm1+df \
+ ${WRKSRC}/binm2 ${WRKSRC}/binm2+df ${WRKSRC}/binm3 \
+ ${WRKSRC}/binm3+df
+
+# Supplied by Stuart Henderson <stuart@internationalschool.co.uk>
+BOOTFILES+= ${FILESDIR}/maildir
+
+CONFIGUREFILES= ${WRKSRC}/install ${WRKSRC}/dnsfq ${WRKSRC}/hostname \
+ ${WRKSRC}/dnsip ${WRKSRC}/ipmeprint ${WRKSRC}/dnsptr
+
+PLIST= ${WRKDIR}/PLIST
+
+.if (${PREFIX} == "/usr/local")
+DOCDIR= share/doc/qmail
+.else
+DOCDIR= doc
+.endif
+
+NO_MTREE= yes
+
+# If you want to change the qmail users, they must be changed in both
+# work/*/conf-users and pkg/INSTALL.
+
+do-configure:
+ @# Create/Check the necessary groups/users
+ @PKG_PREFIX=${PREFIX} /usr/bin/perl ${PKGDIR}/INSTALL
+ @${ECHO} ${CC} ${CFLAGS} > ${WRKSRC}/conf-cc
+ @${ECHO} ${PREFIX} > ${WRKSRC}/conf-qmail
+ @${SED} s+@DOCDIR@+${DOCDIR}+g ${FILESDIR}/pkg.PLIST > ${PLIST}
+
+do-install:
+ @# Check again, just in case (ideally should error if not found)
+ @PKG_PREFIX=${PREFIX} /usr/bin/perl ${PKGDIR}/INSTALL
+ @${MKDIR} ${PREFIX}/${DOCDIR} ${PREFIX}/configure
+ @cd ${WRKSRC} ; ./install
+ @${INSTALL_PROGRAM} ${CONFIGUREFILES} ${PREFIX}/configure
+ @${INSTALL_SCRIPT} ${WRKSRC}/config ${PREFIX}/configure
+ @${INSTALL_SCRIPT} ${BOOTFILES} ${PREFIX}/boot
+.for i in 1 5 7 8
+ @${MKDIR} ${PREFIX}/man/man$i
+.for j in ${MAN${i}}
+ @${INSTALL_MAN} ${WRKSRC}/$j ${PREFIX}/man/man${i}
+.endfor
+.endfor
+.if !defined(NOPORTDOCS)
+ @${INSTALL_DATA} ${DOCFILES} ${PREFIX}/${DOCDIR}
+.endif
+.if defined(PACKAGE_BUILDING)
+ @${ECHO} "FreeBSD Binary package QMail installation" \
+ > ${PREFIX}/${DOCDIR}/SYSDEPS
+.else
+ @cd ${WRKSRC} && ${CAT} `${CAT} SYSDEPS` \
+ > ${PREFIX}/${DOCDIR}/SYSDEPS
+.endif
+.for i in root postmaster mailer-daemon
+ @${TOUCH} ${PREFIX}/alias/.qmail-${i}
+.endfor
+ @# This is not part of qmail proper, hence the 2nd class citizenship
+ @${INSTALL_SCRIPT} ${FILESDIR}/mkaliasdir ${PREFIX}/${DOCDIR}
+ @cd ${PREFIX}/configure ; ./config
+ @${LN} -sf ${PREFIX}/rc /usr/local/etc/rc.d/qmail.sh
+ @${ECHO}
+ @${SED} s!/usr/local/!${PREFIX}/!g ${PKGDIR}/MESSAGE | /usr/bin/fmt
+
+# The users are instructed (in PORT_NOTES) to install ${QUEUE_DIR}/rc
+# themselves. Each /var/qmail/ should have its own rc. On many machines,
+# /usr/local/ is nfs mounted and /var/qmail/ is local. An individual
+# machine may want/not-want qmail. Pity we can't add a dir to local_startup
+# from here.
+
+# Wouldn't hurt to provide an "enable_qmail" and "disable_sendmail" target
+# that do 1) and 2) above and disable the existing sendmail, respectively.
+
+.include <bsd.port.mk>
diff --git a/mail/qmail/distinfo b/mail/qmail/distinfo
new file mode 100644
index 000000000000..4bbcf2104d84
--- /dev/null
+++ b/mail/qmail/distinfo
@@ -0,0 +1 @@
+MD5 (qmail-1.03.tar.gz) = 622f65f982e380dbe86e6574f3abcb7c
diff --git a/mail/qmail/files/PORT_NOTES b/mail/qmail/files/PORT_NOTES
new file mode 100644
index 000000000000..6c2928c27383
--- /dev/null
+++ b/mail/qmail/files/PORT_NOTES
@@ -0,0 +1,122 @@
+This text was originally taken from the qmail INSTALL file that you
+will find in /var/qmail/doc/. In addition to INSTALL, there are many
+other potentially important qmail documents there.
+
+As with all ports, the ports maintainer (me!) makes NO WARRANTIES of
+any kind: expressed, implied, or other; about the reliability or
+security of this package. Any damage or problems derived from its
+usage or related to it are neither my responsibility nor the software
+author's. This package is provided AS IS.
+
+Although I am probably sounding cold and harsh, believe me: qmail is
+one of the most reliable and easy-to-use softwares around. However,
+this also is NOT a WARRANTY. It is just an opinion. :)
+
+The qmail port will normally install into /var/qmail/. If you changed
+this to /usr/local/, then please note that the docs have been
+installed into /usr/local/share/doc/qmail/ (as opposed to
+/usr/local/doc/).
+
+If you wish to rerun the automatic configuration utility, do:
+
+# cd /var/qmail/configure ; ./config
+
+If you are upgrading from a previous version of qmail, you should read
+/var/qmail/doc/UPGRADE and follow all the steps after #6.
+
+
+[from /var/qmail/doc/INSTALL]
+
+SAVE COPIES OF YOUR OUTGOING MAIL! Like any other piece of software (and
+information generally), the qmail system comes with NO WARRANTY. It's
+much more secure and reliable than sendmail, but that's not saying much.
+
+[pre-build instructions elided]
+
+To create /var/qmail and configure qmail (won't interfere with sendmail):
+
+[#1 - #3 elided]
+
+ 4. Read INSTALL.ctl and FAQ. Minimal survival command:
+ # ./config
+
+[The "minimal" command has already been performed.]
+
+ 5. Read INSTALL.alias. Minimal survival command:
+ # (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)
+ # chmod 644 ~alias/.qmail*
+
+[The "minimal" command has already been performed.]
+
+ 6. Read INSTALL.mbox and INSTALL.vsm.
+
+ 7. Read INSTALL.maildir.
+
+ 8. Copy /var/qmail/boot/home (or proc) to /var/qmail/rc.
+
+[When you do this, qmail will be started automatically the next time
+ you boot. This is because the command
+ ``ln -s /var/qmail/rc /usr/local/etc/rc.d'' has been executed. There
+ is a number of sample bootfiles provided. Not all of them will work.]
+
+To test qmail deliveries (won't interfere with sendmail):
+
+ 9. Enable deliveries of messages injected into qmail:
+ # csh -cf '/var/qmail/rc &'
+
+10. Read TEST.deliver.
+
+
+To upgrade from sendmail to qmail:
+
+11. Read SENDMAIL. This is what your users will want to know about the
+ switch from sendmail to qmail.
+
+12. Read REMOVE.sendmail. You must remove sendmail before installing
+ qmail.
+
+[Do not disable sendmail as instructed in REMOVE.sendmail step #1.
+ Instead, change the sendmail_enable line in /etc/rc.conf to read
+
+ sendmail_enable="NO"
+ ]
+
+13. Read REMOVE.binmail.
+
+14. Add
+ csh -cf '/var/qmail/rc &'
+ to your boot scripts, so that the qmail daemons are restarted
+ whenever your system reboots. Make sure you include the &.
+
+[Do not do this. Unless you remove the symlink
+ /usr/local/etc/rc.d/qmail.sh, the script /var/qmail/rc will be run
+ everytime you boot. See also "local_startup" in /etc/rc.conf.]
+
+15. Make qmail's ``sendmail'' wrapper available to MUAs:
+ # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
+ # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
+ /usr/sbin might not exist on your system.
+
+16. Set up qmail-smtpd in /etc/inetd.conf (all on one line):
+ smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env
+ tcp-env /var/qmail/bin/qmail-smtpd
+
+[A freshly-updated /etc/inetd.conf will have a sample qmail entry that
+ you can simply uncomment.]
+
+17. Reboot. (Or kill -HUP your inetd and make sure the qmail daemons
+ are running.)
+
+18. Read TEST.receive.
+
+
+
+That's it! To report success:
+ % ( echo 'First M. Last'; cat /var/qmail/doc/SYSDEPS ) \
+ | mail djb-qst@cr.yp.to
+Replace First M. Last with your name.
+
+[Note that "cat `cat SYSDEPS`" has changed to "cat /var/qmail/doc/SYSDEPS"]
+
+If you have questions about qmail, join the qmail mailing list; see
+http://pobox.com/~djb/qmail.html.
diff --git a/mail/qmail/files/maildir b/mail/qmail/files/maildir
new file mode 100644
index 000000000000..1e7aac8f5628
--- /dev/null
+++ b/mail/qmail/files/maildir
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# Using splogger to send the log through syslog.
+# Using qmail-local to deliver messages to Maildir format by default
+
+exec env - PATH="@PREFIX@/qmail/bin:$PATH" \
+qmail-start ./Maildir/ splogger qmail
diff --git a/mail/qmail/files/mkaliasdir b/mail/qmail/files/mkaliasdir
new file mode 100644
index 000000000000..78bb69b80fd3
--- /dev/null
+++ b/mail/qmail/files/mkaliasdir
@@ -0,0 +1,109 @@
+#!/usr/bin/perl
+#
+# Script to populate a Qmail ~alias directory with entries from
+# an [SZ]mail{er} or sendmail-like aliases file
+#
+# $Id: mkaliasdir,v 1.2 1997/02/22 07:47:18 tenser Exp $
+#
+# Dan Cross <tenser@spitfire.ecsel.psu.edu>
+#
+
+require 'getopts.pl';
+
+$ALIASES = "/etc/aliases";
+
+die "$0 must be run as root!\n" if ($< != 0);
+
+do Getopts('vf:');
+
+$verbose = 0 unless ($verbose = $opt_v);
+$aliases = $ALIASES unless ($aliases = $opt_f);
+
+if (($aliasdir = (getpwnam("qalias"))[7]) eq "")
+{
+ die "User qalias does not exist, bailing!\n";
+}
+
+if (($qmaildir = (getpwnam("qmaild"))[7]) eq "")
+{
+ die "User qmaild does not exist, bailing!\n";
+}
+
+$ME = "$qmaildir/control/me";
+
+die "Error opening $ME: $!\n" unless open(ME, "$ME");
+chop($me = <ME>);
+close (ME);
+
+die "Error opening $aliases: $!\n" unless open(ALIASES, "$aliases");
+
+while (<ALIASES>)
+{
+ chop;
+
+ $mode = ">";
+
+ s/#.*$//;
+
+ ($target, $data) = split(/:/, $_, 2);
+
+ $data =~ s/^\s+//;
+ $data =~ s/\s+$//;
+
+ next if (/^$/);
+
+ if ($data =~ /^$/)
+ {
+ while (chop($data = <ALIASES>))
+ {
+ $data =~ s/^\s+//;
+ $data =~ s/\s+$//;
+
+ last if ($data !~ /^$/);
+ }
+ }
+
+ $f = "$aliasdir/.qmail-$target";
+
+ @data = split(/\,/, $data);
+ $datum = $data[0];
+
+ if ($datum =~ /^:include:/i)
+ {
+ $datum =~ s/^:include://i;
+ $verbose && print "Symlinking $f to $datum...\n";
+ symlink($datum, $f);
+ shift(@data);
+ $f = $datum;
+ $mode = ">>";
+ }
+
+ open(ALIAS, "$mode$f") || die "Error creating $f: $!\n";
+
+ $verbose && print "Creating $f...\n";
+
+ foreach $datum (@data)
+ {
+ $datum =~ s/"$// if ($datum =~ s/^"// ||
+ $datum =~ s/^\|[ \t]*"/|/);
+
+ if ($datum =~ /^[|\/]/)
+ {
+ print ALIAS $datum, "\n";
+ }
+ else
+ {
+ $datum = "&" . $datum;
+ $datum .= "\@$me" unless ($datum =~ /\@/);
+ print ALIAS "$datum\n";
+ }
+
+ $verbose && print "\tPopulating $f with $datum...\n";
+ }
+
+ close(ALIAS);
+}
+
+close(ALIASES);
+
+exit 0;
diff --git a/mail/qmail/files/patch-aa b/mail/qmail/files/patch-aa
new file mode 100644
index 000000000000..55171d44ad09
--- /dev/null
+++ b/mail/qmail/files/patch-aa
@@ -0,0 +1,155 @@
++++ hier.c
+38,47d37
+< d(auto_qmail,"doc",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man/cat1",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man/cat5",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man/cat7",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man/cat8",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man/man1",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man/man5",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man/man7",auto_uido,auto_gidq,0755);
+< d(auto_qmail,"man/man8",auto_uido,auto_gidq,0755);
+67,101d56
+< c(auto_qmail,"boot","home",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","home+df",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","proc",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","proc+df",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","binm1",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","binm1+df",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","binm2",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","binm2+df",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","binm3",auto_uido,auto_gidq,0755);
+< c(auto_qmail,"boot","binm3+df",auto_uido,auto_gidq,0755);
+<
+< c(auto_qmail,"doc","FAQ",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","UPGRADE",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","SENDMAIL",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","INSTALL",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","INSTALL.alias",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","INSTALL.ctl",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","INSTALL.ids",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","INSTALL.maildir",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","INSTALL.mbox",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","INSTALL.vsm",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","TEST.deliver",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","TEST.receive",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","REMOVE.sendmail",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","REMOVE.binmail",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.local2alias",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.local2ext",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.local2local",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.local2rem",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.local2virt",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.nullclient",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.relaybad",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.relaygood",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"doc","PIC.rem2local",auto_uido,auto_gidq,0644);
+<
+146,251d100
+<
+< c(auto_qmail,"man/man5","addresses.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","addresses.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","envelopes.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","envelopes.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","maildir.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","maildir.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","mbox.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","mbox.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","dot-qmail.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","dot-qmail.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","qmail-control.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","qmail-control.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","qmail-header.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","qmail-header.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","qmail-log.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","qmail-log.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","qmail-users.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","qmail-users.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man5","tcp-environ.5",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat5","tcp-environ.0",auto_uido,auto_gidq,0644);
+<
+< c(auto_qmail,"man/man7","forgeries.7",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat7","forgeries.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man7","qmail-limits.7",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat7","qmail-limits.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man7","qmail.7",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat7","qmail.0",auto_uido,auto_gidq,0644);
+<
+< c(auto_qmail,"man/man1","forward.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","forward.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","condredirect.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","condredirect.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","bouncesaying.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","bouncesaying.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","except.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","except.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","maildirmake.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","maildirmake.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","maildir2mbox.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","maildir2mbox.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","maildirwatch.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","maildirwatch.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","mailsubj.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","mailsubj.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","qreceipt.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","qreceipt.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","qbiff.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","qbiff.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","preline.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","preline.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man1","tcp-env.1",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat1","tcp-env.0",auto_uido,auto_gidq,0644);
+<
+< c(auto_qmail,"man/man8","qmail-local.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-local.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-lspawn.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-lspawn.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-getpw.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-getpw.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-remote.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-remote.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-rspawn.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-rspawn.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-clean.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-clean.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-send.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-send.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-start.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-start.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","splogger.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","splogger.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-queue.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-queue.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-inject.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-inject.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-showctl.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-showctl.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-newmrh.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-newmrh.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-newu.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-newu.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-pw2u.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-pw2u.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-qread.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-qread.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-qstat.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-qstat.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-tcpok.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-tcpok.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-tcpto.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-tcpto.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-pop3d.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-pop3d.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-popup.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-popup.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-qmqpc.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-qmqpc.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-qmqpd.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-qmqpd.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-qmtpd.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-qmtpd.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-smtpd.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-smtpd.0",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/man8","qmail-command.8",auto_uido,auto_gidq,0644);
+< c(auto_qmail,"man/cat8","qmail-command.0",auto_uido,auto_gidq,0644);
diff --git a/mail/qmail/files/patch-ab b/mail/qmail/files/patch-ab
new file mode 100644
index 000000000000..43a507a3444e
--- /dev/null
+++ b/mail/qmail/files/patch-ab
@@ -0,0 +1,5 @@
++++ conf-groups
+2c2
+< nofiles
+---
+> qnofiles
diff --git a/mail/qmail/files/patch-ac b/mail/qmail/files/patch-ac
new file mode 100644
index 000000000000..ded116611683
--- /dev/null
+++ b/mail/qmail/files/patch-ac
@@ -0,0 +1,13 @@
++++ install.c
+12a13
+> noc; /* hack for bin package install -- see port pkg/INSTALL */
+77a79
+> if (!noc) {
+117a120
+> }
+155c158
+< void main()
+---
+> void main(argc, argv)
+156a160
+> noc=--argc;
diff --git a/mail/qmail/pkg-comment b/mail/qmail/pkg-comment
new file mode 100644
index 000000000000..96f65eece8d9
--- /dev/null
+++ b/mail/qmail/pkg-comment
@@ -0,0 +1 @@
+A SECURE, reliable, efficient, simple, and FAST MTA for UNIX systems.
diff --git a/mail/qmail/pkg-descr b/mail/qmail/pkg-descr
new file mode 100644
index 000000000000..19ffcfd7c2e1
--- /dev/null
+++ b/mail/qmail/pkg-descr
@@ -0,0 +1,23 @@
+The qmail program is a secure, reliable, efficient simple message
+transfer agent. It is meant to be a replacement for the entire
+sendmail-binmail system that most UNIX hosts use.
+
+Although qmail holds security and reliability as its top two
+priorities, it is also fast. On a Pentium under BSD/OS, qmail can
+easily handle 200000 separate messages per day that are injected
+and must then be delivered to local mailboxes!
+
+Security and reliability are qmail's two strengths, however. The
+qmail package ensures a message, once accepted, will never be lost.
+An optional new mailbox format, maildir, even lets users safely
+read their mail over NFS, while still accepting new mail deliveries.
+
+The following features are supported: host and user masquerading,
+full host hiding, virtual domains, null clients, list-owner rewriting,
+relay control, double-bounce recording, arbitrary RFC 822 address
+lists, cross-host mailing-list loop detection, per-recipient
+checkpointing, downed host backoffs, independent message retry
+schedules, a drop-in sendmail replacement, and more!
+
+http://pobox.com/~djb/qmail.html
+http://www.qmail.org/
diff --git a/mail/qmail/pkg-install b/mail/qmail/pkg-install
new file mode 100644
index 000000000000..05fdd883b31e
--- /dev/null
+++ b/mail/qmail/pkg-install
@@ -0,0 +1,106 @@
+#!/usr/bin/perl
+#
+
+# The post-install script
+if ($ARGV[1] eq "POST-INSTALL") {
+ # Build the queue directory structure
+ # Some of these directories will have been created during the
+ # pkg_add(1) process. Hopefully this will at least make sure
+ # that they have the right permissions and owners.
+
+ system ("$ENV{PKG_PREFIX}/configure/install x");
+ system ("cd $ENV{PKG_PREFIX}/configure && ./config");
+
+ utime time, time, "$ENV{PKG_PREFIX}/alias/.qmail-postmaster", "$ENV{PKG_PREFIX}/alias/.qmail-root", "$ENV{PKG_PREFIX}/alias/.qmail-mailer-daemon";
+ exit 0;
+}
+
+@groups = ("qmail", "qnofiles");
+%users = ('qmaild', "qnofiles", 'qmaill', "qnofiles", 'qmailp', "qnofiles",
+ 'qmailq', "qmail", 'qmailr', "qmail", 'qmails', "qmail");
+# daemon, local, pop, queue, remote, deliver, respectively.
+# alias is a special case above...
+%gids = ("qmail", 80, "qnofiles", 81);
+%uids = ('alias', 81, 'qmaild', 82, 'qmaill', 83, 'qmailp', 84, 'qmailq', 85,
+ 'qmailr', 86, 'qmails', 87);
+
+if ($ENV{PACKAGE_BUILDING} || $ARGV[1] eq "PRE-INSTALL") {
+ $doguid=1; # Make sure we get the assigned guids.
+}
+
+foreach $group (@groups) {
+ if (! getgrnam ($group)) {
+ do checkrpw; # May exit
+
+ $x = "-g $gids{$group}";
+ $result = system ("/usr/sbin/pw groupadd $group $x");
+ if ($result) {
+ die "Failed to add group $group as gid $gids{$group}\n";
+ }
+ }
+}
+
+if (! getpwnam ("alias")) {
+ do checkrpw; # May exit
+
+ $x = "-u $uids{'alias'}";
+ $result = system ("/usr/sbin/pw useradd alias -g qnofiles -d \"$ENV{PKG_PREFIX}/alias\" -s /nonexistent $x");
+ if ($result) {
+ die "Failed to add user alias as uid $uids{'alias'}\n";
+ }
+}
+
+foreach $user (keys %users) {
+ if (! getpwnam ($user)) {
+ do checkrpw; # May exit
+
+ $x = "-u $uids{$user}";
+ $result = system ("/usr/sbin/pw useradd $user -g $users{$user} -d \"$ENV{PKG_PREFIX}\" -s /nonexistent $x");
+ if ($result) {
+ die "Failed to add user $user as uid $uids{$user}\n";
+ }
+ }
+}
+
+# Check that all gids/uids are as they should be...
+# If we are being installed as a package...
+if ($doguid) {
+ foreach $group (@groups) {
+ if (getgrnam($group) != $gids{$group}) {
+ die "Group $group should have gid $gids{$group}\n";
+ }
+ }
+
+ foreach $user (keys %users) {
+ if (getpwnam($user) != $uids{$user}) {
+ die "User $user should have uid $uids{$user}\n";
+ }
+ }
+ if (getpwnam("alias") != $uids{"alias"}) {
+ die "User alias should have uid $uids{'alias'}\n";
+ }
+}
+
+exit 0;
+
+sub checkrpw {
+ if (! -x "/usr/sbin/pw") {
+ print <<'EOM';
+This system looks like a pre-2.2 version of FreeBSD. We see that it
+is missing the "pw" utility. We need this utility. Please get and
+install it, and try again. You can get the source from:
+
+ ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz
+
+EOM
+ die "No /usr/sbin/pw";
+ }
+
+ if ($> != 0) {
+ print "It is necessary to add missing qmail users/groups at";
+ print "this stage. Please either add them manually or retry";
+ print "as root.";
+ # Let pw(1) signal the failure so the user can see which
+ # group/user is actually missing.
+ }
+}
diff --git a/mail/qmail/pkg-message b/mail/qmail/pkg-message
new file mode 100644
index 000000000000..008d54bf1f4b
--- /dev/null
+++ b/mail/qmail/pkg-message
@@ -0,0 +1,8 @@
+ ATTENTIONATTENTION:
+
+Please make sure that you read /var/qmail/doc/PORT_NOTES.
+It contains important information about testing and configuring
+qmail, and finally replacing sendmail with qmail.
+
+You should also add /var/qmail/man to your MANPATH (see manpath(1)
+or login.conf(5)).