mirror of
https://gitlab.gnome.org/GNOME/calls.git
synced 2024-11-09 10:01:17 +00:00
bf6d4c22f4
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>
120 lines
2.7 KiB
Meson
120 lines
2.7 KiB
Meson
datadir = get_option('datadir')
|
|
sysconfdir = get_option('sysconfdir')
|
|
|
|
# Desktop file
|
|
desktop_file = i18n.merge_file(
|
|
input : 'org.gnome.Calls.desktop.in',
|
|
output : 'org.gnome.Calls.desktop',
|
|
type : 'desktop',
|
|
po_dir : po_dir,
|
|
install : true,
|
|
install_dir : join_paths(datadir, 'applications')
|
|
)
|
|
|
|
desktop_daemon_file = i18n.merge_file(
|
|
input : 'org.gnome.Calls-daemon.desktop.in',
|
|
output : 'org.gnome.Calls-daemon.desktop',
|
|
type : 'desktop',
|
|
po_dir : po_dir,
|
|
install : true,
|
|
install_dir : join_paths(sysconfdir, 'xdg/autostart')
|
|
)
|
|
|
|
service_data = configuration_data()
|
|
service_data.set('bindir', full_bindir)
|
|
|
|
# DBus service
|
|
service_file = 'org.gnome.Calls.service'
|
|
configure_file(
|
|
input : service_file + '.in',
|
|
output : service_file,
|
|
configuration : service_data,
|
|
install : true,
|
|
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',
|
|
desktop_utils,
|
|
args: [
|
|
desktop_file.full_path()
|
|
],
|
|
depends: [
|
|
desktop_file,
|
|
],
|
|
)
|
|
test('Validate daemon desktop file',
|
|
desktop_utils,
|
|
args: [
|
|
desktop_daemon_file.full_path()
|
|
],
|
|
depends: [
|
|
desktop_daemon_file,
|
|
],
|
|
)
|
|
endif
|
|
|
|
|
|
# Metainfo file
|
|
install_data('org.gnome.Calls.metainfo.xml',
|
|
install_dir: join_paths(datadir, 'metainfo'),
|
|
)
|
|
|
|
appstreamcli = find_program('appstreamcli', required: false)
|
|
if appstreamcli.found()
|
|
test('Validate metainfo file', appstreamcli,
|
|
args: ['validate',
|
|
'--pedantic',
|
|
'--no-net',
|
|
join_paths(meson.current_source_dir(),
|
|
'org.gnome.Calls.metainfo.xml')
|
|
])
|
|
endif
|
|
|
|
# Icons
|
|
install_data(
|
|
'org.gnome.Calls.svg',
|
|
install_dir: join_paths(
|
|
datadir,
|
|
'icons',
|
|
'hicolor',
|
|
'scalable',
|
|
'apps'
|
|
)
|
|
)
|
|
install_data(
|
|
'org.gnome.Calls-symbolic.svg',
|
|
install_dir: join_paths(
|
|
datadir,
|
|
'icons',
|
|
'hicolor',
|
|
'symbolic',
|
|
'apps'
|
|
)
|
|
)
|
|
|
|
schema_src = 'org.gnome.Calls.gschema.xml'
|
|
compiled = gnome.compile_schemas(build_by_default: true,
|
|
depend_files: files(schema_src))
|
|
|
|
install_data(schema_src,
|
|
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
|
|
)
|
|
|
|
compile_schemas = find_program('glib-compile-schemas', required: false)
|
|
if compile_schemas.found()
|
|
test('Validate schema file', compile_schemas,
|
|
args: ['--strict', '--dry-run', meson.current_source_dir()]
|
|
)
|
|
endif
|