From 07d0fe7599d30f480c3cb465592447eb4e253a8c Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Aug 01 2017 03:53:37 +0000 Subject: import gdm-3.22.3-12.el7 --- diff --git a/SOURCES/0001-legacy-display-ensure-X-server-is-dead-when-respawni.patch b/SOURCES/0001-legacy-display-ensure-X-server-is-dead-when-respawni.patch new file mode 100644 index 0000000..c519086 --- /dev/null +++ b/SOURCES/0001-legacy-display-ensure-X-server-is-dead-when-respawni.patch @@ -0,0 +1,96 @@ +From 6f62469760cfe8b4c798135bba1d9ccaa7f4b0d2 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 12 Jul 2017 10:26:37 -0400 +Subject: [PATCH] legacy-display: ensure X server is dead when respawning + +If the user logs out we may detect the session dying before +we detect the X server dying. If that happens, then we +currently don't wait for the X server to exit before starting +a new X server. + +This commit makes sure to explicitly kill the X server and wait +for its death before proceeding. +--- + daemon/gdm-legacy-display.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/daemon/gdm-legacy-display.c b/daemon/gdm-legacy-display.c +index 9c999232..46990ccc 100644 +--- a/daemon/gdm-legacy-display.c ++++ b/daemon/gdm-legacy-display.c +@@ -236,51 +236,72 @@ gdm_legacy_display_manage (GdmDisplay *display) + "server (your graphical environment) " + "due to an internal error. " + "Please contact your system administrator " + "or check your syslog to diagnose. " + "In the meantime this display will be " + "disabled. Please restart GDM when " + "the problem is corrected.")); + gdm_display_unmanage (GDM_DISPLAY (self)); + } + + g_debug ("GdmDisplay: Started X server"); + + } + + static void + gdm_legacy_display_class_init (GdmLegacyDisplayClass *klass) + { + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GdmDisplayClass *display_class = GDM_DISPLAY_CLASS (klass); + + object_class->constructor = gdm_legacy_display_constructor; + object_class->finalize = gdm_legacy_display_finalize; + + display_class->prepare = gdm_legacy_display_prepare; + display_class->manage = gdm_legacy_display_manage; + + g_type_class_add_private (klass, sizeof (GdmLegacyDisplayPrivate)); + } + + static void ++on_display_status_changed (GdmLegacyDisplay *self) ++{ ++ int status; ++ ++ status = gdm_display_get_status (self); ++ ++ switch (status) { ++ case GDM_DISPLAY_UNMANAGED: ++ if (self->priv->server != NULL) ++ gdm_server_stop (self->priv->server); ++ break; ++ default: ++ break; ++ } ++} ++ ++static void + gdm_legacy_display_init (GdmLegacyDisplay *legacy_display) + { + + legacy_display->priv = GDM_LEGACY_DISPLAY_GET_PRIVATE (legacy_display); ++ ++ g_signal_connect (legacy_display, "notify::status", ++ G_CALLBACK (on_display_status_changed), ++ NULL); + } + + GdmDisplay * + gdm_legacy_display_new (int display_number) + { + GObject *object; + char *x11_display; + + x11_display = g_strdup_printf (":%d", display_number); + object = g_object_new (GDM_TYPE_LEGACY_DISPLAY, + "x11-display-number", display_number, + "x11-display-name", x11_display, + NULL); + g_free (x11_display); + + return GDM_DISPLAY (object); + } +-- +2.13.0 + diff --git a/SPECS/gdm.spec b/SPECS/gdm.spec index b340ef4..9a5289f 100644 --- a/SPECS/gdm.spec +++ b/SPECS/gdm.spec @@ -12,7 +12,7 @@ Summary: The GNOME Display Manager Name: gdm Version: 3.22.3 -Release: 11%{?dist} +Release: 12%{?dist} Epoch: 1 License: GPLv2+ Group: User Interface/X @@ -43,6 +43,7 @@ Patch16: 0001-manager-update-session-id-property-when-reusing-disp.patch Patch80: 0001-Revert-session-forward-is-initial-from-display-to-wo.patch Patch81: 0001-worker-add-compat-patch-to-make-new-worker-work-with.patch +Patch82: 0001-legacy-display-ensure-X-server-is-dead-when-respawni.patch Patch95: audit-4.patch Patch96: clear-screen.patch @@ -338,6 +339,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/null || : %{_libdir}/pkgconfig/gdm.pc %changelog +* Wed Jul 12 2017 Ray Strode - 3.22.3-12 +- Ensure X server is dead after logout + Resolves: #1469755 + * Tue May 30 2017 Ray Strode - 3.22.3-11 - Add japanese translation Resolves: #1449632