Use systemd sysusers config to create user and group

See https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/#_dynamic_allocation
This commit is contained in:
Timothée Ravier 2022-02-10 13:26:03 +01:00
parent e0e5ccde41
commit a4a01db5bf
2 changed files with 13 additions and 12 deletions

View File

@ -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 <tim@siosm.fr> - 0.13.1-11
- Use systemd sysusers config to create user and group
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.13.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

1
quassel.sysusers Normal file
View File

@ -0,0 +1 @@
u quassel - "quasselcore daemon" /var/lib/quassel