Skip to content
Commits on Source (74)
==============
Version 3.37.0
==============
util: Unset GNOME_SETUP_DISPLAY at login time
main: clear environment on shutdown
gnome-session: avoid setting LC_ unless LANG and region disagree
data: Add drop-in to configure launched applications
autostart-app: Place launched applications into a systemd scope
doc: Add description of important systemd units to man page
fail-whale-dialog: Make dialog visible in all monitors
gnome-session-inhibit: Add --list command
gnome-session-ctl: Add systemd service failure checker
data: Major changes in systemd configuration
Translation Updates: Brazilian Portuguese, Catalan, Chinese (Taiwan),
Czech, Friulian, German, Hebrew, Indonesian, Kazakh, Norwegian Bokmål,
Polish, Romanian, Slovak, Spanish, Swedish, Turkish, Ukrainian
==============
Version 3.36.0
==============
......
[Unit]
CollectMode=inactive-or-failed
PartOf=graphical-session.target
[Scope]
TimeoutStopSec=5s
[Unit]
Description=GNOME Session Failed
OnFailure=gnome-session-shutdown.target
OnFailureJobMode=replace-irreversibly
# We need an initialized session
Requisite=gnome-session-initialized.target
......
[Unit]
Description=GNOME Session is initialized
OnFailure=gnome-session-shutdown.target
OnFailureJobMode=replace-irreversibly
DefaultDependencies=no
RefuseManualStart=yes
RefuseManualStop=yes
......
[Unit]
Description=Tasks to be run before GNOME Session starts
OnFailure=gnome-session-shutdown.target
OnFailureJobMode=replace-irreversibly
DefaultDependencies=no
RefuseManualStart=yes
RefuseManualStop=yes
......
[Unit]
Description=GNOME Wayland Session
# On wayland all is lost, do a shutdown
OnFailure=gnome-session-shutdown.target
OnFailureJobMode=replace-irreversibly
# Avoid default After/Before rules
DefaultDependencies=no
......@@ -11,7 +8,3 @@ Before=gnome-session.target
PartOf=graphical-session.target
RefuseManualStart=yes
RefuseManualStop=yes
# Always pull in the correct gnome-shell target
BindsTo=gnome-shell-wayland.target
After=gnome-shell-wayland.target
[Unit]
Description=GNOME session X11 services
DefaultDependencies=no
BindsTo=gnome-session-x11-services.target
After=gnome-session-x11-services.target
Before=gnome-session.target
......@@ -5,4 +5,7 @@ DefaultDependencies=no
Requisite=gnome-session-initialized.target
After=gnome-session-initialized.target
PartOf=gnome-session-initialized.target
Before=gnome-session.target
Requisite=gnome-session-x11-services-ready.target
Before=gnome-session-x11-services-ready.target
PartOf=gnome-session-x11-services-ready.target
[Unit]
Description=GNOME X11 Session
# On X11, try to show the fail screen
OnFailure=gnome-session-failed.target
OnFailureJobMode=replace
# Avoid default After/Before rules
DefaultDependencies=no
......@@ -14,7 +11,3 @@ RefuseManualStop=yes
# Pull in all X11-specific services the session might depend on
Requires=gnome-session-x11-services.target
# Always pull in the correct gnome-shell target
BindsTo=gnome-shell-x11.target
After=gnome-shell-x11.target
[Unit]
Description=GNOME X11 Session (session: %i)
OnFailure=gnome-session-failed.target
OnFailureJobMode=replace
DefaultDependencies=no
# Start happens explicitly
RefuseManualStart=no
......
[Unit]
Description=GNOME Session
OnFailure=gnome-session-failed.target
OnFailureJobMode=replace
DefaultDependencies=no
RefuseManualStart=yes
RefuseManualStop=yes
......
[Unit]
Description=GNOME Session (session: %i)
OnFailure=gnome-session-failed.target
OnFailureJobMode=replace
DefaultDependencies=no
RefuseManualStart=yes
RefuseManualStop=yes
......
[Unit]
# Keep in sync with gnome.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.UsbProtection.target
Wants=org.gnome.SettingsDaemon.Wacom.target
Wants=org.gnome.SettingsDaemon.XSettings.target
Requires=org.gnome.Shell.target
[GNOME Session]
Name=GNOME
# Keep in sync with gnome-session@gnome.target.d/session.conf drop-in
RequiredComponents=org.gnome.Shell;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.UsbProtection;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
......@@ -92,13 +92,6 @@ if enable_systemd_session
unit_conf = configuration_data()
unit_conf.set('libexecdir', session_libexecdir)
# XXX: Once https://github.com/systemd/systemd/issues/9595 is fixed and we can
# depend on this version, replace with something like:
# dep_systemd = dependency('systemd', required: true)
# systemd_userunitdir = dep_systemd.get_pkgconfig_variable('systemduserunitdir')
# and uncomment systemd_dep below
systemd_userunitdir = join_paths(session_prefix, 'lib', 'systemd', 'user')
systemd_service = ['gnome-session-manager@.service',
'gnome-session-signal-init.service',
'gnome-session-restart-dbus.service',
......@@ -120,6 +113,7 @@ if enable_systemd_session
'gnome-session-x11@.target',
'gnome-session-x11.target',
'gnome-session-x11-services.target',
'gnome-session-x11-services-ready.target',
'gnome-session@.target',
'gnome-session.target',
'gnome-session-pre.target',
......@@ -133,6 +127,18 @@ if enable_systemd_session
systemd_target,
install_dir: systemd_userunitdir
)
install_data(
'gnome-launched-override.scope.conf',
rename: 'override.conf',
install_dir : join_paths(systemd_userunitdir, 'gnome-launched-.scope.d')
)
install_data(
'gnome.session.conf',
rename: join_paths('gnome-session@gnome.target.d', 'session.conf'),
install_dir: systemd_userunitdir,
)
endif
data = files('hardware-compatibility')
......
gnome-session (3.37.0-1ubuntu1) UNRELEASED; urgency=medium
[ Marco Trevisan (Treviño) ]
* Merge with debian, containing new upstream release.
* debian/patches: Refreshed as per upstream source changes
* debian/control:
- Bump ubuntu-session dependencies to match gnome ones
- Set ubuntu-session breaks on shell and g-s-d (as gnome-session does)
- Bump dependency to meson 0.53 as per upstream patches
* d/p/ubuntu/ubuntu/kill_the_fail_whale.patch:
- Dropped. The fail whale is still used as triggered by systemd, the bugs
that the patch was addressing are 5 years old now and there's no point to
carry this patch even more when upstream believes that the dialog should
be shown. Also from an Ubuntu POV it's a better user experience than just
going back to gdm.
* d/p/meson-Require-meson-0.53.patch,
d/p/data-Leave-to-meson-the-duty-of-keeping-the-lists-in-sync.patch,
d/p/meson-Generate-.session.conf-for-all-the-sessions-with-re.patch:
- Cherry pick upstream patches that allow to generate session files from
meson, so that we can reuse the same codepath and reduce duplication for
ubuntu session files.
* d/p/ubuntu/ubuntu-sessions.patch:
- Refresh as per upstream meson changes
- Add systemd session configuration for Ubuntu.
Not to complicate too much the *.install files syntax we install both the
ubuntu and upstream gnome-session targets drop-ins in gnome-session-bin,
while this may not be super-clean, these are only systemd configuration
files that don't cause any UI change, so there's no practical need to move
them to {ubuntu,gnome}-session packages.
* Remaining changes with debian:
- debian/control.in:
+ Recommend session-migration
+ Move xwayland dependency to gnome-session and make gnome-session
Arch: any
+ Split gnome-startup-applications to a separate binary package so
that it can be uninstalled without breaking the system
+ Add unity-session
- Split ubuntu-session out of gnome-session.
- debian/data: Add old-style systemd user session used by Unity
- debian/gnome-session-bin.postinst, debian/gnome-session-bin.prerm:
Moved registering gnome-session binary as a session manager to
gnome-session-bin package
- Add gnome-session-wayland transitional package
- don't install gnome-mimeapps.list (installed by desktop-file-utils in
Ubuntu):
debian/gnome-session-common.dirs, gnome-session-common.install,
gnome-session-common.maintscript, gnome-session-common.postinst
- debian/patches/ubuntu/kill_the_fail_whale.patch:
+ Kill the Fail Whale as it tends to be more annoying than helpful
- debian/patches/ubuntu/support_autostart_delay.patch:
+ Bugzilla patch to support adding a delay to autostart apps, using
a "X-GNOME-Autostart-Delay" key in the desktop file
- debian/patches/ubuntu/ubuntu_sessions.patch:
+ Add ubuntu session tweaks
- debian/patches/ubuntu/remove_session_saving_from_gui.patch:
+ Add GNOME_SESSION_SAVE environment variable for people wanting to
use the save session still, knowing that it can break your system
if used unwisely
- debian/patches/ubuntu/add_sessionmigration.patch:
+ launch session-migration if present at the start of the session.
This sync tool runns different session migration scripts that can be
provided in various desktop packages.
- debian/patches/ubuntu/dbus_request_shutdown.patch:
+ Add "RequestShutdown" and "RequestReboot" DBus methods to allow
other applications to shutdown or reboot the machine via the session
manager.
- debian/patches/ubuntu/ignore_gsettings_region.patch:
+ Ignore the "region" gsettings value - users' setting of LC_*
variables saved in ~/.pam_environment.
- debian/patches/revert_remove_gnome_session_properties.patch:
+ Don't merge translations into gnome-session-properties.desktop
- debian/ubuntu-settings-migrate-to-defaults.18.10.1.py:
+ Migrate users using old default ubuntu-settings to current ones
-- Marco Trevisan (Treviño) <marco@ubuntu.com> Thu, 27 Aug 2020 20:32:37 +0200
gnome-session (3.37.0-1) experimental; urgency=medium
[ Laurent Bigonville ]
* debian/control.in: Relax the evolution version for the Breaks, the
.desktop file was apparently already renamed in 3.30.0
[ Iain Lane ]
* New upstream release
- autostart-app: Place launched applications into a systemd scope
- data: Add drop-in to configure launched applications
- data: Major changes in systemd configuration
- doc: Add description of important systemd units to man page
- fail-whale-dialog: Make dialog visible in all monitors
- gnome-session: avoid setting LC_ unless LANG and region disagree
- gnome-session-ctl: Add systemd service failure checker
- gnome-session-inhibit: Add --list command
- main: clear environment on shutdown
- util: Unset GNOME_SETUP_DISPLAY at login time
* Defuzz patches
* control: Add Breaks on gnome-shell and gnome-initial-setup before 3.37.90
and gnome-settings-daemon before 3.37.0. This gnome-session updates and
rejigs the systemd units that live here - we need to make sure we have the
updated versions available.
[ Marco Trevisan (Treviño) ]
* control: Bump Breaks on gdm3 before 3.37.90, we'd just get a black screen
without a systemd session definition that gnome-session now exposes.
-- Marco Trevisan (Treviño) <marco@ubuntu.com> Fri, 28 Aug 2020 22:12:37 +0200
gnome-session (3.36.0-2ubuntu1) focal; urgency=medium
* Merge with Debian, remaining changes:
......
......@@ -16,8 +16,8 @@ Build-Depends: debhelper-compat (= 12),
libgl1-mesa-dev,
libgles2-mesa-dev,
libglib2.0-dev (>= 2.46.0),
libgnome-desktop-3-dev (>= 3.18.0),
libgtk-3-dev (>= 3.18.0),
libgnome-desktop-3-dev (>= 3.34.2),
libgtk-3-dev (>= 3.22.0),
libice-dev,
libjson-glib-dev (>= 0.10),
libsm-dev,
......@@ -29,7 +29,7 @@ Build-Depends: debhelper-compat (= 12),
libxrender-dev,
libxt-dev,
libxtst-dev,
meson (>= 0.43.0),
meson (>= 0.53.0),
xmlto,
xsltproc,
xtrans-dev
......@@ -56,6 +56,9 @@ Suggests: gnome-keyring,
gnome-user-docs
Provides: x-session-manager
Breaks: gnome-session-wayland (<< 3.22.1),
gnome-settings-daemon-common (<< 3.37.0),
gnome-initial-setup (<< 3.37.90),
gnome-shell (<< 3.37.90),
ubuntu-session (<= 3.29.90-1ubuntu1)
Replaces: gnome-session-wayland (<< 3.22.1),
ubuntu-session (<= 3.29.90-1ubuntu1)
......@@ -98,8 +101,8 @@ Architecture: all
Depends: gnome-session-bin (<< ${gnome:NextVersion}),
gnome-session-bin (>= ${binary:Version}),
gnome-session-common (= ${binary:Version}),
gnome-settings-daemon (>= 3.24),
gnome-shell (>= 3.36.0-2ubuntu1~),
gnome-settings-daemon (>= 3.33.90),
gnome-shell (>= 3.33.90),
xwayland,
yaru-theme-gnome-shell (>= 20.04.3~),
${misc:Depends}
......@@ -107,6 +110,8 @@ Recommends: python3,
session-migration
Provides: x-session-manager
Breaks: gnome-session (<= 3.29.90-1ubuntu1),
gnome-settings-daemon-common (<< 3.37.0),
gnome-shell (<< 3.37.90),
hud (<< 14.10+17.10.20170619),
unity (<< 7.5.0+17.10.20170619),
unity-gtk-module (<< 0.0.0+17.04.20170918),
......@@ -160,7 +165,7 @@ Depends: dbus-x11,
${shlibs:Depends}
Recommends: gnome-startup-applications,
default-logind [linux-any] | logind [linux-any]
Breaks: gdm3 (<< 3.33.90)
Breaks: gdm3 (<< 3.37.90)
Description: GNOME Session Manager - Minimal runtime
The GNOME Session Manager is in charge of starting the core components
of the GNOME desktop, and applications that should be launched at
......@@ -174,7 +179,7 @@ Description: GNOME Session Manager - Minimal runtime
Package: gnome-session-common
Architecture: all
Breaks: eog (<< 3.36.0), evince (<< 3.30), evolution (<< 3.36.0)
Breaks: eog (<< 3.36.0), evince (<< 3.30), evolution (<< 3.30.0)
Depends: ${misc:Depends}
Description: GNOME Session Manager - common files
The GNOME Session Manager is in charge of starting the core components
......
......@@ -12,8 +12,8 @@ Build-Depends: debhelper-compat (= 12),
libgl1-mesa-dev,
libgles2-mesa-dev,
libglib2.0-dev (>= 2.46.0),
libgnome-desktop-3-dev (>= 3.18.0),
libgtk-3-dev (>= 3.18.0),
libgnome-desktop-3-dev (>= 3.34.2),
libgtk-3-dev (>= 3.22.0),
libice-dev,
libjson-glib-dev (>= 0.10),
libsm-dev,
......@@ -25,7 +25,7 @@ Build-Depends: debhelper-compat (= 12),
libxrender-dev,
libxt-dev,
libxtst-dev,
meson (>= 0.43.0),
meson (>= 0.53.0),
xmlto,
xsltproc,
xtrans-dev
......@@ -52,6 +52,9 @@ Suggests: gnome-keyring,
gnome-user-docs
Provides: x-session-manager
Breaks: gnome-session-wayland (<< 3.22.1),
gnome-settings-daemon-common (<< 3.37.0),
gnome-initial-setup (<< 3.37.90),
gnome-shell (<< 3.37.90),
ubuntu-session (<= 3.29.90-1ubuntu1)
Replaces: gnome-session-wayland (<< 3.22.1),
ubuntu-session (<= 3.29.90-1ubuntu1)
......@@ -94,8 +97,8 @@ Architecture: all
Depends: gnome-session-bin (<< ${gnome:NextVersion}),
gnome-session-bin (>= ${binary:Version}),
gnome-session-common (= ${binary:Version}),
gnome-settings-daemon (>= 3.24),
gnome-shell (>= 3.36.0-2ubuntu1~),
gnome-settings-daemon (>= 3.33.90),
gnome-shell (>= 3.33.90),
xwayland,
yaru-theme-gnome-shell (>= 20.04.3~),
${misc:Depends}
......@@ -103,6 +106,8 @@ Recommends: python3,
session-migration
Provides: x-session-manager
Breaks: gnome-session (<= 3.29.90-1ubuntu1),
gnome-settings-daemon-common (<< 3.37.0),
gnome-shell (<< 3.37.90),
hud (<< 14.10+17.10.20170619),
unity (<< 7.5.0+17.10.20170619),
unity-gtk-module (<< 0.0.0+17.04.20170918),
......@@ -156,7 +161,7 @@ Depends: dbus-x11,
${shlibs:Depends}
Recommends: gnome-startup-applications,
default-logind [linux-any] | logind [linux-any]
Breaks: gdm3 (<< 3.33.90)
Breaks: gdm3 (<< 3.37.90)
Description: GNOME Session Manager - Minimal runtime
The GNOME Session Manager is in charge of starting the core components
of the GNOME desktop, and applications that should be launched at
......@@ -170,7 +175,7 @@ Description: GNOME Session Manager - Minimal runtime
Package: gnome-session-common
Architecture: all
Breaks: eog (<< 3.36.0), evince (<< 3.30), evolution (<< 3.36.0)
Breaks: eog (<< 3.36.0), evince (<< 3.30), evolution (<< 3.30.0)
Depends: ${misc:Depends}
Description: GNOME Session Manager - common files
The GNOME Session Manager is in charge of starting the core components
......
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Mon, 31 Aug 2020 16:38:44 +0200
Subject: data: Leave to meson the duty of keeping the lists in sync
Don't leave to humans what machines can do, the gnome.session.desktop.in.in
is filled with an hard-to-maintain single-line semicolon separated list of
components, that then are repeated in the gnome systemd gnome.session.conf.
And these are meant to be kept in sync.
Meson can help us in this, so let's just keep a single list in meson and
use it to generate the various formats we need.
Using a map to keep the components so that this can be easily adapted and
possibly new sessions can be defined
Origin: https://gitlab.gnome.org/GNOME/gnome-session/-/commit/dd2ffb3d
Applied-Upstream: 3.37.92
---
data/gnome.session.conf | 20 ---------------
data/gnome.session.conf.in | 5 ++++
data/gnome.session.desktop.in.in | 4 +--
data/meson.build | 55 +++++++++++++++++++++++++++++++++-------
4 files changed, 53 insertions(+), 31 deletions(-)
delete mode 100644 data/gnome.session.conf
create mode 100644 data/gnome.session.conf.in
diff --git a/data/gnome.session.conf b/data/gnome.session.conf
deleted file mode 100644
index 4de5c0c..0000000
--- a/data/gnome.session.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-# Keep in sync with gnome.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.UsbProtection.target
-Wants=org.gnome.SettingsDaemon.Wacom.target
-Wants=org.gnome.SettingsDaemon.XSettings.target
-
-Requires=org.gnome.Shell.target
diff --git a/data/gnome.session.conf.in b/data/gnome.session.conf.in
new file mode 100644
index 0000000..3f79d9e
--- /dev/null
+++ b/data/gnome.session.conf.in
@@ -0,0 +1,5 @@
+[Unit]
+# Must be in sync with gnome.session
+@wants_required_components@
+
+Requires=@requires_component@.target
diff --git a/data/gnome.session.desktop.in.in b/data/gnome.session.desktop.in.in
index f3aaabc..c72e0ba 100644
--- a/data/gnome.session.desktop.in.in
+++ b/data/gnome.session.desktop.in.in
@@ -1,4 +1,4 @@
[GNOME Session]
Name=GNOME
-# Keep in sync with gnome-session@gnome.target.d/session.conf drop-in
-RequiredComponents=org.gnome.Shell;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.UsbProtection;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
+# Must be in sync with gnome-session@gnome.target.d/session.conf drop-in
+RequiredComponents=@required_components@;
diff --git a/data/meson.build b/data/meson.build
index 213ce22..99f05bd 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -5,6 +5,31 @@ desktops = [
'gnome-xorg'
]
+shell_component = {
+ desktop_plain: 'org.gnome.Shell',
+}
+
+required_components = {
+ desktop_plain: [
+ '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.UsbProtection',
+ 'org.gnome.SettingsDaemon.Wacom',
+ 'org.gnome.SettingsDaemon.XSettings',
+ ],
+}
+
if enable_session_selector
desktops += 'gnome-custom-session'
endif
@@ -44,15 +69,18 @@ foreach name: desktops
endforeach
sessions = [
- 'gnome.session',
- 'gnome-dummy.session'
+ 'gnome',
+ 'gnome-dummy'
]
foreach session: sessions
+ session_file = session + '.session'
desktop_conf = configuration_data()
desktop_conf.set('libexecdir', session_libexecdir)
+ desktop_conf.set('required_components', ';'.join(
+ [shell_component.get(session, '')] + required_components.get(session, [])))
- desktop = session + '.desktop'
+ desktop = session_file + '.desktop'
desktop_in = configure_file(
input: desktop + '.in.in',
@@ -61,10 +89,10 @@ foreach session: sessions
)
i18n.merge_file(
- session,
+ session_file,
type: 'desktop',
input: desktop_in,
- output: session,
+ output: session_file,
po_dir: po_dir,
install: true,
install_dir: join_paths(session_pkgdatadir, 'sessions')
@@ -134,10 +162,19 @@ if enable_systemd_session
install_dir : join_paths(systemd_userunitdir, 'gnome-launched-.scope.d')
)
- install_data(
- 'gnome.session.conf',
- rename: join_paths('gnome-session@gnome.target.d', 'session.conf'),
- install_dir: systemd_userunitdir,
+ gnome_session_wanted_targets = []
+ foreach component: required_components[desktop_plain]
+ gnome_session_wanted_targets += 'Wants=@0@.target'.format(component)
+ endforeach
+
+ configure_file(
+ input: 'gnome.session.conf.in',
+ output: 'session.conf',
+ configuration: {
+ 'requires_component': shell_component[desktop_plain],
+ 'wants_required_components': '\n'.join(gnome_session_wanted_targets),
+ },
+ install_dir: systemd_userunitdir / 'gnome-session@gnome.target.d',
)
endif
......@@ -14,11 +14,11 @@ Forwarded: not-needed
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
index 7ded359..09977d6 100755
index ddd1a59..7a73610 100755
--- a/gnome-session/gnome-session.in
+++ b/gnome-session/gnome-session.in
@@ -25,4 +25,8 @@ if [ -n "$REGION" ]; then
export LC_PAPER=$REGION
@@ -29,4 +29,8 @@ if [ -n "$REGION" ]; then
fi
fi
-exec @libexecdir@/gnome-session-binary "$@"
......