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

Bug#988640: marked as done (unblock: mate-session-manager/1.24.1-2)



Your message dated Mon, 17 May 2021 18:35:35 +0000
with message-id <E1lii5X-0008TR-2l@respighi.debian.org>
and subject line unblock mate-session-manager
has caused the Debian Bug report #988640,
regarding unblock: mate-session-manager/1.24.1-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
988640: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=988640
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package mate-session-manager

+  * debian/patches:
+    + Add 0006_util-Blacklist-some-session-specific-variables.patch. Fix
+      systemd-logind originated problems when unlocking screen saver.
+      (Closes: #986100). Thanks to Simon McVittie and Iain Lane for
+      digging into this.

-> Introduce a session env var blacklist so that not hightly session
specific env variables are not dumbly uploaded to systemd --user.

This resolves switching between GNOME and MATE back and forth. The cause
of the problem has been in MATE Session Manager.

In fact, Simon McVittie implemented a work around for this issue in
gnome-session 3.38.0-4. As he wrote in the referenced bug report, it is
always good to fix things on both ends.

[ Reason ]
Fix switching between GNOME and MATE on the MATE desktop's end.

[ Impact ]
As GNOME 3.38.0-4 has a work around for #986100, it will probably not
hurt if this fix enters Debian after the bullseye release. However,
technically the fix is a must have and the bug it fixes an RC bug for a
reason.

[ Tests ]
I downgraded gnome-session to 3.38.0-3 and tested mate-session-manager
1.24.1-1 (broken behaviour) and then mate-session-manager 1.24.1-2 (this
version, issue fixed). I then upgraded gnome-session to 3.38.0-4 (issue
still gone, as expected).

[ Risks ]
No known risk.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
None. Read #986100 for diving into the deeper details of this.

unblock mate-session-manager/1.24.1-2
diff -Nru mate-session-manager-1.24.1/debian/changelog mate-session-manager-1.24.1/debian/changelog
--- mate-session-manager-1.24.1/debian/changelog	2020-08-18 14:30:25.000000000 +0200
+++ mate-session-manager-1.24.1/debian/changelog	2021-05-17 00:11:38.000000000 +0200
@@ -1,3 +1,13 @@
+mate-session-manager (1.24.1-2) unstable; urgency=medium
+
+  * debian/patches:
+    + Add 0006_util-Blacklist-some-session-specific-variables.patch. Fix
+      systemd-logind originated problems when unlocking screen saver.
+      (Closes: #986100). Thanks to Simon McVittie and Iain Lane for
+      digging into this.
+
+ -- Mike Gabriel <sunweaver@debian.org>  Mon, 17 May 2021 00:11:38 +0200
+
 mate-session-manager (1.24.1-1) unstable; urgency=medium
 
   [ Martin Wimpress ]
diff -Nru mate-session-manager-1.24.1/debian/patches/0006_util-Blacklist-some-session-specific-variables.patch mate-session-manager-1.24.1/debian/patches/0006_util-Blacklist-some-session-specific-variables.patch
--- mate-session-manager-1.24.1/debian/patches/0006_util-Blacklist-some-session-specific-variables.patch	1970-01-01 01:00:00.000000000 +0100
+++ mate-session-manager-1.24.1/debian/patches/0006_util-Blacklist-some-session-specific-variables.patch	2021-05-17 00:11:38.000000000 +0200
@@ -0,0 +1,73 @@
+From 29bd7ce251aa617d9f93c8ed95ee7ab49c8684ef Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Mon, 17 May 2021 00:05:16 +0200
+Forwarded: https://github.com/mate-desktop/mate-session-manager/pull/282
+Subject: [PATCH] util: Blacklist some session-specific variables
+
+Things like XDG_SESSION_ID should not be uploaded to the environment.
+For example this is broken currently:
+
+  1. SSH to your machine
+  2. Log in to MATE Shell
+  3. Log out
+  4. Log in again
+  5. Lock the screen
+  6. Try to unlock
+
+You can't, and this is because the XDG_SESSION_ID from the first session
+(step 2) has leaked through to the second one (step 4), and so MATE
+Shell is listening to the `logind` `UnlockSession` signal for the wrong
+session. The SSH session established in step 1 serves to keep the
+`systemd --user` instance alive, so that the state is not torn down
+between logins.
+
+Original patch for GNOME by Iain Lane <iainl@gnome.org>.
+
+Patch ported over to MATE's session manager by Mike Gabriel
+<sunweaver@debian.org>.
+
+---
+ mate-session/gsm-util.c | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+--- a/mate-session/gsm-util.c
++++ b/mate-session/gsm-util.c
+@@ -38,6 +38,13 @@
+ 
+ static gchar *_saved_session_dir = NULL;
+ 
++static const char * const variable_blacklist[] = {
++    "XDG_SEAT",
++    "XDG_SESSION_ID",
++    "XDG_VTNR",
++    NULL
++};
++
+ char *
+ gsm_util_find_desktop_file_for_app_name (const char *name,
+                                          char      **autostart_dirs)
+@@ -509,6 +516,9 @@
+                 const char *entry_name = entry_names[i];
+                 const char *entry_value = g_getenv (entry_name);
+ 
++                if (g_strv_contains (variable_blacklist, entry_name))
++                    continue;
++
+                 if (!g_utf8_validate (entry_name, -1, NULL))
+                     continue;
+ 
+@@ -576,8 +586,13 @@
+                 return FALSE;
+         }
+ 
++        entries = g_get_environ ();
++
++        for (; variable_blacklist[i] != NULL; i++)
++                entries = g_environ_unsetenv (entries, variable_blacklist[i]);
++
+         g_variant_builder_init (&builder, G_VARIANT_TYPE ("as"));
+-        for (entries = g_get_environ (); entries[i] != NULL; i++) {
++        for (i = 0; entries[i] != NULL; i++) {
+                 const char *entry = entries[i];
+ 
+                 if (!g_utf8_validate (entry, -1, NULL))
diff -Nru mate-session-manager-1.24.1/debian/patches/series mate-session-manager-1.24.1/debian/patches/series
--- mate-session-manager-1.24.1/debian/patches/series	2020-08-18 14:28:43.000000000 +0200
+++ mate-session-manager-1.24.1/debian/patches/series	2021-05-17 00:10:56.000000000 +0200
@@ -1 +1,2 @@
 0005_lock-session-before-user-switch.patch
+0006_util-Blacklist-some-session-specific-variables.patch

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: