diff --git a/gdm-Fix-type-of-signal-connection-id.patch b/gdm-Fix-type-of-signal-connection-id.patch new file mode 100644 index 0000000..0811d10 --- /dev/null +++ b/gdm-Fix-type-of-signal-connection-id.patch @@ -0,0 +1,28 @@ +From f0f527ff3815caa091be24168824f74853c0c050 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Tue, 22 Mar 2022 10:40:08 -0400 +Subject: [PATCH] local-display-factory: Fix type of signal connection id + +Signal connection ids are 64-bit not 32-bit. + +This commit fixes the type used. +--- + daemon/gdm-local-display-factory.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c +index 7de7b99c..4a66ad8f 100644 +--- a/daemon/gdm-local-display-factory.c ++++ b/daemon/gdm-local-display-factory.c +@@ -78,7 +78,7 @@ struct _GdmLocalDisplayFactory + gboolean seat0_graphics_check_timed_out; + guint seat0_graphics_check_timeout_id; + +- guint uevent_handler_id; ++ gulong uevent_handler_id; + + #if defined(ENABLE_USER_DISPLAY_SERVER) + unsigned int active_vt; +-- +2.35.1 + diff --git a/gdm-Stop-listening-to-udev-events.patch b/gdm-Stop-listening-to-udev-events.patch new file mode 100644 index 0000000..f0774a3 --- /dev/null +++ b/gdm-Stop-listening-to-udev-events.patch @@ -0,0 +1,45 @@ +From 307c683f00e1711973139837992ca0f6f55314a5 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Tue, 22 Mar 2022 10:16:58 -0400 +Subject: [PATCH] local-display-factory: Stop listening to udev events when + necessary + +At the moment we still listen for udev events after we've determined +the system has settled (or a timeout has happened). + +This means if there is a udev event late, the login screen could get +brought back up while the user is using the system. + +This commit fixes that. +--- + daemon/gdm-local-display-factory.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c +index 4a66ad8f..b3335cd4 100644 +--- a/daemon/gdm-local-display-factory.c ++++ b/daemon/gdm-local-display-factory.c +@@ -710,6 +710,10 @@ udev_is_settled (GdmLocalDisplayFactory *factory) + + g_debug ("GdmLocalDisplayFactory: udev has %ssettled enough for graphics.", is_settled? "" : "not "); + g_list_free_full (devices, g_object_unref); ++ ++ if (is_settled) ++ g_clear_signal_handler (&factory->uevent_handler_id, factory->gudev_client); ++ + return is_settled; + } + #endif +@@ -1287,9 +1291,6 @@ on_uevent (GUdevClient *client, + if (!udev_is_settled (factory)) + return; + +- g_signal_handler_disconnect (factory->gudev_client, factory->uevent_handler_id); +- factory->uevent_handler_id = 0; +- + gdm_settings_direct_reload (); + ensure_display_for_seat (factory, "seat0"); + } +-- +2.35.1 + diff --git a/gdm.changes b/gdm.changes index 6110689..5f4484c 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Apr 1 02:10:00 UTC 2022 - Xiaoguang Wang + +- Add gdm-Fix-type-of-signal-connection-id.patch: backport upstream + commit f0f527ff (bsc#1197521). +- Add gdm-Stop-listening-to-udev-events.patch: backport upstream + commit 307c683f (bsc#1197521). + ------------------------------------------------------------------- Mon Mar 21 22:43:33 UTC 2022 - Luciano Santos diff --git a/gdm.spec b/gdm.spec index 8f20edf..7502105 100644 --- a/gdm.spec +++ b/gdm.spec @@ -70,6 +70,11 @@ Patch13: gdm-s390-not-require-g-s-d_wacom.patch Patch14: gdm-switch-user-tty7.patch # PATCH-FIX-UPSTREAM gdm-disable-wayland-on-mgag200-chipsets.patch bsc#1162888 glgo#GNOME/mutter#57 qkzhu@suse.com -- Disable Wayland on mgag200 chipsets Patch15: gdm-disable-wayland-on-mgag200-chipsets.patch +# PATCH-FIX-UPSTREAM gdm-Fix-type-of-signal-connection-id.patch bsc#1197521 xwang@suse.com -- Fix the type of signal connection id +Patch16: gdm-Fix-type-of-signal-connection-id.patch +# PATCH-FIX-UPSTREAM gdm-Stop-listening-to-udev-events.patch bsc#1197521 xwang@suse.com -- Stop listening to udev events +Patch17: gdm-Stop-listening-to-udev-events.patch + ### NOTE: Keep please SLE-only patches at bottom (starting on 1000). # PATCH-FIX-SLE gdm-disable-gnome-initial-setup.patch bnc#1067976 qzhao@suse.com -- Disable gnome-initial-setup runs before gdm, g-i-s will only serve for CJK people to choose the input-method after login. Patch1000: gdm-disable-gnome-initial-setup.patch @@ -242,6 +247,8 @@ running display manager. %endif %patch14 -p1 %patch15 -p1 +%patch16 -p1 +%patch17 -p1 # SLE and Leap only patches start at 1000 %if 0%{?sle_version}