import gdm-40.0-23.el8

This commit is contained in:
CentOS Sources 2022-05-10 02:59:42 -04:00 committed by Stepan Oksanichenko
parent de1b6dea0b
commit 966e9b2253
13 changed files with 244 additions and 141 deletions

View File

@ -0,0 +1,87 @@
From ff689b18fd0a5fd03e5941723cb2adff3b7e4b24 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 29 Sep 2021 11:03:41 -0400
Subject: [PATCH] daemon: Infer session type from desktop file if user has no
saved session type
The accountsservice user cache file can specify a session type
associated with the saved session. This is optional though. If one
isn't specified GDM needs to figure out the session type based on the
list of preferred session types for the system and the session file
itself.
It was failing to do the latter, though. This commit fixes that.
---
daemon/gdm-session.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 29459346..72afe7b2 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -988,60 +988,62 @@ worker_on_saved_language_name_read (GdmDBusWorker *worker,
}
}
}
static void
worker_on_saved_session_name_read (GdmDBusWorker *worker,
const char *session_name,
GdmSessionConversation *conversation)
{
GdmSession *self = conversation->session;
if (! get_session_command_for_name (self, session_name, NULL)) {
/* ignore sessions that don't exist */
g_debug ("GdmSession: not using invalid .dmrc session: %s", session_name);
g_free (self->saved_session);
self->saved_session = NULL;
update_session_type (self);
} else {
if (strcmp (session_name,
get_default_session_name (self)) != 0) {
g_free (self->saved_session);
self->saved_session = g_strdup (session_name);
if (self->greeter_interface != NULL) {
gdm_dbus_greeter_emit_default_session_name_changed (self->greeter_interface,
session_name);
}
}
if (self->saved_session_type != NULL)
set_session_type (self, self->saved_session_type);
+ else
+ update_session_type (self);
}
}
static GdmSessionConversation *
find_conversation_by_pid (GdmSession *self,
GPid pid)
{
GHashTableIter iter;
gpointer key, value;
g_hash_table_iter_init (&iter, self->conversations);
while (g_hash_table_iter_next (&iter, &key, &value)) {
GdmSessionConversation *conversation;
conversation = (GdmSessionConversation *) value;
if (conversation->worker_pid == pid) {
return conversation;
}
}
return NULL;
}
static gboolean
allow_worker_function (GDBusAuthObserver *observer,
GIOStream *stream,
GCredentials *credentials,
GdmSession *self)
--
2.33.1

View File

@ -1,4 +1,4 @@
From e5c58e1663845d46b368063f8137eab5f2e1c01b Mon Sep 17 00:00:00 2001 From 8451325378ef2981304d96bb27844174dba930c5 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Fri, 16 Jul 2021 12:34:57 -0400 Date: Fri, 16 Jul 2021 12:34:57 -0400
Subject: [PATCH 1/4] local-display-factory: Provide more flexibility for Subject: [PATCH 1/4] local-display-factory: Provide more flexibility for

View File

