diff --git a/0001-local-display-factory-Provide-more-flexibility-for-c.patch b/0001-local-display-factory-Provide-more-flexibility-for-c.patch index 64df572..e72eab6 100644 --- a/0001-local-display-factory-Provide-more-flexibility-for-c.patch +++ b/0001-local-display-factory-Provide-more-flexibility-for-c.patch @@ -1,4 +1,4 @@ -From 42958e082c611d2e2f466247e7d8759dfb5f607d Mon Sep 17 00:00:00 2001 +From a8f8a5ee422d6ae3d87c1fba351313a5d98ded6e Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 16 Jul 2021 12:34:57 -0400 Subject: [PATCH] local-display-factory: Provide more flexibility for @@ -25,14 +25,14 @@ fall back to "wayland". daemon/gdm-display.c | 36 +++++ daemon/gdm-launch-environment.c | 9 ++ daemon/gdm-local-display-factory.c | 224 ++++++++++++++++++++++++----- - daemon/gdm-manager.c | 11 +- + daemon/gdm-manager.c | 22 ++- daemon/gdm-session.c | 115 ++++++++------- data/gdm.schemas.in | 10 ++ libgdm/gdm-sessions.c | 72 +++++++--- - 8 files changed, 361 insertions(+), 118 deletions(-) + 8 files changed, 366 insertions(+), 124 deletions(-) diff --git a/common/gdm-settings-keys.h b/common/gdm-settings-keys.h -index f0059b5c..87685d3c 100644 +index f0059b5cf..87685d3cd 100644 --- a/common/gdm-settings-keys.h +++ b/common/gdm-settings-keys.h @@ -6,59 +6,61 @@ @@ -98,7 +98,7 @@ index f0059b5c..87685d3c 100644 #endif /* _GDM_SETTINGS_KEYS_H */ diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c -index 3a260923..34467856 100644 +index 3a260923a..46d5a7732 100644 --- a/daemon/gdm-display.c +++ b/daemon/gdm-display.c @@ -66,83 +66,86 @@ typedef struct _GdmDisplayPrivate @@ -583,7 +583,7 @@ index 3a260923..34467856 100644 self); g_signal_handlers_disconnect_by_func (priv->launch_environment, diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c -index 87a1c5ff..14ecfac2 100644 +index 87a1c5ffe..14ecfac2d 100644 --- a/daemon/gdm-launch-environment.c +++ b/daemon/gdm-launch-environment.c @@ -134,60 +134,61 @@ static GHashTable * @@ -718,7 +718,7 @@ index 87a1c5ff..14ecfac2 100644 g_signal_emit (G_OBJECT (launch_environment), signals [OPENED], 0); diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c -index 8a4ef06c..141d64c6 100644 +index 8a4ef06cd..141d64c6b 100644 --- a/daemon/gdm-local-display-factory.c +++ b/daemon/gdm-local-display-factory.c @@ -156,126 +156,225 @@ take_next_display_number (GdmLocalDisplayFactory *factory) @@ -1226,7 +1226,7 @@ index 8a4ef06c..141d64c6 100644 static gboolean diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c -index 9c10adff..7c291013 100644 +index 9c10adff3..4c2752fee 100644 --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c @@ -1306,74 +1306,75 @@ get_automatic_login_details (GdmManager *manager, @@ -1307,7 +1307,9 @@ index 9c10adff..7c291013 100644 set_up_greeter_session (GdmManager *manager, GdmDisplay *display) { -@@ -2280,61 +2281,60 @@ on_session_reauthentication_started (GdmSession *session, +@@ -2278,87 +2279,85 @@ on_session_reauthentication_started (GdmSession *session, + + if (invocation != NULL) { g_hash_table_steal (manager->priv->open_reauthentication_requests, source_tag); gdm_dbus_manager_complete_open_reauthentication_channel (GDM_DBUS_MANAGER (manager), @@ -1336,10 +1338,11 @@ index 9c10adff..7c291013 100644 char *display_auth_file = NULL; char *display_seat_id = NULL; char *display_id = NULL; - #if defined(ENABLE_WAYLAND_SUPPORT) && defined(ENABLE_USER_DISPLAY_SERVER) - g_autofree char *display_session_type = NULL; +-#if defined(ENABLE_WAYLAND_SUPPORT) && defined(ENABLE_USER_DISPLAY_SERVER) +- g_autofree char *display_session_type = NULL; - gboolean greeter_is_wayland; - #endif +-#endif ++ g_auto (GStrv) supported_session_types = NULL; g_object_get (G_OBJECT (display), "id", &display_id, @@ -1348,9 +1351,10 @@ index 9c10adff..7c291013 100644 "remote-hostname", &remote_hostname, "x11-authority-file", &display_auth_file, "seat-id", &display_seat_id, - #if defined(ENABLE_WAYLAND_SUPPORT) && defined(ENABLE_USER_DISPLAY_SERVER) - "session-type", &display_session_type, - #endif +-#if defined(ENABLE_WAYLAND_SUPPORT) && defined(ENABLE_USER_DISPLAY_SERVER) +- "session-type", &display_session_type, +-#endif ++ "supported-session-types", &supported_session_types, NULL); display_device = get_display_device (manager, display); @@ -1363,13 +1367,40 @@ index 9c10adff..7c291013 100644 display_auth_file, display_is_local, NULL); ++ g_object_set (G_OBJECT (session), ++ "supported-session-types", supported_session_types, ++ NULL); g_debug ("GdmSession: Created user session for user %d on display %s (seat %s)", (int) allowed_user, display_id, display_seat_id); -@@ -2378,65 +2378,60 @@ create_user_session_for_display (GdmManager *manager, + g_free (display_name); + g_free (remote_hostname); + g_free (display_auth_file); + g_free (display_seat_id); + + g_signal_connect (session, + "reauthentication-started", + G_CALLBACK (on_session_reauthentication_started), + manager); + g_signal_connect (session, + "reauthenticated", + G_CALLBACK (on_session_reauthenticated), + manager); + g_signal_connect (session, + "client-ready-for-session-to-start", + G_CALLBACK (on_session_client_ready_for_session_to_start), + manager); + g_signal_connect (session, + "client-connected", + G_CALLBACK (on_session_client_connected), + manager); + g_signal_connect (session, + "client-disconnected", + G_CALLBACK (on_session_client_disconnected), +@@ -2378,65 +2377,60 @@ create_user_session_for_display (GdmManager *manager, g_signal_connect (session, "authentication-failed", G_CALLBACK (on_session_authentication_failed), @@ -1436,7 +1467,7 @@ index 9c10adff..7c291013 100644 } diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c -index a010cecf..2b941e5e 100644 +index a010cecf5..2b941e5e1 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c @@ -106,84 +106,81 @@ struct _GdmSession @@ -2109,7 +2140,7 @@ index a010cecf..2b941e5e 100644 NULL); diff --git a/data/gdm.schemas.in b/data/gdm.schemas.in -index 255bff02..a1035f95 100644 +index 255bff023..a1035f95e 100644 --- a/data/gdm.schemas.in +++ b/data/gdm.schemas.in @@ -25,65 +25,75 @@ @@ -2189,7 +2220,7 @@ index 255bff02..a1035f95 100644 xdmcp/MaxPending i diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c -index a1322505..f078e04b 100644 +index a13225050..f078e04b8 100644 --- a/libgdm/gdm-sessions.c +++ b/libgdm/gdm-sessions.c @@ -163,171 +163,203 @@ load_session_file (const char *id, @@ -2417,5 +2448,5 @@ index a1322505..f078e04b 100644 * Returns: (transfer full): a %NULL terminated list of session ids */ -- -2.32.0 +2.31.1 diff --git a/gdm.spec b/gdm.spec index 06a45f6..22fafbb 100644 --- a/gdm.spec +++ b/gdm.spec @@ -11,7 +11,7 @@ Name: gdm Epoch: 1 Version: 40.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: The GNOME Display Manager License: GPLv2+ @@ -311,16 +311,7 @@ dconf update || : %{_libdir}/pkgconfig/gdm-pam-extensions.pc %changelog -* Wed Jul 28 2021 Ray Strode - 40.1-3 -- Clean up the initial-setup disabling patch that somehow - got bits from another patch in it. - Related: #1985099 - -* Wed Jul 28 2021 Ray Strode - 40.1-2 -- A few clean ups and fixes in session selection patch - Related: #1985099 - -* Fri Jul 23 2021 Ray Strode - 40.1-1 +* Wed Jul 28 2021 Ray Strode - 40.1-4 - Update to 40.1 - Allow vendor nvidia users to choose wayland sessions Related: #1985099