]> git.pld-linux.org Git - packages/unbound.git/blob - unbound.spec
S: openssl-tools for unbound-control-setup
[packages/unbound.git] / unbound.spec
1 # FIXME:
2 # - stop using nobody group
3 #
4 # Conditional build:
5 %bcond_without  python          # Python binding
6 %bcond_with     dnscrypt        # dnscrypt support
7 %bcond_with     dnstap          # dnstap replication support
8 %bcond_with     redis           # cachedb support for redis (using hiredis)
9 %bcond_with     systemd         # systemd support
10 %bcond_without  tests           # unit tests
11 #
12 Summary:        Recursive, validating DNS resolver
13 Summary(pl.UTF-8):      Rekurencyjny, weryfikujący resolver DNS
14 Name:           unbound
15 Version:        1.13.1
16 Release:        2
17 License:        BSD
18 Group:          Applications/Network
19 Source0:        https://www.unbound.net/downloads/%{name}-%{version}.tar.gz
20 # Source0-md5:  0cd660a40d733acc6e7cce43731cac62
21 Source1:        %{name}.init
22 Source2:        %{name}.service
23 Source3:        https://data.iana.org/root-anchors/icannbundle.pem
24 # Source3-md5:  24a426d59b61524623695f1b849f159b
25 Source4:        ftp://ftp.internic.net/domain/named.cache
26 # Source4-md5:  d83d7308d4bdadc3d82ec9d73ef8df36
27 Patch0:         %{name}-default_trust_anchor.patch
28 Patch1:         %{name}-sh.patch
29 Patch2:         %{name}-pythondir.patch
30 Patch3:         %{name}-flex.patch
31 URL:            http://unbound.net/
32 BuildRequires:  autoconf >= 2.56
33 BuildRequires:  automake
34 BuildRequires:  bison
35 BuildRequires:  expat-devel >= 1.95
36 BuildRequires:  flex
37 %{?with_dnstap:BuildRequires:   fstrm-devel}
38 %{?with_redis:BuildRequires:    hiredis-devel}
39 BuildRequires:  libevent-devel
40 %{?with_dnscrypt:BuildRequires: libsodium-devel}
41 BuildRequires:  libtool
42 BuildRequires:  openssl-devel >= 1.0.0
43 %{?with_dnstap:BuildRequires:   protobuf-c-devel}
44 BuildRequires:  rpmbuild(macros) >= 1.671
45 %{?with_systemd:BuildRequires:  systemd-devel}
46 %if %{with python}
47 BuildRequires:  python3-devel
48 BuildRequires:  swig-python >= 2.0.1
49 %endif
50 Provides:       user(unbound)
51 Requires(post,preun):   /sbin/chkconfig
52 Requires(postun):       /usr/sbin/userdel
53 Requires(pre):  /bin/id
54 Requires(pre):  /usr/sbin/useradd
55 Requires:       systemd-units >= 38
56 Requires:       %{name}-libs = %{version}-%{release}
57 Suggests:       openssl-tools
58 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59
60 %description
61 Unbound is a validating, recursive, and caching DNS resolver.
62
63 The C implementation of Unbound is developed and maintained by NLnet
64 Labs. It is based on ideas and algorithms taken from a Java prototype
65 developed by Verisign labs, Nominet, Kirei and ep.net.
66
67 Unbound is designed as a set of modular components, so that also
68 DNSSEC (secure DNS) validation and stub-resolvers (that do not run as
69 a server, but are linked into an application) are easily possible.
70
71 %description -l pl.UTF-8
72 Unbound to weryfikujący, rekurencyjny i cache'ujący resolver (kod
73 rozwiązujący nazwy) DNS.
74
75 Implementacja Unbound w C jest tworzona i utrzymywana przez NLnet
76 Labs. Jest oparta na pomysłach i algorytmach zaczerpniętych z
77 prototypu w Javie stworzonego przez Verisign Labs, Nominet, Kirei oraz
78 ep.net.
79
80 Unbound został zaprojektowany jako zbiór modularnych komponentów, więc
81 możliwe są także weryfikacja DNSSEC (bezpieczny DNS) oraz
82 resolvery-zaślepki (nie działające jako serwer, ale wbudowane w
83 aplikację).
84
85 %package libs
86 Summary:        Unbound shared library
87 Summary(pl.UTF-8):      Biblioteka współdzielona Unbound
88 Group:          Libraries
89 Conflicts:      unbound < 1.4.18-1
90
91 %description libs
92 Unbound shared library.
93
94 %description libs -l pl.UTF-8
95 Biblioteka współdzielona Unbound.
96
97 %package devel
98 Summary:        Header files for unbound library
99 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki unbound
100 Group:          Development/Libraries
101 Requires:       %{name}-libs = %{version}-%{release}
102 Requires:       openssl-devel >= 1.0.0
103
104 %description devel
105 Header files for unbound library.
106
107 %description devel -l pl.UTF-8
108 Pliki nagłówkowe biblioteki unbound.
109
110 %package static
111 Summary:        Static unbound library
112 Summary(pl.UTF-8):      Statyczna biblioteka unbound
113 Group:          Development/Libraries
114 Requires:       %{name}-devel = %{version}-%{release}
115
116 %description static
117 Static unbound library.
118
119 %description static -l pl.UTF-8
120 Statyczna biblioteka unbound.
121
122 %package -n python3-unbound
123 Summary:        Python interface to unbound library
124 Summary(pl.UTF-8):      Pythonowy interfejs do biblioteki unbound
125 Group:          Libraries/Python
126 Requires:       %{name}-libs = %{version}-%{release}
127 Obsoletes:      python-unbound < 1.13.1-2
128
129 %description -n python3-unbound
130 Python interface to unbound library.
131
132 %description -n python3-unbound -l pl.UTF-8
133 Pythonowy interfejs do biblioteki unbound.
134
135 %prep
136 %setup -q
137 %patch0 -p1
138 %patch1 -p1
139 %patch2 -p1
140 %patch3 -p1
141
142 %build
143 %{__libtoolize}
144 %{__aclocal}
145 %{__autoconf}
146 %{__autoheader}
147 %configure \
148         PYTHON=%{__python3} \
149         %{?with_dnscrypt:--enable-dnscrypt} \
150         %{?with_dnstap:--enable-dnstap} \
151         %{?with_systemd:--enable-systemd} \
152         --with-chroot-dir="" \
153         --with-conf-file=%{_sysconfdir}/%{name}/%{name}.conf \
154         --with-libevent=/usr \
155         --with-libexpat=/usr \
156         %{?with_redis:--with-libhiredis=/usr} \
157         --with-pidfile=/run/%{name}.pid \
158         %{__with_without python pyunbound} \
159         %{__with_without python pythonmodule} \
160         --with-rootkey-file=/var/lib/%{name}/root.key \
161         --with-rootcert-file=%{_sysconfdir}/%{name}/icannbundle.pem
162
163 %{__make}
164
165 %if %{with tests}
166 %{__make} check
167 %endif
168
169 %install
170 rm -rf $RPM_BUILD_ROOT
171 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir},/var/lib/%{name}}
172
173 %{__make} install \
174         DESTDIR=$RPM_BUILD_ROOT
175
176 cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
177 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
178 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/icannbundle.pem
179 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/named.cache
180
181 touch $RPM_BUILD_ROOT/var/lib/%{name}/root.key
182
183 # obsoleted by pkg-config
184 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libunbound.la
185
186 %if %{with python}
187 %{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/_unbound.la
188 %py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
189 %py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
190 %endif
191
192 %clean
193 rm -rf $RPM_BUILD_ROOT
194
195 %post
196 /sbin/chkconfig --add %{name}
197 %systemd_post %{name}.service
198 %service %{name} restart
199
200 %pre
201 %useradd -u 196 -g 99 -d /tmp -s /bin/false -c "unbound user" unbound
202
203 %preun
204 if [ "$1" = "0" ]; then
205         %service -q %{name} stop
206         /sbin/chkconfig --del %{name}
207 fi
208 %systemd_preun %{name}.service
209
210 %postun
211 if [ "$1" = "0" ]; then
212         %userremove unbound
213 fi
214 %systemd_reload
215
216 %triggerpostun -- %{name} < 1.4.22-1
217 %systemd_trigger %{name}.service
218
219 %post   libs -p /sbin/ldconfig
220 %postun libs -p /sbin/ldconfig
221
222 %files
223 %defattr(644,root,root,755)
224 %doc doc/{CREDITS,Changelog,FEATURES,LICENSE,README,TODO,control_proto_spec.txt,example.conf,ietf67-design-02.pdf,requirements.txt}
225 %attr(754,root,root) /etc/rc.d/init.d/unbound
226 %{systemdunitdir}/%{name}.service
227 %dir %{_sysconfdir}/%{name}
228 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/unbound.conf
229 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/named.cache
230 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/icannbundle.pem
231 %attr(755,root,root) %{_sbindir}/unbound
232 %attr(755,root,root) %{_sbindir}/unbound-anchor
233 %attr(755,root,root) %{_sbindir}/unbound-checkconf
234 %attr(755,root,root) %{_sbindir}/unbound-control*
235 %attr(755,root,root) %{_sbindir}/unbound-host
236 %{_mandir}/man1/unbound-host.1*
237 %{_mandir}/man5/unbound.conf.5*
238 %{_mandir}/man8/unbound-checkconf.8*
239 %{_mandir}/man8/unbound.8*
240 %{_mandir}/man8/unbound-anchor.8*
241 %{_mandir}/man8/unbound-control*.8*
242 %dir %attr(755,unbound,nobody) /var/lib/%{name}
243 %ghost /var/lib/%{name}/root.key
244
245 %files libs
246 %defattr(644,root,root,755)
247 %attr(755,root,root) %{_libdir}/libunbound.so.*.*.*
248 %attr(755,root,root) %ghost %{_libdir}/libunbound.so.8
249
250 %files devel
251 %defattr(644,root,root,755)
252 %attr(755,root,root) %{_libdir}/libunbound.so
253 %{_pkgconfigdir}/libunbound.pc
254 %{_includedir}/unbound.h
255 %{_mandir}/man3/libunbound.3*
256 %{_mandir}/man3/ub_*.3*
257
258 %files static
259 %defattr(644,root,root,755)
260 %{_libdir}/libunbound.a
261
262 %if %{with python}
263 %files -n python3-unbound
264 %defattr(644,root,root,755)
265 %attr(755,root,root) %{py3_sitedir}/_unbound.so*
266 %{py3_sitedir}/__pycache__/unbound*.pyc
267 %{py3_sitedir}/unbound.py
268 %{py3_sitedir}/unboundmodule.py
269 %endif
This page took 0.095862 seconds and 4 git commands to generate.