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