%global debug_package %{nil} %define _build_id_links none %if 0%{?rhel} && 0%{?rhel} < 10 %global gcc_toolset_enable source /opt/rh/gcc-toolset-15/enable %else %global gcc_toolset_enable source /usr/lib/gcc-toolset/15-env.source %endif Name: knot-resolver Version: 6.4.2 Release: 1%{?dist} Summary: Caching full DNS resolver License: GPL-3.0-or-later URL: https://www.knot-resolver.cz/ Source0: https://secure.nic.cz/files/%{name}/%{name}-%{version}.tar.xz BuildRequires: gcc-toolset-15-gcc BuildRequires: gcc-toolset-15-gcc-c++ BuildRequires: gcc-toolset-15-gcc-plugin-annobin BuildRequires: meson BuildRequires: ninja-build BuildRequires: pkgconfig BuildRequires: pkgconfig(gnutls) >= 3.4 BuildRequires: pkgconfig(libcap-ng) BuildRequires: pkgconfig(libdnssec) >= 3.3 BuildRequires: pkgconfig(libknot) >= 3.3 BuildRequires: pkgconfig(libnghttp2) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libuv) >= 1.27 BuildRequires: pkgconfig(libzscanner) >= 3.3 BuildRequires: pkgconfig(luajit) BuildRequires: pkgconfig(lmdb) BuildRequires: jemalloc-devel BuildRequires: python3-devel BuildRequires: python3dist(poetry-core) BuildRequires: python3dist(setuptools) BuildRequires: pyproject-rpm-macros Requires: python3dist(aiohttp) Requires: python3dist(jinja2) Requires: python3dist(pyyaml) Requires: python3dist(supervisor) Requires: python3dist(typing-extensions) Requires: lua5.1-basexx Requires: lua5.1-cqueues Requires: lua5.1-http Recommends: lua5.1-psl Recommends: python3dist(prometheus-client) Recommends: python3dist(watchdog) %description Knot Resolver is a caching, DNSSEC-validating full DNS resolver. The resolver core is written in C and LuaJIT. Knot Resolver 6 also includes a Python manager that provides declarative YAML configuration, automatic worker management, and a local management API. %package devel Summary: Development headers for Knot Resolver Requires: %{name}%{?_isa} = %{version}-%{release} %description devel This package contains the development headers, shared-library links, and pkg-config metadata for Knot Resolver. %prep %{gcc_toolset_enable} %autosetup -p1 %generate_buildrequires %pyproject_buildrequires %build %{gcc_toolset_enable} %meson \ -Ddoc=disabled \ -Dsystemd_files=disabled \ -Dsystemd_legacy_units=disabled \ -Dutils=enabled \ -Ddnstap=disabled \ -Dquic=disabled \ -Dunit_tests=disabled \ -Dconfig_tests=disabled \ -Dextra_tests=disabled \ -Dkres_gen_test=false \ -Dbench=disabled \ -Dmanaged_ta=enabled \ -Dkeyfile_default=root.keys \ -Dinstall_root_keys=enabled \ -Dinstall_kresd_conf=disabled \ -Dmalloc=jemalloc \ -Dinstall_rpath=disabled %meson_build %pyproject_wheel %install %meson_install %pyproject_install %pyproject_save_files knot_resolver # Remove files belonging only to disabled test and development components. find %{buildroot} -type f -name '*.pyc' -delete find %{buildroot} -type d -name __pycache__ -empty -delete # Remove bash completion rm %{buildroot}/%{_datadir}/bash-completion/completions/kresctl %files -f %{pyproject_files} %dir %{_sysconfdir}/knot-resolver %config(noreplace) %ghost %attr(0640,root,knot-resolver) %{_sysconfdir}/knot-resolver/config.yaml %config(noreplace) %{_sysconfdir}/knot-resolver/root.hints %{_sysconfdir}/knot-resolver/icann-ca.pem %attr(0640,knot-resolver,knot-resolver) %{_sysconfdir}/knot-resolver/root.keys %ghost %dir /run/knot-resolver %ghost %dir %{_localstatedir}/cache/knot-resolver %ghost %dir %{_localstatedir}/lib/knot-resolver %{_bindir}/knot-resolver %{_bindir}/kresctl %{_sbindir}/kresd %{_sbindir}/kres-cache-gc %{_libdir}/libkres.so.* %dir %{_libdir}/knot-resolver %{_libdir}/knot-resolver/*.so %{_libdir}/knot-resolver/*.lua %dir %{_libdir}/knot-resolver/kres_modules %{_libdir}/knot-resolver/kres_modules/* %dir %{_datadir}/doc/knot-resolver %{_datadir}/doc/knot-resolver/* %{_mandir}/man8/kresd.8.gz %{_mandir}/man8/kresctl.8.gz %files devel %{_includedir}/libkres %{_libdir}/libkres.so %{_libdir}/pkgconfig/libkres.pc %changelog %autochangelog