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