e977454
%global _hardened_build 1
e977454
75c2d93
%define GPG_CHECK 1
399ff66
%define VERSION 2.4.0
75c2d93
%define repodir %{_builddir}/%{name}-%{version}
75c2d93
e977454
Name:           knot-resolver
75c2d93
Version:        %{VERSION}
c4beec3
Release:        2%{?dist}
e977454
Summary:        Caching full DNS Resolver
e977454
e977454
License:        GPLv3
e977454
URL:            https://www.knot-resolver.cz/
75c2d93
Source0:        https://secure.nic.cz/files/%{name}/%{name}-%{version}.tar.xz
fd4eae6
1efd2a2
# LuaJIT only on these arches
3d4efe3
%if 0%{?rhel}
3d4efe3
# RHEL 7 does not have aarch64 LuaJIT
399ff66
ExclusiveArch:	%{ix86} x86_64
3d4efe3
%else
399ff66
ExclusiveArch:	%{arm} aarch64 %{ix86} x86_64
3d4efe3
%endif
1efd2a2
75c2d93
Source2:        kresd.conf
75c2d93
Source3:        root.keys
fd4eae6
75c2d93
%if 0%{GPG_CHECK}
75c2d93
Source1:        https://secure.nic.cz/files/%{name}/%{name}-%{version}.tar.xz.asc
a77666b
# PGP keys used to sign upstream releases
5648f15
# Export with --armor using command from https://fedoraproject.org/wiki/PackagingDrafts:GPGSignatures
75c2d93
# Don't forget to update %%prep section when adding/removing keys
399ff66
Source100:	gpgkey-B6006460B60A80E782062449E747DF1F9575A3AA.gpg.asc
399ff66
Source101:	gpgkey-BE26EBB9CBE059B3910CA35BCE8DD6A1A50A21E4.gpg.asc
399ff66
Source102:	gpgkey-4A8BA48C2AED933BD495C509A1FBA5F7EF8C4869.gpg.asc
a77666b
BuildRequires:  gnupg2
75c2d93
%endif
a77666b
3cc696f
BuildRequires:  gcc
3cc696f
BuildRequires:  gcc-c++
399ff66
BuildRequires:  pkgconfig(cmocka)
399ff66
BuildRequires:  pkgconfig(gnutls)
399ff66
BuildRequires:  pkgconfig(libedit)
399ff66
BuildRequires:  pkgconfig(libknot) >= 2.6.7
c0849b7
BuildRequires:  pkgconfig(libzscanner) >= 2.4.2
239782e
BuildRequires:  pkgconfig(libdnssec) >= 2.3.1
399ff66
BuildRequires:  pkgconfig(libsystemd)
8c88fb4
BuildRequires:  pkgconfig(libuv)
fd4eae6
BuildRequires:  pkgconfig(luajit) >= 2.0
399ff66
BuildRequires:  pkgconfig(systemd)
e977454
dac5294
%if 0%{?rhel}
399ff66
BuildRequires:  lmdb-devel
399ff66
# Lua 5.1 version of the libraries have different package names
dac5294
Requires:       lua-socket
dac5294
Requires:       lua-sec
dac5294
%else
399ff66
BuildRequires:  pkgconfig(lmdb)
b26d73e
Requires:       lua-socket-compat
b26d73e
Requires:       lua-sec-compat
dac5294
%endif
fd4eae6
399ff66
%if 0%{?fedora}
399ff66
# dependencies for doc package; disable in EPEL (missing fonts)
399ff66
# https://bugzilla.redhat.com/show_bug.cgi?id=1492884
399ff66
BuildRequires:  doxygen
399ff66
BuildRequires:  python3-breathe
399ff66
BuildRequires:  python3-sphinx
399ff66
BuildRequires:  python3-sphinx_rtd_theme
399ff66
%endif
399ff66
399ff66
Requires(pre):		shadow-utils
399ff66
Requires(post):		systemd
399ff66
Requires(preun):	systemd
399ff66
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
c235144
The package is pre-configured as local caching resolver.
75c2d93
To start using it, start a single kresd instance:
0713c0e
$ systemctl start kresd@1.service
c235144
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
395c8b1
%if 0%{?fedora}
867b52d
%package doc
75c2d93
Summary:        Documentation for Knot DNS Resolver
75c2d93
BuildArch:      noarch
75c2d93
Requires:       %{name} = %{version}-%{release}
867b52d
867b52d
%description doc
867b52d
Documentation for Knot DNS Resolver
395c8b1
%endif
867b52d
e977454
%prep
75c2d93
%if 0%{GPG_CHECK}
66ecb7d
export GNUPGHOME=./gpg-keyring
66ecb7d
mkdir ${GNUPGHOME}
75c2d93
gpg2 --import %{SOURCE100} %{SOURCE101} %{SOURCE102}
66ecb7d
gpg2 --verify %{SOURCE1} %{SOURCE0}
75c2d93
%endif
75c2d93
%setup -q -n %{name}-%{version}
a77666b
e977454
rm -v scripts/bootstrap-depends.sh
e977454
e977454
%build
75c2d93
%global build_paths PREFIX=%{_prefix} BINDIR=%{_bindir} LIBDIR=%{_libdir} INCLUDEDIR=%{_includedir} ETCDIR=%{_sysconfdir}/knot-resolver
e977454
%global build_flags V=1 CFLAGS="%{optflags}" LDFLAGS="%{__global_ldflags}" %{build_paths} HAS_go=no
b2d48e4
%make_build %{build_flags}
e977454
395c8b1
%if 0%{?fedora}
867b52d
# build documentation
867b52d
make doc
395c8b1
%endif
867b52d
399ff66
%check
399ff66
make %{?_smp_mflags} check
399ff66
e977454
%install
e977454
%make_install %{build_flags}
e977454
e977454
# move sample configuration files to documentation
e977454
install -m 0755 -d %{buildroot}%{_pkgdocdir}
75c2d93
mv %{buildroot}%{_sysconfdir}/knot-resolver/config.* %{buildroot}%{_pkgdocdir}
e977454
chmod 0644 %{buildroot}%{_pkgdocdir}/config.*
e977454
fd4eae6
# install configuration files
fd4eae6
mkdir -p %{buildroot}%{_sysconfdir}
75c2d93
install -m 0755 -d %{buildroot}%{_sysconfdir}/knot-resolver
75c2d93
install -m 0644 -p %SOURCE2 %{buildroot}%{_sysconfdir}/knot-resolver/kresd.conf
75c2d93
install -m 0664 -p %SOURCE3 %{buildroot}%{_sysconfdir}/knot-resolver/root.keys
e977454
75c2d93
# install systemd units and doc
fd4eae6
mkdir -p %{buildroot}%{_unitdir}
399ff66
install -m 0644 -p %{repodir}/distro/common/systemd/kresd@.service %{buildroot}%{_unitdir}/kresd@.service
399ff66
install -m 0644 -p %{repodir}/distro/common/systemd/kresd.target %{buildroot}%{_unitdir}/kresd.target
399ff66
install -m 0755 -d %{buildroot}%{_unitdir}/multi-user.target.wants
399ff66
ln -s ../kresd.target %{buildroot}%{_unitdir}/multi-user.target.wants/kresd.target
75c2d93
mkdir -p %{buildroot}%{_mandir}/man7
399ff66
install -m 0644 -p %{repodir}/distro/common/systemd/kresd.systemd.7 %{buildroot}%{_mandir}/man7/kresd.systemd.7
75c2d93
75c2d93
%if 0%{?rhel}
c0849b7
# no socket activation for CentOS 7 (requires systemd.227)
75c2d93
mkdir -p %{buildroot}%{_unitdir}/kresd@.service.d
399ff66
install -m 0644 -p %{repodir}/distro/common/systemd/drop-in/systemd-compat.conf %{buildroot}%{_unitdir}/kresd@.service.d/override.conf
75c2d93
%endif
75c2d93
%if 0%{?fedora}
399ff66
install -m 0644 -p %{repodir}/distro/common/systemd/kresd.socket %{buildroot}%{_unitdir}/kresd.socket
399ff66
install -m 0644 -p %{repodir}/distro/common/systemd/kresd-control@.socket %{buildroot}%{_unitdir}/kresd-control@.socket
399ff66
install -m 0644 -p %{repodir}/distro/common/systemd/kresd-tls.socket %{buildroot}%{_unitdir}/kresd-tls.socket
75c2d93
%endif
e977454
fd4eae6
# install tmpfiles.d
fd4eae6
mkdir -p %{buildroot}%{_tmpfilesdir}
399ff66
install -m 0644 -p %{repodir}/distro/common/tmpfiles/knot-resolver.conf %{buildroot}%{_tmpfilesdir}/knot-resolver.conf
fd4eae6
mkdir -p %{buildroot}%{_rundir}
c0849b7
install -m 0750 -d %{buildroot}%{_rundir}/knot-resolver
75c2d93
75c2d93
# install cache
75c2d93
mkdir -p %{buildroot}%{_localstatedir}/cache
75c2d93
install -m 0750 -d %{buildroot}%{_localstatedir}/cache/knot-resolver
e977454
fd4eae6
# remove module with unsatisfied dependencies
fd4eae6
rm -r %{buildroot}%{_libdir}/kdns_modules/{http,http.lua}
e977454
e977454
%pre
75c2d93
getent group knot-resolver >/dev/null || groupadd -r knot-resolver
75c2d93
getent passwd knot-resolver >/dev/null || useradd -r -g knot-resolver -d %{_sysconfdir}/knot-resolver -s /sbin/nologin -c "Knot DNS Resolver" knot-resolver
e977454
e977454
%post
399ff66
%systemd_post 'kresd@*.service'
e977454
/sbin/ldconfig
e977454
75c2d93
# TODO: can be removed when Fedora 27 is no longer supported and migration is no longer necessary
75c2d93
# Migration script
75c2d93
if [ -f "/etc/kresd/config" ]; then
75c2d93
    echo -e '\n\n---------------------------------------------------------'
