data: add systemd unit file for running daemon

This adds a systemd unit file for running the Calls daemon, and adds a
key to the xdg autostart file to instruct gnome-session to ignore
starting when systemd is present. The expectation is that systemd
distros will enable the Calls daemon as a user service and not rely on
xdg autostart / gnome-session for running/managing the service. Systemd
is better at managing services than gnome-session.

Note: it's important to keep the xdg-autostart file around, some distros
(pmOS on openrc, others) don't use systemd and will still need to rely
on the xdg autostart mechanism for starting the Calls daemon.

Co-authored-by: Guido Günther <agx@sigxcpu.org>
This commit is contained in:
Clayton Craft
2024-06-10 14:20:00 -07:00
parent 4bc5f021d0
commit bf6d4c22f4
5 changed files with 39 additions and 2 deletions

View File

@@ -0,0 +1,11 @@
[Unit]
Description=A phone dialer and call handler (daemon mode)
PartOf=graphical-session.target
[Service]
BusName=org.gnome.Calls
ExecStart=@bindir@/gnome-calls --daemon
Type=dbus
[Install]
WantedBy=graphical-session.target

View File

@@ -20,11 +20,11 @@ desktop_daemon_file = i18n.merge_file(
install_dir : join_paths(sysconfdir, 'xdg/autostart')
)
# DBus service
service_data = configuration_data()
service_data.set('bindir', full_bindir)
service_file = 'org.gnome.Calls.service'
# DBus service
service_file = 'org.gnome.Calls.service'
configure_file(
input : service_file + '.in',
output : service_file,
@@ -33,6 +33,16 @@ configure_file(
install_dir : full_servicedir,
)
# Systemd user service
systemd_unit = 'calls-daemon.service'
configure_file(
input : systemd_unit + '.in',
output : systemd_unit,
configuration : service_data,
install : true,
install_dir : systemd_user_unit_dir,
)
desktop_utils = find_program('desktop-file-validate', required: false)
if desktop_utils.found()
test('Validate desktop file',

View File

@@ -15,3 +15,4 @@ Terminal=false
Categories=Network;GNOME;GTK;Telephony;
X-GNOME-AutoRestart=true
X-GNOME-UsesNotifications=true
X-GNOME-HiddenUnderSystemd=true