Add systemd service for quasselcore (#602539).

Merge John Villalovos's patch to add a quasselcore.service file.
This commit is contained in:
Ben Rosser 2016-02-24 15:46:03 -05:00
parent c9f2a036e6
commit 87d75cd694
3 changed files with 65 additions and 1 deletions

2
quassel.conf Normal file
View File

@ -0,0 +1,2 @@
LISTEN=127.0.0.1
PORT=4242

View File

@ -1,7 +1,10 @@
%global quassel_user quassel
%global quassel_data_dir %{_var}/lib/quassel
Name: quassel
Summary: A modern distributed IRC system
Version: 0.12.3
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2 or GPLv3
Group: Applications/Internet
@ -17,12 +20,20 @@ BuildRequires: openssl-devel
BuildRequires: qt4-devel
BuildRequires: qt4-webkit-devel
BuildRequires: systemd
Requires: oxygen-icon-theme
Requires(pre): shadow-utils
Provides: %{name}-gui = %{version}-%{release}
Requires: %{name}-common = %{version}-%{release}
# Systemd service file and configuration script.
Source1: quasselcore.service
Source2: quassel.conf
%description
Quassel IRC is a modern, distributed IRC client,
meaning that one (or multiple) client(s) can attach
@ -79,6 +90,17 @@ make install/fast DESTDIR=${RPM_BUILD_ROOT} -C build
# unpackaged files
rm -f $RPM_BUILD_ROOT%{_datadir}/pixmaps/quassel.png
# Install quassel.conf for systemd file
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/
# Install systemd service file
install -d -m 0755 $RPM_BUILD_ROOT%{_unitdir}
install -p -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/
# Home directory for quassel user
install -d -m 0750 $RPM_BUILD_ROOT%{quassel_data_dir}
%clean
rm -rf $RPM_BUILD_ROOT
@ -94,6 +116,26 @@ fi
%posttrans common
gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
# 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
%post core
# Install quassel service; also give quassel user ACLs on /var/lib/quassel.
chown %{quassel_user}:%{quassel_user} %{quassel_data_dir}
%systemd_post quasselcore.service
%preun core
%systemd_preun quasselcore.service
%postun core
%systemd_postun_with_restart quasselcore.service
%files
%defattr(-,root,root,-)
%{_kde4_bindir}/quassel
@ -111,6 +153,9 @@ gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
%doc COPYING README
%doc gpl-2.0.txt gpl-3.0.txt
%{_kde4_bindir}/quasselcore
%{quassel_data_dir}
%{_unitdir}/quasselcore.service
%config(noreplace) %{_sysconfdir}/quassel.conf
%files client
%defattr(-,root,root,-)
@ -119,6 +164,11 @@ gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
%changelog
* Wed Feb 24 2016 Ben Rosser <rosser.bjr@gmail.com> 0.12.3-1
- Merged patch from John Villalovos to add a service file
- Added quassel user/group to -core subpackage
- Added configuration file and startup script to -core subpackage
* Tue Feb 09 2016 Ben Rosser <rosser.bjr@gmail.com> 0.12.3-1
- Update to latest upstream quassel release
- The CVE patch is not necessary for 0.12.3 or greater

12
quasselcore.service Normal file
View File

@ -0,0 +1,12 @@
[Unit]
Description=Quassel core service
After=network.target
[Service]
Type=simple
EnvironmentFile=-/etc/quassel.conf
User=quassel
ExecStart=/usr/bin/quasselcore --configdir=/var/lib/quassel --listen=${LISTEN} --port=${PORT}
[Install]
WantedBy=multi-user.target