add a missing seat id check to unbreak gdm when logging out

ok ajacoutot@
This commit is contained in:
robert 2021-06-17 06:14:39 +00:00
parent 6715900319
commit c13cf1b076
2 changed files with 14 additions and 13 deletions

View File

@ -1,10 +1,10 @@
# $OpenBSD: Makefile,v 1.299 2021/05/30 09:04:23 ajacoutot Exp $
# $OpenBSD: Makefile,v 1.300 2021/06/17 06:14:39 robert Exp $
COMMENT= GNOME display manager
GNOME_PROJECT= gdm
GNOME_VERSION= 40.0
REVISION= 1
REVISION= 2
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} gdm-puffy.png:0
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}

View File

@ -1,4 +1,4 @@
$OpenBSD: patch-daemon_gdm-local-display-factory_c,v 1.18 2021/05/30 09:04:23 ajacoutot Exp $
$OpenBSD: patch-daemon_gdm-local-display-factory_c,v 1.19 2021/06/17 06:14:39 robert Exp $
Index: daemon/gdm-local-display-factory.c
--- daemon/gdm-local-display-factory.c.orig
@ -32,7 +32,7 @@ Index: daemon/gdm-local-display-factory.c
ret = sd_seat_can_graphical (seat_id);
if (ret < 0) {
@@ -561,13 +567,16 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
@@ -561,13 +567,17 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
if (!seat_supports_graphics)
return;
@ -46,10 +46,11 @@ Index: daemon/gdm-local-display-factory.c
display = gdm_display_store_find (store, lookup_prepared_display_by_seat_id, (gpointer) seat_id);
else
+#endif
+ if (g_strcmp0 (seat_id, "/org/freedesktop/ConsoleKit/Seat1") != 0)
display = gdm_display_store_find (store, lookup_by_seat_id, (gpointer) seat_id);
/* Ensure we don't create the same display more than once */
@@ -576,6 +585,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
@@ -576,6 +586,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
return;
}
@ -57,7 +58,7 @@ Index: daemon/gdm-local-display-factory.c
/* If we already have a login window, switch to it */
if (gdm_get_login_window_session_id (seat_id, &login_session_id)) {
GdmDisplay *display;
@@ -593,6 +603,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
@@ -593,6 +604,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
return;
}
}
@ -65,7 +66,7 @@ Index: daemon/gdm-local-display-factory.c
g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", seat_id);
@@ -628,6 +639,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
@@ -628,6 +640,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
return;
}
@ -73,7 +74,7 @@ Index: daemon/gdm-local-display-factory.c
static void
delete_display (GdmLocalDisplayFactory *factory,
const char *seat_id) {
@@ -790,6 +802,7 @@ lookup_by_tty (const char *id,
@@ -790,6 +803,7 @@ lookup_by_tty (const char *id,
return g_strcmp0 (tty_to_check, tty_to_find) == 0;
}
@ -81,7 +82,7 @@ Index: daemon/gdm-local-display-factory.c
#if defined(ENABLE_USER_DISPLAY_SERVER)
static void
@@ -967,6 +980,7 @@ on_vt_changed (GIOChannel *source,
@@ -967,6 +981,7 @@ on_vt_changed (GIOChannel *source,
}
#endif
@ -89,7 +90,7 @@ Index: daemon/gdm-local-display-factory.c
static void
gdm_local_display_factory_start_monitor (GdmLocalDisplayFactory *factory)
{
@@ -1046,6 +1060,7 @@ gdm_local_display_factory_stop_monitor (GdmLocalDispla
@@ -1046,6 +1061,7 @@ gdm_local_display_factory_stop_monitor (GdmLocalDispla
}
#endif
}
@ -97,7 +98,7 @@ Index: daemon/gdm-local-display-factory.c
static void
on_display_added (GdmDisplayStore *display_store,
@@ -1097,8 +1112,12 @@ gdm_local_display_factory_start (GdmDisplayFactory *ba
@@ -1097,8 +1113,12 @@ gdm_local_display_factory_start (GdmDisplayFactory *ba
factory,
0);
@ -110,7 +111,7 @@ Index: daemon/gdm-local-display-factory.c
}
static gboolean
@@ -1109,7 +1128,9 @@ gdm_local_display_factory_stop (GdmDisplayFactory *bas
@@ -1109,7 +1129,9 @@ gdm_local_display_factory_stop (GdmDisplayFactory *bas
g_return_val_if_fail (GDM_IS_LOCAL_DISPLAY_FACTORY (factory), FALSE);
@ -120,7 +121,7 @@ Index: daemon/gdm-local-display-factory.c
store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory));
@@ -1263,7 +1284,9 @@ gdm_local_display_factory_finalize (GObject *object)
@@ -1263,7 +1285,9 @@ gdm_local_display_factory_finalize (GObject *object)
g_hash_table_destroy (factory->used_display_numbers);