Commit cb7b678a authored by Eric Andersen's avatar Eric Andersen
Browse files

664: bind package update: akvadrako writes:

 This patch consists of:
 (1) bind version bump
 (2) removing some X-compiling build fixes merged upstream
 (3) removing the bind-dlopen patch: not of general enough use
 (4) remove the package/bind/bind9 file - it isn't used
 (5) Use $(STAGING_DIR)/lib instead of $(STAGING_DIR)/usr/lib
 (6) Fix chroot'ed bind handling by init script
parent 55d713a4
Loading
Loading
Loading
Loading
+2 −34
Original line number Diff line number Diff line
diff -Naur bind-9.3.1/configure bind/configure
--- bind-9.3.1/configure	2004-12-08 20:09:03.000000000 -0800
+++ bind/configure	2005-09-09 16:06:50.000000000 -0700
@@ -23678,11 +23678,9 @@
 echo "$as_me:$LINENO: checking for inet_ntop with IPv6 support" >&5
 echo $ECHO_N "checking for inet_ntop with IPv6 support... $ECHO_C" >&6
 if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+  echo "$as_me:$LINENO: result: assuming target platform has working inet_ntop" >&5
+echo "${ECHO_T}assuming target platform has working inet_ntop" >&6
+	ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
diff -Naur bind-9.3.1/configure.in bind/configure.in
--- bind-9.3.1/configure.in	2004-12-08 20:07:10.000000000 -0800
+++ bind/configure.in	2005-09-09 16:06:39.000000000 -0700
@@ -1414,7 +1414,9 @@
         [AC_MSG_RESULT(no)
         ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
         ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
-        ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"])
+        ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"],
+        [AC_MSG_RESULT(assuming target platform has working inet_ntop)
+        ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"])
 
 
 # On NetBSD 1.4.2 and maybe others, inet_pton() incorrectly accepts
--- bind-9.3.1/lib/dns/Makefile.in	2005-09-09 16:21:34.000000000 -0700
+++ bind/lib/dns/Makefile.in	2005-09-09 16:28:16.000000000 -0700
--- bind-9.3.2/lib/dns/Makefile.in
+++ bind-9.3.2/lib/dns/Makefile.in
@@ -156,7 +156,7 @@
 	./gen -s ${srcdir} > code.h
 

package/bind/bind-dlopen.patch

deleted100644 → 0
+0 −89
Original line number Diff line number Diff line
--- bind-9.3.1/bin/named/Makefile.in	2004-09-06 14:47:25.000000000 -0700
+++ bind/bin/named/Makefile.in	2005-09-19 15:55:17.000000000 -0700
@@ -29,7 +29,7 @@
 DBDRIVER_OBJS =
 DBDRIVER_SRCS =
 DBDRIVER_INCLUDES =
-DBDRIVER_LIBS =
+DBDRIVER_LIBS = -ldl
 
 CINCLUDES =	-I${srcdir}/include -I${srcdir}/unix/include \
 		${LWRES_INCLUDES} ${DNS_INCLUDES} ${BIND9_INCLUDES} \
diff -aur bind-9.3.1/bin/named/main.c bind/bin/named/main.c
--- bind-9.3.1/bin/named/main.c	2004-10-24 17:42:54.000000000 -0700
+++ bind/bin/named/main.c	2005-09-14 10:49:28.000000000 -0700
@@ -22,6 +22,7 @@
 #include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
+#include <dlfcn.h>
 
 #include <isc/app.h>
 #include <isc/commandline.h>
@@ -540,6 +541,7 @@
 static void
 setup(void) {
 	isc_result_t result;
+	void        *handle;
 
 	/*
 	 * Get the user and group information before changing the root
@@ -655,13 +657,33 @@
 	/*
 	 * Add calls to register sdb drivers here.
 	 */
-	/* xxdb_init(); */
-
+	handle = dlopen ("cadb.so", RTLD_NOW);
+	if (!handle) {
+	    fprintf (stderr, "failed to load cadb driver: %s\n", dlerror());
+	} else {
+	    isc_result_t (*cadbinit)(void);
+	    const char *error;
+	    
+	    dlerror();    /* Clear any existing error */
+	    *(void **) (&cadbinit) = dlsym(handle, "cadb_init");
+	    if ((error = dlerror()) != NULL)  {
+		fprintf (stderr, "failing loading cadbinit symbol: %s\n", error);
+		exit(1);
+	    }
+	   
+	    if((*cadbinit)() != ISC_R_SUCCESS) {
+		fprintf (stderr, "cadbinit failed");
+		exit(1);
+	    }
+	}
+	
 	ns_server_create(ns_g_mctx, &ns_g_server);
 }
 
 static void
 cleanup(void) {
+	void *handle;
+
 	destroy_managers();
 
 	ns_server_destroy(&ns_g_server);
@@ -671,7 +693,21 @@
 	/*
 	 * Add calls to unregister sdb drivers here.
 	 */
-	/* xxdb_clear(); */
+	handle = dlopen ("cadb.so", RTLD_NOW);
+	if (!handle) {
+	    fprintf (stderr, "failed to load cadb driver: %s\n", dlerror());
+	} else {
+	    isc_result_t (*cadbclear)(void);
+	    const char *error;
+	    
+	    dlerror();    /* Clear any existing error */
+	    *(void **) (&cadbclear) = dlsym(handle, "cadb_clear");
+	    if ((error = dlerror()) != NULL)  {
+		fprintf (stderr, "failing loading cadbclear symbol: %s\n", error);
+	    } else {
+	        (*cadbclear)();
+	    }
+	}
 
 	isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN,
 		      ISC_LOG_NOTICE, "exiting");
+7 −8
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
# bind
#
#############################################################
BIND_VER:=9.3.1
BIND_VER:=9.3.2
BIND_SOURCE:=bind-$(BIND_VER).tar.gz
BIND_SITE:=ftp://ftp.isc.org/isc/bind9/$(BIND_VER)
BIND_DIR1:=$(TOOL_BUILD_DIR)/bind-$(BIND_VER)
@@ -44,8 +44,8 @@ $(BIND_DIR2)/Makefile: $(BIND_DIR2)/.unpacked
		--without-openssl \
		--with-randomdev=/dev/random \
		--enable-ipv6 \
		--disable-static \
		--with-libtool \
		--with-pic \
	);

$(BIND_DIR2)/$(BIND_BINARY): $(BIND_DIR2)/Makefile
@@ -73,18 +73,17 @@ bind-bin: $(TARGET_DIR)/$(BIND_TARGET_BINARY) bind-lib
$(STAGING_DIR)/lib/libdns.so: $(BIND_DIR2)/$(BIND_BINARY)
	$(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 DESTDIR=$(STAGING_DIR) -C $(BIND_DIR2)/lib install

$(TARGET_DIR)/usr/lib/libdns.so: $(STAGING_DIR)/lib/libdns.so
	mkdir -p $(TARGET_DIR)/usr/lib
$(TARGET_DIR)/lib/libdns.so: $(STAGING_DIR)/lib/libdns.so
	mkdir -p $(TARGET_DIR)/lib
	cd $(STAGING_DIR)/lib; \
	    cp -a libdns.* libisc.* libisccc.* libbind9.* liblwres.* libisccfg.* \
		$(TARGET_DIR)/usr/lib
	    cp -a libdns*so* libisc*so* libbind9*so* \
	    liblwres*so* $(TARGET_DIR)/lib
					
bind-lib: $(STAGING_DIR)/lib/libdns.so $(TARGET_DIR)/usr/lib/libdns.so
bind-lib: $(STAGING_DIR)/lib/libdns.so $(TARGET_DIR)/lib/libdns.so
				      
bind: uclibc bind-bin bind-lib

bind-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BIND_DIR2) uninstall
	-$(MAKE) -C $(BIND_DIR2) clean

bind-dirclean:
+11 −7
Original line number Diff line number Diff line
@@ -18,10 +18,14 @@ case "$1" in
		test -z "$CHROOT" || ARGS="$ARGS -t $CHROOT"
		test -z "$SETUID" || ARGS="$ARGS -u $SETUID"
		if [ ! -f $CHROOT/etc/rndc.key ]; then
		    echo -n "Initializing $NAME control key: rndc-confgen"
		    echo "Initializing $NAME control key: rndc-confgen"
		    set +e
		    touch $CHROOT/etc/rndc.key # handle symlinks
		    rndc-confgen -a -r /dev/urandom $ARGS || echo "."

                    # if rndc.key is a symlink, the target must exist
		    touch $CHROOT/etc/rndc.key
		    touch etc/rndc.key

		    rndc-confgen -a -r /dev/urandom $ARGS || true
		    set -e
		fi
		test -z "$CONF" || ARGS="$ARGS -c $CONF"
@@ -37,12 +41,12 @@ case "$1" in
		echo "."
		;;
	restart)
		$0 stop
		$0 stop || true
		sleep 2
		$0 start && exit $?
		$0 start
		;;
	reload|force-reload)
		rndc reload && exit $?
		rndc reload || $0 restart
		;;
	*)
		echo "Usage: $0 {start|stop|restart|reload|force-reload}"

