diff --git a/knot-resolver.spec b/knot-resolver.spec index 546b186..5a84658 100644 --- a/knot-resolver.spec +++ b/knot-resolver.spec @@ -2,13 +2,12 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}} %define GPG_CHECK 1 -%define VERSION 5.1.3 %define repodir %{_builddir}/%{name}-%{version} %define NINJA ninja-build Name: knot-resolver -Version: %{VERSION} -Release: 2%{?dist} +Version: 5.4.2 +Release: 1%{?dist} Summary: Caching full DNS Resolver License: GPL-3.0-or-later @@ -40,9 +39,10 @@ BuildRequires: meson BuildRequires: pkgconfig(cmocka) BuildRequires: pkgconfig(gnutls) BuildRequires: pkgconfig(libedit) -BuildRequires: pkgconfig(libknot) >= 2.8 -BuildRequires: pkgconfig(libzscanner) >= 2.8 -BuildRequires: pkgconfig(libdnssec) >= 2.8 +BuildRequires: pkgconfig(libknot) >= 2.9 +BuildRequires: pkgconfig(libzscanner) >= 2.9 +BuildRequires: pkgconfig(libdnssec) >= 2.9 +BuildRequires: pkgconfig(libnghttp2) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libcap-ng) BuildRequires: pkgconfig(libuv) @@ -51,6 +51,13 @@ BuildRequires: pkgconfig(luajit) >= 2.0 Requires: systemd Requires(post): systemd +# dnstap module dependencies +# SUSE is missing protoc-c protobuf compiler +%if "x%{?suse_version}" == "x" +BuildRequires: pkgconfig(libfstrm) +BuildRequires: pkgconfig(libprotobuf-c) +%endif + # Distro-dependent dependencies %if 0%{?rhel} == 7 BuildRequires: lmdb-devel @@ -90,6 +97,7 @@ Requires(pre): shadow BuildRequires: doxygen BuildRequires: python3-breathe BuildRequires: python3-sphinx_rtd_theme +BuildRequires: texinfo %endif %description @@ -119,9 +127,20 @@ Requires: %{name} = %{version}-%{release} Documentation for Knot Resolver %endif +%if "x%{?suse_version}" == "x" +%package module-dnstap +Summary: dnstap module for Knot Resolver +Requires: %{name} = %{version}-%{release} + +%description module-dnstap +dnstap module for Knot Resolver supports logging DNS responses to a unix socket +in dnstap format using fstrm framing library. This logging is useful if you +need effectivelly log all DNS traffic. +%endif + %if "x%{?suse_version}" == "x" %package module-http -Summary: HTTP/2 module for Knot Resolver +Summary: HTTP module for Knot Resolver Requires: %{name} = %{version}-%{release} %if 0%{?fedora} || 0%{?rhel} > 7 Requires: lua5.1-http @@ -132,9 +151,10 @@ Requires: lua-mmdb %endif %description module-http -HTTP/2 module for Knot Resolver has multiple uses. It enables use of -DNS-over-HTTP, can serve as API endpoint for other modules or provide a web -interface for local visualization of the resolver cache and queries. +HTTP module for Knot Resolver can serve as API endpoint for other modules or +provide a web interface for local visualization of the resolver cache and +queries. It can also serve DNS-over-HTTPS, but it is deprecated in favor of +native C implementation, which doesn't require this package. %endif %prep @@ -153,6 +173,9 @@ CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" meson build_rpm \ %endif -Dsystemd_files=enabled \ -Dclient=enabled \ +%if "x%{?suse_version}" == "x" + -Ddnstap=enabled \ +%endif -Dunit_tests=enabled \ -Dmanaged_ta=enabled \ -Dkeyfile_default="%{_sharedstatedir}/knot-resolver/root.keys" \ @@ -183,6 +206,9 @@ ln -s ../kresd.target %{buildroot}%{_unitdir}/multi-user.target.wants/kresd.targ # remove modules with missing dependencies rm %{buildroot}%{_libdir}/knot-resolver/kres_modules/etcd.lua +# remove unused sysusers +rm %{buildroot}%{_prefix}/lib/sysusers.d/knot-resolver.conf + %if 0%{?suse_version} rm %{buildroot}%{_libdir}/knot-resolver/kres_modules/experimental_dot_auth.lua rm -r %{buildroot}%{_libdir}/knot-resolver/kres_modules/http @@ -267,12 +293,12 @@ fi %doc %{_pkgdocdir}/AUTHORS %doc %{_pkgdocdir}/NEWS %doc %{_pkgdocdir}/examples -%attr(755,root,knot-resolver) %dir %{_sysconfdir}/knot-resolver -%attr(644,root,knot-resolver) %config(noreplace) %{_sysconfdir}/knot-resolver/kresd.conf -%attr(644,root,knot-resolver) %config(noreplace) %{_sysconfdir}/knot-resolver/root.hints -%attr(644,root,knot-resolver) %{_sysconfdir}/knot-resolver/icann-ca.pem -%attr(775,root,knot-resolver) %dir %{_sharedstatedir}/knot-resolver -%attr(664,root,knot-resolver) %{_sharedstatedir}/knot-resolver/root.keys +%dir %{_sysconfdir}/knot-resolver +%config(noreplace) %{_sysconfdir}/knot-resolver/kresd.conf +%config(noreplace) %{_sysconfdir}/knot-resolver/root.hints +%{_sysconfdir}/knot-resolver/icann-ca.pem +%attr(750,knot-resolver,knot-resolver) %dir %{_sharedstatedir}/knot-resolver +%attr(640,knot-resolver,knot-resolver) %{_sharedstatedir}/knot-resolver/root.keys %{_unitdir}/kresd@.service %{_unitdir}/kres-cache-gc.service %{_unitdir}/kresd.target @@ -282,7 +308,7 @@ fi %{_tmpfilesdir}/knot-resolver.conf %ghost /run/%{name} %ghost %{_localstatedir}/cache/%{name} -%attr(770,root,knot-resolver) %dir %{_libdir}/%{name} +%attr(750,knot-resolver,knot-resolver) %dir %{_libdir}/%{name} %{_sbindir}/kresd %{_sbindir}/kresc %{_sbindir}/kres-cache-gc @@ -291,7 +317,12 @@ fi %{_libdir}/knot-resolver/*.so %{_libdir}/knot-resolver/*.lua %dir %{_libdir}/knot-resolver/kres_modules -%{_libdir}/knot-resolver/kres_modules/*.so +%{_libdir}/knot-resolver/kres_modules/bogus_log.so +%{_libdir}/knot-resolver/kres_modules/edns_keepalive.so +%{_libdir}/knot-resolver/kres_modules/hints.so +%{_libdir}/knot-resolver/kres_modules/nsid.so +%{_libdir}/knot-resolver/kres_modules/refuse_nord.so +%{_libdir}/knot-resolver/kres_modules/stats.so %{_libdir}/knot-resolver/kres_modules/daf %{_libdir}/knot-resolver/kres_modules/daf.lua %{_libdir}/knot-resolver/kres_modules/detect_time_jump.lua @@ -325,6 +356,14 @@ fi %files doc %dir %{_pkgdocdir} %doc %{_pkgdocdir}/html +%doc %{_datadir}/info/knot-resolver.info* +%dir %{_datadir}/info/knot-resolver-figures +%doc %{_datadir}/info/knot-resolver-figures/* +%endif + +%if "x%{?suse_version}" == "x" +%files module-dnstap +%{_libdir}/knot-resolver/kres_modules/dnstap.so %endif %if "x%{?suse_version}" == "x" @@ -336,6 +375,36 @@ fi %endif %changelog +* Mon Oct 18 2021 Jakub Ružička - 5.4.2-1 +- update to upstream version 5.4.2 + +* Thu Aug 19 2021 Jakub Ružička - 5.4.1-1 +- update to upstream version 5.4.1 + +* Thu Jul 29 2021 Jakub Ružička - 5.4.0-1 +- update to upstream version 5.4.0 + +* Fri May 07 2021 Jakub Ružička - 5.3.2-1 +- update to upstream version 5.3.2 + +* Thu Apr 01 2021 Jakub Ružička - 5.3.1-1 +- update to upstream version 5.3.1 + +* Mon Mar 01 2021 Jakub Ružička - 5.3.0-1 +- update to upstream version 5.3.0 +- add dnstap module subpackage +- required Knot DNS >= 2.9 + +* Fri Dec 18 2020 Jakub Ružička - 5.2.1-1 +- update to upstream version 5.2.1 + +* Wed Nov 11 2020 Jakub Ružička 5.2.0-1 +- update to upstream version 5.2.0 +- sync packaging from upstream + +* Mon Oct 19 2020 Jakub Ružička - 5.1.3-3 +- rebuild for Knot DNS 3.0.1 + * Wed Sep 23 2020 Jakub Ružička 5.1.3-2 - rebuild for Knot DNS 3.0.0 diff --git a/sources b/sources index 89ce04c..a47ac53 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (knot-resolver-5.1.3.tar.xz) = 0d97a7094922cd02a47bb24f703186b167e04e8545e4c433821544643a9adc44e00f7c33c31ab852a402a5bc25f05742c8f3b955099a0bafd910496d5cca43e2 -SHA512 (knot-resolver-5.1.3.tar.xz.asc) = 5fe43f3001d4990e3f20c0e9d58d5c825f32693a56822e585f3a40a2b31e57c128686088428cb1e8be36e458620d57aaeab6d7995860f753df11fc9fbb946812 +SHA512 (knot-resolver-5.4.2.tar.xz) = d8d4eeea1bf04496b930fe8984ebb5314ef6e0db0f8182f98db63b8508f4da6e0620c2b9c7eeecb3e5a4e7b15469798e0c2d1b8ef71a681ed7dd38d0089dea1d +SHA512 (knot-resolver-5.4.2.tar.xz.asc) = 098317d9761d1398cf334978367ce260fe49e877f2192fedd8cbd69f7c8ffa7cf32dd07eba4ca9a3fa70c148271459ef0edb154d4b161deec87de7c2fb4bff50 diff --git a/tests/README.md b/tests/README.md index 295aeb7..8f69da4 100644 --- a/tests/README.md +++ b/tests/README.md @@ -2,7 +2,7 @@ Package tests ============= These tests implement the standard test interface in Fedora CI. -See https://fedoraproject.org/wiki/CI/Tests for details. +See https://docs.fedoraproject.org/en-US/ci/tests/ for details. Manual execution ---------------- @@ -12,11 +12,3 @@ modifications to your system. It's best to run these on a clean, throw-away testing system or a VM. ansible-playbook tests/tests.yml -e subjects=/path/to/knot-resolver.rpm -e artifacts=/path/to/artifacts - -Automatic execution -------------------- - -These tests should eventually be automatically executed by the Fedora CI -pipeline. As of 2018-01-10, it is not supported for packages that aren't part -of Fedora Atomic. Once it is implemented, the results of these tests should be -visible in dist-git commits on src.fedoraproject.org diff --git a/tests/scripts/test_manual_activation.sh b/tests/scripts/test_manual_activation.sh new file mode 100755 index 0000000..c595e05 --- /dev/null +++ b/tests/scripts/test_manual_activation.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -ex + +systemctl stop kresd@1.service +systemctl start kresd@1.service + +dig @127.0.0.1 . diff --git a/tests/test_manual_activation.yml b/tests/test_manual_activation.yml deleted file mode 100644 index cb61748..0000000 --- a/tests/test_manual_activation.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- block: - - name: make sure kresd@1 socket and service is off - service: - name: "{{ item }}" - state: stopped - with_items: - - kresd@1.service - - kresd@1.socket - failed_when: false - - - name: start kresd@1.service - service: - name: kresd@1.service - state: started - - - name: check if query is answered - shell: dig @127.0.0.1 . - rescue: - - set_fact: - manual_activation_failed: true - always: - - name: collect journal - shell: journalctl --since -10m > {{ artifacts }}/test_manual_activation_journal.log diff --git a/tests/test_socket_activation.yml b/tests/test_socket_activation.yml deleted file mode 100644 index 43c4c5e..0000000 --- a/tests/test_socket_activation.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -- block: - - name: make sure kresd socket and service is off - service: - name: "{{ item }}" - state: stopped - with_items: - - kresd@1.service - - kresd.socket - - - name: start kresd.socket - service: - name: kresd.socket - state: started - - - name: check if query is answered - shell: dig @127.0.0.1 . - rescue: - - set_fact: - socket_activation_failed: true - always: - - name: collect journal - shell: journalctl --since -10m > {{ artifacts }}/test_socket_activation_journal.log diff --git a/tests/tests.yml b/tests/tests.yml index e42b12e..1f4dc95 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -1,28 +1,15 @@ --- - hosts: localhost remote_user: root - pre_tasks: - - package: # Install additional dependecies - name: bind-utils - state: latest roles: - - role: standard-test-rpm + - role: standard-test-basic tags: - classic - tasks: - - include_tasks: test_socket_activation.yml - when: ansible_distribution == 'Fedora' - - include_tasks: test_manual_activation.yml - - - set_fact: - tests_passed: '{{ socket_activation_failed is undefined and manual_activation_failed is undefined }}' - - name: report results - debug: - msg: | - test_socket_activation: {{ 'FAILED' if socket_activation_failed is defined else 'OK'}} - test_manual_activation: {{ 'FAILED' if manual_activation_failed is defined else 'OK'}} - - - name: fail playbook if tests failed - debug: - msg: --- {{ 'PASSED' if tests_passed else 'FAILED' }} --- - failed_when: not tests_passed + required_packages: + - bind-utils + tests: + - kresd-show-version: + run: kresd --version + - manual-activation: + dir: scripts + run: ./test_manual_activation.sh