From a4a01db5bf6955af541208d5bac4ce2db3ef4ff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Thu, 10 Feb 2022 13:26:03 +0100 Subject: [PATCH] Use systemd sysusers config to create user and group See https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/#_dynamic_allocation --- quassel.spec | 24 ++++++++++++------------ quassel.sysusers | 1 + 2 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 quassel.sysusers diff --git a/quassel.spec b/quassel.spec index c593c85..86ab182 100755 --- a/quassel.spec +++ b/quassel.spec @@ -1,10 +1,9 @@ -%global quassel_user quassel %global quassel_data_dir %{_var}/lib/quassel Name: quassel Summary: A modern distributed IRC system Version: 0.13.1 -Release: 10%{?dist} +Release: 11%{?dist} License: GPLv2 or GPLv3 URL: http://quassel-irc.org/ @@ -41,6 +40,7 @@ BuildRequires: qt5-qtmultimedia-devel BuildRequires: openldap-devel BuildRequires: systemd +BuildRequires: systemd-rpm-macros BuildRequires: libappstream-glib @@ -53,6 +53,7 @@ Requires: %{name}-common = %{version}-%{release} # Systemd service file and configuration script. Source1: quasselcore.service Source2: quassel.conf +Source3: quassel.sysusers # Appstream metadata, for GNOME Software. Source4: quassel.appdata.xml @@ -79,9 +80,6 @@ BuildArch: noarch %package core Summary: Quassel core component -# Required for the quassel user. -Requires(pre): shadow-utils - # Weak dependency on qt5 postgresql bindings. # We use a weak dependency here so they can be uninstalled if necessary. Recommends: qt5-qtbase-postgresql @@ -119,6 +117,9 @@ install -Dp -m 0644 %{SOURCE2} %{buildroot}/%{_sysconfdir}/%{name}.conf # Install systemd service file install -Dp -m 0644 %{SOURCE1} %{buildroot}/%{_unitdir}/quasselcore.service +# Install the systemd-sysusers config +install -Dp -m 0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/%{name}.conf + # Home directory for quassel user install -d -m 0750 %{buildroot}/%{quassel_data_dir} @@ -128,13 +129,8 @@ cp -a %{SOURCE4} %{SOURCE5} %{buildroot}%{_datadir}/appdata/ appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata.xml # Core pre/post macros. - %pre core -getent group %{quassel_user} >/dev/null || groupadd -r %{quassel_user} -getent passwd %{quassel_user} >/dev/null || \ - useradd -r -g %{quassel_user} -d %{quassel_data_dir} -s /sbin/nologin \ - -c "Account to own and run the quasselcore daemon from." %{quassel_user} -exit 0 +%sysusers_create_compat %{SOURCE3} %post core # Install quassel service. @@ -165,14 +161,18 @@ exit 0 %dir %attr(-,quassel,quassel) %{quassel_data_dir} %{_unitdir}/quasselcore.service %config(noreplace) %{_sysconfdir}/quassel.conf +%{_sysusersdir}/%{name}.conf %files client %{_kf5_bindir}/quasselclient %{_kf5_datadir}/applications/quasselclient.desktop -%{_datadir}/appdata/quasselclient.appdata.xml +%{_datadir}/metainfo/quasselclient.appdata.xml %changelog +* Thu Feb 10 2022 Timothée Ravier - 0.13.1-11 +- Use systemd sysusers config to create user and group + * Fri Jan 21 2022 Fedora Release Engineering - 0.13.1-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/quassel.sysusers b/quassel.sysusers new file mode 100644 index 0000000..4f0fff5 --- /dev/null +++ b/quassel.sysusers @@ -0,0 +1 @@ +u quassel - "quasselcore daemon" /var/lib/quassel