%global _hardened_build 1 Name: knot-resolver Version: 1.1.1 Release: 3%{?dist} Summary: Caching full DNS Resolver License: GPLv3 URL: https://www.knot-resolver.cz/ Source0: https://secure.nic.cz/files/%{name}/%{name}-%{version}.tar.xz # LuaJIT only on these arches ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 Source1: config Source2: root.keys Source100: kresd.service Source101: kresd.socket Source102: kresd-control.socket Source103: kresd-tls.socket Source104: kresd.tmpfiles BuildRequires: pkgconfig(libknot) >= 2.3 BuildRequires: pkgconfig(libzscanner) BuildRequires: pkgconfig(libdnssec) BuildRequires: pkgconfig(libuv) BuildRequires: pkgconfig(luajit) >= 2.0 BuildRequires: pkgconfig(libmemcached) >= 1.0 BuildRequires: pkgconfig(hiredis) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(cmocka) BuildRequires: pkgconfig(socket_wrapper) BuildRequires: systemd # FIXME: documentation fails to build on Fedora 23 #BuildRequires: doxygen #BuildRequires: breathe #BuildRequires: python-sphinx #BuildRequires: python-sphinx_rtd_theme Requires: lua-socket Requires: lua-sec Requires(pre): shadow-utils Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description The Knot DNS Resolver is a caching full resolver implementation written in C and LuaJIT, including both a resolver library and a daemon. Modular architecture of the library keeps the core tiny and efficient, and provides a state-machine like API for extensions. %package devel Summary: Development headers for Knot DNS Resolver Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The package contains development headers for Knot DNS Resolver. %prep %autosetup rm -v scripts/bootstrap-depends.sh %build %global build_paths PREFIX=%{_prefix} BINDIR=%{_bindir} LIBDIR=%{_libdir} INCLUDEDIR=%{_includedir} ETCDIR=%{_sysconfdir}/kresd %global build_flags V=1 CFLAGS="%{optflags}" LDFLAGS="%{__global_ldflags}" %{build_paths} HAS_go=no make %{?_smp_mflags} %{build_flags} %install %make_install %{build_flags} # move sample configuration files to documentation install -m 0755 -d %{buildroot}%{_pkgdocdir} mv %{buildroot}%{_sysconfdir}/kresd/config.* %{buildroot}%{_pkgdocdir} chmod 0644 %{buildroot}%{_pkgdocdir}/config.* rm -vr %{buildroot}%{_sysconfdir}/kresd # install configuration files mkdir -p %{buildroot}%{_sysconfdir} install -m 0755 -d %{buildroot}%{_sysconfdir}/kresd install -m 0644 -p %SOURCE1 %{buildroot}%{_sysconfdir}/kresd/config install -m 0644 -p %SOURCE2 %{buildroot}%{_sysconfdir}/kresd/root.keys # install systemd units mkdir -p %{buildroot}%{_unitdir} install -m 0644 -p %SOURCE100 %{buildroot}%{_unitdir}/kresd.service install -m 0644 -p %SOURCE101 %{buildroot}%{_unitdir}/kresd.socket install -m 0644 -p %SOURCE102 %{buildroot}%{_unitdir}/kresd-control.socket install -m 0644 -p %SOURCE103 %{buildroot}%{_unitdir}/kresd-tls.socket # install tmpfiles.d mkdir -p %{buildroot}%{_tmpfilesdir} install -m 0644 -p %SOURCE104 %{buildroot}%{_tmpfilesdir}/kresd.conf mkdir -p %{buildroot}%{_rundir} install -m 0750 -d %{buildroot}%{_rundir}/kresd # remove module with unsatisfied dependencies rm -r %{buildroot}%{_libdir}/kdns_modules/{http,http.lua} %check LD_PRELOAD=lib/libkres.so make check %{build_flags} LDFLAGS="%{__global_ldflags} -ldl" %pre getent group kresd >/dev/null || groupadd -r kresd getent passwd kresd >/dev/null || useradd -r -g kresd -d %{_sysconfdir}/kresd -s /sbin/nologin -c "Knot DNS Resolver" kresd exit 0 %post %systemd_post kresd.service /sbin/ldconfig %preun %systemd_preun kresd.service %postun %systemd_postun_with_restart kresd.service /sbin/ldconfig %files %license COPYING %doc %{_pkgdocdir} %attr(755,root,kresd) %dir %{_sysconfdir}/kresd %attr(644,root,kresd) %config(noreplace) %{_sysconfdir}/kresd/config %attr(644,root,kresd) %config(noreplace) %{_sysconfdir}/kresd/root.keys %attr(750,kresd,kresd) %dir %{_rundir}/kresd %{_unitdir}/kresd.service %{_unitdir}/kresd*.socket %{_tmpfilesdir}/kresd.conf %{_sbindir}/kresd %{_libdir}/libkres.so.* %{_libdir}/kdns_modules %{_mandir}/man8/kresd.* %files devel %{_includedir}/libkres %{_libdir}/pkgconfig/libkres.pc %{_libdir}/libkres.so %changelog * Sat Nov 19 2016 Peter Robinson 1.1.1-3 - Add ExclusiveArch for architectures with LuaJIT * Mon Aug 29 2016 Igor Gnatenko - 1.1.1-2 - Rebuild for LuaJIT 2.1.0 * Wed Aug 24 2016 Jan Vcelak - 1.1.1-1 - new upstream release: + fix name server fallback in case some of the servers are unreachable * Fri Aug 12 2016 Jan Vcelak - 1.1.0-1 - new upstream release: + RFC7873 DNS Cookies + RFC7858 DNS over TLS + Metrics exported in Prometheus + DNS firewall module + Explicit CNAME target fetching in strict mode + Query minimisation improvements + Improved integration with systemd * Tue May 31 2016 Jan Vcelak - 1.0.0-1 - final release * Thu May 05 2016 Jan Vcelak - 1.0.0-0.3.4f463d7 - update to latest git version - re-enable unit-test * Sat Apr 09 2016 Jan Vcelak - 1.0.0-0.2.79a8440 - update to latest git version - fix package review issues * Tue Feb 02 2016 Jan Vcelak - 1.0.0-0.1.beta3 - initial package