Wed Dec 16 09:46:36 2009 UTC ()
     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.


(jnemeth)
diff -r1.16 -r1.17 pkgsrc/mail/libmilter/Makefile
diff -r1.41 -r1.42 pkgsrc/mail/sendmail/distinfo
diff -r1.9 -r1.10 pkgsrc/mail/sendmail/files/site.config.m4
diff -r0 -r1.1 pkgsrc/mail/sendmail/patches/patch-ao

cvs diff -r1.16 -r1.17 pkgsrc/mail/libmilter/Makefile (expand / switch to unified diff)

--- pkgsrc/mail/libmilter/Makefile 2008/06/14 08:58:06 1.16
+++ pkgsrc/mail/libmilter/Makefile 2009/12/16 09:46:36 1.17
@@ -1,27 +1,28 @@ @@ -1,27 +1,28 @@
1# $NetBSD: Makefile,v 1.16 2008/06/14 08:58:06 tron Exp $ 1# $NetBSD: Makefile,v 1.17 2009/12/16 09:46:36 jnemeth Exp $
2 2
3PKGNAME= libmilter-${DIST_VERS} 3PKGNAME= libmilter-${DIST_VERS}
 4PKGREVISION= 1
4COMMENT= Mail filter support library for sendmail 5COMMENT= Mail filter support library for sendmail
5 6
6PKG_DESTDIR_SUPPORT= user-destdir 7PKG_DESTDIR_SUPPORT= user-destdir
7 8
8.include "options.mk" 9.include "options.mk"
9.include "../../mail/sendmail/Makefile.common" 10.include "../../mail/sendmail/Makefile.common"
10 11
11INSTALLATION_DIRS= include lib 12INSTALLATION_DIRS= include lib
12 13
13post-patch: make-sendmail-siteconfig 14post-patch: make-sendmail-siteconfig
14 15
15do-build: 16do-build:
16 (cd ${WRKSRC}/libmilter && env ${MAKE_ENV} ./Build) 17 (cd ${WRKSRC}/libmilter && env ${MAKE_ENV} ./Build)
17 18
18do-install: 19do-install:
19 (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) 20 (cd ${WRKSRC}/libmilter && env ${MAKE_ENV} ./Build BINOWN=${BINOWN} BINGRP=${BINGRP} SHAREOWN=${SHAREOWN} SHAREGRP=${SHAREGRP} INCLUDEDIR=${DESTDIR}${PREFIX}/include LIBDIR=${DESTDIR}${PREFIX}/lib install)
20 21
21PTHREAD_OPTS+= require 22PTHREAD_OPTS+= require
22 23
23.include "../../mk/pthread.buildlink3.mk" 24.include "../../mk/pthread.buildlink3.mk"
24.include "../../mk/bsd.pkg.mk" 25.include "../../mk/bsd.pkg.mk"
25 26
26# has to be below include for bsd.pkg.mk, else substition fails 27# has to be below include for bsd.pkg.mk, else substition fails
27OBJDIR!= ${ECHO} obj.`${UNAME} -srm | ${TR} \ .` 28OBJDIR!= ${ECHO} obj.`${UNAME} -srm | ${TR} \ .`

cvs diff -r1.41 -r1.42 pkgsrc/mail/sendmail/distinfo (expand / switch to unified diff)

--- pkgsrc/mail/sendmail/distinfo 2009/03/24 21:05:42 1.41
+++ pkgsrc/mail/sendmail/distinfo 2009/12/16 09:46:36 1.42
@@ -1,18 +1,19 @@ @@ -1,18 +1,19 @@
1$NetBSD: distinfo,v 1.41 2009/03/24 21:05:42 jnemeth Exp $ 1$NetBSD: distinfo,v 1.42 2009/12/16 09:46:36 jnemeth Exp $
2 2
3SHA1 (sendmail.8.14.3.tar.gz) = 814c54c3917aa6b0981b5ea99fb34e0c02f31489 3SHA1 (sendmail.8.14.3.tar.gz) = 814c54c3917aa6b0981b5ea99fb34e0c02f31489
4RMD160 (sendmail.8.14.3.tar.gz) = 5423360ce908c985827cf6524a6de87e3451c27a 4RMD160 (sendmail.8.14.3.tar.gz) = 5423360ce908c985827cf6524a6de87e3451c27a
5Size (sendmail.8.14.3.tar.gz) = 2069209 bytes 5Size (sendmail.8.14.3.tar.gz) = 2069209 bytes
6SHA1 (patch-aa) = b7ceece7760e3d637016da039f8429c1fb89f2cf 6SHA1 (patch-aa) = b7ceece7760e3d637016da039f8429c1fb89f2cf
7SHA1 (patch-ab) = a2abf6e78772e257e2a1973e7730159ff24a91aa 7SHA1 (patch-ab) = a2abf6e78772e257e2a1973e7730159ff24a91aa
8SHA1 (patch-ac) = 96c19300b4188dbcbd202768eea912f675dadc27 8SHA1 (patch-ac) = 96c19300b4188dbcbd202768eea912f675dadc27
9SHA1 (patch-ad) = 7232cc7ceb46a2dbf631d61185e4c6ca4af18a13 9SHA1 (patch-ad) = 7232cc7ceb46a2dbf631d61185e4c6ca4af18a13
10SHA1 (patch-ae) = ae06caa125fe4d4fc85123dc0a5d0016cd099ebd 10SHA1 (patch-ae) = ae06caa125fe4d4fc85123dc0a5d0016cd099ebd
11SHA1 (patch-af) = f1fb00d9d27f512c550ad7dbcd014563122488b5 11SHA1 (patch-af) = f1fb00d9d27f512c550ad7dbcd014563122488b5
12SHA1 (patch-ag) = 1889e8d7938664af926a9a169bb53f6da924f0bb 12SHA1 (patch-ag) = 1889e8d7938664af926a9a169bb53f6da924f0bb
13SHA1 (patch-ah) = e6be09008b9230ffdd1560aaacbdbb2ee4fb8028 13SHA1 (patch-ah) = e6be09008b9230ffdd1560aaacbdbb2ee4fb8028
14SHA1 (patch-ai) = aca71358618e8c1dc785a8b2dc049b97232b8795 14SHA1 (patch-ai) = aca71358618e8c1dc785a8b2dc049b97232b8795
15SHA1 (patch-aj) = e65e6fe44380de2f9c397c1a97677eb4ad285433 15SHA1 (patch-aj) = e65e6fe44380de2f9c397c1a97677eb4ad285433
16SHA1 (patch-al) = f5d8cef8c4abba5d5ae813b754c16037190a7ef1 16SHA1 (patch-al) = f5d8cef8c4abba5d5ae813b754c16037190a7ef1
17SHA1 (patch-am) = d84eedbff0f037c1db341255dc9e1877866f12c7 17SHA1 (patch-am) = d84eedbff0f037c1db341255dc9e1877866f12c7
18SHA1 (patch-an) = 82d2df0c609099f295eb00f1f5e19391ae97833c 18SHA1 (patch-an) = 82d2df0c609099f295eb00f1f5e19391ae97833c
 19SHA1 (patch-ao) = 51e27f1fa90420bf7a5daa1379c4b0f07b596177

