Add patches to ensure proper unit unloading after session shutdown

https://gitlab.gnome.org/GNOME/gnome-session/merge_requests/28
Resolves: #1760366
This commit is contained in:
Benjamin Berg 2019-10-11 09:46:36 +02:00
parent 656c556d76
commit 1098d5766a
3 changed files with 71 additions and 1 deletions

View File

@ -0,0 +1,35 @@
From 2913d9829bd6088e8f521fe6ffea68c59e935a3e Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Wed, 9 Oct 2019 22:38:38 +0200
Subject: [PATCH 1/2] data: Ensure shutdown target does not keep units loaded
The shutdown target has explicit conflicts on some user units, this
means that as long as it is active, it will keep those units loaded.
We could probably reverse the conflicts to prevent this from happening.
But, it makes sense to set StopWhenUnneeded=true anyway and doing so
also means that the corresponding units can be unloaded after logout.
---
data/gnome-session-shutdown.target | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/data/gnome-session-shutdown.target b/data/gnome-session-shutdown.target
index 84afb001..607dc6e7 100644
--- a/data/gnome-session-shutdown.target
+++ b/data/gnome-session-shutdown.target
@@ -16,7 +16,11 @@ After=gnome-session.target gnome-session-manager.target
Conflicts=gnome-session-pre.target gnome-session-initialized.target gnome-session-failed.target
After=gnome-session-pre.target gnome-session-initialized.target gnome-session-failed.target
-# Could we set StopWhenUnneeded=true or would that prevent the service to start?
+# We need to make sure this unit is stopped; primarily so that the tree of
+# units that we created is completely cleaned.
+# Note that this can also be improved by reversing the conflicts above and
+# not listing them in the shutdown unit.
+StopWhenUnneeded=true
# We trigger a restart of DBus after reaching the shutdown target this
# is a workaround so that DBus services that do not connect to the
--
2.23.0

View File

@ -0,0 +1,26 @@
From 3f4907c5c65c782e3ab03aa965d3fd558a986ef2 Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Wed, 9 Oct 2019 22:41:27 +0200
Subject: [PATCH 2/2] data: Make X11 services part of gnome-session
The X11 services need to be stopped together with the session. Add
corresponding Requisite/PartOf/Before entries.
---
data/gnome-session-x11-services.target | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/data/gnome-session-x11-services.target b/data/gnome-session-x11-services.target
index e9dea9b5..d8d2883d 100644
--- a/data/gnome-session-x11-services.target
+++ b/data/gnome-session-x11-services.target
@@ -1,3 +1,7 @@
[Unit]
Description=GNOME session X11 services
DefaultDependencies=no
+
+Requisite=gnome-session.target
+PartOf=gnome-session.target
+Before=gnome-session.target
--
2.23.0

View File

@ -9,7 +9,7 @@
Name: gnome-session
Version: 3.34.1
Release: 2%{?dist}
Release: 3%{?dist}
Summary: GNOME session manager
License: GPLv2+
@ -28,6 +28,10 @@ Patch6: 0002-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch
Patch10: 0001-autostart-app-Strip-blacklisted-variables-from-autos.patch
# https://gitlab.gnome.org/GNOME/gnome-session/merge_requests/28
Patch20: 0001-data-Ensure-shutdown-target-does-not-keep-units-load.patch
Patch21: 0002-data-Make-X11-services-part-of-gnome-session.patch
BuildRequires: meson
BuildRequires: gcc
BuildRequires: pkgconfig(egl)
@ -131,6 +135,11 @@ Desktop file to add GNOME on wayland to display manager session menu.
%{_userunitdir}/gnome-session*
%changelog
* Fri Oct 11 2019 Benjamin Berg <bberg@redhat.com> - 3.34.1-3
- Add patches to ensure proper unit unloading after session shutdown
https://gitlab.gnome.org/GNOME/gnome-session/merge_requests/28
- Resolves: #1760366
* Tue Oct 08 2019 Benjamin Berg <bberg@redhat.com> - 3.34.1-2
- Add patch to strip blacklisted variables from autostart applications environment
https://gitlab.gnome.org/GNOME/gnome-session/merge_requests/27