+# TODO
+# - schema regstering in openldap-schema-bind
#
# Conditional build:
%bcond_without ssl # build without OpenSSL support
%bcond_without ipv6 # build without IPv6 support
%bcond_without ldap # build without LDAP support
+%bcond_without sql # build without SQL support
%bcond_without static_libs # build without static libraries
+%bcond_without tests # perform tests
+%bcond_with hip # build with HIP RR support
#
Summary: BIND - DNS name server
-Summary(de.UTF-8): BIND - DNS-Namenserver
-Summary(es.UTF-8): BIND - Servidor de nombres DNS
-Summary(fr.UTF-8): BIND - serveur de noms DNS
-Summary(pl.UTF-8): BIND - serwer nazw DNS
-Summary(pt_BR.UTF-8): BIND - Servidor de nomes DNS
-Summary(ru.UTF-8): BIND - cервер системы доменных имен (DNS)
-Summary(tr.UTF-8): DNS alan adı sunucusu
-Summary(uk.UTF-8): BIND - cервер системи доменних імен (DNS)
-Summary(zh_CN.UTF-8): Internet 域名服务器
+Summary(de.UTF-8): BIND - DNS-Namenserver
+Summary(es.UTF-8): BIND - Servidor de nombres DNS
+Summary(fr.UTF-8): BIND - serveur de noms DNS
+Summary(pl.UTF-8): BIND - serwer nazw DNS
+Summary(pt_BR.UTF-8): BIND - Servidor de nomes DNS
+Summary(ru.UTF-8): BIND - cервер системы доменных имен (DNS)
+Summary(tr.UTF-8): DNS alan adı sunucusu
+Summary(uk.UTF-8): BIND - cервер системи доменних імен (DNS)
+Summary(zh_CN.UTF-8): Internet 域名服务器
Name: bind
-Version: 9.3.4
-Release: 2
-Epoch: 6
+Version: 9.4.2
+Release: 1
+Epoch: 7
License: BSD-like
Group: Networking/Daemons
Source0: ftp://ftp.isc.org/isc/bind9/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: df5417e7e7cf017fa28b65d0a3d6e999
+# Source0-md5: 57953d7264139b9506b9d66174125179
Source1: %{name}-conf.tar.gz
-# Source1-md5: 8ee77729f806fcd548fe0cceb34b4a06
+# Source1-md5: 14d2c6befe25e68c713a1deb552668cc
Source2: named.init
Source3: named.sysconfig
Source4: named.logrotate
# Source5-md5: 35b1dfaa12615c9802126ee833e0e7f7
Source6: http://www.venaas.no/ldap/bind-sdb/dnszone-schema.txt
# Source6-md5: 49fe799c6eca54ae227b22d57ebc1145
+Source7: %{name}-hip.tar.gz
+# Source7-md5: 62a8a67f51ff8db9fe815205416a1f62
+Source8: ftp://rs.internic.net/domain/named.root
+# Source8-md5: 8c212c0260d708f15f75d3adc71f0149
Patch0: %{name}-time.patch
Patch1: %{name}-autoconf.patch
Patch2: %{name}-includedir-libbind.patch
Patch4: %{name}-pmake.patch
Patch5: %{name}-sdb-ldap.patch
Patch6: %{name}-noinet6.patch
-Patch7: %{name}-idn.patch
+Patch7: %{name}-chroot-numcpus.patch
URL: http://www.isc.org/products/BIND/bind9.html
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: flex
BuildRequires: idnkit-devel
+%{?with_hip:BuildRequires: libxml2-devel}
BuildRequires: libtool
-%{?with_ldap:BuildRequires: openldap-devel}
+%{?with_ldap:BuildRequires: openldap-devel >= 2.4.6}
%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
+%{?with_sql:BuildRequires: mysql-devel}
+%{?with_sql:BuildRequires: postgresql-devel}
+%{?with_sql:BuildRequires: unixODBC-devel}
BuildRequires: rpmbuild(macros) >= 1.268
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Provides: nameserver
Provides: user(named)
Obsoletes: caching-nameserver
-Obsoletes: nameserver
Conflicts: %{name}-chroot
Conflicts: kernel < 2.2.18
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%package utils
Summary: DNS utils - host, dig, dnsquery, nslookup
-Summary(de.UTF-8): DNS-Utils - Host, Dig, Dnsquery, Nslookup
-Summary(es.UTF-8): Utilitarios DNS - host, dig, dnsquery y nslookup
-Summary(fr.UTF-8): Utilitaires DNS - host, dig, dnsquery, nslookup
-Summary(pl.UTF-8): Narzędzia DNS - host, dig, dnsquery, nslookup
-Summary(pt_BR.UTF-8): Utilitários DNS - host, dig, dnsquery e nslookup
-Summary(ru.UTF-8): Утилиты для посылки запросов к серверам DNS
-Summary(tr.UTF-8): DNS araçları - host, dig, dnsquery, nslookup
-Summary(uk.UTF-8): Утиліти для надсилання запитів до серверів DNS
-Summary(zh_CN.UTF-8): Internet 域名服务器实用工具
+Summary(de.UTF-8): DNS-Utils - Host, Dig, Dnsquery, Nslookup
+Summary(es.UTF-8): Utilitarios DNS - host, dig, dnsquery y nslookup
+Summary(fr.UTF-8): Utilitaires DNS - host, dig, dnsquery, nslookup
+Summary(pl.UTF-8): Narzędzia DNS - host, dig, dnsquery, nslookup
+Summary(pt_BR.UTF-8): Utilitários DNS - host, dig, dnsquery e nslookup
+Summary(ru.UTF-8): Утилиты для посылки запросов к серверам DNS
+Summary(tr.UTF-8): DNS araçları - host, dig, dnsquery, nslookup
+Summary(uk.UTF-8): Утиліти для надсилання запитів до серверів DNS
+Summary(zh_CN.UTF-8): Internet 域名服务器实用工具
Group: Networking/Utilities
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: iconv
%package libs
Summary: DNS libraries
-Summary(pl.UTF-8): Biblioteki DNS
-Summary(ru.UTF-8): Библиотеки, необходимые для bind
-Summary(uk.UTF-8): Бібліотеки, необхідні для bind
-Summary(zh_CN.UTF-8): Internet 域名服务器开发库
+Summary(pl.UTF-8): Biblioteki DNS
+Summary(ru.UTF-8): Библиотеки, необходимые для bind
+Summary(uk.UTF-8): Бібліотеки, необхідні для bind
+Summary(zh_CN.UTF-8): Internet 域名服务器开发库
Group: Libraries
%description libs
%package devel
Summary: DNS development includes
-Summary(es.UTF-8): Archivos de inclusión y bibliotecas para desarrollo DNS
-Summary(pl.UTF-8): Pliki nagłówkowe bibliotek DNS
-Summary(pt_BR.UTF-8): Todos os arquivos de cabeçalho e bibliotecas para desenvolvimento DNS
-Summary(ru.UTF-8): Хедеры и библиотеки разработчика для bind
-Summary(uk.UTF-8): Хедери та бібліотеки програміста для bind
+Summary(es.UTF-8): Archivos de inclusión y bibliotecas para desarrollo DNS
+Summary(pl.UTF-8): Pliki nagłówkowe bibliotek DNS
+Summary(pt_BR.UTF-8): Todos os arquivos de cabeçalho e bibliotecas para desenvolvimento DNS
+Summary(ru.UTF-8): Хедеры и библиотеки разработчика для bind
+Summary(uk.UTF-8): Хедери та бібліотеки програміста для bind
Group: Development/Libraries
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
%package static
Summary: DNS static libs
-Summary(pl.UTF-8): Biblioteki statyczne DNS
-Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento DNS
-Summary(ru.UTF-8): Статические библиотеки разработчика для bind
-Summary(uk.UTF-8): Статичні бібліотеки програміста для bind
+Summary(pl.UTF-8): Biblioteki statyczne DNS
+Summary(pt_BR.UTF-8): Bibliotecas estáticas para desenvolvimento DNS
+Summary(ru.UTF-8): Статические библиотеки разработчика для bind
+Summary(uk.UTF-8): Статичні бібліотеки програміста для bind
Group: Development/Libraries
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
Статичні бібліотеки, необхідні для розробки програм з використанням
BIND.
+%package -n openldap-schema-bind
+Summary: BIND schema for openldap
+Summary(pl.UTF-8): Schemat BIND dla openldap
+Group: Development/Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: openldap-servers
+
+%description -n openldap-schema-bind
+BIND schema for openldap.
+
+%description -n openldap-schema-bind -l pl.UTF-8
+Schemat BIND dla openldap.
+
%prep
-%setup -q -a1
+%setup -q -a1 %{?with_hip:-a7}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%{?with_ldap:%patch5 -p1}
%patch6 -p1
%patch7 -p1
+%{?with_hip:mv bind-hip/hip_55.[ch] lib/dns/rdata/generic}
+
+install %{SOURCE8} conf-pld/root.hint
%build
%{__libtoolize}
%{?with_ssl:--with-openssl=%{_prefix}} \
%{?with_ipv6:--enable-ipv6} \
--enable-libbind \
+ %{?with_sql:--with-dlz-postgres=yes} \
+ %{?with_sql:--with-dlz-mysql=yes} \
+ --with-dlz-bdb=no \
+ --with-dlz-filesystem=yes \
+ %{?with_ldap:--with-dlz-ldap=yes} \
+ --with-dlz-odbc=no \
+ --with-dlz-stub=yes \
+ --enable-largefile \
%{!?with_static_libs:--enable-static=no} \
--enable-threads \
- --disable-getifaddrs
+ --enable-getifaddrs=glibc
%{__make}
+%{?with_hip:cd bind-hip/; %{__make}}
+
+%{?with_tests:%{__make} test}
%install
rm -rf $RPM_BUILD_ROOT
ln -sf %{_var}/lib/named/named.log $RPM_BUILD_ROOT%{_var}/log/named
ln -sf %{_var}/lib/named/named.stats $RPM_BUILD_ROOT%{_var}/log/named.stats
-touch $RPM_BUILD_ROOT%{_var}/lib/named/{named.{log,stats},dev/{random,null}}
+touch $RPM_BUILD_ROOT%{_var}/lib/named/named.{log,stats}
%{?with_ldap:install -d $RPM_BUILD_ROOT%{_datadir}/openldap/schema}
%{?with_ldap:install %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/openldap/schema/dnszone.schema}
+%{?with_hip:install bind-hip/hi2dns $RPM_BUILD_ROOT%{_bindir}}
+
+rm -f $RPM_BUILD_ROOT%{_mandir}/man8/named-compilezone.8
+echo ".so man8/named-checkzone.8" > $RPM_BUILD_ROOT%{_mandir}/man8/named-compilezone.8
# we don't want Makefiles in documentation...
# FIXME: breaks re-entrant install
-rm -f doc/misc/Makefile*
+#rm -f doc/misc/Makefile*
%clean
rm -rf $RPM_BUILD_ROOT
%useradd -u 58 -g 58 -d /tmp -s /bin/false -c "BIND user" named
%post
-if [ "$1" = 1 ]; then
- mknod -m 660 %{_var}/lib/named/dev/null c 1 3 2>/dev/null
- chown root:named %{_var}/lib/named/dev/null 2>/dev/null
- mknod -m 640 %{_var}/lib/named/dev/null c 1 8 2>/dev/null
- chown root:named %{_var}/lib/named/dev/random 2>/dev/null
- if [ ! -c %{_var}/lib/named/dev/null ] || [ ! -c %{_var}/lib/named/dev/random ]; then
-%banner -e %{name}-devs <<-EOF
-Device nodes were not created!!!
-
-Please read PLD Linux Vserver FAQ if you're installing %{name} inside
-vserver: <http://www.pld-linux.org/Vserver>.
-EOF
- fi #'
-fi
/sbin/chkconfig --add named
%service named restart
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
+%triggerpostun -- %{name} < 6:9.4.1
+sed -i -e 's#^\([ \t]*category[ \t]\+cname[ \t]\+.*\)$#// \1#g' /var/lib/named/etc/named.conf
+sed -i -e 's#^\([ \t]*category[ \t]\+response-checks[ \t]\+.*\)$#// \1#g' /var/lib/named/etc/named.conf
+sed -i -e 's#^\([ \t]*category[ \t]\+load[ \t]\+.*\)$#// \1#g' /var/lib/named/etc/named.conf
+
%files
%defattr(644,root,root,755)
-%doc README EXAMPLE-CONFIG-* FAQ doc/misc/* doc/arm/*.html doc/rfc/index %{?with_ldap:doc/*.sdb-ldap}
+%doc README EXAMPLE-CONFIG-* FAQ doc/misc/* doc/arm/*.html doc/rfc/index %{?with_ldap:doc/*.sdb-ldap} %{?with_hip:bind-hip/COPYRIGHT-HIP-RR}
%attr(754,root,root) /etc/rc.d/init.d/named
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/named
%attr(755,root,root) %{_sbindir}/*
-%{?with_ldap:%{_datadir}/openldap/schema/*.schema}
-
%{_mandir}/man8/dns*
%{_mandir}/man8/lwres*
%{_mandir}/man8/named*
%attr(660,named,named) %ghost %{_var}/lib/named/named.log
%attr(660,named,named) %ghost %{_var}/lib/named/named.stats
-# devices for chrooted bind
-%attr(750,root,named) %dir %{_var}/lib/named/dev
-%ghost %attr(660,root,named) %{_var}/lib/named/dev/null
-%ghost %attr(640,root,named) %{_var}/lib/named/dev/random
-
%files utils
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/dig
%attr(755,root,root) %{_bindir}/host
%attr(755,root,root) %{_bindir}/nslookup
%attr(755,root,root) %{_bindir}/nsupdate
+%{?with_hip:%attr(755,root,root) %{_bindir}/hi2dns}
%{_mandir}/man1/dig.1*
%{_mandir}/man1/host.1*
%{_mandir}/man1/nslookup.1*
%defattr(644,root,root,755)
%{_libdir}/*.a
%endif
+
+%if %{with ldap}
+%files -n openldap-schema-bind
+%defattr(644,root,root,755)
+%{_datadir}/openldap/schema/*.schema
+%endif