From bbeea42ab3194cda396fdf32e9ee516cec4bb3ca Mon Sep 17 00:00:00 2001 From: Adam Tkac Date: Mon, 11 Feb 2008 17:11:26 +0000 Subject: [PATCH] - build with -D_GNU_SOURCE (#431734) - improved fix for #253537, posttrans script is now used - improved fix for #400461 - 9.5.0b2 - bind-9.3.2b1-PIE.patch replaced by bind-9.5-PIE.patch - only named, named-sdb and lwresd are PIE - bind-9.5-sdb.patch has been updated - bind-9.5-libidn.patch has been updated - bind-9.4.0-sdb-sqlite-bld.patch replaced by bind-9.5-sdb-sqlite-bld.patch - removed bind-9.5-gssapi-header.patch (upstream) - removed bind-9.5-CVE-2008-0122.patch (upstream) - removed bind-9.2.2-nsl.patch --- .cvsignore | 2 +- bind-9.3.2b1-PIE.patch | 313 ------------------ bind-9.4.1-ldap-api.patch | 4 +- bind-9.5-CVE-2008-0122.patch | 20 -- bind-9.5-PIE.patch | 27 ++ bind-9.5-gssapi-header.patch | 12 - bind-9.5-libidn.patch | 44 +-- ...bld.patch => bind-9.5-sdb-sqlite-bld.patch | 55 +-- bind-9.5-sdb.patch | 72 ++-- bind-9.5-transfer-segv.patch | 206 +----------- bind.spec | 37 ++- sources | 2 +- 12 files changed, 155 insertions(+), 639 deletions(-) delete mode 100644 bind-9.3.2b1-PIE.patch delete mode 100644 bind-9.5-CVE-2008-0122.patch create mode 100644 bind-9.5-PIE.patch delete mode 100644 bind-9.5-gssapi-header.patch rename bind-9.4.0-sdb-sqlite-bld.patch => bind-9.5-sdb-sqlite-bld.patch (68%) diff --git a/.cvsignore b/.cvsignore index 872c865..462971c 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,4 +1,4 @@ -bind-9.5.0b1.tar.gz +bind-9.5.0b2.tar.gz bind-chroot.tar.bz2 config-2.tar libbind-man.tar.gz diff --git a/bind-9.3.2b1-PIE.patch b/bind-9.3.2b1-PIE.patch deleted file mode 100644 index cd85e67..0000000 --- a/bind-9.3.2b1-PIE.patch +++ /dev/null @@ -1,313 +0,0 @@ ---- bind-9.4.0/make/rules.in.PIE 2007-01-30 00:57:21.000000000 +0100 -+++ bind-9.4.0/make/rules.in 2007-03-06 12:53:37.000000000 +0100 -@@ -124,6 +124,9 @@ - .c.@O@: - ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} -c $< - -+.c.o: -+ ${CC} ${ALL_CFLAGS} -c $< -+ - SHELL = @SHELL@ - LIBTOOL = @LIBTOOL@ - LIBTOOL_MODE_COMPILE = ${LIBTOOL} @LIBTOOL_MODE_COMPILE@ ---- bind-9.4.0/bin/rndc/Makefile.in.PIE 2007-01-19 01:55:49.000000000 +0100 -+++ bind-9.4.0/bin/rndc/Makefile.in 2007-03-06 12:53:37.000000000 +0100 -@@ -59,28 +59,34 @@ - - MANOBJS = ${MANPAGES} ${HTMLPAGES} - --UOBJS = unix/os.@O@ -+UOBJS = unix/os.o -+ -+EXT_CFLAGS = -fPIE - - @BIND9_MAKE_RULES@ - --rndc.@O@: rndc.c -- ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ -+LDFLAGS += -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack -+ -+.SUFFIXES: .c .o -+ -+rndc.o: rndc.c -+ ${CC} ${ALL_CFLAGS} \ - -DVERSION=\"${VERSION}\" \ - -DRNDC_CONFFILE=\"${sysconfdir}/rndc.conf\" \ - -DRNDC_KEYFILE=\"${sysconfdir}/rndc.key\" \ - -c ${srcdir}/rndc.c - --rndc-confgen.@O@: rndc-confgen.c -- ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ -+rndc-confgen.o: rndc-confgen.c -+ ${CC} ${ALL_CFLAGS} \ - -DRNDC_KEYFILE=\"${sysconfdir}/rndc.key\" \ - -c ${srcdir}/rndc-confgen.c - --rndc@EXEEXT@: rndc.@O@ util.@O@ ${RNDCDEPLIBS} -- ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rndc.@O@ util.@O@ \ -+rndc@EXEEXT@: rndc.o util.o ${RNDCDEPLIBS} -+ ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rndc.o util.o \ - ${RNDCLIBS} - --rndc-confgen@EXEEXT@: rndc-confgen.@O@ util.@O@ ${UOBJS} ${CONFDEPLIBS} -- ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rndc-confgen.@O@ util.@O@ \ -+rndc-confgen@EXEEXT@: rndc-confgen.o util.o ${UOBJS} ${CONFDEPLIBS} -+ ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rndc-confgen.o util.o \ - ${UOBJS} ${CONFLIBS} - - doc man:: ${MANOBJS} ---- bind-9.4.0/bin/rndc/unix/Makefile.in.PIE 2004-03-05 05:58:29.000000000 +0100 -+++ bind-9.4.0/bin/rndc/unix/Makefile.in 2007-03-06 12:53:37.000000000 +0100 -@@ -27,10 +27,16 @@ - CDEFINES = - CWARNINGS = - --OBJS = os.@O@ -+OBJS = os.o - - SRCS = os.c - - TARGETS = ${OBJS} - -+EXT_CFLAGS = -fPIE -+ - @BIND9_MAKE_RULES@ -+ -+LDFLAGS += -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack -+ -+.SUFFIXES: .c .o ---- bind-9.4.0/bin/check/Makefile.in.PIE 2006-06-09 02:54:08.000000000 +0200 -+++ bind-9.4.0/bin/check/Makefile.in 2007-03-06 12:57:46.000000000 +0100 -@@ -55,27 +55,33 @@ - - MANOBJS = ${MANPAGES} ${HTMLPAGES} - -+EXT_CFLAGS = -fPIE -+ - @BIND9_MAKE_RULES@ - --named-checkconf.@O@: named-checkconf.c -- ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ -+LDFLAGS += -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack -+ -+.SUFFIXES: .c .o -+ -+named-checkconf.o: named-checkconf.c -+ ${CC} ${ALL_CFLAGS} \ - -DVERSION=\"${VERSION}\" \ - -c ${srcdir}/named-checkconf.c - --named-checkzone.@O@: named-checkzone.c -- ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ -+named-checkzone.o: named-checkzone.c -+ ${CC} ${ALL_CFLAGS} \ - -DVERSION=\"${VERSION}\" \ - -c ${srcdir}/named-checkzone.c - --named-checkconf@EXEEXT@: named-checkconf.@O@ check-tool.@O@ ${ISCDEPLIBS} \ -+named-checkconf@EXEEXT@: named-checkconf.o check-tool.o ${ISCDEPLIBS} \ - ${ISCCFGDEPLIBS} ${BIND9DEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ -- named-checkconf.@O@ check-tool.@O@ ${BIND9LIBS} ${ISCCFGLIBS} \ -+ named-checkconf.o check-tool.o ${BIND9LIBS} ${ISCCFGLIBS} \ - ${DNSLIBS} ${ISCLIBS} ${LIBS} - --named-checkzone@EXEEXT@: named-checkzone.@O@ check-tool.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS} -+named-checkzone@EXEEXT@: named-checkzone.o check-tool.o ${ISCDEPLIBS} ${DNSDEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ -- named-checkzone.@O@ check-tool.@O@ ${ISCCFGLIBS} ${DNSLIBS} \ -+ named-checkzone.o check-tool.o ${ISCCFGLIBS} ${DNSLIBS} \ - ${ISCLIBS} ${LIBS} - - doc man:: ${MANOBJS} ---- bind-9.4.0/bin/dnssec/Makefile.in.PIE 2005-05-02 02:26:11.000000000 +0200 -+++ bind-9.4.0/bin/dnssec/Makefile.in 2007-03-06 12:53:37.000000000 +0100 -@@ -41,7 +41,7 @@ - # Alphabetically - TARGETS = dnssec-keygen@EXEEXT@ dnssec-signzone@EXEEXT@ - --OBJS = dnssectool.@O@ -+OBJS = dnssectool.o - - SRCS = dnssec-keygen.c dnssec-signzone.c dnssectool.c - -@@ -51,19 +51,25 @@ - - MANOBJS = ${MANPAGES} ${HTMLPAGES} - -+EXT_CFLAGS = -fPIE -+ - @BIND9_MAKE_RULES@ - --dnssec-keygen@EXEEXT@: dnssec-keygen.@O@ ${OBJS} ${DEPLIBS} -+LDFLAGS += -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack -+ -+.SUFFIXES: .c .o -+ -+dnssec-keygen@EXEEXT@: dnssec-keygen.o ${OBJS} ${DEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ -- dnssec-keygen.@O@ ${OBJS} ${LIBS} -+ dnssec-keygen.o ${OBJS} ${LIBS} - --dnssec-signzone.@O@: dnssec-signzone.c -- ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} -DVERSION=\"${VERSION}\" \ -+dnssec-signzone.o: dnssec-signzone.c -+ ${CC} ${ALL_CFLAGS} -DVERSION=\"${VERSION}\" \ - -c ${srcdir}/dnssec-signzone.c - --dnssec-signzone@EXEEXT@: dnssec-signzone.@O@ ${OBJS} ${DEPLIBS} -+dnssec-signzone@EXEEXT@: dnssec-signzone.o ${OBJS} ${DEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ -- dnssec-signzone.@O@ ${OBJS} ${LIBS} -+ dnssec-signzone.o ${OBJS} ${LIBS} - - doc man:: ${MANOBJS} - ---- bind-9.4.0/bin/dig/Makefile.in.PIE 2005-09-09 16:11:04.000000000 +0200 -+++ bind-9.4.0/bin/dig/Makefile.in 2007-03-06 12:53:37.000000000 +0100 -@@ -51,7 +51,7 @@ - - TARGETS = dig@EXEEXT@ host@EXEEXT@ nslookup@EXEEXT@ - --OBJS = dig.@O@ dighost.@O@ host.@O@ nslookup.@O@ -+OBJS = dig.o dighost.o host.o nslookup.o - - UOBJS = - -@@ -63,19 +63,25 @@ - - MANOBJS = ${MANPAGES} ${HTMLPAGES} - -+EXT_CFLAGS = -fPIE -+ - @BIND9_MAKE_RULES@ - --dig@EXEEXT@: dig.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS} -+LDFLAGS += -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack -+ -+.SUFFIXES: .c .o -+ -+dig@EXEEXT@: dig.o dighost.o ${UOBJS} ${DEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ -- dig.@O@ dighost.@O@ ${UOBJS} ${LIBS} -+ dig.o dighost.o ${UOBJS} ${LIBS} - --host@EXEEXT@: host.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS} -+host@EXEEXT@: host.o dighost.o ${UOBJS} ${DEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ -- host.@O@ dighost.@O@ ${UOBJS} ${LIBS} -+ host.o dighost.o ${UOBJS} ${LIBS} - --nslookup@EXEEXT@: nslookup.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS} -+nslookup@EXEEXT@: nslookup.o dighost.o ${UOBJS} ${DEPLIBS} - ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ -- nslookup.@O@ dighost.@O@ ${UOBJS} ${LIBS} -+ nslookup.o dighost.o ${UOBJS} ${LIBS} - - doc man:: ${MANOBJS} - ---- bind-9.4.0/bin/named/Makefile.in.PIE 2005-09-05 02:18:10.000000000 +0200 -+++ bind-9.4.0/bin/named/Makefile.in 2007-03-06 12:59:02.000000000 +0100 -@@ -72,17 +72,17 @@ - - TARGETS = named@EXEEXT@ lwresd@EXEEXT@ - --OBJS = builtin.@O@ client.@O@ config.@O@ control.@O@ \ -- controlconf.@O@ interfacemgr.@O@ \ -- listenlist.@O@ log.@O@ logconf.@O@ main.@O@ notify.@O@ \ -- query.@O@ server.@O@ sortlist.@O@ \ -- tkeyconf.@O@ tsigconf.@O@ update.@O@ xfrout.@O@ \ -- zoneconf.@O@ \ -- lwaddr.@O@ lwresd.@O@ lwdclient.@O@ lwderror.@O@ lwdgabn.@O@ \ -- lwdgnba.@O@ lwdgrbn.@O@ lwdnoop.@O@ lwsearch.@O@ \ -+OBJS = builtin.o client.o config.o control.o \ -+ controlconf.o interfacemgr.o \ -+ listenlist.o log.o logconf.o main.o notify.o \ -+ query.o server.o sortlist.o \ -+ tkeyconf.o tsigconf.o update.o xfrout.o \ -+ zoneconf.o \ -+ lwaddr.o lwresd.o lwdclient.o lwderror.o lwdgabn.o \ -+ lwdgnba.o lwdgrbn.o lwdnoop.o lwsearch.o \ - ${DLZDRIVER_OBJS} ${DBDRIVER_OBJS} - --UOBJS = unix/os.@O@ -+UOBJS = unix/os.o - - SRCS = builtin.c client.c config.c control.c \ - controlconf.c interfacemgr.c \ -@@ -100,16 +100,22 @@ - - MANOBJS = ${MANPAGES} ${HTMLPAGES} - -+EXT_CFLAGS = -fPIE -+ - @BIND9_MAKE_RULES@ - --main.@O@: main.c -- ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ -+LDFLAGS += -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack -+ -+.SUFFIXES: .c .o -+ -+main.o: main.c -+ ${CC} ${ALL_CFLAGS} \ - -DVERSION=\"${VERSION}\" \ - -DNS_LOCALSTATEDIR=\"${localstatedir}\" \ - -DNS_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main.c - --config.@O@: config.c -- ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ -+config.o: config.c -+ ${CC} ${ALL_CFLAGS} \ - -DVERSION=\"${VERSION}\" \ - -DNS_LOCALSTATEDIR=\"${localstatedir}\" \ - -c ${srcdir}/config.c ---- bind-9.4.0/bin/named/unix/Makefile.in.PIE 2004-03-05 05:58:01.000000000 +0100 -+++ bind-9.4.0/bin/named/unix/Makefile.in 2007-03-06 12:53:37.000000000 +0100 -@@ -27,10 +27,14 @@ - CDEFINES = - CWARNINGS = - --OBJS = os.@O@ -+OBJS = os.o - - SRCS = os.c - - TARGETS = ${OBJS} - -+EXT_CFLAGS = -fPIE -+ - @BIND9_MAKE_RULES@ -+ -+.SUFFIXES: .c .o -\ Chybí znak konce řádku na konci souboru ---- bind-9.4.0/bin/nsupdate/Makefile.in.PIE 2004-07-20 09:03:20.000000000 +0200 -+++ bind-9.4.0/bin/nsupdate/Makefile.in 2007-03-06 12:53:37.000000000 +0100 -@@ -49,7 +49,7 @@ - - TARGETS = nsupdate@EXEEXT@ - --OBJS = nsupdate.@O@ -+OBJS = nsupdate.o - - UOBJS = - -@@ -61,10 +61,16 @@ - - MANOBJS = ${MANPAGES} ${HTMLPAGES} - -+EXT_CFLAGS = -fPIE -+ - @BIND9_MAKE_RULES@ - --nsupdate@EXEEXT@: nsupdate.@O@ ${UOBJS} ${DEPLIBS} -- ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ nsupdate.@O@ ${UOBJS} ${LIBS} -+LDFLAGS += -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack -+ -+.SUFFIXES: .c .o -+ -+nsupdate@EXEEXT@: nsupdate.o ${UOBJS} ${DEPLIBS} -+ ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ nsupdate.o ${UOBJS} ${LIBS} - - doc man:: ${MANOBJS} - diff --git a/bind-9.4.1-ldap-api.patch b/bind-9.4.1-ldap-api.patch index e040a84..46347a2 100644 --- a/bind-9.4.1-ldap-api.patch +++ b/bind-9.4.1-ldap-api.patch @@ -4,8 +4,8 @@ MANOBJS = ${MANPAGES} ${HTMLPAGES} --EXT_CFLAGS = -fPIE -+EXT_CFLAGS = -fPIE -DLDAP_DEPRECATED +-EXT_CFLAGS = -fpie ++EXT_CFLAGS = -fpie -DLDAP_DEPRECATED @BIND9_MAKE_RULES@ diff --git a/bind-9.5-CVE-2008-0122.patch b/bind-9.5-CVE-2008-0122.patch deleted file mode 100644 index 38e0a4b..0000000 --- a/bind-9.5-CVE-2008-0122.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: lib/bind/inet/inet_network.c -=================================================================== -RCS file: /var/snap/bind9/lib/bind/inet/inet_network.c,v -retrieving revision 1.5 -retrieving revision 1.6 -diff -u -r1.5 -r1.6 ---- lib/bind/inet/inet_network.c 27 Apr 2005 04:56:21 -0000 1.5 -+++ lib/bind/inet/inet_network.c 15 Jan 2008 04:02:01 -0000 1.6 -@@ -84,9 +84,9 @@ - } - if (!digit) - return (INADDR_NONE); -+ if (pp >= parts + 4 || val > 0xffU) -+ return (INADDR_NONE); - if (*cp == '.') { -- if (pp >= parts + 4 || val > 0xffU) -- return (INADDR_NONE); - *pp++ = val, cp++; - goto again; - } diff --git a/bind-9.5-PIE.patch b/bind-9.5-PIE.patch new file mode 100644 index 0000000..a525b9b --- /dev/null +++ b/bind-9.5-PIE.patch @@ -0,0 +1,27 @@ +--- bind-9.5.0b2/bin/named/Makefile.in.pie 2008-02-11 17:21:47.000000000 +0100 ++++ bind-9.5.0b2/bin/named/Makefile.in 2008-02-11 17:22:10.000000000 +0100 +@@ -100,8 +100,12 @@ HTMLPAGES = named.html lwresd.html named + + MANOBJS = ${MANPAGES} ${HTMLPAGES} + ++EXT_CFLAGS = -fpie ++ + @BIND9_MAKE_RULES@ + ++LDFLAGS += -pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack ++ + main.@O@: main.c + ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ + -DVERSION=\"${VERSION}\" \ +diff -up bind-9.5.0b2/bin/named/unix/Makefile.in.pie bind-9.5.0b2/bin/named/unix/Makefile.in +--- bind-9.5.0b2/bin/named/unix/Makefile.in.pie 2008-02-11 17:22:21.000000000 +0100 ++++ bind-9.5.0b2/bin/named/unix/Makefile.in 2008-02-11 17:23:00.000000000 +0100 +@@ -19,6 +19,8 @@ srcdir = @srcdir@ + VPATH = @srcdir@ + top_srcdir = @top_srcdir@ + ++EXT_CFLAGS = -fpie ++ + @BIND9_MAKE_INCLUDES@ + + CINCLUDES = -I${srcdir}/include -I${srcdir}/../include \ diff --git a/bind-9.5-gssapi-header.patch b/bind-9.5-gssapi-header.patch deleted file mode 100644 index fe8c694..0000000 --- a/bind-9.5-gssapi-header.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up bind-9.5.0b1/lib/dns/include/dst/Makefile.in.gssapi-header bind-9.5.0b1/lib/dns/include/dst/Makefile.in ---- bind-9.5.0b1/lib/dns/include/dst/Makefile.in.gssapi-header 2007-12-11 15:50:55.000000000 +0100 -+++ bind-9.5.0b1/lib/dns/include/dst/Makefile.in 2007-12-11 15:51:15.000000000 +0100 -@@ -21,7 +21,7 @@ top_srcdir = @top_srcdir@ - - @BIND9_VERSION@ - --HEADERS = dst.h lib.h result.h -+HEADERS = dst.h gssapi.h lib.h result.h - - SUBDIRS = - TARGETS = diff --git a/bind-9.5-libidn.patch b/bind-9.5-libidn.patch index 3e3beed..e7233f5 100644 --- a/bind-9.5-libidn.patch +++ b/bind-9.5-libidn.patch @@ -1,6 +1,6 @@ -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 +diff -up bind-9.5.0b2/bin/dig/Makefile.in.libidn bind-9.5.0b2/bin/dig/Makefile.in +--- bind-9.5.0b2/bin/dig/Makefile.in.libidn 2007-06-20 01:46:59.000000000 +0200 ++++ bind-9.5.0b2/bin/dig/Makefile.in 2008-02-11 17:50:08.000000000 +0100 @@ -45,7 +45,7 @@ DEPLIBS = ${DNSDEPLIBS} ${BIND9DEPLIBS} ${LWRESDEPLIBS} @@ -10,18 +10,18 @@ diff -up bind-9.5.0a6/bin/dig/Makefile.in.libidn bind-9.5.0a6/bin/dig/Makefile.i SUBDIRS = -@@ -63,7 +63,7 @@ HTMLPAGES = dig.html host.html nslookup. +@@ -63,6 +63,8 @@ HTMLPAGES = dig.html host.html nslookup. MANOBJS = ${MANPAGES} ${HTMLPAGES} --EXT_CFLAGS = -fPIE -+EXT_CFLAGS = -fPIE -DWITH_LIBIDN - ++EXT_CFLAGS = -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 + dig@EXEEXT@: dig.@O@ dighost.@O@ ${UOBJS} ${DEPLIBS} +diff -up bind-9.5.0b2/bin/dig/dighost.c.libidn bind-9.5.0b2/bin/dig/dighost.c +--- bind-9.5.0b2/bin/dig/dighost.c.libidn 2008-01-18 00:46:35.000000000 +0100 ++++ bind-9.5.0b2/bin/dig/dighost.c 2008-02-11 17:49:03.000000000 +0100 @@ -44,6 +44,11 @@ #include #endif @@ -49,7 +49,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c /*% * Exit Codes: * -@@ -1002,6 +1015,9 @@ void +@@ -1004,6 +1017,9 @@ void setup_system(void) { dig_searchlist_t *domain = NULL; lwres_result_t lwresult; @@ -59,7 +59,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c debug("setup_system()"); -@@ -1050,8 +1066,15 @@ setup_system(void) { +@@ -1052,8 +1068,15 @@ setup_system(void) { #ifdef WITH_IDN initialize_idn(); @@ -76,7 +76,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c if (keyfile[0] != 0) setup_file_key(); else if (keysecret[0] != 0) -@@ -1740,12 +1763,18 @@ setup_lookup(dig_lookup_t *lookup) { +@@ -1743,12 +1766,18 @@ setup_lookup(dig_lookup_t *lookup) { idn_result_t mr; char utf8_textname[MXNAME], utf8_origin[MXNAME], idn_textname[MXNAME]; #endif @@ -96,7 +96,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c REQUIRE(lookup != NULL); INSIST(!free_now); -@@ -1782,6 +1811,16 @@ setup_lookup(dig_lookup_t *lookup) { +@@ -1785,6 +1814,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"); @@ -113,7 +113,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c #endif /* -@@ -1801,6 +1840,15 @@ setup_lookup(dig_lookup_t *lookup) { +@@ -1804,6 +1843,15 @@ setup_lookup(dig_lookup_t *lookup) { lookup->origin = ISC_LIST_HEAD(search_list); lookup->need_search = ISC_FALSE; } @@ -129,7 +129,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c #else if ((count_dots(lookup->textname) >= ndots) || !usesearch) { lookup->origin = NULL; /* Force abs lookup */ -@@ -1827,6 +1875,20 @@ setup_lookup(dig_lookup_t *lookup) { +@@ -1830,6 +1878,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"); @@ -150,7 +150,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c #else if (lookup->origin != NULL) { debug("trying origin %s", lookup->origin->origin); -@@ -1883,6 +1945,14 @@ setup_lookup(dig_lookup_t *lookup) { +@@ -1886,6 +1948,14 @@ setup_lookup(dig_lookup_t *lookup) { dns_rootname, ISC_FALSE, &lookup->namebuf); @@ -165,7 +165,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c #else len = strlen(lookup->textname); isc_buffer_init(&b, lookup->textname, len); -@@ -3310,7 +3380,7 @@ destroy_libs(void) { +@@ -3317,7 +3387,7 @@ destroy_libs(void) { void * ptr; dig_message_t *chase_msg; #endif @@ -174,9 +174,9 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c isc_result_t result; #endif -@@ -3349,6 +3419,10 @@ destroy_libs(void) { - result = dns_name_settotextfilter(NULL); - check_result(result, "dns_name_settotextfilter"); +@@ -3356,6 +3426,10 @@ destroy_libs(void) { + result = dns_name_settotextfilter(NULL); + check_result(result, "dns_name_settotextfilter"); #endif +#ifdef WITH_LIBIDN + result = dns_name_settotextfilter (NULL); @@ -185,7 +185,7 @@ diff -up bind-9.5.0a6/bin/dig/dighost.c.libidn bind-9.5.0a6/bin/dig/dighost.c dns_name_destroy(); if (commctx != NULL) { -@@ -3525,6 +3599,79 @@ idn_check_result(idn_result_t r, const c +@@ -3532,6 +3606,79 @@ idn_check_result(idn_result_t r, const c } } #endif /* WITH_IDN */ diff --git a/bind-9.4.0-sdb-sqlite-bld.patch b/bind-9.5-sdb-sqlite-bld.patch similarity index 68% rename from bind-9.4.0-sdb-sqlite-bld.patch rename to bind-9.5-sdb-sqlite-bld.patch index 4e8a71a..a7eec4e 100644 --- a/bind-9.4.0-sdb-sqlite-bld.patch +++ b/bind-9.5-sdb-sqlite-bld.patch @@ -1,5 +1,23 @@ ---- bind-9.4.0/bin/named/main-sdb.c.sdb-sqlite-bld 2007-03-12 14:00:05.000000000 +0100 -+++ bind-9.4.0/bin/named/main-sdb.c 2007-03-12 14:02:34.000000000 +0100 +diff -up bind-9.5.0b2/bin/named/Makefile.in.sdb-sqlite-bld bind-9.5.0b2/bin/named/Makefile.in +--- bind-9.5.0b2/bin/named/Makefile.in.sdb-sqlite-bld 2008-02-11 17:44:32.000000000 +0100 ++++ bind-9.5.0b2/bin/named/Makefile.in 2008-02-11 17:46:00.000000000 +0100 +@@ -26,10 +26,10 @@ top_srcdir = @top_srcdir@ + # + # Add database drivers here. + # +-DBDRIVER_OBJS = ldapdb.@O@ pgsqldb.@O@ dirdb.@O@ +-DBDRIVER_SRCS = ldapdb.c pgsqldb.c dirdb.c ++DBDRIVER_OBJS = ldapdb.@O@ pgsqldb.@O@ sqlitedb.@O@ dirdb.@O@ ++DBDRIVER_SRCS = ldapdb.c pgsqldb.c sqlitedb.c dirdb.c + DBDRIVER_INCLUDES = +-DBDRIVER_LIBS = -lldap -llber -lpq ++DBDRIVER_LIBS = -lldap -llber -lpq -lsqlite3 + + DLZ_DRIVER_DIR = ${top_srcdir}/contrib/dlz/drivers + +diff -up bind-9.5.0b2/bin/named/main-sdb.c.sdb-sqlite-bld bind-9.5.0b2/bin/named/main-sdb.c +--- bind-9.5.0b2/bin/named/main-sdb.c.sdb-sqlite-bld 2008-02-11 17:44:32.000000000 +0100 ++++ bind-9.5.0b2/bin/named/main-sdb.c 2008-02-11 17:44:33.000000000 +0100 @@ -74,6 +74,7 @@ /* #include "xxdb.h" */ #include "ldapdb.h" @@ -8,7 +26,7 @@ #include "dirdb.h" /* -@@ -648,6 +649,7 @@ +@@ -646,6 +647,7 @@ setup(void) { ldapdb_clear(); pgsqldb_clear(); @@ -16,7 +34,7 @@ dirdb_clear(); isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, -@@ -737,6 +739,23 @@ +@@ -743,6 +745,23 @@ setup(void) { ISC_LOG_NOTICE, "SDB postgreSQL DB zone database module loaded." ); @@ -40,7 +58,7 @@ result = dirdb_init(); if (result != ISC_R_SUCCESS) { -@@ -781,6 +800,7 @@ +@@ -787,6 +806,7 @@ cleanup(void) { ldapdb_clear(); pgsqldb_clear(); @@ -48,25 +66,10 @@ dirdb_clear(); isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_MAIN, ---- bind-9.4.0/bin/named/Makefile.in.sdb-sqlite-bld 2007-03-12 14:00:05.000000000 +0100 -+++ bind-9.4.0/bin/named/Makefile.in 2007-03-12 14:00:05.000000000 +0100 -@@ -26,10 +26,10 @@ - # - # Add database drivers here. - # --DBDRIVER_OBJS = ldapdb.o pgsqldb.o dirdb.o --DBDRIVER_SRCS = ldapdb.c pgsqldb.c dirdb.c -+DBDRIVER_OBJS = ldapdb.o pgsqldb.o sqlitedb.o dirdb.o -+DBDRIVER_SRCS = ldapdb.c pgsqldb.c sqlitedb.c dirdb.c - DBDRIVER_INCLUDES = --DBDRIVER_LIBS = -lldap -llber -lpq -+DBDRIVER_LIBS = -lldap -llber -lpq -lsqlite3 - - DLZ_DRIVER_DIR = ${top_srcdir}/contrib/dlz/drivers - ---- bind-9.4.0/bin/sdb_tools/Makefile.in.sdb-sqlite-bld 2007-03-12 14:00:05.000000000 +0100 -+++ bind-9.4.0/bin/sdb_tools/Makefile.in 2007-03-12 14:00:05.000000000 +0100 -@@ -30,11 +30,11 @@ +diff -up bind-9.5.0b2/bin/sdb_tools/Makefile.in.sdb-sqlite-bld bind-9.5.0b2/bin/sdb_tools/Makefile.in +--- bind-9.5.0b2/bin/sdb_tools/Makefile.in.sdb-sqlite-bld 2008-02-11 17:44:33.000000000 +0100 ++++ bind-9.5.0b2/bin/sdb_tools/Makefile.in 2008-02-11 17:44:33.000000000 +0100 +@@ -30,11 +30,11 @@ DEPLIBS = ${LWRESDEPLIBS} ${DNSDEPLIBS} LIBS = ${LWRESLIBS} ${DNSLIBS} ${BIND9LIBS} \ ${ISCCFGLIBS} ${ISCCCLIBS} ${ISCLIBS} ${DBDRIVER_LIBS} @LIBS@ @@ -81,7 +84,7 @@ MANPAGES = zone2ldap.1 -@@ -54,6 +54,9 @@ +@@ -54,6 +54,9 @@ zone2ldap: zone2ldap.o ${DEPLIBS} zonetodb: zonetodb.o ${DEPLIBS} ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ zonetodb.o -lpq ${LIBS} @@ -91,7 +94,7 @@ ldap2zone: ldap2zone.o ${DEPLIBS} ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ldap2zone.o -lldap -llber ${LIBS} -@@ -68,4 +71,5 @@ +@@ -68,4 +71,5 @@ install:: ${TARGETS} installdirs ${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} zone2ldap ${DESTDIR}${sbindir} ${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} ldap2zone ${DESTDIR}${sbindir} ${LIBTOOL_MODE_INSTALL} ${INSTALL_PROGRAM} zonetodb ${DESTDIR}${sbindir} diff --git a/bind-9.5-sdb.patch b/bind-9.5-sdb.patch index 0f30f1d..6549ff8 100644 --- a/bind-9.5-sdb.patch +++ b/bind-9.5-sdb.patch @@ -1,7 +1,7 @@ -diff -up bind-9.5.0a6/configure.in.sdb bind-9.5.0a6/configure.in ---- bind-9.5.0a6/configure.in.sdb 2007-06-19 01:47:16.000000000 +0200 -+++ bind-9.5.0a6/configure.in 2007-11-15 10:10:06.000000000 +0100 -@@ -2735,6 +2735,7 @@ AC_CONFIG_FILES([ +diff -up bind-9.5.0b2/configure.in.sdb bind-9.5.0b2/configure.in +--- bind-9.5.0b2/configure.in.sdb 2008-01-24 03:29:56.000000000 +0100 ++++ bind-9.5.0b2/configure.in 2008-02-11 17:32:43.000000000 +0100 +@@ -2782,6 +2782,7 @@ AC_CONFIG_FILES([ bin/tests/system/tkey/Makefile bin/tests/headerdep_test.sh bin/dnssec/Makefile @@ -9,9 +9,9 @@ diff -up bind-9.5.0a6/configure.in.sdb bind-9.5.0a6/configure.in doc/Makefile doc/arm/Makefile doc/misc/Makefile -diff -up bind-9.5.0a6/bin/Makefile.in.sdb bind-9.5.0a6/bin/Makefile.in ---- bind-9.5.0a6/bin/Makefile.in.sdb 2007-06-20 01:46:59.000000000 +0200 -+++ bind-9.5.0a6/bin/Makefile.in 2007-11-15 10:10:06.000000000 +0100 +diff -up bind-9.5.0b2/bin/Makefile.in.sdb bind-9.5.0b2/bin/Makefile.in +--- bind-9.5.0b2/bin/Makefile.in.sdb 2007-06-20 01:46:59.000000000 +0200 ++++ bind-9.5.0b2/bin/Makefile.in 2008-02-11 17:32:43.000000000 +0100 @@ -19,7 +19,7 @@ srcdir = @srcdir@ VPATH = @srcdir@ top_srcdir = @top_srcdir@ @@ -21,16 +21,16 @@ diff -up bind-9.5.0a6/bin/Makefile.in.sdb bind-9.5.0a6/bin/Makefile.in TARGETS = @BIND9_MAKE_RULES@ -diff -up bind-9.5.0a6/bin/named/Makefile.in.sdb bind-9.5.0a6/bin/named/Makefile.in ---- bind-9.5.0a6/bin/named/Makefile.in.sdb 2007-11-15 10:10:06.000000000 +0100 -+++ bind-9.5.0a6/bin/named/Makefile.in 2007-11-15 10:11:56.000000000 +0100 +diff -up bind-9.5.0b2/bin/named/Makefile.in.sdb bind-9.5.0b2/bin/named/Makefile.in +--- bind-9.5.0b2/bin/named/Makefile.in.sdb 2008-02-11 17:32:43.000000000 +0100 ++++ bind-9.5.0b2/bin/named/Makefile.in 2008-02-11 17:43:50.000000000 +0100 @@ -26,10 +26,10 @@ top_srcdir = @top_srcdir@ # # Add database drivers here. # -DBDRIVER_OBJS = -DBDRIVER_SRCS = -+DBDRIVER_OBJS = ldapdb.o pgsqldb.o dirdb.o ++DBDRIVER_OBJS = ldapdb.@O@ pgsqldb.@O@ dirdb.@O@ +DBDRIVER_SRCS = ldapdb.c pgsqldb.c dirdb.c DBDRIVER_INCLUDES = -DBDRIVER_LIBS = @@ -47,7 +47,7 @@ diff -up bind-9.5.0a6/bin/named/Makefile.in.sdb bind-9.5.0a6/bin/named/Makefile. CWARNINGS = -@@ -66,21 +66,20 @@ DEPLIBS = ${LWRESDEPLIBS} ${DNSDEPLIBS} +@@ -66,27 +66,26 @@ DEPLIBS = ${LWRESDEPLIBS} ${DNSDEPLIBS} LIBS = ${LWRESLIBS} ${DNSLIBS} ${BIND9LIBS} \ ${ISCCFGLIBS} ${ISCCCLIBS} ${ISCLIBS} \ @@ -59,50 +59,48 @@ diff -up bind-9.5.0a6/bin/named/Makefile.in.sdb bind-9.5.0a6/bin/named/Makefile. -TARGETS = named@EXEEXT@ lwresd@EXEEXT@ +TARGETS = named@EXEEXT@ named-sdb@EXEEXT@ lwresd@EXEEXT@ - OBJS = builtin.o client.o config.o control.o \ - controlconf.o interfacemgr.o \ -- listenlist.o log.o logconf.o main.o notify.o \ -+ listenlist.o log.o logconf.o notify.o \ - query.o server.o sortlist.o \ - tkeyconf.o tsigconf.o update.o xfrout.o \ - zoneconf.o \ - lwaddr.o lwresd.o lwdclient.o lwderror.o lwdgabn.o \ - lwdgnba.o lwdgrbn.o lwdnoop.o lwsearch.o \ + OBJS = builtin.@O@ client.@O@ config.@O@ control.@O@ \ + controlconf.@O@ interfacemgr.@O@ \ +- listenlist.@O@ log.@O@ logconf.@O@ main.@O@ notify.@O@ \ ++ listenlist.@O@ log.@O@ logconf.@O@ notify.@O@ \ + query.@O@ server.@O@ sortlist.@O@ statschannel.@O@ \ + tkeyconf.@O@ tsigconf.@O@ update.@O@ xfrout.@O@ \ + zoneconf.@O@ \ + lwaddr.@O@ lwresd.@O@ lwdclient.@O@ lwderror.@O@ lwdgabn.@O@ \ + lwdgnba.@O@ lwdgrbn.@O@ lwdnoop.@O@ lwsearch.@O@ \ - ${DLZDRIVER_OBJS} ${DBDRIVER_OBJS} - UOBJS = unix/os.o - -@@ -88,7 +87,7 @@ GENERATED = bind9.xsl.h + UOBJS = unix/os.@O@ SRCS = builtin.c client.c config.c control.c \ controlconf.c interfacemgr.c \ - listenlist.c log.c logconf.c main.c notify.c \ + listenlist.c log.c logconf.c main.c main-sdb.c notify.c \ - query.c server.c sortlist.c \ + query.c server.c sortlist.c statschannel.c \ tkeyconf.c tsigconf.c update.c xfrout.c \ zoneconf.c \ -@@ -116,15 +115,26 @@ main.o: main.c +@@ -112,15 +111,26 @@ main.@O@: main.c -DNS_LOCALSTATEDIR=\"${localstatedir}\" \ -DNS_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main.c -+main-sdb.o : main-sdb.c -+ ${CC} ${ALL_CFLAGS} @USE_DLZ@ \ ++main-sdb.@O@: main-sdb.c ++ ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} @USE_DLZ@ \ + -DVERSION=\"${VERSION}\" \ + -DNS_LOCALSTATEDIR=\"${localstatedir}\" \ + -DNS_SYSCONFDIR=\"${sysconfdir}\" -c ${srcdir}/main-sdb.c + - config.o: config.c - ${CC} ${ALL_CFLAGS} \ + config.@O@: config.c + ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ -DVERSION=\"${VERSION}\" \ -DNS_LOCALSTATEDIR=\"${localstatedir}\" \ -c ${srcdir}/config.c -named@EXEEXT@: ${OBJS} ${UOBJS} ${DEPLIBS} -+named@EXEEXT@: ${OBJS} ${UOBJS} ${DEPLIBS} main.o ++named@EXEEXT@: ${OBJS} ${UOBJS} ${DEPLIBS} main.@O@ + ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ -+ ${OBJS} main.o ${UOBJS} ${LIBS} ++ ${OBJS} main.@O@ ${UOBJS} ${LIBS} + -+named-sdb@EXEEXT@: ${OBJS} ${UOBJS} ${DEPLIBS} main-sdb.o ${DLZDRIVER_OBJS} ${DBDRIVER_OBJS} ++named-sdb@EXEEXT@: ${OBJS} ${UOBJS} ${DEPLIBS} main-sdb.@O@ ${DLZDRIVER_OBJS} ${DBDRIVER_OBJS} ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ \ - ${OBJS} ${UOBJS} ${LIBS} + ${OBJS} main-sdb.o ${DLZDRIVER_OBJS} ${DBDRIVER_OBJS} ${UOBJS} ${LIBS} \ @@ -110,7 +108,7 @@ diff -up bind-9.5.0a6/bin/named/Makefile.in.sdb bind-9.5.0a6/bin/named/Makefile. lwresd@EXEEXT@: named@EXEEXT@ rm -f lwresd@EXEEXT@ -@@ -149,8 +159,9 @@ installdirs: +@@ -145,8 +155,9 @@ installdirs: $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man5 $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man8 @@ -121,9 +119,9 @@ diff -up bind-9.5.0a6/bin/named/Makefile.in.sdb bind-9.5.0a6/bin/named/Makefile. (cd ${DESTDIR}${sbindir}; rm -f lwresd@EXEEXT@; @LN@ named@EXEEXT@ lwresd@EXEEXT@) ${INSTALL_DATA} ${srcdir}/named.8 ${DESTDIR}${mandir}/man8 ${INSTALL_DATA} ${srcdir}/lwresd.8 ${DESTDIR}${mandir}/man8 -diff -up bind-9.5.0a6/bin/named/main-sdb.c.sdb bind-9.5.0a6/bin/named/main-sdb.c ---- bind-9.5.0a6/bin/named/main-sdb.c.sdb 2007-11-15 10:10:06.000000000 +0100 -+++ bind-9.5.0a6/bin/named/main-sdb.c 2007-11-15 10:10:06.000000000 +0100 +diff -up bind-9.5.0b2/bin/named/main-sdb.c.sdb bind-9.5.0b2/bin/named/main-sdb.c +--- bind-9.5.0b2/bin/named/main-sdb.c.sdb 2008-02-11 17:32:43.000000000 +0100 ++++ bind-9.5.0b2/bin/named/main-sdb.c 2008-02-11 17:32:43.000000000 +0100 @@ -72,6 +72,9 @@ * Include header files for database drivers here. */ diff --git a/bind-9.5-transfer-segv.patch b/bind-9.5-transfer-segv.patch index 656e0ff..8ba5456 100644 --- a/bind-9.5-transfer-segv.patch +++ b/bind-9.5-transfer-segv.patch @@ -1,197 +1,13 @@ diff -up bind-9.5.0b1/lib/dns/rbtdb.c.segv bind-9.5.0b1/lib/dns/rbtdb.c ---- bind-9.5.0b1/lib/dns/rbtdb.c.segv 2008-02-04 12:30:36.000000000 +0100 -+++ bind-9.5.0b1/lib/dns/rbtdb.c 2008-02-04 13:46:48.000000000 +0100 -@@ -763,23 +763,17 @@ free_rbtdb(dns_rbtdb_t *rbtdb, isc_boole - isc_mem_put(rbtdb->common.mctx, rbtdb->current_version, - sizeof(rbtdb_version_t)); +--- bind-9.5.0b1/lib/dns/rbtdb.c.segv 2008-02-11 14:52:12.000000000 +0100 ++++ bind-9.5.0b1/lib/dns/rbtdb.c 2008-02-11 14:55:58.000000000 +0100 +@@ -1633,7 +1633,8 @@ decrement_reference(dns_rbtdb_t *rbtdb, + "decrement_reference: " + "dns_rbt_deletenode: %s", + isc_result_totext(result)); +- } else if (dns_rbtnode_refcurrent(node) == 0) { ++ } else if (rbtdb->deadnodes != NULL && ++ dns_rbtnode_refcurrent(node) == 0) { + INSIST(!ISC_LINK_LINKED(node, deadlink)); + ISC_LIST_APPEND(rbtdb->deadnodes[bucket], node, deadlink); } -- if (IS_CACHE(rbtdb)) { -- /* -- * We assume the number of remaining dead nodes is reasonably -- * small; the overhead of unlinking all nodes here should be -- * negligible. -- */ -- for (i = 0; i < rbtdb->node_lock_count; i++) { -- dns_rbtnode_t *node; -- -- node = ISC_LIST_HEAD(rbtdb->deadnodes[i]); -- while (node != NULL) { -- ISC_LIST_UNLINK(rbtdb->deadnodes[i], node, -- deadlink); -- node = ISC_LIST_HEAD(rbtdb->deadnodes[i]); -- } -+ -+ for (i = 0; i < rbtdb->node_lock_count; i++) { -+ dns_rbtnode_t *node; -+ -+ node = ISC_LIST_HEAD(rbtdb->deadnodes[i]); -+ while (node != NULL) { -+ ISC_LIST_UNLINK(rbtdb->deadnodes[i], node, deadlink); -+ node = ISC_LIST_HEAD(rbtdb->deadnodes[i]); - } - } -+ - if (event == NULL) - rbtdb->quantum = (rbtdb->task != NULL) ? 100 : 0; - again: -@@ -1912,6 +1906,7 @@ closeversion(dns_db_t *db, dns_dbversion - } - - if (!EMPTY(cleanup_list)) { -+ RWLOCK(&rbtdb->tree_lock, isc_rwlocktype_write); - for (changed = HEAD(cleanup_list); - changed != NULL; - changed = next_changed) { -@@ -1922,16 +1917,18 @@ closeversion(dns_db_t *db, dns_dbversion - lock = &rbtdb->node_locks[rbtnode->locknum].lock; - - NODE_LOCK(lock, isc_rwlocktype_write); -+ cleanup_dead_nodes(rbtdb, rbtnode->locknum); - if (rollback) - rollback_node(rbtnode, serial); - decrement_reference(rbtdb, rbtnode, least_serial, - isc_rwlocktype_write, -- isc_rwlocktype_none); -+ isc_rwlocktype_write); - NODE_UNLOCK(lock, isc_rwlocktype_write); - - isc_mem_put(rbtdb->common.mctx, changed, - sizeof(*changed)); - } -+ RWUNLOCK(&rbtdb->tree_lock, isc_rwlocktype_write); - } - - end: -@@ -2009,6 +2006,7 @@ findnode(dns_db_t *db, dns_name_t *name, - dns_name_t nodename; - isc_result_t result; - isc_rwlocktype_t locktype = isc_rwlocktype_read; -+ isc_boolean_t need_relock; - - REQUIRE(VALID_RBTDB(rbtdb)); - -@@ -2064,29 +2062,27 @@ findnode(dns_db_t *db, dns_name_t *name, - * happen to hold a write lock on the tree, it's a good chance to purge - * dead nodes. - */ -- if (IS_CACHE(rbtdb)) { -- isc_boolean_t need_relock = ISC_FALSE; -+ need_relock = ISC_FALSE; -+ NODE_WEAKLOCK(&rbtdb->node_locks[node->locknum].lock, -+ isc_rwlocktype_read); -+ if (ISC_LINK_LINKED(node, deadlink) && isc_rwlocktype_write) -+ need_relock = ISC_TRUE; -+ else if (!ISC_LIST_EMPTY(rbtdb->deadnodes[node->locknum]) && -+ locktype == isc_rwlocktype_write) -+ need_relock = ISC_TRUE; -+ NODE_WEAKUNLOCK(&rbtdb->node_locks[node->locknum].lock, -+ isc_rwlocktype_read); -+ if (need_relock) { - - NODE_WEAKLOCK(&rbtdb->node_locks[node->locknum].lock, -- isc_rwlocktype_read); -- if (ISC_LINK_LINKED(node, deadlink) && isc_rwlocktype_write) -- need_relock = ISC_TRUE; -- else if (!ISC_LIST_EMPTY(rbtdb->deadnodes[node->locknum]) && -- locktype == isc_rwlocktype_write) -- need_relock = ISC_TRUE; -+ isc_rwlocktype_write); -+ if (ISC_LINK_LINKED(node, deadlink)) -+ ISC_LIST_UNLINK(rbtdb->deadnodes[node->locknum], -+ node, deadlink); -+ if (locktype == isc_rwlocktype_write) -+ cleanup_dead_nodes(rbtdb, node->locknum); - NODE_WEAKUNLOCK(&rbtdb->node_locks[node->locknum].lock, -- isc_rwlocktype_read); -- if (need_relock) { -- NODE_WEAKLOCK(&rbtdb->node_locks[node->locknum].lock, -- isc_rwlocktype_write); -- if (ISC_LINK_LINKED(node, deadlink)) -- ISC_LIST_UNLINK(rbtdb->deadnodes[node->locknum], -- node, deadlink); -- if (locktype == isc_rwlocktype_write) -- cleanup_dead_nodes(rbtdb, node->locknum); -- NODE_WEAKUNLOCK(&rbtdb->node_locks[node->locknum].lock, -- isc_rwlocktype_write); -- } -+ isc_rwlocktype_write); - } - - NODE_STRONGUNLOCK(&rbtdb->node_locks[node->locknum].lock); -@@ -6149,15 +6145,6 @@ dns_rbtdb_create - for (i = 0; i < (int)rbtdb->node_lock_count; i++) - ISC_LIST_INIT(rbtdb->rdatasets[i]); - -- rbtdb->deadnodes = isc_mem_get(mctx, rbtdb->node_lock_count * -- sizeof(rbtnodelist_t)); -- if (rbtdb->deadnodes == NULL) { -- result = ISC_R_NOMEMORY; -- goto cleanup_rdatasets; -- } -- for (i = 0; i < (int)rbtdb->node_lock_count; i++) -- ISC_LIST_INIT(rbtdb->deadnodes[i]); -- - /* - * Create the heaps. - */ -@@ -6165,7 +6152,7 @@ dns_rbtdb_create - sizeof(isc_heap_t *)); - if (rbtdb->heaps == NULL) { - result = ISC_R_NOMEMORY; -- goto cleanup_deadnodes; -+ goto cleanup_rdatasets; - } - for (i = 0; i < (int)rbtdb->node_lock_count; i++) - rbtdb->heaps[i] = NULL; -@@ -6178,10 +6165,18 @@ dns_rbtdb_create - } - } else { - rbtdb->rdatasets = NULL; -- rbtdb->deadnodes = NULL; - rbtdb->heaps = NULL; - } - -+ rbtdb->deadnodes = isc_mem_get(mctx, rbtdb->node_lock_count * -+ sizeof(rbtnodelist_t)); -+ if (rbtdb->deadnodes == NULL) { -+ result = ISC_R_NOMEMORY; -+ goto cleanup_heaps; -+ } -+ for (i = 0; i < (int)rbtdb->node_lock_count; i++) -+ ISC_LIST_INIT(rbtdb->deadnodes[i]); -+ - rbtdb->active = rbtdb->node_lock_count; - - for (i = 0; i < (int)(rbtdb->node_lock_count); i++) { -@@ -6197,7 +6192,7 @@ dns_rbtdb_create - isc_refcount_decrement(&rbtdb->node_locks[i].references, NULL); - isc_refcount_destroy(&rbtdb->node_locks[i].references); - } -- goto cleanup_heaps; -+ goto cleanup_deadnodes; - } - rbtdb->node_locks[i].exiting = ISC_FALSE; - } -@@ -6310,6 +6305,10 @@ dns_rbtdb_create - - return (ISC_R_SUCCESS); - -+ cleanup_deadnodes: -+ isc_mem_put(mctx, rbtdb->deadnodes, -+ rbtdb->node_lock_count * sizeof(rbtnodelist_t)); -+ - cleanup_heaps: - if (rbtdb->heaps != NULL) { - for (i = 0 ; i < (int)rbtdb->node_lock_count ; i++) -@@ -6319,11 +6318,6 @@ dns_rbtdb_create - rbtdb->node_lock_count * sizeof(isc_heap_t *)); - } - -- cleanup_deadnodes: -- if (rbtdb->deadnodes != NULL) -- isc_mem_put(mctx, rbtdb->deadnodes, -- rbtdb->node_lock_count * sizeof(rbtnodelist_t)); -- - cleanup_rdatasets: - if (rbtdb->rdatasets != NULL) - isc_mem_put(mctx, rbtdb->rdatasets, rbtdb->node_lock_count * diff --git a/bind.spec b/bind.spec index 7be1c20..163227c 100644 --- a/bind.spec +++ b/bind.spec @@ -2,7 +2,7 @@ # Red Hat BIND package .spec file # -%define RELEASEVER b1 +%define RELEASEVER b2 %{?!SDB: %define SDB 1} %{?!LIBBIND: %define LIBBIND 1} @@ -20,7 +20,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv Name: bind License: ISC Version: 9.5.0 -Release: 25.%{RELEASEVER}%{?dist} +Release: 26.%{RELEASEVER}%{?dist} Epoch: 32 Url: http://www.isc.org/products/BIND/ Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -52,23 +52,20 @@ Source30: ldap2zone.c Patch0: bind-9.2.0rc3-varrun.patch Patch1: bind-9.3.3rc2-rndckey.patch Patch5: bind-nonexec.patch -Patch6: bind-9.2.2-nsl.patch -Patch10: bind-9.3.2b1-PIE.patch +Patch10: bind-9.5-PIE.patch Patch13: bind-9.3.1rc1-fix_libbind_includedir.patch Patch16: bind-9.3.2-redhat_doc.patch Patch63: bind-9.4.0-dnssec-directory.patch Patch69: bind-9.5.0-generate-xml.patch Patch71: bind-9.5-overflow.patch Patch72: bind-9.5-dlz-64bit.patch -Patch84: bind-9.5-gssapi-header.patch -Patch86: bind-9.5-CVE-2008-0122.patch Patch87: bind-9.5-parallel-build.patch Patch88: bind-9.5-transfer-segv.patch # SDB patches Patch11: bind-9.3.2b2-sdbsrc.patch Patch12: bind-9.5-sdb.patch -Patch62: bind-9.4.0-sdb-sqlite-bld.patch +Patch62: bind-9.5-sdb-sqlite-bld.patch Patch68: bind-9.4.1-ldap-api.patch # needs inpection @@ -192,7 +189,6 @@ Based on the code from Jan "Yenya" Kasprzak %patch -p1 -b .varrun %patch1 -p1 -b .key %patch5 -p1 -b .nonexec -%patch6 -p1 -b .nsl %patch10 -p1 -b .PIE %patch69 -p1 -b .generate-xml %if %{SDB} @@ -249,9 +245,7 @@ cp -fp contrib/dbus/{dbus_mgr.h,dbus_service.h} bin/named/include/named %endif %patch73 -p1 -b .libidn %patch83 -p1 -b .libidn2 -%patch84 -p1 -b .gssapi-header %patch85 -p1 -b .libidn3 -%patch86 -p0 -b .CVE-2008-0122 %patch87 -p1 -b .parallel %patch88 -p1 -b .transfer-segv :; @@ -259,6 +253,8 @@ cp -fp contrib/dbus/{dbus_mgr.h,dbus_service.h} bin/named/include/named %build export CFLAGS="$CFLAGS $RPM_OPT_FLAGS -O0" +export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" +export STD_CDEFINES="$CPPFLAGS $STD_CDEFINES" libtoolize --copy --force; aclocal; autoconf cp -f /usr/share/libtool/config.{guess,sub} . @@ -490,6 +486,13 @@ if [ "$1" -gt 0 ]; then fi; :; +%posttrans chroot +if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled && \ + [ -x /sbin/restorecon ]; then + /sbin/restorecon %{chroot_prefix}/dev/* > /dev/null 2>&1; +fi; +:; + %preun chroot if [ "$1" -eq 0 ]; then /usr/sbin/bind-chroot-admin --disable > /dev/null 2>&1; @@ -654,6 +657,20 @@ rm -rf ${RPM_BUILD_ROOT} %{_sbindir}/bind-chroot-admin %changelog +* Mon Feb 11 2008 Adam Tkac 32:9.5.0-26.b2 +- build with -D_GNU_SOURCE (#431734) +- improved fix for #253537, posttrans script is now used +- improved fix for #400461 +- 9.5.0b2 + - bind-9.3.2b1-PIE.patch replaced by bind-9.5-PIE.patch + - only named, named-sdb and lwresd are PIE + - bind-9.5-sdb.patch has been updated + - bind-9.5-libidn.patch has been updated + - bind-9.4.0-sdb-sqlite-bld.patch replaced by bind-9.5-sdb-sqlite-bld.patch + - removed bind-9.5-gssapi-header.patch (upstream) + - removed bind-9.5-CVE-2008-0122.patch (upstream) +- removed bind-9.2.2-nsl.patch + * Mon Feb 04 2008 Adam Tkac 32:9.5.0-25.b1 - fixed segfault during sending notifies (#400461) - rebuild with gcc 4.3 series diff --git a/sources b/sources index 1e27c93..88a7b8c 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -0dcc5331641362447552cb6016c8a9f1 bind-9.5.0b1.tar.gz +d64e5ac8b5d98508b450bf999c33e7df bind-9.5.0b2.tar.gz 4faa4395b955e5f8a3d50f308b9fabc8 bind-chroot.tar.bz2 9c3905b6aece5b4aa0deba6029437483 config-2.tar 13fef79f99fcefebb51d84b08805de51 libbind-man.tar.gz