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