75c2d93
    echo '    WARNING: Migrating to knot-resolver 2.0'
75c2d93
    echo -e '---------------------------------------------------------\n'
75c2d93
    echo 'Please check your configuration still works, it has been moved to'
75c2d93
    echo '/etc/knot-resolver/kresd.conf'
75c2d93
    echo -e "\nTo start or enable the service, please use 'kresd@1.service', e.g.:"
75c2d93
    echo -e '  # systemctl start kresd@1.service\n\n'
75c2d93
    systemctl stop kresd.service kresd{,-tls,-control}.socket &>/dev/null ||:
75c2d93
    cp -r /etc/kresd/* /etc/knot-resolver/
75c2d93
    mv /etc/knot-resolver/config /etc/knot-resolver/kresd.conf
75c2d93
    chown -R root:knot-resolver /etc/knot-resolver
75c2d93
    sed -i 's#/etc/kresd#/etc/knot-resolver#' /etc/knot-resolver/kresd.conf
75c2d93
fi
75c2d93
if [ -d "/run/kresd" ]; then
75c2d93
    rm -f /run/kresd/control
75c2d93
    mv /run/kresd/* /var/cache/knot-resolver/ &>/dev/null
75c2d93
    chown -R knot-resolver:knot-resolver /var/cache/knot-resolver
75c2d93
fi
75c2d93
e977454
%preun
399ff66
%systemd_preun 'kresd@*.service' kresd.target kresd.socket kresd-tls.socket
e977454
e977454
%postun
399ff66
# NOTE: this doesn't restart the services on CentOS 7
399ff66
%systemd_postun_with_restart 'kresd@*.service'
e977454
/sbin/ldconfig
e977454
e977454
%files
e977454
%license COPYING
e977454
%doc %{_pkgdocdir}
75c2d93
%attr(775,root,knot-resolver) %dir %{_sysconfdir}/knot-resolver
75c2d93
%attr(644,root,knot-resolver) %config(noreplace) %{_sysconfdir}/knot-resolver/kresd.conf
75c2d93
%attr(664,root,knot-resolver) %config(noreplace) %{_sysconfdir}/knot-resolver/root.keys
75c2d93
%attr(644,root,knot-resolver) %config(noreplace) %{_sysconfdir}/knot-resolver/root.hints
75c2d93
%attr(644,root,knot-resolver) %config(noreplace) %{_sysconfdir}/knot-resolver/icann-ca.pem
75c2d93
%attr(750,knot-resolver,knot-resolver) %dir %{_localstatedir}/cache/knot-resolver
75c2d93
%{_unitdir}/kresd*.service
399ff66
%{_unitdir}/kresd.target
399ff66
%{_unitdir}/multi-user.target.wants/kresd.target
75c2d93
%if 0%{?rhel}
75c2d93
%{_unitdir}/kresd@.service.d/override.conf
75c2d93
%endif
75c2d93
%if 0%{?fedora}
fd4eae6
%{_unitdir}/kresd*.socket
75c2d93
%endif
75c2d93
%{_tmpfilesdir}/knot-resolver.conf
fd4eae6
%{_sbindir}/kresd
46ab618
%{_sbindir}/kresc
e977454
%{_libdir}/libkres.so.*
e977454
%{_libdir}/kdns_modules
75c2d93
%{_mandir}/man8/kresd.8.gz
75c2d93
%{_mandir}/man7/kresd.systemd.7.gz
e977454
e977454
%files devel
e977454
%{_includedir}/libkres
e977454
%{_libdir}/pkgconfig/libkres.pc
e977454
%{_libdir}/libkres.so
e977454
395c8b1
%if 0%{?fedora}
867b52d
%files doc
867b52d
%doc doc/html
395c8b1
%endif
867b52d
e977454
%changelog
c4beec3
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-2
c4beec3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
c4beec3
399ff66
* Tue Jul 03 2018 Tomas Krizek <tomas.krizek@nic.cz> - 2.4.0-1
399ff66
Knot Resolver 2.4.0 (2018-07-03)
399ff66
================================
399ff66
399ff66
Incompatible changes
399ff66
--------------------
399ff66
- minimal libknot version is now 2.6.7 to pull in latest fixes (#366)
399ff66
399ff66
Security
399ff66
--------
399ff66
- fix a rare case of zones incorrectly dowgraded to insecure status (!576)
399ff66
399ff66
New features
399ff66
------------
399ff66
- TLS session resumption (RFC 5077), both server and client (!585, #105)
399ff66
  (disabled when compiling with gnutls < 3.5)
399ff66
- TLS_FORWARD policy uses system CA certificate store by default (!568)
399ff66
- aggressive caching for NSEC3 zones (!600)
399ff66
- optional protection from DNS Rebinding attack (module rebinding, !608)
399ff66
- module bogus_log to log DNSSEC bogus queries without verbose logging (!613)
399ff66
399ff66
Bugfixes
399ff66
--------
399ff66
- prefill: fix ability to read certificate bundle (!578)
399ff66
- avoid turning off qname minimization in some cases, e.g. co.uk. (#339)
399ff66
- fix validation of explicit wildcard queries (#274)
399ff66
- dns64 module: more properties from the RFC implemented (incl. bug #375)
399ff66
399ff66
Improvements
399ff66
------------
399ff66
- systemd: multiple enabled kresd instances can now be started using kresd.target
399ff66
- ta_sentinel: switch to version 14 of the RFC draft (!596)
399ff66
- support for glibc systems with a non-Linux kernel (!588)
399ff66
- support per-request variables for Lua modules (!533)
399ff66
- support custom HTTP endpoints for Lua modules (!527)
399ff66
399ff66
cb122c5
* Mon Apr 23 2018 Tomas Krizek <tomas.krizek@nic.cz> - 2.3.0-1
cb122c5
Knot Resolver 2.3.0 (2018-04-23)
cb122c5
================================
cb122c5
cb122c5
Security
cb122c5
--------
cb122c5
- fix CVE-2018-1110: denial of service triggered by malformed DNS messages
cb122c5
  (!550, !558, security!2, security!4)
cb122c5
- increase resilience against slow lorris attack (security!5)
cb122c5
cb122c5
Bugfixes
cb122c5
--------
cb122c5
- validation: fix SERVFAIL in case of CNAME to NXDOMAIN in a single zone (!538)
cb122c5
- validation: fix SERVFAIL for DS . query (!544)
cb122c5
- lib/resolve: don't send unecessary queries to parent zone (!513)
cb122c5
- iterate: fix validation for zones where parent and child share NS (!543)
cb122c5
- TLS: improve error handling and documentation (!536, !555, !559)
cb122c5
cb122c5
Improvements
cb122c5
------------
cb122c5
- prefill: new module to periodically import root zone into cache
cb122c5
  (replacement for RFC 7706, !511)
cb122c5
- network_listen_fd: always create end point for supervisor supplied file descriptor
cb122c5
- use CPPFLAGS build environment variable if set (!547)
cb122c5
cb122c5
3ee2f38
* Wed Mar 28 2018 Tomas Krizek <tomas.krizek@nic.cz> - 2.2.0-1
3ee2f38
Knot Resolver 2.2.0 (2018-03-28)
3ee2f38
================================
3ee2f38
3ee2f38
New features
3ee2f38
------------
3ee2f38
- cache server unavailability to prevent flooding unreachable servers
3ee2f38
  (Please note that caching algorithm needs further optimization
3ee2f38
   and will change in further versions but we need to gather operational
3ee2f38
   experience first.)
3ee2f38
3ee2f38
Bugfixes
3ee2f38
--------
3ee2f38
- don't magically -D_FORTIFY_SOURCE=2 in some cases
3ee2f38
- allow large responses for outbound over TCP
3ee2f38
- fix crash with RR sets with over 255 records
3ee2f38
3ee2f38
c202d17
* Mon Feb 26 2018 Tomas Krizek <tomas.krizek@nic.cz> - 2.1.1-1
c202d17
Knot Resolver 2.1.1 (2018-02-23)
c202d17
================================
c202d17
c202d17
Bugfixes
c202d17
--------
c202d17
- when iterating, avoid unnecessary queries for NS in insecure parent.
c202d17
  This problem worsened in 2.0.0. (#246)
c202d17
- prevent UDP packet leaks when using TLS forwarding
c202d17
- fix the hints module also on some other systems, e.g. Gentoo.
c202d17
75c2d93
* Fri Feb 16 2018 Tomas Krizek <tomas.krizek@nic.cz> - 2.1.0-1
75c2d93
- New upstream release 2.1.0
75c2d93
75c2d93
Knot Resolver 2.1.0 (2018-02-16)
75c2d93
================================
75c2d93
75c2d93
Incompatible changes
75c2d93
--------------------
75c2d93
- stats: remove tracking of expiring records (predict uses another way)
75c2d93
- systemd: more chages in default unit files (TODO)
75c2d93
- ta_sentinel: implement protocol draft-ietf-dnsop-kskroll-sentinel-01
75c2d93
  (our draft-ietf-dnsop-kskroll-sentinel-00 implementation had inverted logic)
75c2d93
- libknot: require version 2.6.4 or newer to get bugfixes for DNS-over-TLS
75c2d93
75c2d93
Bugfixes
75c2d93
--------
75c2d93
- detect_time_jump module: don't clear cache on suspend-resume (#284)
75c2d93
- stats module: fix stats.list() returning nothing, regressed in 2.0.0
75c2d93
- policy.TLS_FORWARD: refusal when configuring with multiple IPs (#306)
75c2d93
- cache: fix broken refresh of insecure records that were about to expire
75c2d93
- fix the hints module on some systems, e.g. Fedora (came back on 2.0.0)
75c2d93
- build with older gnutls (conditionally disable features)
75c2d93
- fix the predict module to work with insecure records & cleanup code
75c2d93
75c2d93
75c2d93
Knot Resolver 2.0.0 (2018-01-31)
75c2d93
================================
75c2d93
75c2d93
Incompatible changes
75c2d93
--------------------
75c2d93
- systemd: change unit files to allow running multiple instances,
75c2d93
  deployments with single instance now must use `kresd@1.service`
75c2d93
  instead of `kresd.service`; see kresd.systemd(8) for details
75c2d93
- systemd: the directory for cache is now /var/cache/knot-resolver
75c2d93
- unify default directory and user to `knot-resolver`
75c2d93
- directory with trust anchor file specified by -k option must be writeable
75c2d93
- policy module is now loaded by default to enforce RFC 6761;
75c2d93
  see documentation for policy.PASS if you use locally-served DNS zones
75c2d93
- drop support for alternative cache backends memcached, redis,
75c2d93
  and for Lua bindings for some specific cache operations
75c2d93
- REORDER_RR option is not implemented (temporarily)
75c2d93
75c2d93
New features
75c2d93
------------
75c2d93
- aggressive caching of validated records (RFC 8198) for NSEC zones;
75c2d93
  thanks to ICANN for sponsoring this work.
75c2d93
- forwarding over TLS, authenticated by SPKI pin or certificate.
75c2d93
  policy.TLS_FORWARD pipelines queries out-of-order over shared TLS connection
75c2d93
  Beware: Some resolvers do not support out-of-order query processing.
75c2d93
  TLS forwarding to such resolvers will lead to slower resolution or failures.
75c2d93
- trust anchors: you may specify a read-only file via -K or --keyfile-ro
75c2d93
- trust anchors: at build-time you may set KEYFILE_DEFAULT (read-only)
75c2d93
- ta_sentinel module implements draft ietf-dnsop-kskroll-sentinel-00,
75c2d93
  enabled by default
75c2d93
- serve_stale module is prototype, subject to change
75c2d93
- extended API for Lua modules
75c2d93
75c2d93
Bugfixes
75c2d93
--------
75c2d93
- fix build on osx - regressed in 1.5.3 (different linker option name)
75c2d93
8d47931
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.3-1.1
8d47931
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
8d47931
ca845e1
* Tue Jan 23 2018 Tomas Krizek <tomas.krizek@nic.cz> - 1.5.3-1
ca845e1
- New upstream release 1.5.3
ca845e1
ca845e1
Knot Resolver 1.5.3 (2018-01-23)
ca845e1
================================
ca845e1
ca845e1
Bugfixes
ca845e1
--------
ca845e1
- fix the hints module on some systems, e.g. Fedora.
ca845e1
  Symptom: `undefined symbol: engine_hint_root_file`
ca845e1
ca845e1
ca845e1
Knot Resolver 1.5.2 (2018-01-22)
ca845e1
================================
ca845e1
ca845e1
Security
ca845e1
--------
ca845e1
- fix CVE-2018-1000002: insufficient DNSSEC validation, allowing
ca845e1
  attackers to deny existence of some data by forging packets.
ca845e1
  Some combinations pointed out in RFC 6840 sections 4.1 and 4.3
ca845e1
  were not taken into account.
ca845e1
ca845e1
Bugfixes
ca845e1
--------
ca845e1
- memcached: fix fallout from module rename in 1.5.1
ca845e1
ca845e1
ca845e1
Knot Resolver 1.5.1 (2017-12-12)
ca845e1
================================
ca845e1
ca845e1
Incompatible changes
ca845e1
--------------------
ca845e1
- script supervisor.py was removed, please migrate to a real process manager
ca845e1
- module ketcd was renamed to etcd for consistency
ca845e1
- module kmemcached was renamed to memcached for consistency
ca845e1
ca845e1
Bugfixes
ca845e1
--------
ca845e1
- fix SIGPIPE crashes (#271)
ca845e1
- tests: work around out-of-space for platforms with larger memory pages
ca845e1
- lua: fix mistakes in bindings affecting 1.4.0 and 1.5.0 (and 1.99.1-alpha),
ca845e1
  potentially causing problems in dns64 and workarounds modules
ca845e1
- predict module: various fixes (!399)
ca845e1
ca845e1
Improvements
ca845e1
------------
ca845e1
- add priming module to implement RFC 8109, enabled by default (#220)
ca845e1
- add modules helping with system time problems, enabled by default;
ca845e1
  for details see documentation of detect_time_skew and detect_time_jump
ca845e1
867b52d
* Fri Jan 05 2018 Tomas Krizek <tomas.krizek@nic.cz> - 1.5.0-2
867b52d
- add doc package
867b52d
- configure tarball signature verification
5648f15
- add root.hints file
75c2d93
- use upstream systemd unit files, paths and user name
75c2d93
    - migrate configuration to /etc/knot-resolver
75c2d93
    - use user knot-resolver
75c2d93
    - store cache in /var/cache/knot-resolver
75c2d93
    - use systemd alias knot-resolver -> kresd
867b52d
c502924
* Mon Nov 06 2017 Petr Špaček <petr.spacek@nic.cz> - 1.5.0-1
c502924
- New upstream release 1.5.0
c502924
c502924
Knot Resolver 1.5.0 (2017-11-02)
c502924
================================
c502924
c502924
Bugfixes
c502924
--------
c502924
- fix loading modules on Darwin
c502924
c502924
Improvements
c502924
------------
c502924
- new module ta_signal_query supporting Signaling Trust Anchor Knowledge
c502924
  using Keytag Query (RFC 8145 section 5); it is enabled by default
c502924
- attempt validation for more records but require it for fewer of them
c502924
  (e.g. avoids SERVFAIL when server adds extra records but omits RRSIGs)
c502924
c502924
c502924
Knot Resolver 1.4.0 (2017-09-22)
c502924
================================
c502924
c502924
Incompatible changes
c502924
--------------------
c502924
- lua: query flag-sets are no longer represented as plain integers.
c502924
  kres.query.* no longer works, and kr_query_t lost trivial methods
c502924
  'hasflag' and 'resolved'.
c502924
  You can instead write code like qry.flags.NO_0X20 = true.
c502924
c502924
Bugfixes
c502924
--------
c502924
- fix exiting one of multiple forks (#150)
c502924
- cache: change the way of using LMDB transactions.  That in particular
c502924
  fixes some cases of using too much space with multiple kresd forks (#240).
c502924
c502924
Improvements
c502924
------------
c502924
- policy.suffix: update the aho-corasick code (#200)
c502924
- root hints are now loaded from a zonefile; exposed as hints.root_file().
c502924
  You can override the path by defining ROOTHINTS during compilation.
c502924
- policy.FORWARD: work around resolvers adding unsigned NS records (#248)
c502924
- reduce unneeded records previously put into authority in wildcarded answers
c502924
c502924
c502924
Knot Resolver 1.3.3 (2017-08-09)
c502924
================================
c502924
c502924
Security
c502924
--------
c502924
- Fix a critical DNSSEC flaw.  Signatures might be accepted as valid
c502924
  even if the signed data was not in bailiwick of the DNSKEY used to
c502924
  sign it, assuming the trust chain to that DNSKEY was valid.
c502924
c502924
Bugfixes
c502924
--------
c502924
- iterate: skip RRSIGs with bad label count instead of immediate SERVFAIL
c502924
- utils: fix possible incorrect seeding of the random generator
c502924
- modules/http: fix compatibility with the Prometheus text format
c502924
c502924
Improvements
c502924
------------
c502924
- policy: implement remaining special-use domain names from RFC6761 (#205),
c502924
  and make these rules apply only if no other non-chain rule applies
c502924
43d3a58
* Tue Aug 01 2017 Petr Spacek <petr.spacek@nic.cz> - 1.3.2-1
43d3a58
New upstream release:
43d3a58
Knot Resolver 1.3.2 (2017-07-28)
43d3a58
================================
43d3a58
43d3a58
Security
43d3a58
--------
43d3a58
- fix possible opportunities to use insecure data from cache as keys
43d3a58
  for validation
43d3a58
43d3a58
Bugfixes
43d3a58
--------
43d3a58
- daemon: check existence of config file even if rundir isn't specified
43d3a58
- policy.FORWARD and STUB: use RTT tracking to choose servers (#125, #208)
43d3a58
- dns64: fix CNAME problems (#203)  It still won't work with policy.STUB.
43d3a58
- hints: better interpretation of hosts-like files (#204)
43d3a58
         also, error out if a bad entry is encountered in the file
43d3a58
- dnssec: handle unknown DNSKEY/DS algorithms (#210)
43d3a58
- predict: fix the module, broken since 1.2.0 (#154)
43d3a58
43d3a58
Improvements
43d3a58
------------
43d3a58
- embedded LMDB fallback: update 0.9.18 -> 0.9.21
43d3a58
d5833e9
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-1.1
d5833e9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
d5833e9
8a62324
* Tue Jul 11 2017 Petr Spacek <petr.spacek@nic.cz> - 1.3.1-2
8a62324
- build experimental command line interface "kresc"
8a62324
239782e
* Tue Jul 11 2017 Petr Spacek <petr.spacek@nic.cz> - 1.3.1-1
239782e
New upstream release:
239782e
Knot Resolver 1.3.1 (2017-06-23)
239782e
================================
239782e
239782e
Bugfixes
239782e
--------
239782e
- modules/http: fix finding the static files (bug from 1.3.0)
239782e
- policy.FORWARD: fix some cases of CNAMEs obstructing search for zone cuts
239782e
239782e
239782e
Knot Resolver 1.3.0 (2017-06-13)
239782e
================================
239782e
239782e
Security
239782e
--------
239782e
- Refactor handling of AD flag and security status of resource records.
239782e
  In some cases it was possible for secure domains to get cached as
239782e
  insecure, even for a TLD, leading to disabled validation.
239782e
  It also fixes answering with non-authoritative data about nameservers.
239782e
239782e
Improvements
239782e
------------
239782e
- major feature: support for forwarding with validation (#112).
239782e
  The old policy.FORWARD action now does that; the previous non-validating
239782e
  mode is still avaliable as policy.STUB except that also uses caching (#122).
239782e
- command line: specify ports via @ but still support # for compatibility
239782e
- policy: recognize 100.64.0.0/10 as local addresses
239782e
- layer/iterate: *do* retry repeatedly if REFUSED, as we can't yet easily
239782e
  retry with other NSs while avoiding retrying with those who REFUSED
239782e
- modules: allow changing the directory where modules are found,
239782e
  and do not search the default library path anymore.
239782e
239782e
Bugfixes
239782e
--------
239782e
- validate: fix insufficient caching for some cases (relatively rare)
239782e
- avoid putting "duplicate" record-sets into the answer (#198)
239782e
239782e
239782e
Knot Resolver 1.2.6 (2017-04-24)
239782e
================================
239782e
239782e
Security
239782e
--------
239782e
- dnssec: don't set AD flag for NODATA answers if wildcard non-existence
239782e
  is not guaranteed due to opt-out in NSEC3
239782e
239782e
Improvements
239782e
------------
239782e
- layer/iterate: don't retry repeatedly if REFUSED
239782e
239782e
Bugfixes
239782e
--------
239782e
- lib/nsrep: revert some changes to NS reputation tracking that caused
239782e
  severe problems to some users of 1.2.5 (#178 and #179)
239782e
- dnssec: fix verification of wildcarded non-singleton RRsets
239782e
- dnssec: allow wildcards located directly under the root
239782e
- layer/rrcache: avoid putting answer records into queries in some cases
239782e
46ab618
* Thu Apr 06 2017 Petr Spacek <petr.spacek@nic.cz> - 1.2.5-1
46ab618
- new upstream relase
46ab618
 + security: layer/validate: clear AD if closest encloser proof has opt-outed NSEC3 (#169)
46ab618
 + security: layer/validate: check if NSEC3 records in wildcard expansion proof has an opt-out
46ab618
 + security: dnssec/nsec: missed wildcard no-data answers validation has been implemented
46ab618
 + fix: trust anchors: Improve trust anchors storage format (#167)
46ab618
 + fix: trust anchors: support non-root TAs, one domain per file
46ab618
 + fix: policy.DENY: set AA flag and clear AD flag
46ab618
 + fix: lib/resolve: avoid unnecessary DS queries
46ab618
 + fix: lib/nsrep: don't treat servers with NOIP4 + NOIP6 flags as timeouted
46ab618
 + fix: layer/iterate: During packet classification (answer vs. referral) don't analyze
46ab618
        AUTHORITY section in authoritative answer if ANSWER section contains records
46ab618
        that have been requested
46ab618
 + enhancement: modules/dnstap: a DNSTAP support module (Contributed by Vicky Shrestha)
46ab618
 + enhancement: modules/workarounds: a module adding workarounds for known DNS protocol violators
46ab618
 + enhancement: layer/iterate: fix logging of glue addresses
46ab618
 + enhancement: kr_bitcmp: allow bits=0 and consequently 0.0.0.0/0 matches in view and renumber modules.
46ab618
 + enhancement: modules/padding: Improve default padding of responses (Contributed by Daniel Kahn Gillmor)
46ab618
 + enhancement: New kresc client utility (experimental; don't rely on the API yet)
46ab618
62060c9
* Thu Mar 09 2017 Petr Spacek <petr.spacek@nic.cz> - 1.2.4-1
62060c9
- new upstream release
62060c9
 + security: Knot Resolver 1.2.0 and higher could return AD flag for insecure
62060c9
             answer if the daemon received answer with invalid RRSIG several
62060c9
             times in a row.
62060c9
 + fix: layer/iterate: some improvements in cname chain unrolling
62060c9
 + fix: layer/validate: fix duplicate records in AUTHORITY section in case
62060c9
 + fix: of WC expansion proof
62060c9
 + fix: lua: do *not* truncate cache size to unsigned
62060c9
 + fix: forwarding mode: correctly forward +cd flag
62060c9
 + fix: fix a potential memory leak
62060c9
 + fix: don't treat answers that contain DS non-existance proof as insecure
62060c9
 + fix: don't store NSEC3 and their signatures in the cache
62060c9
 + fix: layer/iterate: when processing delegations,
62060c9
                       check if qname is at or below new authority
62060c9
 + enhancement: modules/policy: allow QTRACE policy to be chained
62060c9
                                with other policies
62060c9
 + enhancement: hints.add_hosts(path): a new property
62060c9
 + enhancement: module: document the API and simplify the code
62060c9
 + enhancement: policy.MIRROR: support IPv6 link-local addresses
62060c9
 + enhancement: policy.FORWARD: support IPv6 link-local addresses
62060c9
 + enhancement: add net.outgoing_{v4,v6} to allow specifying address
62060c9
                to use for connections
62060c9
f05d307
* Mon Feb 27 2017 Petr Spacek <petr.spacek@nic.cz> - 1.2.3-1
f05d307
- new upstream release
f05d307
 + security: a cached negative answer from a CD query would be reused
f05d307
   to construct response for non-CD queries, resulting in Insecure status
f05d307
   instead of Bogus.
f05d307
 + fix: lua: make the map command check its arguments
f05d307
 + fix: -k argument processing to avoid out-of-bounds memory accesses
f05d307
 + fix: lib/resolve: fix zonecut fetching for explicit DS queries
f05d307
 + fix: hints: more NULL checks
f05d307
 + fix: TA bootstrapping for multiple TAs in the IANA XML file
f05d307
 + fix: Disable storing GLUE records into the cache even in the
f05d307
 + fix: (non-default) QUERY_PERMISSIVE mode
f05d307
 + fix: iterate: skip answer RRs that don't match the query
f05d307
 + fix: layer/iterate: some additional processing for referrals
f05d307
 + fix: lib/resolve: zonecut fetching error was fixed
f05d307
b8d5646
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-2.1
b8d5646
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
b8d5646
3709d6c
* Fri Jan 27 2017 Petr Spacek <petr.spacek@nic.cz> - 1.2.0-2
3709d6c
- rebuild against knot-2.4.0
3709d6c
1f4067a
* Fri Jan 27 2017 Petr Spacek <petr.spacek@nic.cz> - 1.2.0
1f4067a
- new upstream release:
1f4067a
 + fix: reworked DNSSEC Validation, that fixes several know problems with less standard DNS configurations
1f4067a
 + fix: the resolver was setting AD flag when running in a forwarding mode
1f4067a
 + fix: correctly return RCODE=NOTIMPL on meta-queries and non IN class queries
1f4067a
 + fix: crash in hints module when hints file was empty
1f4067a
 + fix: non-lowercase hints
1f4067a
 + features: optional EDNS(0) Padding support for DNS over TLS
1f4067a
 + features: support for debugging DNSSEC with CD bit
1f4067a
 + features: DNS over TLS is now able to create ephemeral certs on the runtime (Thanks Daniel Kahn Gilmore for contributing to DNS over TLS implementation in Knot Resolver.)
1f4067a
 + features: configurable minimum and maximum TTL (default 6 days)
1f4067a
 + features: configurable pseudo-random reordering of RR sets
1f4067a
 + features: new module 'version' that can call home and report new versions and security vulnerabilities to the log file
1f4067a
35ce4ae
* Mon Jan 23 2017 Petr Spacek <petr.spacek@nic.cz> - 1.2.0-rc1
35ce4ae
- Update to latest upstream version
35ce4ae
- Fix packaging bug: depend on proper Lua library versions
35ce4ae
- Allow automatic trust anchor management to work
35ce4ae
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
5648f15
  + 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