]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blob - bind/bind.nm
Merge remote-tracking branch 'maniacikarus/ids'
[people/ms/ipfire-3.x.git] / bind / bind.nm
1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
5
6 name = bind
7 version = 9.8.1
8 release = 3
9
10 groups = Networking/Tools
11 url = http://www.isc.org/products/BIND/
12 license = Proprietary
13 summary = BIND provides tools for the DNS.
14
15 description
16 BIND (Berkeley Internet Name Domain or named) is the most commonly used
17 DNS server on the Internet, especially on Unix-like systems.
18 end
19
20 source_dl = ftp://ftp.isc.org/isc/bind/%{version}/
21
22 sources = \
23 bind-9.8.1.tar.gz \
24 bind-config-8.tar.bz2
25
26 # Apply patches in a special order.
27 patches = \
28 bind-nonexec.patch \
29 bind-9.5-PIE.patch \
30 bind-9.3.2-redhat_doc.patch \
31 bind-96-dyndb.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 \
52 bind98-rh735103.patch
53
54 build
55 requires
56 autoconf
57 automake
58 chrpath
59 db4-devel
60 libtool
61 libcap-devel
62 libidn-devel
63 pkg-config
64 openssl-devel
65 shadow-utils
66 end
67
68 configure_options += \
69 --with-libtool \
70 --sysconfdir=/etc \
71 --localstatedir=/var \
72 --enable-threads \
73 --enable-ipv6 \
74 --with-pic \
75 --disable-static \
76 --disable-openssl-version-check \
77 --enable-exportlib \
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 \
82 --with-gssapi=yes \
83 --disable-isc-spnego
84
85 prepare
86 cd %{DIR_SRC} && %{MACRO_EXTRACT} %{DIR_DL}/%{thisapp}.tar.gz
87
88 # Create m4 directory.
89 cd %{DIR_APP} && mkdir -pv m4
90
91 # Apply all patches.
92 %{MACRO_PATCHES}
93
94 # Branding.
95 sed -i -e 's/RELEASEVER=\(.*\)/RELEASEVER=\1-%{DISTRO_NAME}-%{version}-%{release}/' version
96
97 # Regenerate build environment
98 libtoolize -c -f
99 aclocal -I m4 --force
100 autoconf -f
101
102 # Create user and group for /run directory.
103 %{create_user}
104 end
105
106 install
107 # Compress doc files.
108 gzip -9 doc/rfc/*
109
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
116
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
126
127 touch %{BUILDROOT}/var/named/chroot/etc/named.conf
128
129 # Run make install
130 make DESTDIR=%{BUILDROOT} install
131
132 # Remove RPATH from libraries.
133 chrpath --delete %{BUILDROOT}/lib*/*export*.so.*
134
135 # Remove unwanted files
136 rm -rvf %{BUILDROOT}/etc/bind.keys
137
138 # Create ghost config files
139 touch %{BUILDROOT}/var/log/named.log
140
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
145
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
149
150 # Recreate symlinks for export libraries
151 rm -rf %{BUILDROOT}/lib/lib*-export.so
152
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
157
158 # Create /run/named.
159 mkdir -pv %{BUILDROOT}/run/named
160 chown -Rv named.named %{BUILDROOT}/run/named/
161 end
162 end
163
164 create_user
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
168 end
169
170 packages
171 package %{name}
172 requires
173 bind-utils
174 bind-chroot
175 end
176
177 prerequires += shadow-utils
178
179 script prein
180 %{create_user}
181 end
182
183 # XXX Add systemd scriptlet if a service file becomes available
184 end
185
186 package %{name}-utils
187 summary = Utilities for querying bind DNS name server.
188 description = %{summary}
189
190 files
191 /usr/bin/dig
192 /usr/bin/host
193 /usr/bin/nslookup
194 /usr/bin/nsupdate
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*
199 end
200 end
201
202 package %{name}-chroot
203 summary = Chroot environment for bind DNS servers.
204 description = %{summary}
205
206 files
207 /var/named/chroot
208 end
209 end
210
211 package %{name}-libs
212 template LIBS
213 end
214
215 package %{name}-devel
216 template DEVEL
217 end
218 end