summaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
authorschmonz <schmonz@pkgsrc.org>2004-07-21 22:42:04 +0000
committerschmonz <schmonz@pkgsrc.org>2004-07-21 22:42:04 +0000
commit23a537e19e06d7ef52307ed130de99b84fd42600 (patch)
tree7c5ea4cd04794d2a806de239e420fca372d9d811 /mail
parent661c79840483cf579bc2b2a1ee3db9a0e4ea09f3 (diff)
downloadpkgsrc-23a537e19e06d7ef52307ed130de99b84fd42600.tar.gz
Now that the qmail package avoids modifying the source code, those
of us who want the netqmail patches should use this package instead. The two packages are otherwise identical. Included here, as in the old qmail package: * The netqmail 1.05 patches * http://www.ckdhr.com/ckd/qmail-103.patch (recommended by Dave Sill) Included in the old qmail package, but not here: * http://patch.be/qmail/badrcptto-v1.01.patch If you relied on the badrcptto patch, consider using qmail-qfilter instead. As with any other package, you can apply patches to your local builds with pkgsrc's LOCALPATCHES mechanism.
Diffstat (limited to 'mail')
-rw-r--r--mail/netqmail/DESCR12
-rw-r--r--mail/netqmail/Makefile36
-rw-r--r--mail/netqmail/distinfo5
-rw-r--r--mail/netqmail/patches/patch-aa65
4 files changed, 118 insertions, 0 deletions
diff --git a/mail/netqmail/DESCR b/mail/netqmail/DESCR
new file mode 100644
index 00000000000..c963fd8e1dd
--- /dev/null
+++ b/mail/netqmail/DESCR
@@ -0,0 +1,12 @@
+Charles Cazabon, Dave Sill, Henning Brauer, Peter Samuel, and
+Russell Nelson have put together a netqmail-1.05 distribution of
+qmail. It is comprised of qmail-1.03 plus a patch file, some
+documentation, and a shell script which prepares the files for
+compilation.
+
+We have done this because in our opinion, too many new users are
+confused by the out-of-date INSTALL file, and too much time is
+spent arguing on the mailing list over bugs. We have tried to stick
+to the barest minimum number of changes. We have fixed only those
+things which are out-and-out wrong, or which have been approved by
+djb (specifically QMAILQUEUE).
diff --git a/mail/netqmail/Makefile b/mail/netqmail/Makefile
new file mode 100644
index 00000000000..11437259843
--- /dev/null
+++ b/mail/netqmail/Makefile
@@ -0,0 +1,36 @@
+# $NetBSD: Makefile,v 1.1.1.1 2004/07/21 22:42:04 schmonz Exp $
+#
+
+DISTNAME= netqmail-1.05
+CATEGORIES= mail
+MASTER_SITES= http://qmail.org/
+
+MAINTAINER= schmonz@NetBSD.org
+HOMEPAGE= http://qmail.org/netqmail/
+COMMENT= Unofficial distribution of qmail that includes basic patches
+
+CONFLICTS+= qmail-[0-9]*
+
+USE_BUILDLINK3= yes
+
+# netqmail is a modification of the qmail source.
+RESTRICTED= "modified source and binaries may not be distributed"
+NO_BIN_ON_CDROM=${RESTRICTED}
+NO_BIN_ON_FTP= ${RESTRICTED}
+NO_PACKAGE= "needs work to function properly as a binary package"
+
+WRKSRC= ${WRKDIR}/${DISTNAME}/${DISTNAME}
+
+.include "../../mail/qmail/Makefile.common"
+
+.if defined(PKG_PHASE) && ${PKG_PHASE} == "extract"
+WRKSRC= ${WRKDIR}/${DISTNAME}
+.endif
+
+post-extract:
+ @extract_file=qmail-1.03.tar.gz; export extract_file; \
+ cd ${WRKSRC}; ${EXTRACT_CMD}; cd qmail-1.03; \
+ ${PATCH} ${PATCH_DIST_ARGS} < ../${DISTNAME}.patch; \
+ cd ..; ${MV} qmail-1.03 ${DISTNAME}
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/mail/netqmail/distinfo b/mail/netqmail/distinfo
new file mode 100644
index 00000000000..af4890125a0
--- /dev/null
+++ b/mail/netqmail/distinfo
@@ -0,0 +1,5 @@
+$NetBSD: distinfo,v 1.1.1.1 2004/07/21 22:42:04 schmonz Exp $
+
+SHA1 (netqmail-1.05.tar.gz) = fe4cbe97bd2f18a5ca1b36e4fbbd6c524256a829
+Size (netqmail-1.05.tar.gz) = 252264 bytes
+SHA1 (patch-aa) = c9928d0879dee77010bb469d4afa8c4ca35668f8
diff --git a/mail/netqmail/patches/patch-aa b/mail/netqmail/patches/patch-aa
new file mode 100644
index 00000000000..cf1473dbf20
--- /dev/null
+++ b/mail/netqmail/patches/patch-aa
@@ -0,0 +1,65 @@
+$NetBSD: patch-aa,v 1.1.1.1 2004/07/21 22:42:04 schmonz Exp $
+
+--- dns.c.orig 2004-07-20 20:02:28.000000000 -0400
++++ dns.c
+@@ -19,10 +19,12 @@ extern int res_search();
+ static unsigned short getshort(c) unsigned char *c;
+ { unsigned short u; u = c[0]; return (u << 8) + c[1]; }
+
+-static union { HEADER hdr; unsigned char buf[PACKETSZ]; } response;
++static struct { unsigned char *buf; } response;
++static int responsebuflen = 0;
+ static int responselen;
+ static unsigned char *responseend;
+ static unsigned char *responsepos;
++static u_long saveresoptions;
+
+ static int numanswers;
+ static char name[MAXDNAME];
+@@ -43,18 +45,33 @@ int type;
+ errno = 0;
+ if (!stralloc_copy(&glue,domain)) return DNS_MEM;
+ if (!stralloc_0(&glue)) return DNS_MEM;
+- responselen = lookup(glue.s,C_IN,type,response.buf,sizeof(response));
++ if (!responsebuflen)
++ if (response.buf = (unsigned char *)alloc(PACKETSZ+1))
++ responsebuflen = PACKETSZ+1;
++ else return DNS_MEM;
++
++ responselen = lookup(glue.s,C_IN,type,response.buf,responsebuflen);
++ if ((responselen >= responsebuflen) ||
++ (responselen > 0 && (((HEADER *)response.buf)->tc)))
++ {
++ if (responsebuflen < 65536)
++ if (alloc_re(&response.buf, responsebuflen, 65536))
++ responsebuflen = 65536;
++ else return DNS_MEM;
++ saveresoptions = _res.options;
++ _res.options |= RES_USEVC;
++ responselen = lookup(glue.s,C_IN,type,response.buf,responsebuflen);
++ _res.options = saveresoptions;
++ }
+ if (responselen <= 0)
+ {
+ if (errno == ECONNREFUSED) return DNS_SOFT;
+ if (h_errno == TRY_AGAIN) return DNS_SOFT;
+ return DNS_HARD;
+ }
+- if (responselen >= sizeof(response))
+- responselen = sizeof(response);
+ responseend = response.buf + responselen;
+ responsepos = response.buf + sizeof(HEADER);
+- n = ntohs(response.hdr.qdcount);
++ n = ntohs(((HEADER *)response.buf)->qdcount);
+ while (n-- > 0)
+ {
+ i = dn_expand(response.buf,responseend,responsepos,name,MAXDNAME);
+@@ -64,7 +81,7 @@ int type;
+ if (i < QFIXEDSZ) return DNS_SOFT;
+ responsepos += QFIXEDSZ;
+ }
+- numanswers = ntohs(response.hdr.ancount);
++ numanswers = ntohs(((HEADER *)response.buf)->ancount);
+ return 0;
+ }
+