summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Tkac <atkac@fedoraproject.org>2007-07-30 13:34:39 +0000
committerAdam Tkac <atkac@fedoraproject.org>2007-07-30 13:34:39 +0000
commit3416d0c170c713066e5abd0d8f53d78b3707ad54 (patch)
tree15078bd56b2f5c0af4503336966ead38492b15b2
parent62e2c7cd2c8c03dba837539c7356b284391faa1d (diff)
downloadbind-3416d0c170c713066e5abd0d8f53d78b3707ad54.tar.gz
bind-3416d0c170c713066e5abd0d8f53d78b3707ad54.tar.xz
bind-3416d0c170c713066e5abd0d8f53d78b3707ad54.zip
- minor next improvements on autotools patch
- dig and host utilities now using libidn instead idnkit for IDN support
-rw-r--r--bind-9.4.0-dig-idn.patch24
-rw-r--r--bind-9.4.0-idnkit-autotools.patch834
-rw-r--r--bind-9.5-libidn.patch267
-rw-r--r--bind.spec35
4 files changed, 279 insertions, 881 deletions
diff --git a/bind-9.4.0-dig-idn.patch b/bind-9.4.0-dig-idn.patch
deleted file mode 100644
index e5a475c..0000000
--- a/bind-9.4.0-dig-idn.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- bind-9.4.0/bin/dig/Makefile.in.idn 2007-04-16 15:46:29.000000000 +0200
-+++ bind-9.4.0/bin/dig/Makefile.in 2007-04-16 15:50:24.000000000 +0200
-@@ -24,7 +24,7 @@
- @BIND9_MAKE_INCLUDES@
-
- CINCLUDES = -I${srcdir}/include ${DNS_INCLUDES} ${BIND9_INCLUDES} \
-- ${ISC_INCLUDES} ${LWRES_INCLUDES}
-+ ${ISC_INCLUDES} ${LWRES_INCLUDES} -I../../contrib/idn/idnkit-1.0-src/include
-
- CDEFINES = -DVERSION=\"${VERSION}\"
- CWARNINGS =
-@@ -42,10 +42,10 @@
- LWRESDEPLIBS = ../../lib/lwres/liblwres.@A@
-
- DEPLIBS = ${DNSDEPLIBS} ${BIND9DEPLIBS} ${ISCDEPLIBS} ${ISCCFGDEPLIBS} \
-- ${LWRESDEPLIBS}
-+ ${LWRESDEPLIBS}
-
- LIBS = ${LWRESLIBS} ${DNSLIBS} ${BIND9LIBS} ${ISCLIBS} \
-- ${ISCCFGLIBS} @IDNLIBS@ @LIBS@
-+ ${ISCCFGLIBS} ../../contrib/idn/idnkit-1.0-src/lib/libidnkit.la @LIBS@
-
- SUBDIRS =
-
diff --git a/bind-9.4.0-idnkit-autotools.patch b/bind-9.4.0-idnkit-autotools.patch
deleted file mode 100644
index a434e5c..0000000
--- a/bind-9.4.0-idnkit-autotools.patch
+++ /dev/null
@@ -1,834 +0,0 @@
---- idnkit-1.0-src/map/Makefile.am.autotools 2007-04-16 13:40:22.000000000 +0200
-+++ idnkit-1.0-src/map/Makefile.am 2007-04-16 12:51:15.000000000 +0200
-@@ -0,0 +1,2 @@
-+map_DATA = \
-+ jp.map
---- idnkit-1.0-src/Makefile.am.autotools 2007-04-16 13:39:09.000000000 +0200
-+++ idnkit-1.0-src/Makefile.am 2007-04-15 17:24:51.000000000 +0200
-@@ -0,0 +1,6 @@
-+SUBDIRS = \
-+ include \
-+ lib \
-+ man \
-+ tools \
-+ map
---- idnkit-1.0-src/tools/Makefile.am.autotools 2007-04-16 13:40:02.000000000 +0200
-+++ idnkit-1.0-src/tools/Makefile.am 2007-04-16 12:03:20.000000000 +0200
-@@ -0,0 +1,3 @@
-+SUBDIRS = \
-+ idnconv \
-+ runidn
---- idnkit-1.0-src/tools/runidn/Makefile.am.autotools 2007-04-16 13:40:05.000000000 +0200
-+++ idnkit-1.0-src/tools/runidn/Makefile.am 2007-04-16 13:17:17.000000000 +0200
-@@ -0,0 +1,35 @@
-+if RUNIDN
-+bin_SCRIPTS =
-+man1_MANS =
-+noinst_LTLIBRARIES = libidnkitres.la
-+
-+libidnkitres_la_SOURCES = \
-+ resolver.lo stub.lo
-+
-+AM_CPPFLAGS = \
-+ -DFOR_RUNIDN \
-+ -I$(top_srcdir)/include \
-+ $(ICONVINC)
-+
-+libidnkitres_la_LIBADD = \
-+ $(top_srcdir)/lib/libidnkit.la \
-+ $(LIBDL)
-+
-+AM_LDFLAGS = \
-+ -version-number 1:0:1
-+
-+if COMPAT
-+bin_SCRIPTS += runmdn
-+man1_MANS += runmdn.1
-+else
-+bin_SCRIPTS += runidn
-+man1_MANS += runidn.1
-+endif
-+
-+runmdn: runidn
-+ cp -f runidn runmdn
-+
-+runmdn.1: runidn.1
-+ cp -f runidn.1 runmdn.1
-+
-+endif
---- idnkit-1.0-src/tools/idnconv/Makefile.am.autotools 2007-04-16 13:40:08.000000000 +0200
-+++ idnkit-1.0-src/tools/idnconv/Makefile.am 2007-04-16 13:35:51.000000000 +0200
-@@ -0,0 +1,29 @@
-+if ! LITEONLY
-+bin_PROGRAMS =
-+man1_MANS =
-+if COMPAT
-+bin_PROGRAMS += mdnconva
-+man1_MANS += mdnconv.1
-+else
-+bin_PROGRAMS += idnconv
-+man1_MANS += idnconv.1
-+endif
-+
-+idnconv_SOURCES = \
-+ idnconv.c \
-+ util.c \
-+ selectiveencode.c
-+
-+AM_CPPFLAGS = \
-+ -I$(top_srcdir)/include \
-+ $(ICONVINC)
-+
-+idnconv_LDADD = \
-+ $(top_srcdir)/lib/libidnkit.la
-+
-+mdnconv: idnconv
-+ cp -f idnconv$(EXEEXT) mdnconv$(EXEEXT)
-+
-+mdnconv.1: idnconv.1
-+ cp -f idnconv.1 mdnconv.1
-+endif
---- idnkit-1.0-src/lib/Makefile.am.autotools 2007-04-16 13:39:47.000000000 +0200
-+++ idnkit-1.0-src/lib/Makefile.am 2007-04-16 13:11:02.000000000 +0200
-@@ -0,0 +1,85 @@
-+noinst_LTLIBRARIES = libidnkitlite.la
-+if ! LITEONLY
-+noinst_LTLIBRARIES += libidnkit.la
-+endif
-+
-+AM_CPPFLAGS = \
-+ -I$(top_srcdir)/include \
-+ $(ICONVINC) \
-+ -DIDN_RESCONF_DIR="\"$(sysconfdir)\""
-+
-+AM_LDFLAGS = \
-+ -version-number 1:0:2
-+
-+libidnkitlite_la_SOURCES = \
-+ aliaslist.c \
-+ api.c \
-+ checker.c \
-+ converter.c \
-+ debug.c \
-+ delimitermap.c \
-+ filechecker.c \
-+ filemapper.c \
-+ log.c \
-+ mapper.c \
-+ mapselector.c \
-+ nameprep.c \
-+ normalizer.c \
-+ punycode.c \
-+ race.c \
-+ res.c \
-+ resconf.c \
-+ result.c \
-+ strhash.c \
-+ ucsmap.c \
-+ ucsset.c \
-+ unicode.c \
-+ unormalize.c \
-+ ucs4.c \
-+ utf8.c \
-+ util.c \
-+ version.c
-+
-+libidnkitlite_la_CPPFLAGS = \
-+ -DWITHOUT_ICONV
-+
-+if ! LITEONLY
-+libidnkit_la_SOURCES = \
-+ aliaslist.c \
-+ api.c \
-+ checker.c \
-+ converter.c \
-+ debug.c \
-+ delimitermap.c \
-+ filechecker.c \
-+ filemapper.c \
-+ localencoding.c \
-+ log.c \
-+ mapper.c \
-+ mapselector.c \
-+ nameprep.c \
-+ normalizer.c \
-+ punycode.c \
-+ race.c \
-+ res.c \
-+ resconf.c \
-+ result.c \
-+ strhash.c \
-+ ucs4.c \
-+ ucsmap.c \
-+ ucsset.c \
-+ unicode.c \
-+ unormalize.c \
-+ utf8.c \
-+ util.c \
-+ version.c
-+endif
-+
-+sys_DATA = idn.conf idnalias.conf
-+
-+idn.conf: idn.conf.sample.in
-+ sed -e 's%[@]mapdir[@]%$(datadir)/idnkit%' < idn.conf.sample.in > $@
-+
-+idnalias.conf: Makefile
-+ $(SHELL) aliaslist.sh $(build) $(UTF8_NAME) > $@
-+
---- idnkit-1.0-src/include/Makefile.am.autotools 2007-04-16 13:39:19.000000000 +0200
-+++ idnkit-1.0-src/include/Makefile.am 2007-04-15 17:25:36.000000000 +0200
-@@ -0,0 +1,3 @@
-+SUBDIRS = \
-+ idn \
-+ mdn
---- idnkit-1.0-src/include/mdn/Makefile.am.autotools 2007-04-16 13:39:35.000000000 +0200
-+++ idnkit-1.0-src/include/mdn/Makefile.am 2007-04-15 17:28:26.000000000 +0200
-@@ -0,0 +1,10 @@
-+if COMPAT
-+mdn_HEADERS = \
-+ api.h \
-+ log.h \
-+ res.h \
-+ resconf.h \
-+ result.h \
-+ utf8.h \
-+ version.h
-+endif
---- idnkit-1.0-src/include/idn/Makefile.am.autotools 2007-04-16 13:39:24.000000000 +0200
-+++ idnkit-1.0-src/include/idn/Makefile.am 2007-04-15 17:27:12.000000000 +0200
-@@ -0,0 +1,32 @@
-+idn_HEADERS = \
-+ api.h \
-+ assert.h \
-+ checker.h \
-+ converter.h \
-+ debug.h \
-+ delimitermap.h \
-+ export.h \
-+ filechecker.h \
-+ filemapper.h \
-+ localencoding.h \
-+ log.h \
-+ logmacro.h \
-+ mapper.h \
-+ mapselector.h \
-+ nameprep.h \
-+ normalizer.h \
-+ punycode.h \
-+ race.h \
-+ res.h \
-+ resconf.h \
-+ result.h \
-+ strhash.h \
-+ ucsmap.h \
-+ ucsset.h \
-+ unicode.h \
-+ unormalize.h \
-+ ucs4.h \
-+ utf8.h \
-+ util.h \
-+ version.h
-+
---- idnkit-1.0-src/configure.ac.autotools 2007-04-16 13:39:01.000000000 +0200
-+++ idnkit-1.0-src/configure.ac 2007-04-16 13:32:59.000000000 +0200
-@@ -0,0 +1,553 @@
-+dnl $Id: configure.in,v 1.1.1.1 2003/06/04 00:25:25 marka Exp $
-+dnl Process this file with autoconf to produce a configure script.
-+dnl
-+dnl Copyright (c) 2000 Japan Network Information Center. All rights reserved.
-+dnl
-+dnl By using this file, you agree to the terms and conditions set forth bellow.
-+dnl
-+dnl LICENSE TERMS AND CONDITIONS
-+dnl
-+dnl The following License Terms and Conditions apply, unless a different
-+dnl license is obtained from Japan Network Information Center ("JPNIC"),
-+dnl a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
-+dnl Chiyoda-ku, Tokyo 101-0047, Japan.
-+dnl
-+dnl 1. Use, Modification and Redistribution (including distribution of any
-+dnl modified or derived work) in source and/or binary forms is permitted
-+dnl under this License Terms and Conditions.
-+dnl
-+dnl 2. Redistribution of source code must retain the copyright notices as they
-+dnl appear in each source code file, this License Terms and Conditions.
-+dnl
-+dnl 3. Redistribution in binary form must reproduce the Copyright Notice,
-+dnl this License Terms and Conditions, in the documentation and/or other
-+dnl materials provided with the distribution. For the purposes of binary
-+dnl distribution the "Copyright Notice" refers to the following language:
-+dnl "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved."
-+dnl
-+dnl 4. The name of JPNIC may not be used to endorse or promote products
-+dnl derived from this Software without specific prior written approval of
-+dnl JPNIC.
-+dnl
-+dnl 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
-+dnl "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+dnl LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-+dnl PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE
-+dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-+dnl CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-+dnl SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-+dnl BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+dnl WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+dnl ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-+
-+AC_PREREQ(2.59)
-+AC_INIT([idnkit], [1.0], [bind9-bugs@isc.org])
-+AM_INIT_AUTOMAKE([foreign -Wall -Werror])
-+
-+idndir="$includedir/idn"
-+mdndir="$includedir/mdn"
-+sysdir="$sysconfdir"
-+mapdir="$datadir/idnkit"
-+AC_SUBST(idndir)
-+AC_SUBST(mdndir)
-+AC_SUBST(sysdir)
-+AC_SUBST(mapdir)
-+
-+AC_ARG_ENABLE([debug],
-+ AS_HELP_STRING([--enable-debug], [enable debug codes [default=no]]),
-+ [debug=$enableval], [debug=no])
-+if test "$debug" = "yes"; then
-+ CFLAGS="$CFLAGS -DDEBUG"
-+fi
-+
-+AC_ARG_ENABLE([mdnkit-compat],
-+ AS_HELP_STRING([--enable-mdnkit-compat], [enable mDNkit compatibility mode [default=no]]),
-+ [mdnkit_compat=$enableval], [mdnkit_compat=no])
-+if test "$mdnkit_compat" = "yes"; then
-+ AC_DEFINE(ENABLE_MDNKIT_COMPAT, 1, [--enable-mdnkit-compat is specified])
-+fi
-+AM_CONDITIONAL(COMPAT, [test "$mdnkit_compat" = "yes"])
-+
-+AC_ARG_ENABLE([extra-ace],
-+ AS_HELP_STRING([--enable-extra-ace], [enable additional ACE converters. [default=no]]),
-+ [extraace=$enableval], [extraace=no])
-+if test "$mdnkit_compat" = "yes"; then
-+ AC_DEFINE(IDN_EXTRA_ACE, 1, [additional ACE converters compiled in.])
-+fi
-+
-+AC_ARG_WITH([utf8],
-+ AS_HELP_STRING([--with-utf8=NAME], [codeset name for UTF-8 encoding [UTF-8]]),
-+ [UTF8_NAME="$withval"], [UTF8_NAME="UTF-8"])
-+AC_DEFINE_UNQUOTED(IDN_UTF8_ENCODING_NAME, "$UTF8_NAME", [Define your iconv codeset name for utf-8.])
-+AC_SUBST(UTF8_NAME)
-+
-+AC_ARG_ENABLE([liteonly],
-+ AS_HELP_STRING([--enable-liteonly], [compile and install lite library only [default=no]]),
-+ [liteonly=$enableval], [liteonly=no])
-+AM_CONDITIONAL(LITEONLY, [test "$liteonly" = "yes"])
-+
-+AC_ARG_ENABLE([runidn],
-+ AS_HELP_STRING([--enable-runidn], [compile and install runidn [default=no]]),
-+ [install_runidn=$enableval], [install_runidn=no])
-+if test "$install_runidn" = "yes"; then
-+ if test "$liteonly" = "yes"; then
-+ AC_MSG_ERROR([you can't set --enable-runidn and --enable-liteonly simultaneously])
-+ fi
-+fi
-+AM_CONDITIONAL(RUNIDN, [test "$install_runidn" = "yes"])
-+
-+AC_ARG_WITH([iconv-include],
-+ AS_HELP_STRING([--with-iconv-include=DIR], [iconv include files are in DIR []]),
-+ [iconv_include="$withval"], [iconv_include="$includedir"])
-+ICONVINC="-I$iconv_include"
-+AC_SUBST(ICONVINC)
-+
-+AC_ARG_WITH([iconv],
-+ AS_HELP_STRING([--with-iconv=LIB], [library for iconv []]),
-+ [iconv="$withval"], [iconv="-lc"])
-+ICONVLIB=$iconv
-+AC_SUBST(ICONVLIB)
-+
-+AC_ARG_WITH([iconv-sofile],
-+ AS_HELP_STRING([--with-iconv-sofile=PATH], [shared library file for libiconv]),
-+ [ICONVSOFILE=$withval], [ICONVSOFILE=guess])
-+if test "$ICONVSOFILE" = guess; then
-+ if test "$liteonly" != yes ; then
-+ if test "$ICONVLIB" = ""; then
-+ ICONVSOFILE=none
-+ else
-+ AC_MSG_CHECKING(pathname of iconv shared library)
-+ ic_libdir=
-+ ic_libname=
-+ case "$host" in
-+ *-hpux*)
-+ SO=sl
-+ ;;
-+ *)
-+ SO=so
-+ ;;
-+ esac
-+ for arg in $ICONVLIB; do
-+ case "$arg" in
-+ -L*) ic_libdir="$ic_libdir `echo $arg | sed s/-L//`" ;;
-+ -l*) ic_libname=`echo $arg | sed s/-l//` ;;
-+ /*.$SO*) ICONVSOFILE=$arg ;;
-+ esac
-+ done
-+ if test "$ICONVSOFILE" = guess; then
-+ if test "$ic_libname" = ""; then
-+ AC_MSG_RESULT(unknown)
-+ AC_MSG_WARN([use --with-iconv-sofile for specifying iconv shared library file])
-+ ICONVSOFILE=none
-+ else
-+ if test "$ic_libdir" = ""; then
-+ # Standard (and semi-standard) library directories
-+ ic_libdir="/lib /usr/lib /usr/local/lib"
-+ fi
-+ for dir in $ic_libdir; do
-+ ICONVSOFILE=`ls -r $dir/lib$ic_libname.$SO* 2>/dev/null | head -1`
-+ if test "$ICONVSOFILE" != ""; then
-+ break
-+ fi
-+ done
-+ if test "$ICONVSOFILE" != ""; then
-+ AC_MSG_RESULT($ICONVSOFILE)
-+ else
-+ AC_MSG_RESULT(unknown)
-+ AC_MSG_WARN([use --with-iconv-sofile for specifying iconv shared library file])
-+ ICONVSOFILE=none
-+ fi
-+ fi
-+ fi
-+ fi
-+ fi
-+fi
-+AC_SUBST(ICONVSOFILE)
-+
-+dnl Figure out preload stuff.
-+PRELOAD_VAR="LD_PRELOAD"
-+PRELOAD_SEP=":"
-+PRELOAD_LAST=""
-+case "$host" in
-+*-solaris*)
-+ PRELOAD_SEP=" "
-+ ;;
-+*-linux*)
-+ PRELOAD_SEP=" "
-+ ;;
-+*-osf*)
-+ PRELOAD_VAR="_RLD_LIST"
-+ PRELOAD_LAST=":DEFAULT"
-+ ;;
-+*-netbsd*)
-+ if test -x /usr/bin/file -a -x /usr/bin/grep ; then
-+ case "`/usr/bin/file /usr/bin/grep`" in
-+ *ELF*)
-+ PRELOAD_SEP=" "
-+ ;;
-+ esac
-+ fi
-+ ;;
-+esac
-+
-+AC_SUBST(PRELOAD_VAR)
-+AC_SUBST(PRELOAD_SEP)
-+AC_SUBST(PRELOAD_LAST)
-+
-+dnl Checks for standard tools.
-+AC_PROG_CC
-+AC_PROG_CPP
-+AC_PROG_CXX
-+AC_PROG_LN_S
-+AC_PROG_MAKE_SET
-+AC_PROG_INSTALL
-+AM_PROG_LIBTOOL
-+
-+AC_PATH_PROGS(PERL, perl, perl)
-+
-+dnl Checks for header files.
-+AC_CHECK_HEADERS(pwd.h langinfo.h locale.h netdb.h stddef.h stdlib.h string.h sys/socket.h unistd.h)
-+if test "$install_runidn" = "yes"; then
-+ AC_CHECK_HEADERS(dlfcn.h)
-+fi
-+
-+saved_CPPFLAGS=$CPPFLAGS
-+CPPFLAGS="$CPPFLAGS $ICONVINC"
-+if test "$liteonly" != "yes"; then
-+ AC_CHECK_HEADERS(iconv.h)
-+fi
-+CPPFLAGS=$saved_CPPFLAGS
-+
-+dnl Checks for data types.
-+AC_C_CONST
-+AC_TYPE_SIZE_T
-+AC_HEADER_TIME
-+AC_TYPE_UID_T
-+AC_CHECK_TYPES([ptrdiff_t])
-+
-+dnl for dnsproxy.
-+AC_CHECK_TYPE(BOOL, int)
-+
-+dnl Checks for libraries.
-+if test "$install_runidn" = yes ; then
-+ AC_CHECK_LIB(socket, socket)
-+ AC_CHECK_LIB(nsl, inet_addr)
-+ AC_CHECK_LIB(dl, dlopen, [
-+ LIBS="-ldl $LIBS"
-+ LIBDL="-ldl"
-+ AC_DEFINE(HAVE_LIBDL, 1, [Define if you have the dl library (-ldl).])
-+ AC_SUBST(LIBDL)
-+ ])
-+fi
-+
-+dnl Checks for library functions.
-+AC_FUNC_MALLOC
-+AC_FUNC_MEMCMP
-+AC_FUNC_REALLOC
-+AC_FUNC_SELECT_ARGTYPES
-+AC_FUNC_VPRINTF
-+AC_CHECK_FUNCS(vsnprintf setvbuf setlocale nl_langinfo memmove bcopy setenv unsetenv inet_ntoa socket gethostname isascii memset putenv select sethostname strchr strerror strpbrk strrchr strtoul)
-+if test "$install_runidn" = yes ; then
-+ AC_CHECK_FUNCS(gethostbyname gethostbyname2 gethostbyaddr)
-+ AC_CHECK_FUNCS(gethostbyname_r gethostbyname2_r gethostbyaddr_r, find_gethost_r=yes)
-+ AC_CHECK_FUNCS(getipnodebyname getipnodebyaddr freehostent)
-+ AC_CHECK_FUNCS(getaddrinfo freeaddrinfo getnameinfo)
-+ AC_CHECK_FUNCS(dlopen dlsym)
-+fi
-+
-+if test "$install_runidn" = yes ; then
-+dnl Checks the flavor of gethostbyaddr* functions.
-+ AC_CACHE_CHECK(flavor of gethostbyaddr, ac_cv_flavor_gethostbyaddr,
-+ [ac_cv_flavor_gethostbyaddr=unknown
-+ AC_TRY_RUN(
-+ [
-+ #include <stddef.h>
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ #include <netdb.h>
-+ struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type) {
-+ return NULL;
-+ }
-+ int main() {
-+ (void)gethostbyaddr(NULL, 0, 0);
-+ return 0;
-+ }
-+ ], ac_cv_flavor_gethostbyaddr=glibc2_2,,
-+ ac_cv_flavor_gethostbyaddr=unknown)
-+ AC_TRY_RUN(
-+ [
-+ #include <stddef.h>
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ #include <netdb.h>
-+ struct hostent *gethostbyaddr(const char *addr, size_t len, int type) {
-+ return NULL;
-+ }
-+ int main() {
-+ (void)gethostbyaddr(NULL, 0, 0);
-+ return 0;
-+ }
-+ ], ac_cv_flavor_gethostbyaddr=glibc,,
-+ ac_cv_flavor_gethostbyaddr=unknown)
-+ AC_TRY_RUN(
-+ [
-+ #include <stddef.h>
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ #include <netdb.h>
-+ struct hostent *gethostbyaddr(const char *addr, int len, int type) {
-+ return NULL;
-+ }
-+ int main() {
-+ (void)gethostbyaddr(NULL, 0, 0);
-+ return 0;
-+ }
-+ ], ac_cv_flavor_gethostbyaddr=traditional,,
-+ ac_cv_flavor_gethostbyaddr=unknown)
-+ if test "$ac_cv_func_gethostbyaddr" = no ; then
-+ ac_cv_flavor_gethostbyaddr=none
-+ fi])
-+
-+ case "$ac_cv_flavor_gethostbyaddr" in
-+ glibc2_2)
-+ ac_cv_type_ghba_addr_t='const void *'
-+ ac_cv_type_ghba_addrlen_t='socklen_t'
-+ ;;
-+ glibc)
-+ ac_cv_type_ghba_addr_t='const char *'
-+ ac_cv_type_ghba_addrlen_t='size_t'
-+ ;;
-+ traditional | none)
-+ ac_cv_type_ghba_addr_t='const char *'
-+ ac_cv_type_ghba_addrlen_t='int'
-+ ;;
-+ *)
-+ AC_MSG_ERROR([can't build runidn, since parameter type list of gethostbyaddr() is unknown to configure.])
-+ ;;
-+ esac
-+ AC_DEFINE_UNQUOTED(GHBA_ADDR_T, $ac_cv_type_ghba_addr_t,
-+ [Define as the type of the 1st argument of gethostbyaddr.])
-+ AC_DEFINE_UNQUOTED(GHBA_ADDRLEN_T, $ac_cv_type_ghba_addrlen_t,
-+ [Define as the type of the 2nd argument of gethostbyaddr.])
-+
-+dnl Checks the flavor of getnameinfo functions.
-+ AC_CACHE_CHECK(flavor of getnameinfo, ac_cv_flavor_getnameinfo,
-+ [ac_cv_flavor_getnameinfo=unknown
-+ AC_TRY_RUN(
-+ [
-+ #include <stddef.h>
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ #include <netdb.h>
-+ int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host,
-+ socklen_t hostlen, char *serv, socklen_t servlen,
-+ unsigned int flags) {
-+ return NULL;
-+ }
-+ int main() {
-+ (void)getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
-+ return 0;
-+ }
-+ ], ac_cv_flavor_getnameinfo=glibc2_2_2,,
-+ ac_cv_flavor_getnameinfo=unknown)
-+ AC_TRY_RUN(
-+ [
-+ #include <stddef.h>
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ #include <netdb.h>
-+ int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host,
-+ socklen_t hostlen, char *serv, socklen_t servlen,
-+ int flags) {
-+ return NULL;
-+ }
-+ int main() {
-+ (void)getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
-+ return 0;
-+ }
-+ ], ac_cv_flavor_getnameinfo=rfc2553bis_03,,
-+ ac_cv_flavor_getnameinfo=unknown)
-+ AC_TRY_RUN(
-+ [
-+ #include <stddef.h>
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ #include <netdb.h>
-+ int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host,
-+ size_t hostlen, char *serv, size_t servlen, int flags) {
-+ return NULL;
-+ }
-+ int main() {
-+ (void)getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
-+ return 0;
-+ }
-+ ], ac_cv_flavor_getnameinfo=rfc2553,,
-+ ac_cv_flavor_getnameinfo=unknown)
-+ AC_TRY_RUN(
-+ [
-+ #include <stddef.h>
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ #include <netdb.h>
-+ int getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
-+ size_t hostlen, char *serv, size_t servlen, int flags) {
-+ return NULL;
-+ }
-+ int main() {
-+ (void)getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
-+ return 0;
-+ }
-+ ], ac_cv_flavor_getnameinfo=rfc2133,,
-+ ac_cv_flavor_getnameinfo=unknown)
-+ if test "$ac_cv_func_getnameinfo" = no ; then
-+ ac_cv_flavor_getnameinfo=none
-+ fi])
-+
-+ case "$ac_cv_flavor_getnameinfo" in
-+ glibc2_2_2)
-+ ac_cv_type_gni_salen_t='socklen_t'
-+ ac_cv_type_gni_hostlen_t='socklen_t'
-+ ac_cv_type_gni_servlen_t='socklen_t'
-+ ac_cv_type_gni_flags_t='unsigned int'
-+ ;;
-+ rfc2553bis_03)
-+ ac_cv_type_gni_salen_t='socklen_t'
-+ ac_cv_type_gni_hostlen_t='socklen_t'
-+ ac_cv_type_gni_servlen_t='socklen_t'
-+ ac_cv_type_gni_flags_t='int'
-+ ;;
-+ rfc2553)
-+ ac_cv_type_gni_salen_t='socklen_t'
-+ ac_cv_type_gni_hostlen_t='size_t'
-+ ac_cv_type_gni_servlen_t='size_t'
-+ ac_cv_type_gni_flags_t='int'
-+ ;;
-+ rfc2133 | none)
-+ ac_cv_type_gni_salen_t='size_t'
-+ ac_cv_type_gni_hostlen_t='size_t'
-+ ac_cv_type_gni_servlen_t='size_t'
-+ ac_cv_type_gni_flags_t='int'
-+ ;;
-+ *)
-+ AC_MSG_ERROR([can't build runidn, since parameter type list of getnameinfo() is unknown to configure.])
-+ esac
-+ AC_DEFINE_UNQUOTED(GNI_SALEN_T, $ac_cv_type_gni_salen_t,
-+ [Define as the type of the 2nd argument of getnameinfo.])
-+ AC_DEFINE_UNQUOTED(GNI_HOSTLEN_T, $ac_cv_type_gni_hostlen_t,
-+ [Define as the type of the 4th argument of getnameinfo.])
-+ AC_DEFINE_UNQUOTED(GNI_SERVLEN_T, $ac_cv_type_gni_servlen_t,
-+ [Define as the type of the 6th argument of getnameinfo.])
-+ AC_DEFINE_UNQUOTED(GNI_FLAGS_T, $ac_cv_type_gni_flags_t,
-+ [Define as the type of the 7th argument of getnameinfo.])
-+fi
-+
-+dnl resume here.
-+dnl Checks the flavor of gethost*_r functions.
-+if test "$find_gethost_r" = yes; then
-+ AC_CACHE_CHECK(flavor of gethostbyname_r, ac_cv_flavor_gethost_r,
-+ [AC_TRY_RUN(
-+changequote(<<, >>)dnl
-+<<
-+#include <stddef.h>
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <netdb.h>
-+#include <stdio.h>
-+int main()
-+{
-+ int err = 0;
-+ struct hostent hebuf, *hp;
-+ char buf[10];
-+ /* Try resolving a invalid name using glibc flavor. */
-+ (void)gethostbyname_r("@#!", &hebuf, buf, sizeof(buf), &hp, &err);
-+ if (err != 0)
-+ return 0; /* glibc flavor */
-+ else
-+ return 1; /* Sun flavor */
-+}
-+>>,
-+changequote([, ])dnl
-+ ac_cv_flavor_gethost_r=glibc,
-+ ac_cv_flavor_gethost_r=sun,
-+ ac_cv_flavor_gethost_r=sun)])
-+ if test "$ac_cv_flavor_gethost_r" = "glibc"; then
-+ AC_DEFINE(GETHOST_R_GLIBC_FLAVOR, 1,
-+ [Define if the prototype of gethost*_r is glibc flavor.])
-+ fi
-+fi
-+
-+dnl Checks for iconv library.
-+if test "$liteonly" != yes ; then
-+ AC_MSG_CHECKING(for iconv)
-+ saved_CPPFLAGS=$CPPFLAGS
-+ saved_LIBS=$LIBS
-+ CPPFLAGS="$CPPFLAGS $ICONVINC"
-+ LIBS="$LIBS $ICONVLIB"
-+ AC_TRY_LINK([
-+ #include <iconv.h>
-+ ], [
-+ iconv_t i;
-+ i = iconv_open("ISO-8859-1", "UTF-8");
-+ ], [iconv_try_link=yes], [iconv_try_link=no])
-+ LIBS=$saved_LIBS
-+ CPPFLAGS=$saved_CPPFLAGS
-+ AC_MSG_RESULT($iconv_try_link)
-+ if test "$iconv_try_link" = no ; then
-+ AC_MSG_ERROR(iconv function not available)
-+ fi
-+fi
-+
-+dnl Check for codeset name for UTF-8.
-+if test "$liteonly" != yes ; then
-+ AC_MSG_CHECKING([for codeset name $UTF8_NAME])
-+ saved_CPPFLAGS=$CPPFLAGS
-+ saved_LIBS=$LIBS
-+ CPPFLAGS="$CPPFLAGS $ICONVINC"
-+ LIBS="$LIBS $ICONVLIB"
-+ AC_TRY_RUN([
-+ #include <stddef.h>
-+ #include <stdlib.h>
-+ #include <iconv.h>
-+ #define UTF8_NAME "$UTF8_NAME"
-+ #define ICONV_FAIL ((iconv_t)(-1))
-+ /* Check if the codeset name UTF8_NAME is valid by performing iconv_open(). */
-+ int main() {
-+ int i;
-+ /* list of codeset names likely to exist */
-+ static char *codeset[] = {
-+ "ASCII", "ISO-8859-1", "ISO8859-1", "iso8859_1", "8859-1",
-+ "Shift_JIS", "SJIS", "sjis", NULL,
-+ };
-+
-+ /* First try null conversion. */
-+ if (iconv_open(UTF8_NAME, UTF8_NAME) != ICONV_FAIL) return 0;
-+
-+ /* Unfortunately, above check fails on certain systems, such as Solaris. */
-+ for (i = 0; codeset[i] != NULL; i++) {
-+ if (iconv_open(UTF8_NAME, codeset[i]) != ICONV_FAIL) return 0;
-+ }
-+ return 1;
-+ }
-+ ], utf8_name_valid=yes, utf8_name_valid=no, utf8_name_valid=unknown)
-+ LIBS=$saved_LIBS
-+ CPPFLAGS=$saved_CPPFLAGS
-+ AC_MSG_RESULT($utf8_name_valid)
-+fi
-+
-+dnl Output.
-+AC_CONFIG_HEADER(include/config.h)
-+AC_OUTPUT(
-+ Makefile
-+ include/Makefile
-+ include/idn/Makefile
-+ include/mdn/Makefile
-+ lib/Makefile
-+ man/Makefile
-+ tools/Makefile
-+ tools/idnconv/Makefile
-+ tools/runidn/Makefile
-+ tools/runidn/runidn
-+ map/Makefile
-+ lib/tests/Makefile
-+)
---- idnkit-1.0-src/man/Makefile.am.autotools 2007-04-16 13:39:57.000000000 +0200
-+++ idnkit-1.0-src/man/Makefile.am 2007-04-16 14:02:24.000000000 +0200
-@@ -0,0 +1,43 @@
-+man3_MANS =
-+man5_MANS = idnrc.5 idnalias.conf.5
-+if LITEONLY
-+if COMPAT
-+man3_MANS += libmdnlite.3
-+man5_MANS += mdn.conf.5
-+else
-+man3_MANS += libidnkitlite.3
-+man5_MANS += idn.conf.5
-+endif
-+else
-+if COMPAT
-+man3_MANS += libmdn.3 libmdnlite.3
-+man5_MANS += mdn.conf.5
-+else
-+man3_MANS += libidnkit.3 libidnkitlite.3
-+man5_MANS += idn.conf.5
-+endif
-+endif
-+
-+idnrc.5: idn.conf.5.in
-+ cp -f idn.conf.5.in idnrc.5
-+
-+idnalias.conf.5: idn.conf.5.in
-+ cp -f idn.conf.5.in idnalias.conf.5
-+
-+libidnkit.3: libidnkit.3.in
-+ cp -f libidnkit.3.in libidnkit.3
-+
-+libidnkitlite.3: libidnkit.3
-+ cp -f libidnkit.3 libidnkitlite.3
-+
-+libmdnlite.3: libidnkit.3
-+ cp -f libidnkit.3 libmdnlite.3
-+
-+libmdn.3: libidnkit.3
-+ cp -f libidnkit.3 libmdn.3
-+
-+idn.conf.5: idn.conf.5.in
-+ sed 's%[@]sysconfdir[@]%$(sysdir)%' < idn.conf.5.in > $@
-+
-+mdn.conf.5: idn.conf.5
-+ cp -f idn.conf.5 mdn.conf.5
diff --git a/bind-9.5-libidn.patch b/bind-9.5-libidn.patch
new file mode 100644
index 0000000..3e3beed
--- /dev/null
+++ b/bind-9.5-libidn.patch
@@ -0,0 +1,267 @@
+diff -up bind-9.5.0a6/bin/dig/Makefile.in.libidn bind-9.5.0a6/bin/dig/Makefile.in
+--- bind-9.5.0a6/bin/dig/Makefile.in.libidn 2007-07-29 13:17:00.000000000 +0200
++++ bind-9.5.0a6/bin/dig/Makefile.in 2007-07-29 13:17:01.000000000 +0200
+@@ -45,7 +45,7 @@ DEPLIBS = ${DNSDEPLIBS} ${BIND9DEPLIBS}
+ ${LWRESDEPLIBS}
+
+ LIBS = ${LWRESLIBS} ${DNSLIBS} ${BIND9LIBS} ${ISCLIBS} \
+- ${ISCCFGLIBS} @IDNLIBS@ @LIBS@
++ ${ISCCFGLIBS} @IDNLIBS@ @LIBS@ -lidn
+
+ SUBDIRS =
+
+@@ -63,7 +63,7 @@ HTMLPAGES = dig.html host.html nslookup.
+
+ MANOBJS = ${MANPAGES} ${HTMLPAGES}
+
+-EXT_CFLAGS = -fPIE
++EXT_CFLAGS = -fPIE -DWITH_LIBIDN
+
+ @BIND9_MAKE_RULES@
+
+diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c
+--- bind-9.5.0a6/bin/dig/dighost.c.libidn 2007-06-19 01:47:17.000000000 +0200
++++ bind-9.5.0a6/bin/dig/dighost.c 2007-07-30 14:58:19.000000000 +0200
+@@ -44,6 +44,11 @@
+ #include <idn/api.h>
+ #endif
+
++#ifdef WITH_LIBIDN
++#include <stringprep.h>
++#include <idna.h>
++#endif
++
+ #include <dns/byaddr.h>
+ #ifdef DIG_SIGCHASE
+ #include <dns/dnssec.h>
+@@ -147,6 +152,14 @@ static void idn_check_result(idn_result
+ int idnoptions = 0;
+ #endif
+
++#ifdef WITH_LIBIDN
++static isc_result_t libidn_locale_to_utf8 (const char* from, char **to);
++static isc_result_t libidn_utf8_to_ascii (const char* from, char *to);
++static isc_result_t output_filter (isc_buffer_t *buffer,
++ unsigned int used_org,
++ isc_boolean_t absolute);
++#endif
++
+ /*%
+ * Exit Codes:
+ *
+@@ -1002,6 +1015,9 @@ void
+ setup_system(void) {
+ dig_searchlist_t *domain = NULL;
+ lwres_result_t lwresult;
++#ifdef WITH_LIBIDN
++ isc_result_t result;
++#endif
+
+ debug("setup_system()");
+
+@@ -1050,8 +1066,15 @@ setup_system(void) {
+
+ #ifdef WITH_IDN
+ initialize_idn();
++
++#endif
++#ifdef WITH_LIBIDN
++ result = dns_name_settotextfilter(output_filter);
++ check_result(result, "dns_name_settotextfilter");
++#ifdef HAVE_SETLOCALE
++ setlocale (LC_ALL, "");
++#endif
+ #endif
+-
+ if (keyfile[0] != 0)
+ setup_file_key();
+ else if (keysecret[0] != 0)
+@@ -1740,12 +1763,18 @@ setup_lookup(dig_lookup_t *lookup) {
+ idn_result_t mr;
+ char utf8_textname[MXNAME], utf8_origin[MXNAME], idn_textname[MXNAME];
+ #endif
++#ifdef WITH_LIBIDN
++ char *utf8_str = NULL, utf8_name[MXNAME], ascii_name[MXNAME];
++#endif
+
+ #ifdef WITH_IDN
+ result = dns_name_settotextfilter(output_filter);
+ check_result(result, "dns_name_settotextfilter");
+ #endif
+-
++#ifdef WITH_LIBIDN
++ result = dns_name_settotextfilter (output_filter);
++ check_result(result, "dns_name_settotextfilter");
++#endif
+ REQUIRE(lookup != NULL);
+ INSIST(!free_now);
+
+@@ -1782,6 +1811,16 @@ setup_lookup(dig_lookup_t *lookup) {
+ mr = idn_encodename(IDN_LOCALCONV | IDN_DELIMMAP, lookup->textname,
+ utf8_textname, sizeof(utf8_textname));
+ idn_check_result(mr, "convert textname to UTF-8");
++#elif defined (WITH_LIBIDN)
++ result = libidn_locale_to_utf8 (lookup->textname, &utf8_str);
++ check_result (result, "converting textname to UTF-8");
++ len = strlen (utf8_str);
++ if (len < MXNAME) {
++ (void) strcpy (utf8_name, utf8_str);
++ } else {
++ fatal ("Too long name");
++ }
++ isc_mem_free (mctx, utf8_str);
+ #endif
+
+ /*
+@@ -1801,6 +1840,15 @@ setup_lookup(dig_lookup_t *lookup) {
+ lookup->origin = ISC_LIST_HEAD(search_list);
+ lookup->need_search = ISC_FALSE;
+ }
++#elif defined (WITH_LIBIDN)
++ if ((count_dots(utf8_name) >= ndots) || !usesearch) {
++ lookup->origin = NULL; /* Force abs lookup */
++ lookup->done_as_is = ISC_TRUE;
++ lookup->need_search = usesearch;
++ } else if (lookup->origin == NULL && usesearch) {
++ lookup->origin = ISC_LIST_HEAD(search_list);
++ lookup->need_search = ISC_FALSE;
++ }
+ #else
+ if ((count_dots(lookup->textname) >= ndots) || !usesearch) {
+ lookup->origin = NULL; /* Force abs lookup */
+@@ -1827,6 +1875,20 @@ setup_lookup(dig_lookup_t *lookup) {
+ IDN_IDNCONV | IDN_LENCHECK, utf8_textname,
+ idn_textname, sizeof(idn_textname));
+ idn_check_result(mr, "convert UTF-8 textname to IDN encoding");
++#elif defined (WITH_LIBIDN)
++ if (lookup->origin != NULL) {
++ result = libidn_locale_to_utf8 (lookup->origin->origin, &utf8_str);
++ check_result (result, "convert origin to UTF-8");
++ if (len + strlen (utf8_str) + 1 < MXNAME) {
++ utf8_name[len++] = '.';
++ (void) strcpy (utf8_name + len, utf8_str);
++ } else {
++ fatal ("Too long name + origin");
++ }
++ isc_mem_free (mctx, utf8_str);
++ }
++
++ result = libidn_utf8_to_ascii (utf8_name, ascii_name);
+ #else
+ if (lookup->origin != NULL) {
+ debug("trying origin %s", lookup->origin->origin);
+@@ -1883,6 +1945,14 @@ setup_lookup(dig_lookup_t *lookup) {
+ dns_rootname,
+ ISC_FALSE,
+ &lookup->namebuf);
++#elif defined (WITH_LIBIDN)
++ len = strlen (ascii_name);
++ isc_buffer_init(&b, ascii_name, len);
++ isc_buffer_add(&b, len);
++ result = dns_name_fromtext(lookup->name, &b,
++ dns_rootname,
++ ISC_FALSE,
++ &lookup->namebuf);
+ #else
+ len = strlen(lookup->textname);
+ isc_buffer_init(&b, lookup->textname, len);
+@@ -3310,7 +3380,7 @@ destroy_libs(void) {
+ void * ptr;
+ dig_message_t *chase_msg;
+ #endif
+-#ifdef WITH_IDN
++#if defined (WITH_IDN) || defined (WITH_LIBIDN)
+ isc_result_t result;
+ #endif
+
+@@ -3349,6 +3419,10 @@ destroy_libs(void) {
+ result = dns_name_settotextfilter(NULL);
+ check_result(result, "dns_name_settotextfilter");
+ #endif
++#ifdef WITH_LIBIDN
++ result = dns_name_settotextfilter (NULL);
++ check_result(result, "clearing dns_name_settotextfilter");
++#endif
+ dns_name_destroy();
+
+ if (commctx != NULL) {
+@@ -3525,6 +3599,79 @@ idn_check_result(idn_result_t r, const c
+ }
+ }
+ #endif /* WITH_IDN */
++#ifdef WITH_LIBIDN
++/* If stringprep_locale_to_utf8 fails simple copy string */
++static isc_result_t
++libidn_locale_to_utf8 (const char *from, char **to) {
++ char *utf8_str;
++
++ utf8_str = stringprep_locale_to_utf8 (from);
++ if (utf8_str == NULL) {
++ *to = isc_mem_allocate (mctx, strlen (from) + 1);
++ if (*to == NULL)
++ return (ISC_R_NOMEMORY);
++ (void) strcpy (*to, from);
++ } else {
++ *to = isc_mem_allocate (mctx, strlen (utf8_str) + 1);
++ if (*to == NULL)
++ return (ISC_R_NOMEMORY);
++ (void) strcpy (*to, utf8_str);
++ free (utf8_str);
++ }
++ return (ISC_R_SUCCESS);
++}
++static isc_result_t
++libidn_utf8_to_ascii (const char *from, char *to) {
++ char *ascii;
++
++ if (idna_to_ascii_8z (from, &ascii, 0) != IDNA_SUCCESS)
++ return (ISC_R_FAILURE);
++
++ (void) strcpy (to, ascii);
++ free (ascii);
++ return (ISC_R_SUCCESS);
++}
++/* based on idnkit's code*/
++static isc_result_t
++output_filter (isc_buffer_t *buffer, unsigned int used_org,
++ isc_boolean_t absolute) {
++ char tmp1[MXNAME], *tmp2;
++ size_t fromlen, tolen;
++ isc_boolean_t end_with_dot;
++
++ fromlen = isc_buffer_usedlength(buffer) - used_org;
++ if (fromlen >= MXNAME)
++ return (ISC_R_SUCCESS);
++ memcpy(tmp1, (char *)isc_buffer_base(buffer) + used_org, fromlen);
++ end_with_dot = (tmp1[fromlen - 1] == '.') ? ISC_TRUE : ISC_FALSE;
++ if (absolute && !end_with_dot) {
++ fromlen++;
++ if (fromlen >= MXNAME)
++ return (ISC_R_SUCCESS);
++ tmp1[fromlen - 1] = '.';
++ }
++ tmp1[fromlen] = '\0';
++
++ if (idna_to_unicode_lzlz (tmp1, &tmp2, 0) != IDNA_SUCCESS)
++ return (ISC_R_SUCCESS);
++
++ (void) strcpy (tmp1, tmp2);
++ free (tmp2);
++
++ tolen = strlen(tmp1);
++ if (absolute && !end_with_dot && tmp1[tolen - 1] == '.')
++ tolen--;
++
++ if (isc_buffer_length(buffer) < used_org + tolen)
++ return (ISC_R_NOSPACE);
++
++ isc_buffer_subtract(buffer, isc_buffer_usedlength(buffer) - used_org);
++ memcpy(isc_buffer_used(buffer), tmp1, tolen);
++ isc_buffer_add(buffer, tolen);
++
++ return (ISC_R_SUCCESS);
++}
++#endif /* WITH_LIBIDN*/
+
+ #ifdef DIG_SIGCHASE
+ void
diff --git a/bind.spec b/bind.spec
index be85374..12bf3d1 100644
--- a/bind.spec
+++ b/bind.spec
@@ -27,7 +27,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv
Name: bind
License: BSD-like
Version: %{BIND_MAJORVER}.%{BIND_MINORVER}.%{BIND_PATCHVER}
-Release: 7.%{BIND_RELEASETYPE}%{BIND_RELEASEVER}%{?dist}
+Release: 8.%{BIND_RELEASETYPE}%{BIND_RELEASEVER}%{?dist}
Epoch: 32
Url: http://www.isc.org/products/BIND/
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -85,8 +85,7 @@ Patch15: bind-9.5.0-dbus.patch
Patch23: bind-9.5-dbus_archdep_libdir.patch
# IDN paches
-Patch64: bind-9.4.0-idnkit-autotools.patch
-Patch65: bind-9.4.0-dig-idn.patch
+Patch73: bind-9.5-libidn.patch
#
Requires: bind-libs = %{epoch}:%{version}-%{release}, glibc >= 2.2, mktemp
@@ -117,6 +116,8 @@ BuildRequires: net-tools, perl
BuildRequires: krb5-devel
Requires: krb5-libs
%endif
+BuildRequires: libidn-devel
+Requires: libidn
%description
BIND (Berkeley Internet Name Domain) is an implementation of the DNS
@@ -124,14 +125,11 @@ BIND (Berkeley Internet Name Domain) is an implementation of the DNS
which resolves host names to IP addresses; a resolver library
(routines for applications to use when interfacing with DNS); and
tools for verifying that the DNS server is operating properly.
-
-%if %{SDB}
-It also include SDB (Simplified Database Backend) which includes support for
+It also includes SDB (Simplified Database Backend) which includes support for
using alternative Zone Databases stored in an LDAP server (ldapdb),
a postgreSQL database (pgsqldb), an sqlite database (sqlitedb),
or in the filesystem (dirdb), in addition to the standard in-memory RBT
(Red Black Tree) zone database.
-%endif
%package libs
Summary: Libraries used by the BIND DNS packages
@@ -248,26 +246,15 @@ cp -fp contrib/dbus/{dbus_mgr.h,dbus_service.h} bin/named/include/named
%patch62 -p1 -b .sdb-sqlite-bld
%endif
%patch63 -p1 -b .directory
-pushd contrib/idn
-%patch64 -p0 -b .autotools
-popd
-%patch65 -p1 -b .idn
%patch71 -p1 -b .overflow
%patch72 -p1 -b .64bit
+%patch73 -p1 -b .libidn
:;
%build
export CFLAGS="$CFLAGS $RPM_OPT_FLAGS -O0"
-pushd contrib/idn/idnkit-1.0-src
-libtoolize --copy --force; aclocal; automake -a; autoconf
-%configure \
- --with-iconv-include=/usr/include/ \
- --with-iconv=-lc
-make %{?_smp_mflags}
-popd
-
libtoolize --copy --force; aclocal; autoconf
cp -f /usr/share/libtool/config.{guess,sub} .
%if %{WITH_DBUS}
@@ -291,14 +278,11 @@ export LDFLAGS=-lefence
--enable-threads \
--enable-ipv6 \
--with-pic \
- --with-openssl=/usr \
%if %{LIBBIND}
--enable-libbind \
%endif
- --with-idn \
- --disable-openssl-version-check \
- CFLAGS="$CFLAGS" \
%if %{DLZ}
+ --disable-openssl-version-check \
--with-dlz-ldap=yes \
--with-dlz-postgres=yes \
--with-dlz-mysql=yes \
@@ -697,6 +681,11 @@ rm -rf ${RPM_BUILD_ROOT}
%{_sbindir}/bind-chroot-admin
%changelog
+* Mon Jul 30 2007 Adam Tkac <atkac redhat com> 32:9.5.0-8.a6
+- minor next improvements on autotools patch
+- dig and host utilities now using libidn instead idnkit for
+ IDN support
+
* Wed Jul 25 2007 Warren Togami <wtogami@redhat.com> 32:9.5.0-7.a6
- binutils/gcc bug rebuild (#249435)