+# FIXME:
+# - stop using nobody group
#
# Conditional build:
-%bcond_without python # Python binding
-%bcond_with dnstap # dnstap replication support
-%bcond_with systemd # systemd support
+%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.6.4
+Version: 1.19.3
Release: 1
License: BSD
Group: Applications/Network
-Source0: http://www.unbound.net/downloads/%{name}-%{version}.tar.gz
-# Source0-md5: ab6f7c07610907f1d87191c9ac2db87a
+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: 24a426d59b61524623695f1b849f159b
+# Source3-md5: d00ef4e253e99e93ee020da5ad5e7d9a
Source4: ftp://ftp.internic.net/domain/named.cache
-# Source4-md5: 153ae04e1f10021385681f44a6ebc0f7
+# Source4-md5: a551fabe906ec055e7f563276dad9c35
Patch0: %{name}-default_trust_anchor.patch
Patch1: %{name}-sh.patch
-Patch2: %{name}-pythondir.patch
-Patch3: %{name}-flex.patch
URL: http://unbound.net/
BuildRequires: autoconf >= 2.56
BuildRequires: automake
BuildRequires: bison
-BuildRequires: expat-devel
+BuildRequires: expat-devel >= 1.95
BuildRequires: flex
%{?with_dnstap:BuildRequires: fstrm-devel}
+%{?with_redis:BuildRequires: hiredis-devel}
BuildRequires: libevent-devel
+%{?with_dnscrypt:BuildRequires: libsodium-devel}
BuildRequires: libtool
-BuildRequires: openssl-devel >= 1.0
+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(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
Summary(pl.UTF-8): Pliki nagłówkowe biblioteki unbound
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
-Requires: openssl-devel
+Requires: openssl-devel >= 1.0.0
%description devel
Header files for 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
-%patch2 -p1
-%patch3 -p1
%build
%{__libtoolize}
%{__autoconf}
%{__autoheader}
%configure \
+ PYTHON=%{__python3} \
+ %{?with_dnscrypt:--enable-dnscrypt} \
%{?with_dnstap:--enable-dnstap} \
%{?with_systemd:--enable-systemd} \
- %{__with_without python pyunbound} \
- %{__with_without python pythonmodule} \
- --with-pidfile=/run/%{name}.pid \
--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,%{systemdunitdir},/var/lib/%{name}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
-install %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
-install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/icannbundle.pem
-install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/named.cache
+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
-%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
%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
%{systemdunitdir}/%{name}.service
-%dir %{_sysconfdir}/%{name}
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/unbound.conf
+%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
%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*
%{_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]
-%{py_sitedir}/unboundmodule.py[co]
+%attr(755,root,root) %{py3_sitedir}/_unbound.so*
+%{py3_sitedir}/__pycache__/unbound*.pyc
+%{py3_sitedir}/unbound.py
+%{py3_sitedir}/unboundmodule.py
%endif