-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
+++ /dev/null
---- 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");
# 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)
--without-openssl \
--with-randomdev=/dev/random \
--enable-ipv6 \
- --disable-static \
--with-libtool \
+ --with-pic \
);
$(BIND_DIR2)/$(BIND_BINARY): $(BIND_DIR2)/Makefile
$(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:
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"
- set +e
- touch $CHROOT/etc/rndc.key # handle symlinks
- rndc-confgen -a -r /dev/urandom $ARGS || echo "."
+ echo "Initializing $NAME control key: rndc-confgen"
+ set +e
+
+ # 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"
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}"
+++ /dev/null
-#!/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