From e977454e8fed2d68adcee20f155d1497989a467a Mon Sep 17 00:00:00 2001 From: Jan Vcelak Date: May 05 2016 12:18:06 +0000 Subject: package import --- diff --git a/.gitignore b/.gitignore index e69de29..a81dd0d 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/knot-resolver-*.tar.xz diff --git a/config b/config new file mode 100644 index 0000000..805b719 --- /dev/null +++ b/config @@ -0,0 +1,23 @@ +-- vim:syntax=lua: +-- Refer to manual: http://knot-resolver.readthedocs.org/en/latest/daemon.html#configuration + +-- Listen on local interfaces +net = { '127.0.0.1', '::1' } + +-- Drop root privileges (unprivileged after this point) +user('kresd', 'kresd') + +-- DNSSEC root TA +trust_anchors.file = 'root.keys' + +-- Load useful modules +modules = { + 'policy', -- Block queries to local zones/bad sites + 'cachectl', -- Cache control interface + 'hints', -- Load /etc/hosts and allow custom root hints + 'stats', -- Track internal statistics + 'predict', -- Prefetch expiring/frequent records +} + +-- Cache size +cache.size = 100 * MB diff --git a/knot-resolver.spec b/knot-resolver.spec new file mode 100644 index 0000000..40df8eb --- /dev/null +++ b/knot-resolver.spec @@ -0,0 +1,136 @@ +%global _hardened_build 1 +%global alphatag 4f463d7 + +Name: knot-resolver +Version: 1.0.0 +Release: 0.3.%{alphatag}%{?dist} +Summary: Caching full DNS Resolver + +License: GPLv3 +URL: https://www.knot-resolver.cz/ +# No tarballs have been published by the upstream yet. +# $ git clone https://gitlab.labs.nic.cz/knot/resolver.git knot-resolver +# $ cd knot-resolver +# $ git archive --format tar --prefix knot-resolver-1.0.0-alphatag/ alphatag | xz > knot-resolver-1.0.0-alphatag.tar.xz +Source0: knot-resolver-%{version}-%{alphatag}.tar.xz +Source1: kresd.service +Source2: config +Source3: root.keys + +BuildRequires: pkgconfig(libknot) >= 2.1 +BuildRequires: pkgconfig(libzscanner) +BuildRequires: pkgconfig(libdnssec) +BuildRequires: pkgconfig(libuv) >= 1.0 +BuildRequires: pkgconfig(luajit) + +BuildRequires: pkgconfig(libmemcached) >= 1.0 +BuildRequires: pkgconfig(hiredis) + +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(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 +%setup -q -n %{name}-%{version}-%{alphatag} +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.* + +# install service +mkdir -p %{buildroot}%{_unitdir} +install -m 0644 -p %SOURCE1 %{buildroot}%{_unitdir}/kresd.service + +# install configuration file +install -m 0644 -p %SOURCE2 %{buildroot}%{_sysconfdir}/kresd/config + +# remove ICANN key +rm %{buildroot}%{_sysconfdir}/kresd/icann-ca.pem + +# create working directory +install -m 0755 -d %{buildroot}%{_sharedstatedir}/kresd +install -m 0644 -p %SOURCE3 %{buildroot}%{_sharedstatedir}/kresd/root.keys + +%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 +%{_unitdir}/kresd.service +%{_bindir}/kresd +%{_libdir}/libkres.so.* +%{_libdir}/kdns_modules +%attr(755,kresd,kresd) %dir %{_sharedstatedir}/kresd +%attr(644,kresd,kresd) %config(noreplace) %{_sharedstatedir}/kresd/root.keys +%{_mandir}/man8/kresd.* + +%files devel +%{_includedir}/libkres +%{_libdir}/pkgconfig/libkres.pc +%{_libdir}/libkres.so + +%changelog +* 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 diff --git a/kresd.service b/kresd.service new file mode 100644 index 0000000..360fb99 --- /dev/null +++ b/kresd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Knot DNS Resolver daemon +After=network.target + +[Service] +Type=simple +ExecStart=/usr/bin/kresd -f1 -c /etc/kresd/config /var/lib/kresd +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/root.keys b/root.keys new file mode 100644 index 0000000..aeadb85 --- /dev/null +++ b/root.keys @@ -0,0 +1 @@ +. 11579 IN TYPE48 \# 264 0101030803010001A80020A95566BA42E886BB804CDA84E47EF56DBD7AEC612615552CEC906D2116D0EF207028C51554144DFEAFE7C7CB8F005DD18234133AC0710A81182CE1FD14AD2283BC83435F9DF2F6313251931A176DF0DA51E54F42E604860DFB359580250F559CC543C4FFD51CBE3DE8CFD06719237F9FC47EE729DA06835FA452E825E9A18EBC2ECBCF563474652C33CF56A9033BCDF5D973121797EC8089041B6E03A1B72D0A735B984E03687309332324F27C2DBA85E9DB15E83A0143382E974B0621C18E625ECEC907577D9E7BADE95241A81EBBE8A901D4D3276E40B114C0A2E6FC38D19C2E6AAB02644B2813F575FC21601E0DEE49CD9EE96A43103E524D62873D ; Valid diff --git a/sources b/sources index e69de29..a906d53 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +e1822adce9ae65cf853d53e128285bb4 knot-resolver-1.0.0-4f463d7.tar.xz