X-Git-Url: https://git.pld-linux.org/?p=packages%2Funbound.git;a=blobdiff_plain;f=unbound.spec;h=cc945f74037cb19475b4a3331c93643fc7d37885;hp=8af81b38285af6563b79cfa35f844a17b017913d;hb=HEAD;hpb=379d3e5e4db8cd5c694b4f2db101db45be4a43b5 diff --git a/unbound.spec b/unbound.spec index 8af81b3..4b4be9e 100644 --- a/unbound.spec +++ b/unbound.spec @@ -1,29 +1,60 @@ +# FIXME: +# - stop using nobody group # # Conditional build: -%bcond_without python # Python binding +%bcond_without python # Python binding +%bcond_with dnscrypt # dnscrypt support +%bcond_with dnstap # dnstap replication support +%bcond_with redis # cachedb support for redis (using hiredis) +%bcond_with systemd # systemd support +%bcond_without tests # unit tests # Summary: Recursive, validating DNS resolver Summary(pl.UTF-8): Rekurencyjny, weryfikujący resolver DNS Name: unbound -Version: 1.4.21 +Version: 1.19.3 Release: 1 License: BSD Group: Applications/Network -Source0: http://www.unbound.net/downloads/%{name}-%{version}.tar.gz -# Source0-md5: 0aa8db06ea784bf7879060bd1f6551c8 +Source0: https://www.unbound.net/downloads/%{name}-%{version}.tar.gz +# Source0-md5: 00bf61460c87c2542bcb68d52a2e5195 Source1: %{name}.init +Source2: %{name}.service +Source3: https://data.iana.org/root-anchors/icannbundle.pem +# Source3-md5: d00ef4e253e99e93ee020da5ad5e7d9a +Source4: ftp://ftp.internic.net/domain/named.cache +# Source4-md5: a551fabe906ec055e7f563276dad9c35 +Patch0: %{name}-default_trust_anchor.patch +Patch1: %{name}-sh.patch URL: http://unbound.net/ -BuildRequires: expat-devel -BuildRequires: ldns-devel >= 1.6.9 +BuildRequires: autoconf >= 2.56 +BuildRequires: automake +BuildRequires: bison +BuildRequires: expat-devel >= 1.95 +BuildRequires: flex +%{?with_dnstap:BuildRequires: fstrm-devel} +%{?with_redis:BuildRequires: hiredis-devel} BuildRequires: libevent-devel -BuildRequires: openssl-devel -BuildRequires: rpmbuild(macros) >= 1.228 +%{?with_dnscrypt:BuildRequires: libsodium-devel} +BuildRequires: libtool +BuildRequires: linux-libc-headers >= 7:2.6.30 +BuildRequires: openssl-devel >= 1.0.0 +%{?with_dnstap:BuildRequires: protobuf-c-devel} +BuildRequires: rpmbuild(macros) >= 1.671 +%{?with_systemd:BuildRequires: systemd-devel} %if %{with python} -BuildRequires: python-devel >= 1:2.4.0 -BuildRequires: swig-python +BuildRequires: python3-devel +BuildRequires: python3-modules +BuildRequires: swig-python >= 2.0.1 %endif +Provides: user(unbound) Requires(post,preun): /sbin/chkconfig +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/sbin/useradd +Requires: systemd-units >= 38 Requires: %{name}-libs = %{version}-%{release} +Suggests: openssl-tools BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -68,8 +99,7 @@ Summary: Header files for unbound library Summary(pl.UTF-8): Pliki nagłówkowe biblioteki unbound Group: Development/Libraries Requires: %{name}-libs = %{version}-%{release} -Requires: ldns-devel -Requires: openssl-devel +Requires: openssl-devel >= 1.0.0 %description devel Header files for unbound library. @@ -89,39 +119,72 @@ Static unbound library. %description static -l pl.UTF-8 Statyczna biblioteka unbound. -%package -n python-unbound +%package -n python3-unbound Summary: Python interface to unbound library Summary(pl.UTF-8): Pythonowy interfejs do biblioteki unbound -Group: Python/Libraries +Group: Libraries/Python Requires: %{name}-libs = %{version}-%{release} +Obsoletes: python-unbound < 1.13.1-2 -%description -n python-unbound +%description -n python3-unbound Python interface to unbound library. -%description -n python-unbound -l pl.UTF-8 +%description -n python3-unbound -l pl.UTF-8 Pythonowy interfejs do biblioteki unbound. %prep %setup -q +%patch0 -p1 +%patch1 -p1 %build +%{__libtoolize} +%{__aclocal} +%{__autoconf} +%{__autoheader} %configure \ - %{?with_python:--with-pyunbound} + PYTHON=%{__python3} \ + %{?with_dnscrypt:--enable-dnscrypt} \ + %{?with_dnstap:--enable-dnstap} \ + %{?with_systemd:--enable-systemd} \ + --with-chroot-dir="" \ + --with-conf-file=%{_sysconfdir}/%{name}/%{name}.conf \ + --with-libevent=/usr \ + --with-libexpat=/usr \ + %{?with_redis:--with-libhiredis=/usr} \ + --with-pidfile=/run/%{name}.pid \ + %{__with_without python pyunbound} \ + %{__with_without python pythonmodule} \ + --with-rootkey-file=/var/lib/%{name}/root.key \ + --with-rootcert-file=%{_sysconfdir}/%{name}/icannbundle.pem + %{__make} +%if %{with tests} +%{__make} check +%endif + %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT/etc/rc.d/init.d -install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} +install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir},/var/lib/%{name}} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT +cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} +cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service +cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/icannbundle.pem +cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/named.cache + +touch $RPM_BUILD_ROOT/var/lib/%{name}/root.key + +# obsoleted by pkg-config +%{__rm} $RPM_BUILD_ROOT%{_libdir}/libunbound.la + %if %{with python} -%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/_unbound.{la,a} -%py_comp $RPM_BUILD_ROOT%{py_sitedir} -%py_ocomp $RPM_BUILD_ROOT%{py_sitedir} -%py_postclean +%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/_unbound.la +%py3_comp $RPM_BUILD_ROOT%{py3_sitedir} +%py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir} %endif %clean @@ -129,13 +192,27 @@ rm -rf $RPM_BUILD_ROOT %post /sbin/chkconfig --add %{name} +%systemd_post %{name}.service %service %{name} restart +%pre +%useradd -u 196 -g 99 -d /tmp -s /bin/false -c "unbound user" unbound + %preun if [ "$1" = "0" ]; then %service -q %{name} stop /sbin/chkconfig --del %{name} fi +%systemd_preun %{name}.service + +%postun +if [ "$1" = "0" ]; then + %userremove unbound +fi +%systemd_reload + +%triggerpostun -- %{name} < 1.4.22-1 +%systemd_trigger %{name}.service %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig @@ -144,8 +221,11 @@ fi %defattr(644,root,root,755) %doc doc/{CREDITS,Changelog,FEATURES,LICENSE,README,TODO,control_proto_spec.txt,example.conf,ietf67-design-02.pdf,requirements.txt} %attr(754,root,root) /etc/rc.d/init.d/unbound -%dir %{_sysconfdir}/%{name} -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/unbound.conf +%{systemdunitdir}/%{name}.service +%attr(751,unbound,root) %dir %{_sysconfdir}/%{name} +%attr(640,unbound,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/unbound.conf +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/named.cache +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/icannbundle.pem %attr(755,root,root) %{_sbindir}/unbound %attr(755,root,root) %{_sbindir}/unbound-anchor %attr(755,root,root) %{_sbindir}/unbound-checkconf @@ -157,16 +237,18 @@ fi %{_mandir}/man8/unbound.8* %{_mandir}/man8/unbound-anchor.8* %{_mandir}/man8/unbound-control*.8* +%dir %attr(755,unbound,nobody) /var/lib/%{name} +%ghost /var/lib/%{name}/root.key %files libs %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libunbound.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libunbound.so.2 +%attr(755,root,root) %ghost %{_libdir}/libunbound.so.8 %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libunbound.so -%{_libdir}/libunbound.la +%{_pkgconfigdir}/libunbound.pc %{_includedir}/unbound.h %{_mandir}/man3/libunbound.3* %{_mandir}/man3/ub_*.3* @@ -176,8 +258,10 @@ fi %{_libdir}/libunbound.a %if %{with python} -%files -n python-unbound +%files -n python3-unbound %defattr(644,root,root,755) -%attr(755,root,root) %{py_sitedir}/_unbound.so* -%{py_sitedir}/unbound.py[co] +%attr(755,root,root) %{py3_sitedir}/_unbound.so* +%{py3_sitedir}/__pycache__/unbound*.pyc +%{py3_sitedir}/unbound.py +%{py3_sitedir}/unboundmodule.py %endif