From: Jakub Ružička Date: Tue, 28 May 2024 12:41:51 +0000 (+0200) Subject: distro/pkg/rpm: merge -core and -manager into knot-resolver X-Git-Tag: v6.0.8~16^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c5d645d3cd3dec8b286cf5abc6e5f73b86ee0932;p=thirdparty%2Fknot-resolver.git distro/pkg/rpm: merge -core and -manager into knot-resolver --- diff --git a/distro/pkg/rpm/knot-resolver.spec b/distro/pkg/rpm/knot-resolver.spec index 5fd08f8dd..8b30059ed 100644 --- a/distro/pkg/rpm/knot-resolver.spec +++ b/distro/pkg/rpm/knot-resolver.spec @@ -25,16 +25,11 @@ Source100: kresd-keyblock.asc BuildRequires: gnupg2 %endif -%description -The Knot Resolver is a DNSSEC-enabled 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. - +Provides: knot-resolver6 = %{version}-%{release} -%package core -Summary: Caching full DNS Resolver - core binaries -Conflicts: knot-resolver < 6 +# alpha packaging compat, can be removed around 6.2 +Conflicts: knot-resolver-core +Conflicts: knot-resolver-manager # LuaJIT only on these arches ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 @@ -59,6 +54,19 @@ BuildRequires: python3-devel Requires: systemd Requires(post): systemd +# manager dependencies +Requires: python3 +Requires: python3-aiohttp +Requires: supervisor +%if 0%{?suse_version} +Requires: python3-PyYAML +Requires: python3-typing_extensions +%else +Requires: python3-pyyaml +Requires: python3-typing-extensions +%endif +Recommends: python3-prometheus_client + # dnstap module dependencies # SUSE is missing protoc-c protobuf compiler %if "x%{?suse_version}" == "x" @@ -96,15 +104,21 @@ BuildRequires: python3-setuptools Requires(pre): shadow %endif -%description core +%description The Knot Resolver is a DNSSEC-enabled 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. +Knot Resolver Manager is a configuration tool for Knot Resolver. The Manager +hides the complexity of running several independent resolver processes while +ensuring zero-downtime reconfiguration with YAML/JSON declarative +configuration and an optional HTTP API for dynamic changes. + + %package devel Summary: Development headers for Knot Resolver -Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The package contains development headers for Knot Resolver. @@ -112,7 +126,7 @@ The package contains development headers for Knot Resolver. %if "x%{?suse_version}" == "x" %package module-dnstap Summary: dnstap module for Knot Resolver -Requires: %{name}-core = %{version}-%{release} +Requires: %{name} = %{version}-%{release} %description module-dnstap dnstap module for Knot Resolver supports logging DNS responses to a unix socket @@ -123,7 +137,7 @@ need effectively log all DNS traffic. %if "x%{?suse_version}" == "x" %package module-http Summary: HTTP module for Knot Resolver -Requires: %{name}-core = %{version}-%{release} +Requires: %{name} = %{version}-%{release} %if 0%{?fedora} || 0%{?rhel} > 7 Requires: lua5.1-http Requires: lua5.1-mmdb @@ -139,28 +153,6 @@ 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 -%package -n knot-resolver-manager -Summary: Configuration tool for Knot Resolver -Provides: knot-resolver6 = %{version}-%{release} -Requires: %{name}-core = %{version}-%{release} -Requires: python3 -Requires: python3-aiohttp -Requires: supervisor -%if 0%{?suse_version} -Requires: python3-PyYAML -Requires: python3-typing_extensions -%else -Requires: python3-pyyaml -Requires: python3-typing-extensions -%endif -Recommends: python3-prometheus_client - -%description -n knot-resolver-manager -Knot Resolver Manager is a configuration tool for Knot Resolver. The Manager -hides the complexity of running several independent resolver processes while -ensuring zero-downtime reconfiguration with YAML/JSON declarative -configuration and an optional HTTP API for dynamic changes. - %prep %if 0%{GPG_CHECK} export GNUPGHOME=./gpg-keyring @@ -237,44 +229,48 @@ install -m 644 -D shell-completion/client.fish %{buildroot}%{_datarootdir}/fish/ popd -%pre core +%pre getent group knot-resolver >/dev/null || groupadd -r knot-resolver getent passwd knot-resolver >/dev/null || useradd -r -g knot-resolver -d %{_sysconfdir}/knot-resolver -s /sbin/nologin -c "Knot Resolver" knot-resolver -%post core +%post # systemd_post macro is not needed for anything (calls systemctl preset) %tmpfiles_create %{_tmpfilesdir}/knot-resolver.conf %if "x%{?fedora}" == "x" /sbin/ldconfig %endif -%preun manager +%preun %systemd_preun knot-resolver.service -%postun manager +%postun %systemd_postun_with_restart knot-resolver.service %if "x%{?fedora}" == "x" /sbin/ldconfig %endif -%files core +%files %dir %{_pkgdocdir} %license %{_pkgdocdir}/COPYING %doc %{_pkgdocdir}/AUTHORS %doc %{_pkgdocdir}/NEWS %doc %{_pkgdocdir}/examples %dir %{_sysconfdir}/knot-resolver +%config(noreplace) %{_sysconfdir}/knot-resolver/config.yaml %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 %dir %{_unitdir}/multi-user.target.wants +%{_unitdir}/knot-resolver.service %{_unitdir}/multi-user.target.wants/knot-resolver.service %{_tmpfilesdir}/knot-resolver.conf %ghost /run/%{name} %ghost %{_localstatedir}/cache/%{name} %attr(750,knot-resolver,knot-resolver) %dir %{_libdir}/%{name} +%{_bindir}/kresctl +%{_bindir}/knot-resolver %{_sbindir}/kresd %{_sbindir}/kres-cache-gc %{_libdir}/libkres.so.* @@ -313,6 +309,7 @@ getent passwd knot-resolver >/dev/null || useradd -r -g knot-resolver -d %{_sysc %{_libdir}/knot-resolver/kres_modules/workarounds.lua %{python3_sitelib}/knot_resolver.py %{python3_sitelib}/knot_resolver-* +%{python3_sitearch}/knot_resolver_manager* %if 0%{?suse_version} %pycache_only %{python3_sitelib}/__pycache__/knot_resolver.* %else @@ -320,6 +317,8 @@ getent passwd knot-resolver >/dev/null || useradd -r -g knot-resolver -d %{_sysc %endif %{_mandir}/man8/kresd.8.gz %{_mandir}/man8/kresctl.8.gz +%{_datarootdir}/bash-completion/completions/kresctl +%{_datarootdir}/fish/completions/kresctl.fish %files devel %{_includedir}/libkres @@ -339,15 +338,6 @@ getent passwd knot-resolver >/dev/null || useradd -r -g knot-resolver -d %{_sysc %{_libdir}/knot-resolver/kres_modules/prometheus.lua %endif -%files -n knot-resolver-manager -%{python3_sitearch}/knot_resolver_manager* -%config(noreplace) %{_sysconfdir}/knot-resolver/config.yaml -%{_unitdir}/knot-resolver.service -%{_bindir}/kresctl -%{_bindir}/knot-resolver -%{_datarootdir}/bash-completion/completions/kresctl -%{_datarootdir}/fish/completions/kresctl.fish - %changelog * {{ now }} Jakub Ružička - {{ version }}-{{ release }} - upstream package