diff options
author | joerg <joerg@pkgsrc.org> | 2007-07-03 13:54:45 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2007-07-03 13:54:45 +0000 |
commit | e24209d1455027ac9e39ab799fbdc2c1e21f9cfc (patch) | |
tree | f0384614f91c073d547064a3c7e0dd2d67393d7e | |
parent | fa3e8e36f943b91d9e0ce955b1413de422524561 (diff) | |
download | pkgsrc-e24209d1455027ac9e39ab799fbdc2c1e21f9cfc.tar.gz |
Add common handling for libresolv similiar to dlopen(3) wrapping.
For now, DragonFly and FreeBSD use the libc version, it is not reentrant,
but thread-safe. NetBSD 3.0+ and Darwin 8.0+ use libresolv from base
(the BIND9 resolver), all other fall back to net/bind9. Feel free to add
your favorite platform if it has a thread-safe resolver in base.
Modify mail/libspf-alf, mail/milter-greylist, mail/spamdyke and
net/nocol accordingly. Testing on !DragonFly and feedback from tron@
-rw-r--r-- | mail/libspf-alt/Makefile | 4 | ||||
-rw-r--r-- | mail/libspf-alt/buildlink3.mk | 4 | ||||
-rw-r--r-- | mail/libspf-alt/distinfo | 3 | ||||
-rw-r--r-- | mail/libspf-alt/patches/patch-aa | 56 | ||||
-rw-r--r-- | mail/milter-greylist/options.mk | 4 | ||||
-rw-r--r-- | mail/spamdyke/Makefile | 3 | ||||
-rw-r--r-- | mail/spamdyke/distinfo | 6 | ||||
-rw-r--r-- | mail/spamdyke/patches/patch-ab | 9 | ||||
-rw-r--r-- | mail/spamdyke/patches/patch-ac | 10 | ||||
-rw-r--r-- | mk/resolv.buildlink3.mk | 66 | ||||
-rw-r--r-- | net/nocol/Makefile | 3 | ||||
-rw-r--r-- | net/nocol/distinfo | 4 | ||||
-rw-r--r-- | net/nocol/patches/patch-am | 21 |
13 files changed, 169 insertions, 24 deletions
diff --git a/mail/libspf-alt/Makefile b/mail/libspf-alt/Makefile index 309fa2e6a58..60083601cde 100644 --- a/mail/libspf-alt/Makefile +++ b/mail/libspf-alt/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.14 2006/10/04 21:47:16 wiz Exp $ +# $NetBSD: Makefile,v 1.15 2007/07/03 13:54:45 joerg Exp $ DISTNAME= libspf_alt-0.4.0 PKGREVISION= 3 @@ -15,5 +15,5 @@ GNU_CONFIGURE= YES CONFIGURE_ARGS+=--with-bind=${BUILDLINK_PREFIX.bind} .include "../../devel/gettext-lib/buildlink3.mk" -.include "../../net/bind9/buildlink3.mk" +.include "../../mk/resolv.buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/mail/libspf-alt/buildlink3.mk b/mail/libspf-alt/buildlink3.mk index 53bc698e008..242d4af2373 100644 --- a/mail/libspf-alt/buildlink3.mk +++ b/mail/libspf-alt/buildlink3.mk @@ -1,4 +1,4 @@ -# $NetBSD: buildlink3.mk,v 1.8 2006/07/08 23:10:57 jlam Exp $ +# $NetBSD: buildlink3.mk,v 1.9 2007/07/03 13:54:45 joerg Exp $ BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+ LIBSPF_ALT_BUILDLINK3_MK:= ${LIBSPF_ALT_BUILDLINK3_MK}+ @@ -18,6 +18,6 @@ BUILDLINK_PKGSRCDIR.libspf_alt?= ../../mail/libspf-alt .endif # LIBSPF_ALT_BUILDLINK3_MK .include "../../devel/gettext-lib/buildlink3.mk" -.include "../../net/bind9/buildlink3.mk" +.include "../../mk/resolv.buildlink3.mk" BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//} diff --git a/mail/libspf-alt/distinfo b/mail/libspf-alt/distinfo index 9a5e945292d..16f666e5b99 100644 --- a/mail/libspf-alt/distinfo +++ b/mail/libspf-alt/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.2 2005/02/24 09:59:23 agc Exp $ +$NetBSD: distinfo,v 1.3 2007/07/03 13:54:45 joerg Exp $ SHA1 (libspf_alt-0.4.0.tar.gz) = ba269d7508daebf42e9e20720f410c9409207558 RMD160 (libspf_alt-0.4.0.tar.gz) = 67a789cfbc4df391fd6938e81ce90e3b24264615 Size (libspf_alt-0.4.0.tar.gz) = 598003 bytes +SHA1 (patch-aa) = c2663da02cd12ff6c148f4dd2d9670e5ce71d3cb diff --git a/mail/libspf-alt/patches/patch-aa b/mail/libspf-alt/patches/patch-aa new file mode 100644 index 00000000000..82997b35131 --- /dev/null +++ b/mail/libspf-alt/patches/patch-aa @@ -0,0 +1,56 @@ +$NetBSD: patch-aa,v 1.1 2007/07/03 13:54:45 joerg Exp $ + +--- configure.orig 2007-07-02 14:03:12.000000000 +0000 ++++ configure +@@ -19389,13 +19389,13 @@ echo "${ECHO_T}$ac_cv_lib_bind_res_query + if test $ac_cv_lib_bind_res_query = yes; then + LIBS="$LIBS -lbind" + else +- echo "$as_me:$LINENO: checking for res_query in -lresolv" >&5 +-echo $ECHO_N "checking for res_query in -lresolv... $ECHO_C" >&6 ++ echo "$as_me:$LINENO: checking for res_query in ${RESOLV_LDFLAGS}" >&5 ++echo $ECHO_N "checking for res_query in ${RESOLV_LDFLAGS}... $ECHO_C" >&6 + if test "${ac_cv_lib_resolv_res_query+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lresolv $LIBS" ++LIBS="${RESOLV_LDFLAGS} $LIBS" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -19453,7 +19453,7 @@ fi + echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_res_query" >&5 + echo "${ECHO_T}$ac_cv_lib_resolv_res_query" >&6 + if test $ac_cv_lib_resolv_res_query = yes; then +- LIBS="$LIBS -lresolv" ++ LIBS="$LIBS ${RESOLV_LDFLAGS}" + else + echo "cannot find resolver library"; exit 1; + fi +@@ -19464,13 +19464,13 @@ fi + + else + +-echo "$as_me:$LINENO: checking for res_query in -lresolv" >&5 +-echo $ECHO_N "checking for res_query in -lresolv... $ECHO_C" >&6 ++echo "$as_me:$LINENO: checking for res_query in ${RESOLV_LDFLAGS}" >&5 ++echo $ECHO_N "checking for res_query in ${RESOLV_LDFLAGS}... $ECHO_C" >&6 + if test "${ac_cv_lib_resolv_res_query+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lresolv $LIBS" ++LIBS="${RESOLV_LDFLAGS} $LIBS" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -19532,7 +19532,7 @@ if test $ac_cv_lib_resolv_res_query = ye + #define HAVE_LIBRESOLV 1 + _ACEOF + +- LIBS="-lresolv $LIBS" ++ LIBS="${RESOLV_LDFLAGS} $LIBS" + + fi + diff --git a/mail/milter-greylist/options.mk b/mail/milter-greylist/options.mk index a47af91b6e5..0231f4063ad 100644 --- a/mail/milter-greylist/options.mk +++ b/mail/milter-greylist/options.mk @@ -1,4 +1,4 @@ -# $NetBSD: options.mk,v 1.2 2006/11/09 13:15:10 ghen Exp $ +# $NetBSD: options.mk,v 1.3 2007/07/03 13:54:45 joerg Exp $ PKG_OPTIONS_VAR= PKG_OPTIONS.milter-greylist PKG_SUPPORTED_OPTIONS= dnsrbl drac spf @@ -12,7 +12,7 @@ PKG_SUGGESTED_OPTIONS= dnsrbl spf .if empty(PKG_OPTIONS:Mdnsrbl) CONFIGURE_ARGS+= --disable-dnsrbl .else -CONFIGURE_ARGS+= --enable-dnsrbl +CONFIGURE_ARGS+= --enable-dnsrbl --with-thread-safe-resolver .endif ### diff --git a/mail/spamdyke/Makefile b/mail/spamdyke/Makefile index e077078119f..477b9a0fe82 100644 --- a/mail/spamdyke/Makefile +++ b/mail/spamdyke/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.8 2007/06/21 19:08:45 schmonz Exp $ +# $NetBSD: Makefile,v 1.9 2007/07/03 13:54:45 joerg Exp $ # DISTNAME= spamdyke-2.6.3 @@ -41,4 +41,5 @@ do-install: ${INSTALL_DATA} $${f} ${PREFIX}/share/doc/${PKGBASE}; \ done +.include "../../mk/resolv.buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/mail/spamdyke/distinfo b/mail/spamdyke/distinfo index c6bfa30c3a3..72ea49a64f8 100644 --- a/mail/spamdyke/distinfo +++ b/mail/spamdyke/distinfo @@ -1,8 +1,8 @@ -$NetBSD: distinfo,v 1.7 2007/06/21 19:08:45 schmonz Exp $ +$NetBSD: distinfo,v 1.8 2007/07/03 13:54:46 joerg Exp $ SHA1 (spamdyke-2.6.3.tgz) = e893b319c8808bc26a649b5ec7b82dae41e64e5f RMD160 (spamdyke-2.6.3.tgz) = 9b061fc32ee92d731db0d8ad2cf04d61829d59ac Size (spamdyke-2.6.3.tgz) = 116041 bytes SHA1 (patch-aa) = 9bb28e5535b28fa558ce577670e4a13324664ef4 -SHA1 (patch-ab) = e92e9ed2265debd1bf3607d83c3645a37acb4ffe -SHA1 (patch-ac) = b8e6f4aedfcc721055c280d23019e26ac4e05ca1 +SHA1 (patch-ab) = 7297b987c9195d5c111390aaa4dfd2c82df37bac +SHA1 (patch-ac) = 64e4f02e7ff14dee2016c33a4678eba2dc2951f0 diff --git a/mail/spamdyke/patches/patch-ab b/mail/spamdyke/patches/patch-ab index e758026dbcd..a8a18acfed9 100644 --- a/mail/spamdyke/patches/patch-ab +++ b/mail/spamdyke/patches/patch-ab @@ -1,14 +1,15 @@ -$NetBSD: patch-ab,v 1.3 2007/05/30 05:58:11 schmonz Exp $ +$NetBSD: patch-ab,v 1.4 2007/07/03 13:54:46 joerg Exp $ ---- spamdyke/Makefile.orig 2007-05-24 18:55:10.000000000 -0400 +--- spamdyke/Makefile.orig 2007-05-24 22:55:10.000000000 +0000 +++ spamdyke/Makefile @@ -1,8 +1,8 @@ #CFLAGS := -Wall -g -funsigned-char -CFLAGS := -Wall -O2 -funsigned-char -+CFLAGS += -Wall -O2 -funsigned-char - LFLAGS := -lresolv +-LFLAGS := -lresolv -CFLAGS_TLS := -DTLS -LFLAGS_TLS := -lssl -lcrypto ++CFLAGS += -Wall -O2 -funsigned-char ++LFLAGS := ${RESOLV_DLFAGS} +CFLAGS_TLS ?= -DTLS +LFLAGS_TLS ?= -lssl -lcrypto OFILES := spamdyke.o command_line.o dns.o environment.o usage.o search_fs.o exec.o base64.o tls.o diff --git a/mail/spamdyke/patches/patch-ac b/mail/spamdyke/patches/patch-ac index fe41b569b34..f048fec2075 100644 --- a/mail/spamdyke/patches/patch-ac +++ b/mail/spamdyke/patches/patch-ac @@ -1,11 +1,13 @@ -$NetBSD: patch-ac,v 1.4 2007/06/08 01:08:29 schmonz Exp $ +$NetBSD: patch-ac,v 1.5 2007/07/03 13:54:46 joerg Exp $ ---- utils/Makefile.orig 2007-06-05 22:51:35.000000000 -0400 +--- utils/Makefile.orig 2007-06-06 02:51:35.000000000 +0000 +++ utils/Makefile -@@ -1,5 +1,5 @@ +@@ -1,6 +1,6 @@ #CFLAGS := -Wall -g -funsigned-char -I../spamdyke -CFLAGS := -Wall -O2 -funsigned-char -I../spamdyke +-LFLAGS := -lresolv +CFLAGS += -Wall -O2 -funsigned-char -I../spamdyke - LFLAGS := -lresolv ++LFLAGS := ${RESOLV_LDFLAGS} all: domain2path domainsplit dnstxt dnsptr dnsmx passwordcheck + diff --git a/mk/resolv.buildlink3.mk b/mk/resolv.buildlink3.mk new file mode 100644 index 00000000000..30a3f741ac4 --- /dev/null +++ b/mk/resolv.buildlink3.mk @@ -0,0 +1,66 @@ +# $NetBSD: resolv.buildlink3.mk,v 1.1 2007/07/03 13:54:45 joerg Exp $ +# +# This Makefile fragment is included by package Makefiles and +# buildlink3.mk files for the packages that need a thread-safe +# DNS resolver.. +# +# It defines the variables RESOLV_LDFLAGS and RESOLV_LIBS, +# which are also exported into the CONFIGURE_ENV and MAKE_ENV environments. +# +# Package-settable variables: +# +# RESOLV_AUTO_VARS +# When set to "yes", the necessary flags are added automatically +# to LDFLAGS and friends. +# +# Default: no +# +# Keywords: resolv +# + +RESOLV_BUILDLINK3_MK:= ${RESOLV_BUILDLINK3_MK}+ + +.include "../../mk/bsd.fast.prefs.mk" + +RESOLV_AUTO_VARS?= no +CHECK_BUILTIN.resolv= no + +.if ${OPSYS} == "DragonFly" || ${OPSYS} == "FreeBSD" +USE_BUILTIN.resolv?= yes + +BUILDLINK_LDFLAGS.resolv= # empty, in libc +.elif (${OPSYS} == "NetBSD" && empty(OS_VERSION:M[012].*)) || \ + (${OPSYS} == "Darwin" && empty(OS_VERSION:M[0123467].*)) +USE_BUILTIN.resolv?= yes + +# BIND 9 resolver +BUILDLINK_LDFLAGS.resolv= -lresolv +.else +USE_BUILTIN.resolv?= no +.endif + +.if !empty(USE_BUILTIN.resolv:M[yY][eE][sS]) +BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Nresolv} +BUILDLINK_PACKAGES+= resolv +BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}resolv +BUILDLINK_AUTO_VARS.resolv= ${RESOLV_AUTO_VARS} +.else +. include "../../net/bind9/buildlink3.mk" + +BUILDLINK_AUTO_VARS.bind= ${RESOLV_AUTO_VARS} +BUILDLINK_LDFLAGS.resolv= ${BUILDLINK_LDFLAGS.bind} +BUILDLINK_LIBS.resolv= ${BUILDLINK_LIBS.bind} +.endif + +.if !empty(RESOLV_BUILDLINK3_MK:M+) +# +# Define user-visible RESOLV_{LDFLAGS,LIBS} as compiler options used +# to link code that needs a thread-safe DNS resolver. +# +RESOLV_LDFLAGS= ${BUILDLINK_LDFLAGS.resolv} +RESOLV_LIBS= ${BUILDLINK_LIBS.resolv} +CONFIGURE_ENV+= RESOLV_LDFLAGS=${RESOLV_LDFLAGS:Q} +CONFIGURE_ENV+= RESOLV_LIBS=${RESOLV_LIBS:Q} +MAKE_ENV+= RESOLV_LDFLAGS=${RESOLV_LDFLAGS:Q} +MAKE_ENV+= RESOLV_LIBS=${RESOLV_LIBS:Q} +.endif # RESOLV_BUILDLINK3_MK diff --git a/net/nocol/Makefile b/net/nocol/Makefile index 87d57746b8d..4018b4d36a9 100644 --- a/net/nocol/Makefile +++ b/net/nocol/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.31 2007/02/22 19:26:57 wiz Exp $ +# $NetBSD: Makefile,v 1.32 2007/07/03 13:54:46 joerg Exp $ # DISTNAME= nocol-4.3.1 @@ -62,4 +62,5 @@ post-install: ${PREFIX}/share/nocol/gifs; \ done +.include "../../mk/resolv.buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/net/nocol/distinfo b/net/nocol/distinfo index 93aa1a36f4b..77248ef25b8 100644 --- a/net/nocol/distinfo +++ b/net/nocol/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.9 2005/12/27 13:47:11 joerg Exp $ +$NetBSD: distinfo,v 1.10 2007/07/03 13:54:46 joerg Exp $ SHA1 (nocol-4.3.1.tar.gz) = a8cb88727bc3a3ddd544792407d431b3ef13a325 RMD160 (nocol-4.3.1.tar.gz) = 77a57ae447f0a8f1ce2417d9b828710f21865cc8 @@ -13,7 +13,7 @@ SHA1 (patch-ai) = d8317fad7c5e4574fa980859762f5acb1a7c631d SHA1 (patch-aj) = 0eb201f47864132b04702fab4d03e452c07c2e2a SHA1 (patch-ak) = 8013fbe6dbff80749dbdc0d0fad391741e48a468 SHA1 (patch-al) = aa4fa83d53c72e17ea9ffe2685f326ebbbde9132 -SHA1 (patch-am) = 810cbecf5bb1f8a995579e8352be1007f09fa69e +SHA1 (patch-am) = 395a5c446ac24cedf90783fc504c8817405d8e37 SHA1 (patch-an) = ed0e6099bdc29faf90de8b2916c858e8df57e493 SHA1 (patch-ao) = 114ebcc55d00981cc6709095f3280509880d76eb SHA1 (patch-ap) = 45f30a886adda7831df056cf0f7a136b97a7e17d diff --git a/net/nocol/patches/patch-am b/net/nocol/patches/patch-am index e73f74d6e6a..42a1658ea6e 100644 --- a/net/nocol/patches/patch-am +++ b/net/nocol/patches/patch-am @@ -1,8 +1,25 @@ -$NetBSD: patch-am,v 1.2 2005/12/27 13:47:11 joerg Exp $ +$NetBSD: patch-am,v 1.3 2007/07/03 13:54:46 joerg Exp $ --- Configure.orig 2000-01-19 04:34:04.000000000 +0000 +++ Configure -@@ -207,7 +207,7 @@ case "$OS" in +@@ -167,15 +167,7 @@ export PSFLAGS + (ps $PSFLAGS) 2>&1 | egrep -i '^usage' >/dev/null 2>&1 + if [ $? = 0 ]; then PSFLAGS='-ef' ; fi + +-LIBRESOLV="-lresolv" +-ls /usr/lib/libresolv* >/dev/null 2>&1 +-if [ $? = 1 ]; then +- ls /lib/libresolv* >/dev/null 2>&1 +- if [ $? = 1 ]; then +- ls /usr/lib/libbind* >/dev/null 2>&1 +- if [ $? = 1 ]; then LIBRESOLV="" ; else LIBRESOLV="-lbind" ; fi +- fi +-fi ++LIBRESOLV="${RESOLV_LDFLAGS}" + + # mainly for Solaris systems + WHOAMI="/usr/ucb/whoami" +@@ -207,7 +199,7 @@ case "$OS" in OS_LIBS="${LIBRESOLV}" # -lcompat PING=`which ping` # can do ping -c cnt host ;; |