- minor next improvements on autotools patch

- dig and host utilities now using libidn instead idnkit for IDN support
This commit is contained in:
Adam Tkac 2007-07-30 13:34:39 +00:00
parent 62e2c7cd2c
commit 3416d0c170
4 changed files with 279 additions and 881 deletions

View File

@ -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 =

View File

@ -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

267
bind-9.5-libidn.patch Normal file
View File

@ -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

View File

@ -27,7 +27,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv
Name: bind Name: bind
License: BSD-like License: BSD-like
Version: %{BIND_MAJORVER}.%{BIND_MINORVER}.%{BIND_PATCHVER} Version: %{BIND_MAJORVER}.%{BIND_MINORVER}.%{BIND_PATCHVER}
Release: 7.%{BIND_RELEASETYPE}%{BIND_RELEASEVER}%{?dist} Release: 8.%{BIND_RELEASETYPE}%{BIND_RELEASEVER}%{?dist}
Epoch: 32 Epoch: 32
Url: http://www.isc.org/products/BIND/ Url: http://www.isc.org/products/BIND/
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 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 Patch23: bind-9.5-dbus_archdep_libdir.patch
# IDN paches # IDN paches
Patch64: bind-9.4.0-idnkit-autotools.patch Patch73: bind-9.5-libidn.patch
Patch65: bind-9.4.0-dig-idn.patch
# #
Requires: bind-libs = %{epoch}:%{version}-%{release}, glibc >= 2.2, mktemp Requires: bind-libs = %{epoch}:%{version}-%{release}, glibc >= 2.2, mktemp
@ -117,6 +116,8 @@ BuildRequires: net-tools, perl
BuildRequires: krb5-devel BuildRequires: krb5-devel
Requires: krb5-libs Requires: krb5-libs
%endif %endif
BuildRequires: libidn-devel
Requires: libidn
%description %description
BIND (Berkeley Internet Name Domain) is an implementation of the DNS 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 which resolves host names to IP addresses; a resolver library
(routines for applications to use when interfacing with DNS); and (routines for applications to use when interfacing with DNS); and
tools for verifying that the DNS server is operating properly. tools for verifying that the DNS server is operating properly.
It also includes SDB (Simplified Database Backend) which includes support for
%if %{SDB}
It also include SDB (Simplified Database Backend) which includes support for
using alternative Zone Databases stored in an LDAP server (ldapdb), using alternative Zone Databases stored in an LDAP server (ldapdb),
a postgreSQL database (pgsqldb), an sqlite database (sqlitedb), a postgreSQL database (pgsqldb), an sqlite database (sqlitedb),
or in the filesystem (dirdb), in addition to the standard in-memory RBT or in the filesystem (dirdb), in addition to the standard in-memory RBT
(Red Black Tree) zone database. (Red Black Tree) zone database.
%endif
%package libs %package libs
Summary: Libraries used by the BIND DNS packages 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 %patch62 -p1 -b .sdb-sqlite-bld
%endif %endif
%patch63 -p1 -b .directory %patch63 -p1 -b .directory
pushd contrib/idn
%patch64 -p0 -b .autotools
popd
%patch65 -p1 -b .idn
%patch71 -p1 -b .overflow %patch71 -p1 -b .overflow
%patch72 -p1 -b .64bit %patch72 -p1 -b .64bit
%patch73 -p1 -b .libidn
:; :;
%build %build
export CFLAGS="$CFLAGS $RPM_OPT_FLAGS -O0" 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 libtoolize --copy --force; aclocal; autoconf
cp -f /usr/share/libtool/config.{guess,sub} . cp -f /usr/share/libtool/config.{guess,sub} .
%if %{WITH_DBUS} %if %{WITH_DBUS}
@ -291,14 +278,11 @@ export LDFLAGS=-lefence
--enable-threads \ --enable-threads \
--enable-ipv6 \ --enable-ipv6 \
--with-pic \ --with-pic \
--with-openssl=/usr \
%if %{LIBBIND} %if %{LIBBIND}
--enable-libbind \ --enable-libbind \
%endif %endif
--with-idn \
--disable-openssl-version-check \
CFLAGS="$CFLAGS" \
%if %{DLZ} %if %{DLZ}
--disable-openssl-version-check \
--with-dlz-ldap=yes \ --with-dlz-ldap=yes \
--with-dlz-postgres=yes \ --with-dlz-postgres=yes \
--with-dlz-mysql=yes \ --with-dlz-mysql=yes \
@ -697,6 +681,11 @@ rm -rf ${RPM_BUILD_ROOT}
%{_sbindir}/bind-chroot-admin %{_sbindir}/bind-chroot-admin
%changelog %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 * Wed Jul 25 2007 Warren Togami <wtogami@redhat.com> 32:9.5.0-7.a6
- binutils/gcc bug rebuild (#249435) - binutils/gcc bug rebuild (#249435)