@ -1,92 +0,0 @@
From 17297d7c33916d749375dd7d66f202551b708bf6 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 29 Oct 2018 06:57:59 -0400
Subject: [PATCH] local-display-factory: pause for a few seconds before falling
back to X
logind currently gets confused if a session is started immediately as
one is shutting down.
Workaround this problem by adding an artificial delay when falling
back to X.
http://bugzilla.redhat.com/1643874
---
daemon/gdm-local-display-factory.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
index c00e1c47..9461cc43 100644
--- a/daemon/gdm-local-display-factory.c
+++ b/daemon/gdm-local-display-factory.c
@@ -664,60 +664,67 @@ ensure_display_for_seat (GdmLocalDisplayFactory *factory,
}
ret = sd_seat_can_graphical (seat_id);
if (ret < 0) {
g_critical ("Failed to query CanGraphical information for seat %s", seat_id);
return;
}
if (ret == 0) {
g_debug ("GdmLocalDisplayFactory: System doesn't currently support graphics");
seat_supports_graphics = FALSE;
} else {
g_debug ("GdmLocalDisplayFactory: System supports graphics");
seat_supports_graphics = TRUE;
}
if (g_strcmp0 (seat_id, "seat0") == 0) {
is_seat0 = TRUE;
falling_back = factory->num_failures > 0;
session_types = gdm_local_display_factory_get_session_types (factory, falling_back);
if (session_types == NULL) {
g_debug ("GdmLocalDisplayFactory: Both Wayland and Xorg are unavailable");
seat_supports_graphics = FALSE;
} else {
g_debug ("GdmLocalDisplayFactory: New displays on seat0 will use %s%s",
session_types[0], falling_back? " fallback" : "");
}
+
+ if (falling_back) {
+ /* workaround logind race for now
+ * bug 1643874
+ */
+ g_usleep (2 * G_USEC_PER_SEC);
+ }
} else {
is_seat0 = FALSE;
g_debug ("GdmLocalDisplayFactory: New displays on seat %s will use X11 fallback", seat_id);
/* Force legacy X11 for all auxiliary seats */
seat_supports_graphics = TRUE;
session_types = g_strdupv ((char **) legacy_session_types);
}
/* For seat0, we have a fallback logic to still try starting it after
* SEAT0_GRAPHICS_CHECK_TIMEOUT seconds. i.e. we simply continue even if
* CanGraphical is unset.
* This is ugly, but it means we'll come up eventually in some
* scenarios where no master device is present.
* Note that we'll force an X11 fallback even though there might be
* cases where an wayland capable device is present and simply not marked as
* master-of-seat. In these cases, this should likely be fixed in the
* udev rules.
*
* At the moment, systemd always sets CanGraphical for non-seat0 seats.
* This is because non-seat0 seats are defined by having master-of-seat
* set. This means we can avoid the fallback check for non-seat0 seats,
* which simplifies the code.
*/
if (is_seat0) {
if (!seat_supports_graphics) {
if (!factory->seat0_graphics_check_timed_out) {
if (factory->seat0_graphics_check_timeout_id == 0) {
g_debug ("GdmLocalDisplayFactory: seat0 doesn't yet support graphics. Waiting %d seconds to try again.", SEAT0_GRAPHICS_CHECK_TIMEOUT);
factory->seat0_graphics_check_timeout_id = g_timeout_add_seconds (SEAT0_GRAPHICS_CHECK_TIMEOUT,
--
2.34.1

View File

@ -0,0 +1,84 @@
From 56d12ad9697d5695c780a5be0065d23fec6bd1a5 Mon Sep 17 00:00:00 2001
From: Chingkai Chu <3013329+chuchingkai@users.noreply.github.com>
Date: Thu, 12 Aug 2021 10:34:01 +0800
Subject: [PATCH] session-worker: Set session_vt=0 out of pam uninitialization
MR GNOME/gdm!123 moved jump_to_vt and session_vt reseting to a
separate function, so we don't need to reset session_vt in pam
uninitialization.
https://gitlab.gnome.org/GNOME/gdm/-/issues/719
---
daemon/gdm-session-worker.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index c1201b70..9cff53a5 100644
--- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c
@@ -1076,62 +1076,60 @@ gdm_session_worker_set_state (GdmSessionWorker *worker,
static void
gdm_session_worker_uninitialize_pam (GdmSessionWorker *worker,
int status)
{
g_debug ("GdmSessionWorker: uninitializing PAM");
if (worker->priv->pam_handle == NULL)
return;
gdm_session_worker_get_username (worker, NULL);
if (worker->priv->state >= GDM_SESSION_WORKER_STATE_SESSION_OPENED) {
pam_close_session (worker->priv->pam_handle, 0);
gdm_session_auditor_report_logout (worker->priv->auditor);
} else {
gdm_session_auditor_report_login_failure (worker->priv->auditor,
status,
pam_strerror (worker->priv->pam_handle, status));
}
if (worker->priv->state >= GDM_SESSION_WORKER_STATE_ACCREDITED) {
pam_setcred (worker->priv->pam_handle, PAM_DELETE_CRED);
}
pam_end (worker->priv->pam_handle, status);
worker->priv->pam_handle = NULL;
gdm_session_worker_stop_auditor (worker);
- worker->priv->session_vt = 0;
-
g_debug ("GdmSessionWorker: state NONE");
gdm_session_worker_set_state (worker, GDM_SESSION_WORKER_STATE_NONE);
}
static char *
_get_tty_for_pam (const char *x11_display_name,
const char *display_device)
{
#ifdef __sun
return g_strdup (display_device);
#else
return g_strdup (x11_display_name);
#endif
}
#ifdef PAM_XAUTHDATA
static struct pam_xauth_data *
_get_xauth_for_pam (const char *x11_authority_file)
{
FILE *fh;
Xauth *auth = NULL;
struct pam_xauth_data *retval = NULL;
gsize len = sizeof (*retval) + 1;
fh = fopen (x11_authority_file, "r");
if (fh) {
auth = XauReadAuth (fh);
fclose (fh);
}
if (auth) {
--
2.31.1

View File

@ -1,4 +1,4 @@
From 70eb29d5eedc2b66e617745be1dd145aac3e177e Mon Sep 17 00:00:00 2001 From f0dce28fa02210caa445e96d9cbec1d150b79e80 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Wed, 15 Aug 2018 10:48:16 -0400 Date: Wed, 15 Aug 2018 10:48:16 -0400
Subject: [PATCH 1/4] worker: don't load user settings for program sessions Subject: [PATCH 1/4] worker: don't load user settings for program sessions
@ -10,7 +10,7 @@ for its session name
1 file changed, 26 insertions(+), 11 deletions(-) 1 file changed, 26 insertions(+), 11 deletions(-)
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index 774298b9..88fe36c1 100644 index 9b8e0d87..438348df 100644
--- a/daemon/gdm-session-worker.c --- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c
@@ -400,103 +400,108 @@ gdm_session_execute (const char *file, @@ -400,103 +400,108 @@ gdm_session_execute (const char *file,
@ -124,7 +124,7 @@ index 774298b9..88fe36c1 100644
worker->priv->service, worker->priv->service,
question, question,
answerp, answerp,
@@ -2600,87 +2605,89 @@ gdm_session_worker_get_property (GObject *object, @@ -2598,87 +2603,89 @@ gdm_session_worker_get_property (GObject *object,
g_value_set_boolean (value, self->priv->is_reauth_session); g_value_set_boolean (value, self->priv->is_reauth_session);
break; break;
case PROP_STATE: case PROP_STATE:
@ -218,7 +218,7 @@ index 774298b9..88fe36c1 100644
g_free (session_name); g_free (session_name);
} }
@@ -2758,110 +2765,113 @@ do_authorize (GdmSessionWorker *worker) @@ -2756,110 +2763,113 @@ do_authorize (GdmSessionWorker *worker)
g_dbus_method_invocation_take_error (worker->priv->pending_invocation, error); g_dbus_method_invocation_take_error (worker->priv->pending_invocation, error);
} }
worker->priv->pending_invocation = NULL; worker->priv->pending_invocation = NULL;
@ -336,7 +336,7 @@ index 774298b9..88fe36c1 100644
} }
gdm_dbus_worker_complete_open (GDM_DBUS_WORKER (worker), worker->priv->pending_invocation, session_id); gdm_dbus_worker_complete_open (GDM_DBUS_WORKER (worker), worker->priv->pending_invocation, session_id);
@@ -3105,155 +3115,161 @@ gdm_session_worker_handle_initialize (GdmDBusWorker *object, @@ -3103,155 +3113,161 @@ gdm_session_worker_handle_initialize (GdmDBusWorker *object,
if (g_strcmp0 (key, "service") == 0) { if (g_strcmp0 (key, "service") == 0) {
worker->priv->service = g_variant_dup_string (value, NULL); worker->priv->service = g_variant_dup_string (value, NULL);
} else if (g_strcmp0 (key, "extensions") == 0) { } else if (g_strcmp0 (key, "extensions") == 0) {
@ -498,7 +498,7 @@ index 774298b9..88fe36c1 100644
GDBusMethodInvocation *invocation, GDBusMethodInvocation *invocation,
const char *service, const char *service,
const char *username, const char *username,
@@ -3591,61 +3607,60 @@ static void @@ -3589,61 +3605,60 @@ static void
reauthentication_request_free (ReauthenticationRequest *request) reauthentication_request_free (ReauthenticationRequest *request)
{ {
@ -561,5 +561,5 @@ index 774298b9..88fe36c1 100644
g_return_if_fail (worker->priv != NULL); g_return_if_fail (worker->priv != NULL);
-- --
2.27.0 2.33.1

View File

@ -1,4 +1,4 @@
From 9b3d81889d8497f029e860bd2f8288272333cae8 Mon Sep 17 00:00:00 2001 From c00daca1579c47f3f62894ff2378c37e6cbebfd3 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Tue, 20 Jul 2021 13:36:45 -0400 Date: Tue, 20 Jul 2021 13:36:45 -0400
Subject: [PATCH 2/4] libgdm: Sort session list Subject: [PATCH 2/4] libgdm: Sort session list

View File

@ -1,4 +1,4 @@
From 96e78f519a4d5ce2e5b708035ae1f43eb7c1bbd2 Mon Sep 17 00:00:00 2001 From 22b08727980cefd665b8805376710e9244523fe3 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Tue, 14 Aug 2018 14:52:41 -0400 Date: Tue, 14 Aug 2018 14:52:41 -0400
Subject: [PATCH 2/4] session: support new accountsservice Session and Subject: [PATCH 2/4] session: support new accountsservice Session and
@ -454,10 +454,10 @@ index 20946bff..db38ffc7 100644
G_END_DECLS G_END_DECLS
#endif /* GDM_SESSION_SETTINGS_H */ #endif /* GDM_SESSION_SETTINGS_H */
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index 88fe36c1..c1201b70 100644 index 438348df..9cff53a5 100644
--- a/daemon/gdm-session-worker.c --- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c
@@ -2664,60 +2664,74 @@ gdm_session_worker_handle_set_language_name (GdmDBusWorker *object, @@ -2662,60 +2662,74 @@ gdm_session_worker_handle_set_language_name (GdmDBusWorker *object,
gdm_dbus_worker_complete_set_language_name (object, invocation); gdm_dbus_worker_complete_set_language_name (object, invocation);
return TRUE; return TRUE;
} }
@ -532,7 +532,7 @@ index 88fe36c1..c1201b70 100644
static void static void
do_authenticate (GdmSessionWorker *worker) do_authenticate (GdmSessionWorker *worker)
{ {
@@ -3127,158 +3141,172 @@ gdm_session_worker_handle_initialize (GdmDBusWorker *object, @@ -3125,158 +3139,172 @@ gdm_session_worker_handle_initialize (GdmDBusWorker *object,
} else if (g_strcmp0 (key, "x11-authority-file") == 0) { } else if (g_strcmp0 (key, "x11-authority-file") == 0) {
worker->priv->x11_authority_file = g_variant_dup_string (value, NULL); worker->priv->x11_authority_file = g_variant_dup_string (value, NULL);
} else if (g_strcmp0 (key, "console") == 0) { } else if (g_strcmp0 (key, "console") == 0) {
@ -754,7 +754,7 @@ index 4280fe09..a215779c 100644
</interface> </interface>
</node> </node>
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 29459346..43da024f 100644 index 72afe7b2..f4d0bef9 100644
--- a/daemon/gdm-session.c --- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c +++ b/daemon/gdm-session.c
@@ -61,60 +61,61 @@ @@ -61,60 +61,61 @@
@ -1222,7 +1222,7 @@ index 29459346..43da024f 100644
static void static void
set_pending_query (GdmSessionConversation *conversation, set_pending_query (GdmSessionConversation *conversation,
@@ -969,83 +989,94 @@ worker_on_reauthenticated (GdmDBusWorker *worker, @@ -969,85 +989,96 @@ worker_on_reauthenticated (GdmDBusWorker *worker,
GdmSession *self = conversation->session; GdmSession *self = conversation->session;
g_debug ("GdmSession: Emitting 'reauthenticated' signal "); g_debug ("GdmSession: Emitting 'reauthenticated' signal ");
g_signal_emit (self, signals[REAUTHENTICATED], 0, service_name); g_signal_emit (self, signals[REAUTHENTICATED], 0, service_name);
@ -1273,6 +1273,8 @@ index 29459346..43da024f 100644
} }
if (self->saved_session_type != NULL) if (self->saved_session_type != NULL)
set_session_type (self, self->saved_session_type); set_session_type (self, self->saved_session_type);
else
update_session_type (self);
} }
} }
@ -1318,7 +1320,7 @@ index 29459346..43da024f 100644
uid_t connecting_user; uid_t connecting_user;
connecting_user = g_credentials_get_unix_user (credentials, NULL); connecting_user = g_credentials_get_unix_user (credentials, NULL);
@@ -1125,60 +1156,63 @@ register_worker (GdmDBusWorkerManager *worker_manager_interface, @@ -1127,60 +1158,63 @@ register_worker (GdmDBusWorkerManager *worker_manager_interface,
g_dbus_method_invocation_return_value (invocation, NULL); g_dbus_method_invocation_return_value (invocation, NULL);
conversation->worker_proxy = gdm_dbus_worker_proxy_new_sync (connection, conversation->worker_proxy = gdm_dbus_worker_proxy_new_sync (connection,
@ -1382,7 +1384,7 @@ index 29459346..43da024f 100644
g_debug ("GdmSession: Conversation started"); g_debug ("GdmSession: Conversation started");
return TRUE; return TRUE;
@@ -1921,60 +1955,63 @@ free_conversation (GdmSessionConversation *conversation) @@ -1923,60 +1957,63 @@ free_conversation (GdmSessionConversation *conversation)
close_conversation (conversation); close_conversation (conversation);
if (conversation->job != NULL) { if (conversation->job != NULL) {
@ -1446,7 +1448,7 @@ index 29459346..43da024f 100644
error = NULL; error = NULL;
if (!g_file_get_contents (config_file, &contents, &length, &error)) { if (!g_file_get_contents (config_file, &contents, &length, &error)) {
g_debug ("Failed to parse '%s': %s", g_debug ("Failed to parse '%s': %s",
@@ -2533,83 +2570,83 @@ gdm_session_send_environment (GdmSession *self, @@ -2535,83 +2572,83 @@ gdm_session_send_environment (GdmSession *self,
g_return_if_fail (GDM_IS_SESSION (self)); g_return_if_fail (GDM_IS_SESSION (self));
conversation = find_conversation_by_name (self, service_name); conversation = find_conversation_by_name (self, service_name);
@ -1532,7 +1534,7 @@ index 29459346..43da024f 100644
g_strdup (value)); g_strdup (value));
} }
@@ -3179,148 +3216,150 @@ gdm_session_get_conversation_session_id (GdmSession *self, @@ -3181,148 +3218,150 @@ gdm_session_get_conversation_session_id (GdmSession *self,
conversation = find_conversation_by_name (self, service_name); conversation = find_conversation_by_name (self, service_name);
if (conversation == NULL) { if (conversation == NULL) {
@ -1692,5 +1694,5 @@ index 29459346..43da024f 100644
self->display_seat_id); self->display_seat_id);
-- --
2.27.0 2.33.1

View File

@ -1,4 +1,4 @@
From bd5153305b576f29ea3b8835bd2740a5eda2db0f Mon Sep 17 00:00:00 2001 From de95917e0e9d142703a86f94961ef9fd4151739d Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Mon, 20 Aug 2018 14:30:59 -0400 Date: Mon, 20 Aug 2018 14:30:59 -0400
Subject: [PATCH 3/4] daemon: save os-release in accountsservice Subject: [PATCH 3/4] daemon: save os-release in accountsservice
@ -401,7 +401,7 @@ index f2b1addd..a4b7f1a6 100644
return TRUE; return TRUE;
} }
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 43da024f..c8e04c1b 100644 index f4d0bef9..d1e2c301 100644
--- a/daemon/gdm-session.c --- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c +++ b/daemon/gdm-session.c
@@ -351,72 +351,72 @@ supports_session_type (GdmSession *self, @@ -351,72 +351,72 @@ supports_session_type (GdmSession *self,
@ -607,5 +607,5 @@ index 2e61b644..71c65039 100644
gdm_session_worker = executable('gdm-session-worker', gdm_session_worker = executable('gdm-session-worker',
-- --
2.27.0 2.33.1

View File

@ -1,4 +1,4 @@
From 7d5b0ed505ec38c4aef51d125d01a2733f4a237f Mon Sep 17 00:00:00 2001 From b5472a30b1a71aec537ac309e2985cbac61b3136 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Tue, 14 Sep 2021 11:00:33 -0400 Date: Tue, 14 Sep 2021 11:00:33 -0400
Subject: [PATCH 3/4] xdmcp-display-factory: Set supported session types for Subject: [PATCH 3/4] xdmcp-display-factory: Set supported session types for

View File

@ -1,4 +1,4 @@
From b7c0541ffccf43994a3e418c4012b17a6dd8b630 Mon Sep 17 00:00:00 2001 From 738a10ca78e154ad4c3df9a1298eaad01516457e Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Mon, 20 Aug 2018 14:30:59 -0400 Date: Mon, 20 Aug 2018 14:30:59 -0400
Subject: [PATCH 4/4] daemon: handle upgrades from RHEL 7 Subject: [PATCH 4/4] daemon: handle upgrades from RHEL 7
@ -135,10 +135,10 @@ index a4b7f1a6..a84b2ffa 100644
settings); settings);
} }
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index c8e04c1b..3103e9df 100644 index d1e2c301..d4a46d87 100644
--- a/daemon/gdm-session.c --- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c +++ b/daemon/gdm-session.c
@@ -3205,98 +3205,95 @@ gdm_session_get_session_id (GdmSession *self) @@ -3207,98 +3207,95 @@ gdm_session_get_session_id (GdmSession *self)
return conversation->session_id; return conversation->session_id;
} }
@ -246,5 +246,5 @@ index c8e04c1b..3103e9df 100644
if (!session_registers && if (!session_registers &&
error != NULL && error != NULL &&
-- --
2.27.0 2.33.1

View File

@ -1,4 +1,4 @@
From 83ba20c428c3839e8ce974ffa13712f92d5980ea Mon Sep 17 00:00:00 2001 From dfca67899ea33da08d3aa9e84c1b4487991adad0 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com> From: Ray Strode <rstrode@redhat.com>
Date: Thu, 7 Oct 2021 15:34:27 -0400 Date: Thu, 7 Oct 2021 15:34:27 -0400
Subject: [PATCH 4/4] local-display-factory: Don't crash if Xorg and Wayland Subject: [PATCH 4/4] local-display-factory: Don't crash if Xorg and Wayland

View File

@ -3,7 +3,6 @@ load-module module-card-restore
load-module module-udev-detect load-module module-udev-detect
load-module module-native-protocol-unix load-module module-native-protocol-unix
load-module module-default-device-restore load-module module-default-device-restore
load-module module-rescue-streams
load-module module-always-sink load-module module-always-sink
load-module module-intended-roles load-module module-intended-roles
load-module module-suspend-on-idle load-module module-suspend-on-idle

View File

@ -12,7 +12,7 @@
Name: gdm Name: gdm
Epoch: 1 Epoch: 1
Version: 40.0 Version: 40.0
Release: 15%{?dist}.3 Release: 23%{?dist}
Summary: The GNOME Display Manager Summary: The GNOME Display Manager
License: GPLv2+ License: GPLv2+
@ -43,12 +43,17 @@ Patch70001: 0001-Revert-gdm-wayland-x-session-don-t-overwrite-user-en.patch
# Crash fix # Crash fix
Patch80001: 0001-local-display-factory-Don-t-try-to-respawn-displays-.patch Patch80001: 0001-local-display-factory-Don-t-try-to-respawn-displays-.patch
# VT handling fix from upstream
Patch90001: 0001-session-worker-Set-session_vt-0-out-of-pam-uninitial.patch
# Wayland fix from upstream
Patch100001: 0001-daemon-Infer-session-type-from-desktop-file-if-user-.patch
# Fix DisallowTcp=false from upstream # Fix DisallowTcp=false from upstream
Patch110001: 0001-meson-Fix-detection-of-Xorg-versions-that-need-liste.patch Patch110001: 0001-meson-Fix-detection-of-Xorg-versions-that-need-liste.patch
Patch110002: 0002-daemon-Support-X-servers-built-with-Dlisten_tcp-true.patch Patch110002: 0002-daemon-Support-X-servers-built-with-Dlisten_tcp-true.patch
# Non-upstreamable workarounds # Non-upstreamable workarounds
Patch66610001: 0001-local-display-factory-pause-for-a-few-seconds-before.patch
Patch66620001: 0001-data-reap-gdm-sessions-on-shutdown.patch Patch66620001: 0001-data-reap-gdm-sessions-on-shutdown.patch
# Non-upstreamable integration patches # Non-upstreamable integration patches
@ -65,6 +70,7 @@ Patch99930001: 0001-data-add-system-dconf-databases-to-gdm-profile.patch
Patch99940001: 0001-data-disable-wayland-on-certain-hardware.patch Patch99940001: 0001-data-disable-wayland-on-certain-hardware.patch
BuildRequires: accountsservice-devel BuildRequires: accountsservice-devel
BuildRequires: audit-libs-devel >= %{libauditver} BuildRequires: audit-libs-devel >= %{libauditver}
BuildRequires: dconf BuildRequires: dconf
@ -122,7 +128,7 @@ Requires: libXau >= 1.0.4-4
Requires: pam >= 0:%{pam_version} Requires: pam >= 0:%{pam_version}
Requires: /sbin/nologin Requires: /sbin/nologin
Requires: setxkbmap Requires: setxkbmap
Requires: systemd >= 186 Requires: systemd >= 239-50
Requires: system-logos Requires: system-logos
Requires: xorg-x11-server-utils Requires: xorg-x11-server-utils
Requires: xorg-x11-xinit Requires: xorg-x11-xinit
@ -343,7 +349,7 @@ fi
%{_libdir}/girepository-1.0/Gdm-1.0.typelib %{_libdir}/girepository-1.0/Gdm-1.0.typelib
%{_libdir}/security/pam_gdm.so %{_libdir}/security/pam_gdm.so
%{_libdir}/libgdm*.so* %{_libdir}/libgdm*.so*
%dir %{_localstatedir}/log/gdm %attr(0711, root, gdm) %dir %{_localstatedir}/log/gdm
%attr(1770, gdm, gdm) %dir %{_localstatedir}/lib/gdm %attr(1770, gdm, gdm) %dir %{_localstatedir}/lib/gdm
%attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.config %attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.config
%attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.config/pulse %attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.config/pulse
@ -369,28 +375,45 @@ fi
%{_libdir}/pkgconfig/gdm-pam-extensions.pc %{_libdir}/pkgconfig/gdm-pam-extensions.pc
%changelog %changelog
* Wed Mar 30 2022 Ray Strode <rstrode@redhat.com> - 40.0-15.3 * Thu Jan 27 2022 Ray Strode <rstrode@redhat.com> - 40.0-23
- Rebuild
Related: #2029202
* Tue Mar 29 2022 Ray Strode <rstrode@redhat.com> - 40.0-15.2
- Fix DisallowTCP
Resolves: #2029202
* Thu Jan 27 2022 Ray Strode <rstrode@redhat.com> - 40.0-15.1
- Fix crash when neither Xorg nor wayland is working great - Fix crash when neither Xorg nor wayland is working great
Resolves: #2036584 Resolves: #2032180
* Wed Sep 15 2021 Ray Strode <rstrode@redhat.com> - 40.0-14 * Wed Dec 22 2021 Ray Strode <rstrode@redhat.com> - 40.1-22
- Fix DisallowTCP
Resolves: #2025768
* Tue Dec 21 2021 Ray Strode <rstrode@redhat.com> - 40.1-21
- Fix Xorg/Wayland selection in some cases
Resolves: #2009045
* Mon Oct 25 2021 Ray Strode <rstrode@redhat.com> - 40.1-20
- Remove module-rescue-stream from default.pa
Resolves: #1969846
* Mon Oct 25 2021 Ray Strode <rstrode@redhat.com> - 40.0-19
- Synchronize permission and group ownership for log dir between
rpm file manifest and daemon expectations.
Resolves: #1878119
* Mon Oct 25 2021 Ray Strode <rstrode@redhat.com> - 40.0-18
- Drop usleep workaround for problem that's now fixed properly in systemd
Resolves: #1921732
* Wed Oct 13 2021 Ray Strode <rstrode@redhat.com> - 40.0-17
- Properly switch VTs when jumping to multi-user target
Related: #1988958
* Wed Sep 15 2021 Ray Strode <rstrode@redhat.com> - 40.0-16
- Fix XDMCP - Fix XDMCP
Resolves: #2004170 Resolves: #2005011
- Fix crash at shutdown - Fix crash at shutdown
Related: #2004170 Related: #2005011
* Wed Sep 01 2021 Ray Strode <rstrode@redhat.com> - 40.0-13 * Wed Sep 01 2021 Ray Strode <rstrode@redhat.com> - 40.0-14
- Disable Wayland on HyperV - Disable Wayland on HyperV
- Fix Xorg fallback - Fix Xorg fallback
Related: #1998989 Related: #2000904
* Thu Aug 19 2021 Ray Strode <rstrode@redhat.com> - 40.0-12 * Thu Aug 19 2021 Ray Strode <rstrode@redhat.com> - 40.0-12
- Redisable on server chips since rebase - Redisable on server chips since rebase