%global _hardened_build 1 %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} Summary: High-performance authoritative DNS server Name: knot Version: 2.3.2 Release: 1%{?dist} License: GPLv3 Group: System Environment/Daemons URL: http://www.knot-dns.cz Source0: http://public.nic.cz/files/knot-dns/%{name}-%{version}.tar.xz Source1: %{name}.service Source2: %{name}.conf Source3: %{name}.tmpfiles # Required dependencies BuildRequires: pkgconfig(liburcu) pkgconfig(gnutls) >= 3.0 pkgconfig(nettle) pkgconfig(jansson) lmdb-devel pkgconfig(libedit) # Optional dependencies BuildRequires: pkgconfig(libcap-ng) pkgconfig(libidn) pkgconfig(libsystemd) pkgconfig(libfstrm) pkgconfig(libprotobuf-c) BuildRequires: systemd Requires(post): systemd %{_sbindir}/runuser Requires(preun): systemd Requires(postun): systemd Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description Knot DNS is a high-performance authoritative DNS server implementation. %package libs Summary: Libraries used by the Knot DNS server and client applications %description libs The package contains shared libraries used by the Knot DNS server and utilities. %package devel Summary: Development header files for the Knot DNS libraries Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description devel The package contains development header files for the Knot DNS libraries included in knot-libs package. %package utils Summary: DNS client utilities shipped with the Knot DNS server Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description utils The package contains DNS client utilities shipped with the Knot DNS server. %package doc Summary: Documentation for the Knot DNS server License: GPLv3 and BSD and MIT BuildArch: noarch BuildRequires: python3-sphinx Provides: bundled(jquery) %description doc The package contains documentation for the Knot DNS server. %prep %setup -q # make sure embedded LMDB library is not used rm -vr src/contrib/lmdb %build # disable debug code (causes unused warnings) CFLAGS="%{optflags} -DNDEBUG -Wno-unused" %configure make %{?_smp_mflags} make html %install make install DESTDIR=%{buildroot} # install documentation mkdir -p %{buildroot}%{_pkgdocdir} cp -av doc/_build/html %{buildroot}%{_pkgdocdir} [ -r %{buildroot}%{_pkgdocdir}/html/index.html ] || exit 1 rm -f %{buildroot}%{_pkgdocdir}/html/.buildinfo # install shell completion scripts install -p -m 0644 -D samples/keymgr-completion.sh %{buildroot}%{_datadir}/bash-completion/completions/keymgr install -p -m 0644 -D samples/keymgr-completion.zsh %{buildroot}%{_datadir}/zsh/site-functions/_keymgr # install customized configuration file rm %{buildroot}%{_sysconfdir}/%{name}/* install -p -m 0644 -D %{SOURCE2} %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf # install service file and create rundir install -p -m 0644 -D %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service install -p -m 0644 -D %{SOURCE3} %{buildroot}%{_tmpfilesdir}/%{name}.conf install -d -m 0755 %{buildroot}%{_localstatedir}/run/%{name} # create storage dir and key dir mkdir -p %{buildroot}%{_sharedstatedir} install -d -m 0775 %{buildroot}%{_sharedstatedir}/%{name} install -d -m 0770 %{buildroot}%{_sharedstatedir}/%{name}/keys # install config samples into docdir install -d -m 0755 %{buildroot}%{_pkgdocdir}/samples for sample_file in knot.sample.conf example.com.zone; do install -p -m 0644 samples/${sample_file} %{buildroot}%{_pkgdocdir}/samples done # remove static libraries and libarchive files rm %{buildroot}%{_libdir}/*.a rm %{buildroot}%{_libdir}/*.la %check make check %pre getent group knot >/dev/null || groupadd -r knot getent passwd knot >/dev/null || useradd -r -g knot -d %{_sysconfdir}/knot -s /sbin/nologin -c "Knot DNS server" knot exit 0 %post %systemd_post knot.service # initialize/upgrade KASP database %{_sbindir}/runuser -u knot -- %{_sbindir}/keymgr --dir %{_sharedstatedir}/%{name}/keys --legacy init %preun %systemd_preun knot.service %postun %systemd_postun_with_restart knot.service %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %files %{_pkgdocdir}/samples %dir %attr(750,root,knot) %{_sysconfdir}/%{name} %config(noreplace) %attr(640,root,knot) %{_sysconfdir}/%{name}/%{name}.conf %dir %attr(775,root,knot) %{_sharedstatedir}/%{name} %dir %attr(770,root,knot) %{_sharedstatedir}/%{name}/keys %dir %attr(-,knot,knot) %{_localstatedir}/run/%{name} %{_unitdir}/%{name}.service %{_tmpfilesdir}/%{name}.conf %{_libexecdir}/knot1to2 %{_bindir}/kzonecheck %{_sbindir}/keymgr %{_sbindir}/knotc %{_sbindir}/knotd %{_mandir}/man1/knot1to2.* %{_mandir}/man1/kzonecheck.* %{_mandir}/man5/knot.conf.* %{_mandir}/man8/keymgr.* %{_mandir}/man8/knotc.* %{_mandir}/man8/knotd.* %{_datadir}/bash-completion/completions/keymgr %{_datadir}/zsh/site-functions/_keymgr %files utils %{_bindir}/kdig %{_bindir}/khost %{_bindir}/knsec3hash %{_bindir}/knsupdate %{_mandir}/man1/kdig.* %{_mandir}/man1/khost.* %{_mandir}/man1/knsec3hash.* %{_mandir}/man1/knsupdate.* %files libs %doc COPYING AUTHORS NEWS THANKS %{_libdir}/libdnssec.so.* %{_libdir}/libknot.so.* %{_libdir}/libzscanner.so.* %files devel %{_includedir}/dnssec %{_includedir}/libknot %{_includedir}/zscanner %{_libdir}/libdnssec.so %{_libdir}/libknot.so %{_libdir}/libzscanner.so %{_libdir}/pkgconfig/libdnssec.pc %{_libdir}/pkgconfig/libknot.pc %{_libdir}/pkgconfig/libzscanner.pc %files doc %dir %{_pkgdocdir} %{_pkgdocdir}/html %changelog * Thu Nov 17 2016 Jan Vcelak - 2.3.2-1 - new upstream release: + fix: missing glue in some responses + fix: knsupdate prompt printing on non-terminal + fix: configuration policy item names in documentation + fix: segfault on OS X Sierra + fix: incorrect %s expansion for the root zone + fix: refresh not existing slave zone after restart + fix: immediate zone refresh upon restart if refresh already scheduled + fix: early zone transfer after restart if transfer already scheduled + fix: not ignoring empty non-terminal parents during delegation lookup + fix: CD bit clearing in responses + fix: compilation error on GNU/kFreeBSD + fix: server crash after double zone-commit if journal error + improvement: significant speed-up of conf-commit and conf-diff operations + improvement: new EDNS Client Subnet API + improvement: better semantic-checks error messages + improvement: speed-up of knotc if control operation and known socket + improvement: zone purge operation purges also zone timers + feature: print TLS certificate hierarchy in kdig verbose mode + feature: new +subnet alias for +client + feature: new mod-whoami and mod-noudp modules + feature: new zone-purge control command + feature: new log-queries and log-responses options for mod-dnstap + feature: simple modules don't require empty configuration section + feature: new zone journal path configuration option + feature: new timeout configuration option for module dnsproxy * Mon Aug 29 2016 Jan Vcelak - 2.3.0-3 - fix post-installation scriptlet (RHBZ #1370939) * Thu Aug 11 2016 Jan Vcelak - 2.3.0-2 - endian independent DNS cookies (fixes build on ppc64 and s390x) * Tue Aug 09 2016 Jan Vcelak - 2.3.0-1 - new upstream release: + fix: No wildcard expansion below empty non-terminal for NSEC signed zone + fix: Don't ignore non-existing records to be removed in IXFR + fix: Fix kdig IXFR response processing if the transfer content is empty + fix: Avoid multiple loads of the same PKCS #11 module + improvement: Refactored semantic checks and better error messages + improvement: Set TC flag in delegation only if mandatory glue doesn't fit the response + improvement: Separate EDNS(0) payload size configuration for IPv4 and IPv6 + feature: Zone size limit restriction for DDNS, AXFR, and IXFR (CVE-2016-6171) + feature: DNS-over-TLS support in kdig (RFC 7858) + feature: EDNS(0) padding and alignment support in kdig (RFC 7830) * Fri Jun 24 2016 Jan Vcelak - 2.2.1-2 - rebuild for updated userspace-rcu * Mon May 30 2016 Jan Vcelak - 2.2.1-1 - new upstream release: + fix: Separate logging of server and zone events + fix: Concurrent zone file flushing with many zones + fix: Control timeout parsing in knotc + fix: "Environment maxreaders limit reached" error in knotc + fix: Don't apply journal changes on modified zone file + fix: Enable multiple zone names completion in interactive knotc + fix: Set the TC flag in a response if a glue doesn't fit the response + fix: Disallow server reload when there is an active configuration transaction + improvement: Distinguish unavailable zones from zones with zero serial in log messages + improvement: Log warning and error messages to standard error output in all utilities + improvement: Document tested PKCS #11 devices + improvement: Extended Python configuration interface - update requirements for Fedora 25 * Sun May 29 2016 Jan Vcelak - 2.2.0-3 - update default configuration file * Sun May 08 2016 Jan Vcelak - 2.2.0-2 - fix: systemd service starting * Tue Apr 26 2016 Jan Vcelak - 2.2.0-1 - new upstream release: + fix: Query/response message type setting in dnstap module + fix: Remote address retrieval from dnstap capture in kdig + fix: Global modules execution for queries hitting existing zones + fix: Execution of semantic checks after an IXFR transfer + fix: kdig failure when the first AXFR message contains just the SOA record + fix: Exclude non-authoritative types from NSEC/NSEC3 bitmap at a delegation + fix: Mark PKCS#11 generated keys as sensitive + fix: Error when removing the only zone from the server + fix: Don't abort knotc transaction when some check fails + feature: URI and CAA resource record types support + feature: RRL client address based white list + feature: knotc interactive mode + improvement: Consistent IXFR error messages + improvement: Various fixes for better compatibility with PKCS#11 devices + improvement: Various keymgr user interface improvements + improvement: Better zone event scheduler performance with many zones + improvement: New server control interface + improvement: kdig uses local resolver if resolv.conf is empty * Wed Feb 10 2016 Jan Vcelak 2.1.1-1 - new upstream release: + fix: Allow import of duplicate private key into the KASP + fix: Avoid duplicate NSEC for Wildcard No Data answer + fix: Server crash when an incomming transfer is in progress and reload is issued + fix: Socket polling when configured with many interfaces and threads + improvement: Use correct source address for UDP messages recieved on ANY address + improvement: Extend documentation of knotc commands * Thu Feb 04 2016 Fedora Release Engineering - 2.1.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Thu Jan 14 2016 Jan Vcelak 2.1.0-1 - new upstream release: + improvement: Remove implementation limit for the number of network interfaces + improvement: Remove possibly insecure server control over a network socket + fix: Schedule zone bootstrap after slave zone fails to load from disk * Sun Dec 20 2015 Jan Vcelak 2.1.0-0.1.rc1 - new upstream pre-release: + feature: Per-thread UDP socket binding using SO_REUSEPORT + feature: Support for dynamic configuration database + feature: DNSSEC, Support for cryptographic tokens via PKCS #11 interface + feature: DNSSEC, Experimental support for online signing + improvement: Support for zone file name patterns + improvement: Configurable location of zone timer database + improvement: Non-blocking network operations and better timeout handling + improvement: Caching of Critical configuration values for better performance + improvement: Logging of ACL failures + improvement: RRL: Add rate-limit-slip zero support to drop all responses + improvement: RRL: Document behavior for different rate-limit-slip options + improvement: kdig: Warning instead of error on TSIG validation failure + improvement: Cleanup of support libraries interfaces (libknot, libzscanner, libdnssec) + fix: synth-record module: Fix application of default configuration options + fix: TSIG: Allow compressed TSIG name when forwarding DDNS updates * Wed Nov 25 2015 Jan Vcelak 2.0.2-1 - new upstream release: + security fix: out-of-bound read in packet parser for malformed NAPTR record * Thu Sep 03 2015 Jan Vcelak 2.0.1-1 - new upstream release: + fix: do not reload expired zones on 'knotc reload' and server startup + fix: rare race-condition in event scheduling causing delayed event execution + fix: skipping of non-authoritative nodes in NSEC proofs + fix: TC flag setting in RRL slipped answers + fix: disable domain name compression for root label + fix: fix CNAME following when quering for NSEC RR type + fix: fix refreshing of DNSSEC signatures for zone keys + fix: fix binding an unavailable IPv6 address (IP_FREEBIND) + fix: fix infinite loop in knotc zonestatus and memstats + fix: fix memory leak in configuration on server shutdown + fix: fix broken dnsproxy module + fix: fix multi value parsing on big-endian + fix: adapt to Nettle 3 API break causing base64 decoding failures on big-endian + feature: add 'keymgr zone key ds' to show key's DS record + feature: add 'keymgr tsig generate' to generate TSIG keys + feature: add query module scoping to process either all queries or zone queries only + feature: add support for file name globbing in config file includes + feature: add 'request-edns-option' config option to add custom EDNS0 option into server initiated queries + improvement: send minimal responses (remove NS from Authority section for NOERROR) + improvement: update persistent timers only on shutdown for better performance + improvement: allow change of RR TTL over DDNS + improvement: documentation fixes, updates, and improvements in formatting + improvement: install yparser and zscanner header files * Mon Jul 20 2015 Jan Vcelak 2.0.0-1 - new upstream release: + feature: possibility to disable zone file synchronization + feature: knsupdate, add input prompt in interactive mode + feature: knsupdate, TSIG algorithm specification in interactive mode * Thu Jun 18 2015 Jan Vcelak 2.0.0-0.1.rc1 - new upstream pre-release: + fix: lost NOTIFY message if received during zone transfer + fix: kdig, record correct dnstap SocketProtocol when retrying over TCP + fix: kdig, hide TSIG section with +noall + fix: do not set AA flag for AXFR/IXFR queries + feature: new configuration format in YAML, binary store im LMDB + feature: DNSSEC, separate library, switch to GnuTLS, new utilities + feature: DNSSEC, basic KASP support (generate initial keys, ZSK rollover) + feature: zone parser, split long TXT/SPF strings into multiple strings + feature: kdig, add generic dump style option (+generic) + feature: try all master servers on failure in multi-master environment + feature: improved remotes and ACLs (multiple addresses, multiple keys) + feature: basic support for zone file patterns (%s to substitute zone name) + improvement: do not write class for SOA record (unified with other RR types) + improvement: do not write master server address into the zone file + documentation: manual pages also in HTML and PDF format * Wed Jun 17 2015 Fedora Release Engineering - 1.99.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Mon May 04 2015 Kalev Lember - 1.99.1-3 - Rebuilt for nettle soname bump * Fri Feb 13 2015 Jan Vcelak 1.99.1-2 - fix BuildRequires for systemd integration * Fri Feb 13 2015 Jan Vcelak 1.99.1-1 - new upstream pre-release version: + DNSSEC: switch from OpenSSL to GnuTLS + DNSSEC: initial support for KASP - split package into subpackages - add documentation building - restart daemon on updated