cvs diff -r1.9 -r1.10 pkgsrc/mail/sendmail/files/site.config.m4 (expand / switch to unified diff)

--- pkgsrc/mail/sendmail/files/site.config.m4 2008/03/14 03:02:45 1.9
+++ pkgsrc/mail/sendmail/files/site.config.m4 2009/12/16 09:46:36 1.10
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: site.config.m4,v 1.9 2008/03/14 03:02:45 jnemeth Exp $ 1# $NetBSD: site.config.m4,v 1.10 2009/12/16 09:46:36 jnemeth Exp $
2 2
3# pathnames specific to pkgsrc 3# pathnames specific to pkgsrc
4# 4#
5define(`confEBINDIR', `${PREFIX}/libexec/sendmail') 5define(`confEBINDIR', `${PREFIX}/libexec/sendmail')
6define(`confMBINDIR', `${PREFIX}/libexec/sendmail') 6define(`confMBINDIR', `${PREFIX}/libexec/sendmail')
7define(`confSBINDIR', `${PREFIX}/sbin') 7define(`confSBINDIR', `${PREFIX}/sbin')
8define(`confUBINDIR', `${PREFIX}/bin') 8define(`confUBINDIR', `${PREFIX}/bin')
9define(`confHFDIR', `${PREFIX}/share/misc') 9define(`confHFDIR', `${PREFIX}/share/misc')
10define(`confINSTALL_RAWMAN', 'yes') 10define(`confINSTALL_RAWMAN', 'yes')
11define(`confDONT_INSTALL_CATMAN', 'yes') 11define(`confDONT_INSTALL_CATMAN', 'yes')
12define(`confMANROOT', `${PREFIX}/${PKGMANDIR}/man') 12define(`confMANROOT', `${PREFIX}/${PKGMANDIR}/man')
13define(`confMANROOTMAN', `${PREFIX}/${PKGMANDIR}/man') 13define(`confMANROOTMAN', `${PREFIX}/${PKGMANDIR}/man')
14define(`confMAN1EXT', `1') 14define(`confMAN1EXT', `1')
@@ -19,13 +19,19 @@ define(`confMAN8EXT', `8') @@ -19,13 +19,19 @@ define(`confMAN8EXT', `8')
19APPENDDEF(`confENVDEF', `-I${PREFIX}/include -DSMRSH_CMDDIR=\"${SMRSH_CMDDIR}\"') 19APPENDDEF(`confENVDEF', `-I${PREFIX}/include -DSMRSH_CMDDIR=\"${SMRSH_CMDDIR}\"')
20APPENDDEF(`confLIBS', `-L${PREFIX}/lib') 20APPENDDEF(`confLIBS', `-L${PREFIX}/lib')
21APPENDDEF(`confMAPDEF', `-DSOCKETMAP') 21APPENDDEF(`confMAPDEF', `-DSOCKETMAP')
22 22
23# the following are handled by pkgsrc 23# the following are handled by pkgsrc
24define(`confINST_DEP',`') 24define(`confINST_DEP',`')
25define(`confNO_STATISTICS_INSTALL') 25define(`confNO_STATISTICS_INSTALL')
26 26
27# set file ownership to pkgsrc default 27# set file ownership to pkgsrc default
28define(`confLIBOWN', `${BINOWN}') 28define(`confLIBOWN', `${BINOWN}')
29define(`confLIBGRP', `${BINGRP}') 29define(`confLIBGRP', `${BINGRP}')
30define(`confINCOWN', `${SHAREOWN}') 30define(`confINCOWN', `${SHAREOWN}')
31define(`confINCGRP', `${SHAREGRP}') 31define(`confINCGRP', `${SHAREGRP}')
 32
 33# have libmilter use poll(2) instead of select(2)
 34# XXX all supported systems should support poll(2), if one is discovered
 35# that doesn't, we can revisit this
 36APPENDDEF(`conf_libmilter_ENVDEF', `-DSM_CONF_POLL=1')
 37

File Added: pkgsrc/mail/sendmail/patches/patch-ao
$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)