[gnome-initial-setup/benzea/systemd-3-36: 1/2] data: Port to new systemd session configuration approach



commit 35977cb81355cc48da78d5b0cd8e174f2214b639
Author: Benjamin Berg <bberg redhat com>
Date:   Sat Dec 14 10:20:39 2019 +0100

    data: Port to new systemd session configuration approach
    
    Earlier we had a global definition of which services will be launched in
    a GNOME session. However, the approach made it very hard to create
    customized session.
    
    With this approach, each session needs to drop-in a session
    configuration file. This file closely mirrors the old .session
    definition file.

 data/gnome-initial-setup.session      |  1 +
 data/gnome-initial-setup.session.conf | 22 ++++++++++++++++++++++
 data/meson.build                      |  7 ++++++-
 3 files changed, 29 insertions(+), 1 deletion(-)
---
diff --git a/data/gnome-initial-setup.session b/data/gnome-initial-setup.session
index f6d7e926..9792edb8 100644
--- a/data/gnome-initial-setup.session
+++ b/data/gnome-initial-setup.session
@@ -1,3 +1,4 @@
 [GNOME Session]
 Name=GNOME Initial Setup
+# Keep in sync with gnome-session@gnome-initial-setup.target.d/session.conf drop-in
 
RequiredComponents=org.gnome.Shell;gnome-initial-setup;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
diff --git a/data/gnome-initial-setup.session.conf b/data/gnome-initial-setup.session.conf
new file mode 100644
index 00000000..c8f146a5
--- /dev/null
+++ b/data/gnome-initial-setup.session.conf
@@ -0,0 +1,22 @@
+[Unit]
+# Keep in sync with gnome-initial-setup.session
+Wants=org.gnome.SettingsDaemon.A11ySettings.target
+Wants=org.gnome.SettingsDaemon.Color.target
+Wants=org.gnome.SettingsDaemon.Datetime.target
+Wants=org.gnome.SettingsDaemon.Housekeeping.target
+Wants=org.gnome.SettingsDaemon.Keyboard.target
+Wants=org.gnome.SettingsDaemon.MediaKeys.target
+Wants=org.gnome.SettingsDaemon.Power.target
+Wants=org.gnome.SettingsDaemon.PrintNotifications.target
+Wants=org.gnome.SettingsDaemon.Rfkill.target
+Wants=org.gnome.SettingsDaemon.ScreensaverProxy.target
+Wants=org.gnome.SettingsDaemon.Sharing.target
+Wants=org.gnome.SettingsDaemon.Smartcard.target
+Wants=org.gnome.SettingsDaemon.Sound.target
+Wants=org.gnome.SettingsDaemon.Wacom.target
+Wants=org.gnome.SettingsDaemon.XSettings.target
+
+Requires=org.gnome.Shell.target
+
+# Only difference to a standard GNOME session is the gnome-initial-setup service
+Requires=gnome-initial-setup.service
diff --git a/data/meson.build b/data/meson.build
index 1f3eef39..4875ea08 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -43,7 +43,6 @@ if enable_systemd
     unitconf.set('libexecdir', libexec_dir)
 
     unit_files = {
-        'gnome-initial-setup.service' : [ 'gnome-session@gnome-initial-setup.target.wants/' ],
         'gnome-initial-setup-first-login.service' : [ 'gnome-session.target.wants/' ],
         'gnome-initial-setup-copy-worker.service' : [ 'basic.target.wants/' ],
         'gnome-welcome-tour.service' : [ 'gnome-session.target.wants/' ],
@@ -61,6 +60,12 @@ if enable_systemd
             meson.add_install_script('meson-add-wants.sh', systemd_userunitdir, target, unit)
         endforeach
     endforeach
+
+    install_data(
+        'gnome-initial-setup.session.conf',
+        rename: join_paths('gnome-session@gnome-initial-setup.target.d', 'session.conf'),
+        install_dir: systemd_userunitdir
+  )
 endif
 
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]