diff --git a/gdm-restart-session-when-X-server-restart.patch b/gdm-restart-session-when-X-server-restart.patch new file mode 100644 index 0000000..301d098 --- /dev/null +++ b/gdm-restart-session-when-X-server-restart.patch @@ -0,0 +1,30 @@ +Index: gdm-41.3/daemon/gdm-local-display-factory.c +=================================================================== +--- gdm-41.3.orig/daemon/gdm-local-display-factory.c ++++ gdm-41.3/daemon/gdm-local-display-factory.c +@@ -541,8 +541,10 @@ on_display_status_changed (GdmDisplay + * ensures we get a new login screen when the user logs out, + * if there isn't one. + */ ++ g_debug ("GdmLocalDisplayFactory: session_class = %s active_vt = %u", session_class, factory->active_vt); + if (is_local && +- (g_strcmp0 (session_class, "greeter") != 0 || factory->active_vt == GDM_INITIAL_VT)) { ++ (g_strcmp0 (session_class, "greeter") != 0 || factory->active_vt == GDM_INITIAL_VT ++ || factory->active_vt == 0)) { + /* reset num failures */ + factory->num_failures = 0; + +Index: gdm-41.3/daemon/gdm-manager.c +=================================================================== +--- gdm-41.3.orig/daemon/gdm-manager.c ++++ gdm-41.3/daemon/gdm-manager.c +@@ -1548,7 +1548,8 @@ on_display_status_changed (GdmDisplay *d + } + #endif + +- g_object_set_data (G_OBJECT (display), "gdm-user-session", NULL); ++ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL ) ++ g_object_set_data (G_OBJECT (display), "gdm-user-session", NULL); + + if (display == manager->priv->automatic_login_display) { + g_clear_weak_pointer (&manager->priv->automatic_login_display); diff --git a/gdm.changes b/gdm.changes index 6fd90ba..2ce15b3 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Mar 16 00:53:48 UTC 2022 - Xiaoguang Wang + +- Add gdm-restart-session-when-X-server-restart.patch: + Avoiding the blank screen when X server restarts with + GDM_DISABLE_USER_DISPLAY_SERVER=1 (bsc#1196974). + ------------------------------------------------------------------- Wed Feb 16 08:33:14 UTC 2022 - Dominique Leuenberger diff --git a/gdm.spec b/gdm.spec index d332904..f98e777 100644 --- a/gdm.spec +++ b/gdm.spec @@ -76,6 +76,8 @@ Patch15: gdm-disable-wayland-on-mgag200-chipsets.patch Patch1000: gdm-disable-gnome-initial-setup.patch # PATCH-FIX-SLE gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch bnc#1188912 jsc#SLE-17880 xwang@suse.com -- Add runtime option to start X under root instead of regular user. Patch1001: gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch +# PATCH-FIX-SLE gdm-restart-session-when-X-server-restart.patch bsc#1196974 xwang@suse.com -- Fix blank screen when X restarts with GDM_DISABLE_USER_DISPLAY_SERVER=1. +Patch1002: gdm-restart-session-when-X-server-restart.patch BuildRequires: check-devel # dconf and gnome-session-core are needed for directory ownership BuildRequires: dconf @@ -243,6 +245,7 @@ running display manager. %if 0%{?sle_version} %patch1000 -p1 %patch1001 -p1 +%patch1002 -p1 %endif %build