]> git.ipfire.org Git - people/stevee/ipfire-3.x.git/blob - bind/bind.nm
ding-libs: Fix running test suite
[people/stevee/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.9.6-P1
8 release = 2
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 %{name}-config-12.tar.bz2
24
25 build
26 requires
27 autoconf
28 automake
29 chrpath
30 libcap-devel
31 libidn-devel
32 libtool
33 pkg-config
34 openssl-devel >= 1.0.1h-2
35 shadow-utils
36 end
37
38 configure_options += \
39 --with-libtool \
40 --enable-threads \
41 --enable-ipv6 \
42 --with-pic \
43 --disable-static \
44 --disable-openssl-version-check \
45 --enable-exportlib \
46 --with-export-libdir=/%{lib}/ \
47 --with-export-includedir=/usr/include/ \
48 --includedir=/usr/include/bind9/ \
49 --with-pkcs11=%{libdir}/pkcs11/PKCS11_API.so \
50 --with-gssapi \
51 --enable-rrl \
52 --disable-isc-spnego
53
54 prepare
55 cd %{DIR_SRC} && %{MACRO_EXTRACT} %{DIR_DL}/%{thisapp}.tar.gz
56
57 # Create m4 directory.
58 cd %{DIR_APP} && mkdir -pv m4
59
60 # Apply all patches.
61 %{MACRO_PATCHES}
62
63 # Branding.
64 sed -i -e 's/RELEASEVER=\(.*\)/RELEASEVER=\1-%{DISTRO_NAME}-%{version}-%{release}/' version
65
66 # Regenerate build environment
67 libtoolize -c -f
68 aclocal -I m4 --force
69 autoconf -f
70
71 # Create user and group for /run directory.
72 %{create_user}
73 end
74
75 install
76 # Create directory layout.
77 mkdir -pv %{BUILDROOT}%{libdir}/bind
78 mkdir -pv %{BUILDROOT}/var/named/{slaves,data,dynamic}
79 mkdir -pv %{BUILDROOT}/usr/share/man/{man1,man5,man8}
80 mkdir -pv %{BUILDROOT}/run/named
81 mkdir -pv %{BUILDROOT}/var/log
82
83 # Create named chroot environment.
84 mkdir -pv %{BUILDROOT}/var/named/chroot/{dev,etc,var}
85 mkdir -pv %{BUILDROOT}/var/named/chroot/var/{log,named,run/named,tmp}
86 mkdir -pv %{BUILDROOT}/var/named/chroot/etc/{pki/dnssec-keys,named}
87 mkdir -pv %{BUILDROOT}/var/named/chroot/usr/lib/bind
88 mkdir -pv %{BUILDROOT}/var/named/chroot/dev/null
89 mkdir -pv %{BUILDROOT}/var/named/chroot/dev/random
90 mkdir -pv %{BUILDROOT}/var/named/chroot/dev/zero
91 mkdir -pv %{BUILDROOT}/var/named/chroot/etc/localtime
92
93 touch %{BUILDROOT}/var/named/chroot/etc/named.conf
94
95 # Run make install
96 make DESTDIR=%{BUILDROOT} install
97
98 # Remove RPATH from libraries.
99 chrpath --delete %{BUILDROOT}/lib*/*export*.so.*
100
101 # Remove unwanted files
102 rm -rvf %{BUILDROOT}/etc/bind.keys
103
104 # Create ghost config files
105 touch %{BUILDROOT}/var/log/named.log
106
107 # Configuration files
108 tar -C %{BUILDROOT} -xaf %{DIR_DL}/bind-config-12.tar.bz2
109 touch %{BUILDROOT}/etc/rndc.key
110 touch %{BUILDROOT}/etc/rndc.conf
111
112 mkdir %{BUILDROOT}/etc/named
113 install -m 644 bind.keys %{BUILDROOT}/etc/named.iscdlv.key
114 install -m 644 %{DIR_SOURCE}/trusted-key.key %{BUILDROOT}/etc/trusted-key.key
115
116 # Recreate symlinks for export libraries
117 rm -rf %{BUILDROOT}/%{lib}/lib*-export.so
118
119 ln -svf ../../%{lib}/libdns-export.so.104 %{BUILDROOT}%{libdir}/libdns-export.so
120 ln -svf ../../%{lib}/libirs-export.so.91 %{BUILDROOT}%{libdir}/libirs-export.so
121 ln -svf ../../%{lib}/libisccfg-export.so.90 %{BUILDROOT}%{libdir}/libisccfg-export.so
122 ln -svf ../../%{lib}/libisc-export.so.95 %{BUILDROOT}%{libdir}/libisc-export.so
123
124 # Create /run/named.
125 mkdir -pv %{BUILDROOT}/run/named
126 chown -Rv named.named %{BUILDROOT}/run/named/
127 end
128 end
129
130 create_user
131 getent group named >/dev/null || /usr/sbin/groupadd -r named
132 getent passwd named >/dev/null || /usr/sbin/useradd -r -g named \
133 -d /var/named -c "User for bind DNS server" -s /sbin/nologin named
134 end
135
136 packages
137 package %{name}
138 requires
139 bind-utils
140 bind-chroot
141 end
142
143 prerequires += shadow-utils
144
145 script prein
146 %{create_user}
147 end
148
149 # XXX Add systemd scriptlet if a service file becomes available
150 end
151
152 package %{name}-utils
153 summary = Utilities for querying bind DNS name server.
154 description = %{summary}
155
156 files
157 /usr/bin/dig
158 /usr/bin/host
159 /usr/bin/nslookup
160 /usr/bin/nsupdate
161 /usr/share/man/man1/dig.1*
162 /usr/share/man/man1/host.1*
163 /usr/share/man/man1/nslookup.1*
164 /usr/share/man/man1/nsupdate.1*
165 end
166 end
167
168 package %{name}-chroot
169 summary = Chroot environment for bind DNS servers.
170 description = %{summary}
171
172 files
173 /var/named/chroot
174 end
175 end
176
177 package %{name}-libs
178 template LIBS
179 end
180
181 package %{name}-devel
182 template DEVEL
183 end
184
185 package %{name}-debuginfo
186 template DEBUGINFO
187 end
188 end