diff options
author | Iain Lane <iain@orangesquash.org.uk> | 2018-01-17 15:56:17 +0000 |
---|---|---|
committer | Iain Lane <iainl@gnome.org> | 2018-07-17 10:11:31 +0100 |
commit | f2a09bc1f10e06cd44926c132a04ee463e185506 (patch) | |
tree | 5b3764db41ac5d71ae28042a270bb0235270ba90 | |
parent | 68f00f397f36402d1d61226c0617f6044a8118d1 (diff) | |
download | gnome-shell-wip/laney/systemd-user-units.tar.gz |
Add systemd unitswip/laney/systemd-user-units
So that we can be started by systemd --user, instead of gnome-session.
There are three units:
- gnome-shell.service: Start gnome-shell itself.
- gnome-shell-x11.target, gnome-shell-wayland.target: Sync points for
units that need to care if x11 or wayland is in use.
gnome-settings-daemon will use these, for example.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/138
-rw-r--r-- | data/gnome-shell-wayland.target | 5 | ||||
-rw-r--r-- | data/gnome-shell-x11.target | 5 | ||||
-rw-r--r-- | data/gnome-shell.service.in | 11 | ||||
-rw-r--r-- | data/meson.build | 17 | ||||
-rw-r--r-- | meson.build | 15 | ||||
-rw-r--r-- | src/meson.build | 2 |
6 files changed, 51 insertions, 4 deletions
diff --git a/data/gnome-shell-wayland.target b/data/gnome-shell-wayland.target new file mode 100644 index 000000000..a75da3ec7 --- /dev/null +++ b/data/gnome-shell-wayland.target @@ -0,0 +1,5 @@ +[Unit] +Description=GNOME Shell (wayland sync point) +After=gnome-shell.service +BindsTo=gnome-shell.service +Conflicts=gnome-shell-x11.target diff --git a/data/gnome-shell-x11.target b/data/gnome-shell-x11.target new file mode 100644 index 000000000..4da13509c --- /dev/null +++ b/data/gnome-shell-x11.target @@ -0,0 +1,5 @@ +[Unit] +Description=GNOME Shell (x11 sync point) +After=gnome-shell.service +BindsTo=gnome-shell.service +Conflicts=gnome-shell-wayland.target diff --git a/data/gnome-shell.service.in b/data/gnome-shell.service.in new file mode 100644 index 000000000..ee275fa0e --- /dev/null +++ b/data/gnome-shell.service.in @@ -0,0 +1,11 @@ +[Unit] +Description=GNOME Shell +Wants=gnome-session.service +After=graphical-session-pre.target gnome-session-bus.target +PartOf=graphical-session.target + +[Service] +Type=dbus +ExecStart=@bindir@/gnome-shell +Restart=on-failure +BusName=org.gnome.Shell diff --git a/data/meson.build b/data/meson.build index 7c9807721..1c2b952a2 100644 --- a/data/meson.build +++ b/data/meson.build @@ -93,6 +93,23 @@ schema = configure_file( install_dir: schemadir ) +if have_systemd + unitconf = configuration_data() + unitconf.set('bindir', bindir) + + unit = configure_file( + input: 'gnome-shell.service.in', + output: 'gnome-shell.service', + configuration: unitconf, + install_dir: systemduserunitdir + ) + + units = files('gnome-shell-wayland.target', + 'gnome-shell-x11.target') + + install_data(units, install_dir: systemduserunitdir) +endif + # for unit tests - gnome.compile_schemas() only looks in srcdir custom_target('compile-schemas', input: schema, diff --git a/meson.build b/meson.build index d3dba0c08..edc597553 100644 --- a/meson.build +++ b/meson.build @@ -59,6 +59,13 @@ servicedir = join_paths(datadir, 'dbus-1', 'services') plugindir = get_variable('BROWSER_PLUGIN_DIR', mozplugindir) +# XXX: Once https://github.com/systemd/systemd/issues/9595 is fixed and we can +# depend on this version, replace with something like: +# systemduserunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir', +# define_variable: ['prefix', prefix]) +# and uncomment systemd_dep below +systemduserunitdir = join_paths(libdir, 'systemd', 'user') + keybindings_dep = dependency('gnome-keybindings', required: false) if keybindings_dep.found() keysdir = keybindings_dep.get_pkgconfig_variable('keysdir') @@ -117,10 +124,12 @@ else endif if get_option('systemd') - systemd_dep = dependency('libsystemd') - have_systemd = systemd_dep.found() + libsystemd_dep = dependency('libsystemd') + # XXX: see systemduserunitdir + # systemd_dep = dependency('systemd') + have_systemd = true else - systemd_dep = [] + libsystemd_dep = [] have_systemd = false endif diff --git a/src/meson.build b/src/meson.build index 1d655f407..2670f589c 100644 --- a/src/meson.build +++ b/src/meson.build @@ -53,7 +53,7 @@ gnome_shell_deps = [ canberra_dep, canberra_gtk_dep, polkit_dep, gcr_dep, - systemd_dep + libsystemd_dep ] gnome_shell_deps += nm_deps |