1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
10 groups = Networking/Tools
11 url = http://www.isc.org/products/BIND/
13 summary = BIND provides tools for the DNS.
16 BIND (Berkeley Internet Name Domain or named) is the most commonly used
17 DNS server on the Internet, especially on Unix-like systems.
20 source_dl = ftp://ftp.isc.org/isc/bind/%{version}/
26 # Apply patches in a special order.
30 bind-9.3.2-redhat_doc.patch \
32 bind98-rh725741.patch \
33 bind-9.5-overflow.patch \
34 bind-9.5-dlz-64bit.patch \
35 bind-9.5-libidn.patch \
36 bind-9.5-libidn2.patch \
37 bind-9.5-libidn3.patch \
38 bind-9.5-parallel-build.patch \
39 bind95-rh461409.patch\
40 bind-96-libtool2.patch \
41 bind-95-rh452060.patch \
42 bind97-dist-pkcs11.patch \
43 bind97-rh478718.patch \
44 bind97-rh570851.patch \
45 bind97-exportlib.patch \
46 bind97-rh645544.patch \
47 bind97-rh699951.patch \
48 bind97-rh693982.patch \
49 bind97-rh700097.patch \
50 bind97-rh714049.patch \
51 bind98-dlz_buildfix.patch \
68 configure_options += \
71 --localstatedir=/var \
76 --disable-openssl-version-check \
78 --with-export-libdir=/lib/ \
79 --with-export-includedir=/usr/include/ \
80 --includedir=/usr/include/bind9/ \
81 --with-pkcs11=/usr/lib/pkcs11/PKCS11_API.so \
86 cd %{DIR_SRC} && %{MACRO_EXTRACT} %{DIR_DL}/%{thisapp}.tar.gz
88 # Create m4 directory.
89 cd %{DIR_APP} && mkdir -pv m4
95 sed -i -e 's/RELEASEVER=\(.*\)/RELEASEVER=\1-%{DISTRO_NAME}-%{version}-%{release}/' version
97 # Regenerate build environment
102 # Create user and group for /run directory.
107 # Compress doc files.
110 # Create directory layout.
111 mkdir -pv %{BUILDROOT}/usr/lib/bind
112 mkdir -pv %{BUILDROOT}/var/named/{slaves,data,dynamic}
113 mkdir -pv %{BUILDROOT}/usr/share/man/{man1,man5,man8}
114 mkdir -pv %{BUILDROOT}/run/named
115 mkdir -pv %{BUILDROOT}/var/log
117 # Create named chroot environment.
118 mkdir -pv %{BUILDROOT}/var/named/chroot/{dev,etc,var}
119 mkdir -pv %{BUILDROOT}/var/named/chroot/var/{log,named,run/named,tmp}
120 mkdir -pv %{BUILDROOT}/var/named/chroot/etc/{pki/dnssec-keys,named}
121 mkdir -pv %{BUILDROOT}/var/named/chroot/usr/lib/bind
122 mkdir -pv %{BUILDROOT}/var/named/chroot/dev/null
123 mkdir -pv %{BUILDROOT}/var/named/chroot/dev/random
124 mkdir -pv %{BUILDROOT}/var/named/chroot/dev/zero
125 mkdir -pv %{BUILDROOT}/var/named/chroot/etc/localtime
127 touch %{BUILDROOT}/var/named/chroot/etc/named.conf
130 make DESTDIR=%{BUILDROOT} install
132 # Remove RPATH from libraries.
133 chrpath --delete %{BUILDROOT}/lib*/*export*.so.*
135 # Remove unwanted files
136 rm -rvf %{BUILDROOT}/etc/bind.keys
138 # Create ghost config files
139 touch %{BUILDROOT}/var/log/named.log
141 # Configuration files
142 tar -C %{BUILDROOT} -xaf %{DIR_DL}/bind-config-8.tar.bz2
143 touch %{BUILDROOT}/etc/rndc.key
144 touch %{BUILDROOT}/etc/rndc.conf
146 mkdir %{BUILDROOT}/etc/named
147 install -m 644 bind.keys %{BUILDROOT}/etc/named.iscdlv.key
148 install -m 644 %{DIR_SOURCE}/trusted-key.key %{BUILDROOT}/etc/trusted-key.key
150 # Recreate symlinks for export libraries
151 rm -rf %{BUILDROOT}/lib/lib*-export.so
153 ln -svf ../../lib/libdns-export.so.81 %{BUILDROOT}/usr/lib/libdns-export.so
154 ln -svf ../../lib/libirs-export.so.80 %{BUILDROOT}/usr/lib/libirs-export.so
155 ln -svf ../../lib/libisccfg-export.so.82 %{BUILDROOT}/usr/lib/libisccfg-export.so
156 ln -svf ../../lib/libisc-export.so.83 %{BUILDROOT}/usr/lib/libisc-export.so
159 mkdir -pv %{BUILDROOT}/run/named
160 chown -Rv named.named %{BUILDROOT}/run/named/
165 getent group named >/dev/null || /usr/sbin/groupadd -r named
166 getent passwd named >/dev/null || /usr/sbin/useradd -r -g named \
167 -d /var/named -c "User for bind DNS server" -s /sbin/nologin named
177 prerequires += shadow-utils
183 # XXX Add systemd scriptlet if a service file becomes available
186 package %{name}-utils
187 summary = Utilities for querying bind DNS name server.
188 description = %{summary}
195 /usr/share/man/man1/dig.1*
196 /usr/share/man/man1/host.1*
197 /usr/share/man/man1/nslookup.1*
198 /usr/share/man/man1/nsupdate.1*
202 package %{name}-chroot
203 summary = Chroot environment for bind DNS servers.
204 description = %{summary}
215 package %{name}-devel