diff options
author | jnemeth <jnemeth> | 2009-12-16 09:46:36 +0000 |
---|---|---|
committer | jnemeth <jnemeth> | 2009-12-16 09:46:36 +0000 |
commit | 56b930e36bed6984ed3ee54dbed04eb17caa60fb (patch) | |
tree | baa704cd9183eae3b2f473e85eea35472d1a881e /mail | |
parent | 092baa72af4fd958a75fd239c6a05f8b56b0d6f3 (diff) | |
download | pkgsrc-56b930e36bed6984ed3ee54dbed04eb17caa60fb.tar.gz |
Change libmilter to use poll(2) instead of select(2)
unconditionally. All supported systems should have poll(2). If
one is found that doesn't then this can be revisited and some way
of making it conditional can be implemented.
This resolves an issue with applications that have a large
number of open files and want to bump FD_SETSIZE. Since libmilter
no longer uses select(2), the application is free to monkey with
FD_SETSIZE as it pleases.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/libmilter/Makefile | 5 | ||||
-rw-r--r-- | mail/sendmail/distinfo | 3 | ||||
-rw-r--r-- | mail/sendmail/files/site.config.m4 | 8 | ||||
-rw-r--r-- | mail/sendmail/patches/patch-ao | 19 |
4 files changed, 31 insertions, 4 deletions
diff --git a/mail/libmilter/Makefile b/mail/libmilter/Makefile index dbc1b595d1a..888de1bfca5 100644 --- a/mail/libmilter/Makefile +++ b/mail/libmilter/Makefile @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.16 2008/06/14 08:58:06 tron Exp $ +# $NetBSD: Makefile,v 1.17 2009/12/16 09:46:36 jnemeth Exp $ PKGNAME= libmilter-${DIST_VERS} +PKGREVISION= 1 COMMENT= Mail filter support library for sendmail PKG_DESTDIR_SUPPORT= user-destdir @@ -16,7 +17,7 @@ do-build: (cd ${WRKSRC}/libmilter && env ${MAKE_ENV} ./Build) do-install: - (cd ${WRKSRC}/libmilter && env ${MAKE_ENV} ./Build BINOWN=${BINOWN:Q} BINGRP=${BINGRP:Q} SHAREOWN=${SHAREOWN:Q} SHAREGRP=${SHAREGRP:Q} INCLUDEDIR=${DESTDIR:Q}${PREFIX}/include LIBDIR=${DESTDIR:Q}${PREFIX}/lib install) + (cd ${WRKSRC}/libmilter && env ${MAKE_ENV} ./Build BINOWN=${BINOWN} BINGRP=${BINGRP} SHAREOWN=${SHAREOWN} SHAREGRP=${SHAREGRP} INCLUDEDIR=${DESTDIR}${PREFIX}/include LIBDIR=${DESTDIR}${PREFIX}/lib install) PTHREAD_OPTS+= require diff --git a/mail/sendmail/distinfo b/mail/sendmail/distinfo index 59b2d97b545..730b3f4cbcc 100644 --- a/mail/sendmail/distinfo +++ b/mail/sendmail/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.41 2009/03/24 21:05:42 jnemeth Exp $ +$NetBSD: distinfo,v 1.42 2009/12/16 09:46:36 jnemeth Exp $ SHA1 (sendmail.8.14.3.tar.gz) = 814c54c3917aa6b0981b5ea99fb34e0c02f31489 RMD160 (sendmail.8.14.3.tar.gz) = 5423360ce908c985827cf6524a6de87e3451c27a @@ -16,3 +16,4 @@ SHA1 (patch-aj) = e65e6fe44380de2f9c397c1a97677eb4ad285433 SHA1 (patch-al) = f5d8cef8c4abba5d5ae813b754c16037190a7ef1 SHA1 (patch-am) = d84eedbff0f037c1db341255dc9e1877866f12c7 SHA1 (patch-an) = 82d2df0c609099f295eb00f1f5e19391ae97833c +SHA1 (patch-ao) = 51e27f1fa90420bf7a5daa1379c4b0f07b596177 diff --git a/mail/sendmail/files/site.config.m4 b/mail/sendmail/files/site.config.m4 index fb9fe25a03e..26bbdd445d4 100644 --- a/mail/sendmail/files/site.config.m4 +++ b/mail/sendmail/files/site.config.m4 @@ -1,4 +1,4 @@ -# $NetBSD: site.config.m4,v 1.9 2008/03/14 03:02:45 jnemeth Exp $ +# $NetBSD: site.config.m4,v 1.10 2009/12/16 09:46:36 jnemeth Exp $ # pathnames specific to pkgsrc # @@ -29,3 +29,9 @@ define(`confLIBOWN', `${BINOWN}') define(`confLIBGRP', `${BINGRP}') define(`confINCOWN', `${SHAREOWN}') define(`confINCGRP', `${SHAREGRP}') + +# have libmilter use poll(2) instead of select(2) +# XXX all supported systems should support poll(2), if one is discovered +# that doesn't, we can revisit this +APPENDDEF(`conf_libmilter_ENVDEF', `-DSM_CONF_POLL=1') + diff --git a/mail/sendmail/patches/patch-ao b/mail/sendmail/patches/patch-ao new file mode 100644 index 00000000000..6d1f291819e --- /dev/null +++ b/mail/sendmail/patches/patch-ao @@ -0,0 +1,19 @@ +$NetBSD: patch-ao,v 1.1 2009/12/16 09:46:36 jnemeth Exp $ + +Fix a possibly incorrect error message. +Patch sent upstream, 2009/12/15 -- jnemeth + +--- libmilter/listener.c.orig 2007-04-23 22:22:50.000000000 +0000 ++++ libmilter/listener.c +@@ -777,8 +777,9 @@ mi_listener(conn, dbg, smfi, timeout, ba + continue; + scnt++; + smi_log(SMI_LOG_ERR, +- "%s: select() failed (%s), %s", +- smfi->xxfi_name, sm_errstring(save_errno), ++ "%s: %s() failed (%s), %s", ++ smfi->xxfi_name, MI_POLLSELECT, ++ sm_errstring(save_errno), + scnt >= MAX_FAILS_S ? "abort" : "try again"); + MI_SLEEP(scnt); + if (scnt >= MAX_FAILS_S) |