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@
This commit is contained in:
parent
fa3e8e36f9
commit
e24209d145
13 changed files with 169 additions and 24 deletions
|
@ -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"
|
||||
|
|
|
@ -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/+$//}
|
||||
|
|
|
@ -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
|
||||
|
|
56
mail/libspf-alt/patches/patch-aa
Normal file
56
mail/libspf-alt/patches/patch-aa
Normal file
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
###
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
66
mk/resolv.buildlink3.mk
Normal file
66
mk/resolv.buildlink3.mk
Normal file
|
@ -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
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
;;
|
||||
|
|
Loading…
Reference in a new issue