diff options
author | Iñigo Martínez <inigomartinez@gmail.com> | 2017-11-06 19:40:59 +0100 |
---|---|---|
committer | Iñigo Martínez <inigomartinez@gmail.com> | 2017-11-07 13:19:35 +0100 |
commit | 327f1eee192a742a92e57345d25eda85cce630e6 (patch) | |
tree | 059667ec36f338bb0e00e058526ee50d01648802 | |
parent | d1189c1bede6a6cd2b6e89dfe50d66fead49a47e (diff) | |
download | gvfs-327f1eee192a742a92e57345d25eda85cce630e6.tar.gz |
build: Make SystemdService entry conditional
When systemd user units installation is disabled, SystemdService
entry should also not be present on D-Bus service files.
This patch adds a common D-Bus service file template allowing,
an homogeneus D-Bus service file generation and also a
SystemService entry conditioned to the systemd user units
installation option.
https://bugzilla.gnome.org/show_bug.cgi?id=786149
-rw-r--r-- | daemon/meson.build | 27 | ||||
-rw-r--r-- | dbus.service.in | 4 | ||||
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | metadata/meson.build | 27 | ||||
-rw-r--r-- | monitor/afc/meson.build | 29 | ||||
-rw-r--r-- | monitor/gdu/meson.build | 29 | ||||
-rw-r--r-- | monitor/goa/meson.build | 29 | ||||
-rw-r--r-- | monitor/gphoto2/meson.build | 28 | ||||
-rw-r--r-- | monitor/mtp/meson.build | 29 | ||||
-rw-r--r-- | monitor/udisks2/meson.build | 29 |
10 files changed, 156 insertions, 77 deletions
diff --git a/daemon/meson.build b/daemon/meson.build index a31f5f6e..6dda4d6b 100644 --- a/daemon/meson.build +++ b/daemon/meson.build @@ -1,15 +1,9 @@ subdir('trashlib') # D-Bus and systemd service files -service = gvfs_namespace + '.Daemon.service' - -daemon_service = configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: dbus_service_dir, - configuration: service_conf -) +dbus_service = gvfs_namespace + '.Daemon' +dbus_exec = 'gvfsd' +dbus_systemd_service = '' if install_systemd_user_unit_dir service = 'gvfs-daemon.service' @@ -21,8 +15,23 @@ if install_systemd_user_unit_dir install_dir: systemd_user_unit_dir, configuration: service_conf ) + + dbus_systemd_service = 'SystemdService=' + service endif +dbus_service_conf = configuration_data() +dbus_service_conf.set('service', dbus_service) +dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec)) +dbus_service_conf.set('systemd_service', dbus_systemd_service) + +daemon_service = configure_file( + input: dbus_service_in, + output: dbus_service + '.service', + install: true, + install_dir: dbus_service_dir, + configuration: dbus_service_conf +) + gnome.mkenums( 'org.gnome.system.gvfs.enums.xml', sources: 'gvfs-enums.h', diff --git a/dbus.service.in b/dbus.service.in new file mode 100644 index 00000000..9df76f5e --- /dev/null +++ b/dbus.service.in @@ -0,0 +1,4 @@ +[D-BUS Service] +Name=@service@ +Exec=@exec@ +@systemd_service@ diff --git a/meson.build b/meson.build index 07eff014..76bc132c 100644 --- a/meson.build +++ b/meson.build @@ -277,6 +277,8 @@ if dbus_service_dir == '' dbus_service_dir = dbus_dep.get_pkgconfig_variable('session_bus_services_dir') endif +dbus_service_in = files('dbus.service.in') + gio_module_dir = get_option('with-gio-module-dir') if gio_module_dir == '' gio_module_dir = gio_dep.get_pkgconfig_variable('giomoduledir') diff --git a/metadata/meson.build b/metadata/meson.build index a4f939a5..e1625b80 100644 --- a/metadata/meson.build +++ b/metadata/meson.build @@ -1,12 +1,6 @@ -service = gvfs_namespace + '.Metadata.service' - -metadata_service = configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: dbus_service_dir, - configuration: service_conf -) +dbus_service = gvfs_namespace + '.Metadata' +dbus_exec = 'gvfsd-metadata' +dbus_systemd_service = '' if install_systemd_user_unit_dir service = 'gvfs-metadata.service' @@ -18,8 +12,23 @@ if install_systemd_user_unit_dir install_dir: systemd_user_unit_dir, configuration: service_conf ) + + dbus_systemd_service = 'SystemdService=' + service endif +dbus_service_conf = configuration_data() +dbus_service_conf.set('service', dbus_service) +dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec)) +dbus_service_conf.set('systemd_service', dbus_systemd_service) + +metadata_service = configure_file( + input: dbus_service_in, + output: dbus_service + '.service', + install: true, + install_dir: dbus_service_dir, + configuration: dbus_service_conf +) + metadata_dbus = gnome.gdbus_codegen( 'metadata-dbus', 'dbus-interface.xml', diff --git a/monitor/afc/meson.build b/monitor/afc/meson.build index 830f8ccd..b4735fe9 100644 --- a/monitor/afc/meson.build +++ b/monitor/afc/meson.build @@ -5,18 +5,12 @@ install_data( install_dir: gvfs_remote_volume_monitors_dir ) -service = gvfs_namespace + '.AfcVolumeMonitor.service' - -afc_service = configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: dbus_service_dir, - configuration: service_conf -) +dbus_service = gvfs_namespace + '.AfcVolumeMonitor' +dbus_exec = 'gvfs-afc-volume-monitor' +dbus_systemd_service = '' if install_systemd_user_unit_dir - service = 'gvfs-afc-volume-monitor.service' + service = dbus_exec + '.service' configure_file( input: service + '.in', @@ -25,8 +19,23 @@ if install_systemd_user_unit_dir install_dir: systemd_user_unit_dir, configuration: service_conf ) + + dbus_systemd_service = 'SystemdService=' + service endif +dbus_service_conf = configuration_data() +dbus_service_conf.set('service', dbus_service) +dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec)) +dbus_service_conf.set('systemd_service', dbus_systemd_service) + +afc_service = configure_file( + input: dbus_service_in, + output: dbus_service + '.service', + install: true, + install_dir: dbus_service_dir, + configuration: dbus_service_conf +) + sources = files( 'afcvolumemonitordaemon.c', 'afcvolume.c', diff --git a/monitor/gdu/meson.build b/monitor/gdu/meson.build index 8ef28265..3117b1db 100644 --- a/monitor/gdu/meson.build +++ b/monitor/gdu/meson.build @@ -5,18 +5,12 @@ install_data( install_dir: gvfs_remote_volume_monitors_dir ) -service = gvfs_namespace + '.GduVolumeMonitor.service' - -gdu_service = configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: dbus_service_dir, - configuration: service_conf -) +dbus_service = gvfs_namespace + '.GduVolumeMonitor' +dbus_exec = 'gvfs-gdu-volume-monitor' +dbus_systemd_service = '' if install_systemd_user_unit_dir - service = 'gvfs-gdu-volume-monitor.service' + service = dbus_exec + '.service' configure_file( input: service + '.in', @@ -25,8 +19,23 @@ if install_systemd_user_unit_dir install_dir: systemd_user_unit_dir, configuration: service_conf ) + + dbus_systemd_service = 'SystemdService=' + service endif +dbus_service_conf = configuration_data() +dbus_service_conf.set('service', dbus_service) +dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec)) +dbus_service_conf.set('systemd_service', dbus_systemd_service) + +gdu_service = configure_file( + input: dbus_service_in, + output: dbus_service + '.service', + install: true, + install_dir: dbus_service_dir, + configuration: dbus_service_conf +) + sources = files( 'gdu-volume-monitor-daemon.c', 'ggdudrive.c', diff --git a/monitor/goa/meson.build b/monitor/goa/meson.build index b45007ce..da063088 100644 --- a/monitor/goa/meson.build +++ b/monitor/goa/meson.build @@ -3,18 +3,12 @@ install_data( install_dir: gvfs_remote_volume_monitors_dir ) -service = gvfs_namespace + '.GoaVolumeMonitor.service' - -configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: dbus_service_dir, - configuration: service_conf -) +dbus_service = gvfs_namespace + '.GoaVolumeMonitor' +dbus_exec = 'gvfs-goa-volume-monitor' +dbus_systemd_service = '' if install_systemd_user_unit_dir - service = 'gvfs-goa-volume-monitor.service' + service = dbus_exec + '.service' configure_file( input: service + '.in', @@ -23,8 +17,23 @@ if install_systemd_user_unit_dir install_dir: systemd_user_unit_dir, configuration: service_conf ) + + dbus_systemd_service = 'SystemdService=' + service endif +dbus_service_conf = configuration_data() +dbus_service_conf.set('service', dbus_service) +dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec)) +dbus_service_conf.set('systemd_service', dbus_systemd_service) + +configure_file( + input: dbus_service_in, + output: dbus_service + '.service', + install: true, + install_dir: dbus_service_dir, + configuration: dbus_service_conf +) + sources = files( 'goavolumemonitordaemon.c', 'goavolume.c', diff --git a/monitor/gphoto2/meson.build b/monitor/gphoto2/meson.build index 7400071b..e5527c39 100644 --- a/monitor/gphoto2/meson.build +++ b/monitor/gphoto2/meson.build @@ -5,18 +5,13 @@ install_data( install_dir: gvfs_remote_volume_monitors_dir ) -service = gvfs_namespace + '.GPhoto2VolumeMonitor.service' -gphoto2_service = configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: dbus_service_dir, - configuration: service_conf -) +dbus_service = gvfs_namespace + '.GPhoto2VolumeMonitor' +dbus_exec = 'gvfs-gphoto2-volume-monitor' +dbus_systemd_service = '' if install_systemd_user_unit_dir - service = 'gvfs-gphoto2-volume-monitor.service' + service = dbus_exec + '.service' configure_file( input: service + '.in', @@ -25,8 +20,23 @@ if install_systemd_user_unit_dir install_dir: systemd_user_unit_dir, configuration: service_conf ) + + dbus_systemd_service = 'SystemdService=' + service endif +dbus_service_conf = configuration_data() +dbus_service_conf.set('service', dbus_service) +dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec)) +dbus_service_conf.set('systemd_service', dbus_systemd_service) + +gphoto2_service = configure_file( + input: dbus_service_in, + output: dbus_service + '.service', + install: true, + install_dir: dbus_service_dir, + configuration: dbus_service_conf +) + sources = files( 'gphoto2-volume-monitor-daemon.c', 'ggphoto2volume.c', diff --git a/monitor/mtp/meson.build b/monitor/mtp/meson.build index a3468765..d7879bc6 100644 --- a/monitor/mtp/meson.build +++ b/monitor/mtp/meson.build @@ -3,18 +3,12 @@ install_data( install_dir: gvfs_remote_volume_monitors_dir ) -service = gvfs_namespace + '.MTPVolumeMonitor.service' - -configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: dbus_service_dir, - configuration: service_conf -) +dbus_service = gvfs_namespace + '.MTPVolumeMonitor' +dbus_exec = 'gvfs-mtp-volume-monitor' +dbus_systemd_service = '' if install_systemd_user_unit_dir - service = 'gvfs-mtp-volume-monitor.service' + service = dbus_exec + '.service' configure_file( input: service + '.in', @@ -23,8 +17,23 @@ if install_systemd_user_unit_dir install_dir: systemd_user_unit_dir, configuration: service_conf ) + + dbus_systemd_service = 'SystemdService=' + service endif +dbus_service_conf = configuration_data() +dbus_service_conf.set('service', dbus_service) +dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec)) +dbus_service_conf.set('systemd_service', dbus_systemd_service) + +configure_file( + input: dbus_service_in, + output: dbus_service + '.service', + install: true, + install_dir: dbus_service_dir, + configuration: dbus_service_conf +) + sources = files( 'mtp-volume-monitor-daemon.c', 'gmtpvolume.c', diff --git a/monitor/udisks2/meson.build b/monitor/udisks2/meson.build index 50c928a3..bd9a359b 100644 --- a/monitor/udisks2/meson.build +++ b/monitor/udisks2/meson.build @@ -5,18 +5,12 @@ install_data( install_dir: gvfs_remote_volume_monitors_dir ) -service = gvfs_namespace + '.UDisks2VolumeMonitor.service' - -udisks2_service = configure_file( - input: service + '.in', - output: service, - install: true, - install_dir: dbus_service_dir, - configuration: service_conf -) +dbus_service = gvfs_namespace + '.UDisks2VolumeMonitor' +dbus_exec = 'gvfs-udisks2-volume-monitor' +dbus_systemd_service = '' if install_systemd_user_unit_dir - service = 'gvfs-udisks2-volume-monitor.service' + service = dbus_exec + '.service' configure_file( input: service + '.in', @@ -25,8 +19,23 @@ if install_systemd_user_unit_dir install_dir: systemd_user_unit_dir, configuration: service_conf ) + + dbus_systemd_service = 'SystemdService=' + service endif +dbus_service_conf = configuration_data() +dbus_service_conf.set('service', dbus_service) +dbus_service_conf.set('exec', join_paths(gvfs_libexecdir, dbus_exec)) +dbus_service_conf.set('systemd_service', dbus_systemd_service) + +udisks2_service = configure_file( + input: dbus_service_in, + output: dbus_service + '.service', + install: true, + install_dir: dbus_service_dir, + configuration: dbus_service_conf +) + sources = files( 'udisks2volumemonitordaemon.c', 'gvfsudisks2drive.c', |