diff options
-rw-r--r-- | mail/qmail/Makefile | 139 | ||||
-rw-r--r-- | mail/qmail/distinfo | 1 | ||||
-rw-r--r-- | mail/qmail/files/PORT_NOTES | 122 | ||||
-rw-r--r-- | mail/qmail/files/maildir | 7 | ||||
-rw-r--r-- | mail/qmail/files/mkaliasdir | 109 | ||||
-rw-r--r-- | mail/qmail/files/patch-aa | 155 | ||||
-rw-r--r-- | mail/qmail/files/patch-ab | 5 | ||||
-rw-r--r-- | mail/qmail/files/patch-ac | 13 | ||||
-rw-r--r-- | mail/qmail/pkg-comment | 1 | ||||
-rw-r--r-- | mail/qmail/pkg-descr | 23 | ||||
-rw-r--r-- | mail/qmail/pkg-install | 106 | ||||
-rw-r--r-- | mail/qmail/pkg-message | 8 |
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)). |