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