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 %global quassel_data_dir %{_var}/lib/quassel
Name: quassel Name: quassel
Summary: A modern distributed IRC system Summary: A modern distributed IRC system
Version: 0.13.1 Version: 0.13.1
Release: 10%{?dist} Release: 11%{?dist}
License: GPLv2 or GPLv3 License: GPLv2 or GPLv3
URL: http://quassel-irc.org/ URL: http://quassel-irc.org/
@ -41,6 +40,7 @@ BuildRequires: qt5-qtmultimedia-devel
BuildRequires: openldap-devel BuildRequires: openldap-devel
BuildRequires: systemd BuildRequires: systemd
BuildRequires: systemd-rpm-macros
BuildRequires: libappstream-glib BuildRequires: libappstream-glib
@ -53,6 +53,7 @@ Requires: %{name}-common = %{version}-%{release}
# Systemd service file and configuration script. # Systemd service file and configuration script.
Source1: quasselcore.service Source1: quasselcore.service
Source2: quassel.conf Source2: quassel.conf
Source3: quassel.sysusers
# Appstream metadata, for GNOME Software. # Appstream metadata, for GNOME Software.
Source4: quassel.appdata.xml Source4: quassel.appdata.xml
@ -79,9 +80,6 @@ BuildArch: noarch
%package core %package core
Summary: Quassel core component Summary: Quassel core component
# Required for the quassel user.
Requires(pre): shadow-utils
# Weak dependency on qt5 postgresql bindings. # Weak dependency on qt5 postgresql bindings.
# We use a weak dependency here so they can be uninstalled if necessary. # We use a weak dependency here so they can be uninstalled if necessary.
Recommends: qt5-qtbase-postgresql Recommends: qt5-qtbase-postgresql
@ -119,6 +117,9 @@ install -Dp -m 0644 %{SOURCE2} %{buildroot}/%{_sysconfdir}/%{name}.conf
# Install systemd service file # Install systemd service file
install -Dp -m 0644 %{SOURCE1} %{buildroot}/%{_unitdir}/quasselcore.service 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 # Home directory for quassel user
install -d -m 0750 %{buildroot}/%{quassel_data_dir} 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 appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata.xml
# Core pre/post macros. # Core pre/post macros.
%pre core %pre core
getent group %{quassel_user} >/dev/null || groupadd -r %{quassel_user} %sysusers_create_compat %{SOURCE3}
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
%post core %post core
# Install quassel service. # Install quassel service.
@ -165,14 +161,18 @@ exit 0
%dir %attr(-,quassel,quassel) %{quassel_data_dir} %dir %attr(-,quassel,quassel) %{quassel_data_dir}
%{_unitdir}/quasselcore.service %{_unitdir}/quasselcore.service
%config(noreplace) %{_sysconfdir}/quassel.conf %config(noreplace) %{_sysconfdir}/quassel.conf
%{_sysusersdir}/%{name}.conf
%files client %files client
%{_kf5_bindir}/quasselclient %{_kf5_bindir}/quasselclient
%{_kf5_datadir}/applications/quasselclient.desktop %{_kf5_datadir}/applications/quasselclient.desktop
%{_datadir}/appdata/quasselclient.appdata.xml %{_datadir}/metainfo/quasselclient.appdata.xml
%changelog %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 * Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.13.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - 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