package/bind/bind9

deleted100644 → 0
+0 −57
Original line number Diff line number Diff line
#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# for a chrooted server: "-u bind -t /var/lib/named"
OPTIONS=""

test -x /usr/sbin/rndc || exit 0

case "$1" in
    start)
	echo -n "Starting domain name service: named"

	# dirs under /var/run can go away on reboots.
	mkdir -p /var/run/bind/run
	chmod 775 /var/run/bind/run
	chown root:bind /var/run/bind/run >/dev/null 2>&1 || true

	if [ ! -x /usr/sbin/named ]; then
	    echo "named binary missing - not starting"
	    exit 1
	fi
	if start-stop-daemon --start --quiet --exec /usr/sbin/named \
		--pidfile /var/run/bind/run/named.pid -- $OPTIONS; then
	    if [ -x /sbin/resolvconf ] ; then
		echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo
	    fi
	fi
	echo "."	
    ;;

    stop)
	echo -n "Stopping domain name service: named"
	if [ -x /sbin/resolvconf ]; then
	    /sbin/resolvconf -d lo
	fi
	/usr/sbin/rndc stop
	echo "."	
    ;;

    reload)
	/usr/sbin/rndc reload
    ;;

    restart|force-reload)
	$0 stop
	sleep 2
	$0 start
    ;;
    
    *)
	echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2
	exit 1
    ;;
esac

exit 0