]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
distro/pkg/rpm: added systemd-sysusers
authorAleš Mrázek <ales.mrazek@nic.cz>
Tue, 12 May 2026 21:35:50 +0000 (23:35 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Tue, 12 May 2026 21:49:57 +0000 (23:49 +0200)
The recommended systemd's sysusers is used to add user and group.

NEWS
distro/pkg/rpm/knot-resolver.spec

diff --git a/NEWS b/NEWS
index fc7fb62e33351a1c878491eb19edf1213cae1bd8..3195ec947b9cff1af0fbf18419d513d29277dd6c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,14 @@
 Knot Resolver 5.7.7 (2026-0m-dd)
 ================================
 
-Improvements:
--------------
+Improvements
+------------
 - support cmocka 2.0.0
 - avoid AD=1 in reply if ANSWER+AUTHORITY are empty (#914)
+- packaging: rpm: added systemd's sysusers support (!1830)  
+  This should also resolve the issue with user and group  
+  configuration during installation (GH#130).
+
 
 Bugfixes
 --------
index 022b2fcd9ccd64b7f0a269cfeab8f5aafad6512d..c77b6b35ebe59f53d57203b5562229e8c0b52629 100644 (file)
@@ -59,6 +59,7 @@ BuildRequires:  pkgconfig(luajit) >= 2.0
 BuildRequires:  jemalloc-devel
 
 Requires:       systemd
+Requires(pre):  systemd
 Requires(post): systemd
 
 # dnstap module dependencies
@@ -75,7 +76,6 @@ BuildRequires:  lmdb-devel
 Requires:       lua-basexx
 Requires:       lua-psl
 Requires:       lua-http
-Requires(pre):  shadow-utils
 %endif
 %if 0%{?fedora} || 0%{?rhel} > 7
 BuildRequires:  pkgconfig(lmdb)
@@ -83,7 +83,6 @@ Requires:       lua5.1-basexx
 Requires:       lua5.1-cqueues
 Requires:       lua5.1-http
 Recommends:     lua5.1-psl
-Requires(pre):  shadow-utils
 %endif
 
 # we do not build HTTP module on SuSE so the build requires is not needed
@@ -95,10 +94,6 @@ BuildRequires:  openssl-devel
 # openSUSE specific
 %define NINJA ninja
 BuildRequires:  lmdb-devel
-Requires(pre):  shadow
-
-Provides:   user(knot-resolver)
-Provides:   group(knot-resolver)
 %endif
 
 %if 0%{?DOCS}
@@ -214,6 +209,9 @@ CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" meson build_rpm \
 meson test -C build_rpm
 
 %install
+# install sysusers
+install -m 644 -D build_rpm/systemd/knot-resolver.sysusers %{_sysusersdir}/knot-resolver.conf
+
 DESTDIR="${RPM_BUILD_ROOT}" %{NINJA} -v -C build_rpm install
 
 # add kresd.target to multi-user.target.wants to support enabling kresd services
@@ -223,9 +221,6 @@ 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
@@ -240,8 +235,7 @@ mv %{buildroot}/%{_datadir}/doc/%{name}/* %{buildroot}/%{_pkgdocdir}/
 %endif
 
 %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
+%sysusers_create %{_sysusersdir}/knot-resolver.conf
 
 %if "x%{?rhel}" == "x"
 # upgrade-4-to-5
@@ -314,6 +308,7 @@ fi
 %config(noreplace) %{_sysconfdir}/knot-resolver/kresd.conf
 %config(noreplace) %{_sysconfdir}/knot-resolver/root.hints
 %{_sysconfdir}/knot-resolver/icann-ca.pem
+%{_sysusersdir}/knot-resolver.conf
 %attr(750,knot-resolver,knot-resolver) %dir %{_sharedstatedir}/knot-resolver
 %attr(640,knot-resolver,knot-resolver) %{_sharedstatedir}/knot-resolver/root.keys
 %{_unitdir}/kresd@.service