import OL gdm-40.1-30.0.1.el9_6
This commit is contained in:
parent
24b6972d31
commit
425fca4ce4
57
SOURCES/0001-display-Add-new-FAILING-state.patch
Normal file
57
SOURCES/0001-display-Add-new-FAILING-state.patch
Normal file
@ -0,0 +1,57 @@
|
||||
From f7295f73f424e22eacb940c92e43326d75c901e1 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Mon, 22 Jul 2024 14:58:47 -0400
|
||||
Subject: [PATCH 1/3] display: Add new FAILING state
|
||||
|
||||
We need to be able to detect failure and quit plymouth before
|
||||
reacting to the failure (and starting Xorg).
|
||||
|
||||
This commit adds a new FAILING state that gets run before FAILED,
|
||||
so things can be ordered properly
|
||||
d#
|
||||
---
|
||||
daemon/gdm-display.c | 1 +
|
||||
daemon/gdm-display.h | 1 +
|
||||
daemon/gdm-local-display-factory.c | 2 ++
|
||||
3 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
|
||||
index 3446785..b8af350 100644
|
||||
--- a/daemon/gdm-display.c
|
||||
+++ b/daemon/gdm-display.c
|
||||
@@ -694,6 +694,7 @@ gdm_display_unmanage (GdmDisplay *self)
|
||||
|
||||
if (!priv->session_registered) {
|
||||
g_warning ("GdmDisplay: Session never registered, failing");
|
||||
+ _gdm_display_set_status (self, GDM_DISPLAY_FAILING);
|
||||
_gdm_display_set_status (self, GDM_DISPLAY_FAILED);
|
||||
} else {
|
||||
_gdm_display_set_status (self, GDM_DISPLAY_UNMANAGED);
|
||||
diff --git a/daemon/gdm-display.h b/daemon/gdm-display.h
|
||||
index ef3736c..bd048cd 100644
|
||||
--- a/daemon/gdm-display.h
|
||||
+++ b/daemon/gdm-display.h
|
||||
@@ -36,6 +36,7 @@ typedef enum {
|
||||
GDM_DISPLAY_MANAGED,
|
||||
GDM_DISPLAY_WAITING_TO_FINISH,
|
||||
GDM_DISPLAY_FINISHED,
|
||||
+ GDM_DISPLAY_FAILING,
|
||||
GDM_DISPLAY_FAILED,
|
||||
} GdmDisplayStatus;
|
||||
|
||||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
||||
index 61b7b45..6df9e84 100644
|
||||
--- a/daemon/gdm-local-display-factory.c
|
||||
+++ b/daemon/gdm-local-display-factory.c
|
||||
@@ -577,6 +577,8 @@ on_display_status_changed (GdmDisplay *display,
|
||||
gdm_local_display_factory_sync_seats (factory);
|
||||
}
|
||||
break;
|
||||
+ case GDM_DISPLAY_FAILING:
|
||||
+ break;
|
||||
case GDM_DISPLAY_FAILED:
|
||||
/* leave the display number in factory->used_display_numbers
|
||||
so that it doesn't get reused */
|
||||
--
|
||||
2.44.0
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From bcab8852cf7249a2220f6c737f7bb8a17b99249a Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Mon, 27 Nov 2023 15:29:09 -0500
|
||||
Subject: [PATCH] gdm-session: Force reuse vt mode for legacy Xorg mode
|
||||
Subject: [PATCH 1/4] gdm-session: Force reuse vt mode for legacy Xorg mode
|
||||
|
||||
In the legacy Xorg mode, the X session and user session are
|
||||
supposed to use the same VT.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
From e5b3467412874d27c311253e3d5d7e65a61d12a4 Mon Sep 17 00:00:00 2001
|
||||
From e88779b0785fe781608b10478ae092e8fd79ae0b Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Tue, 1 Mar 2022 13:25:02 -0500
|
||||
Subject: [PATCH 1/4] local-display-factory: Stall startup until main graphics
|
||||
@ -27,13 +27,13 @@ up and running before proceeding to start a login screen.
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/gdm/-/issues/763
|
||||
---
|
||||
daemon/gdm-local-display-factory.c | 164 ++++++++++++++++++++++++++---
|
||||
daemon/gdm-local-display-factory.c | 168 ++++++++++++++++++++++++++---
|
||||
daemon/meson.build | 4 +
|
||||
meson.build | 2 +
|
||||
4 files changed, 159 insertions(+), 12 deletions(-)
|
||||
3 files changed, 162 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
||||
index c00e1c47..0b1d3482 100644
|
||||
index ca14c31f5..56be1d9db 100644
|
||||
--- a/daemon/gdm-local-display-factory.c
|
||||
+++ b/daemon/gdm-local-display-factory.c
|
||||
@@ -1,100 +1,112 @@
|
||||
@ -398,7 +398,7 @@ index c00e1c47..0b1d3482 100644
|
||||
}
|
||||
|
||||
g_debug ("GdmLocalDisplayFactory: Assuming we can use seat0 for X11 even though system says it doesn't support graphics!");
|
||||
@@ -1138,113 +1240,151 @@ on_vt_changed (GIOChannel *source,
|
||||
@@ -1138,113 +1244,151 @@ on_vt_changed (GIOChannel *source,
|
||||
if (factory->wait_to_finish_timeout_id != 0) {
|
||||
g_debug ("GdmLocalDisplayFactory: deferring previous login screen clean up operation");
|
||||
g_source_remove (factory->wait_to_finish_timeout_id);
|
||||
@ -551,7 +551,7 @@ index c00e1c47..0b1d3482 100644
|
||||
on_display_added (GdmDisplayStore *display_store,
|
||||
const char *id,
|
||||
diff --git a/daemon/meson.build b/daemon/meson.build
|
||||
index 2e61b644..41f30abe 100644
|
||||
index 2e61b6447..41f30abef 100644
|
||||
--- a/daemon/meson.build
|
||||
+++ b/daemon/meson.build
|
||||
@@ -177,37 +177,41 @@ gdm_daemon_sources = files(
|
||||
@ -597,7 +597,7 @@ index 2e61b644..41f30abe 100644
|
||||
install_dir: get_option('sbindir')
|
||||
)
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 02d609dc..05d8da41 100644
|
||||
index 02d609dc0..05d8da412 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -11,60 +11,61 @@ i18n = import('i18n')
|
||||
@ -725,5 +725,5 @@ index 02d609dc..05d8da41 100644
|
||||
subdir('chooser')
|
||||
endif
|
||||
--
|
||||
2.34.1
|
||||
2.40.0
|
||||
|
||||
|
||||
@ -0,0 +1,96 @@
|
||||
From 3d67dc8e992b69c331b403b5ff7f680700392977 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Joan=20Torres=20L=C3=B3pez?= <joantolo@redhat.com>
|
||||
Date: Wed, 11 Jun 2025 17:54:52 +0200
|
||||
Subject: [PATCH] session: Fix memory leak on new outside connection
|
||||
|
||||
On a new outside connection some new dbus interfaces are created and
|
||||
assigned as properties to session. However the assignation wasn't
|
||||
considering the previous reference of these interfaces, leading to a
|
||||
memory leak.
|
||||
|
||||
Use g_set_object to fix it.
|
||||
---
|
||||
daemon/gdm-session.c | 19 +++++++++----------
|
||||
1 file changed, 9 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
|
||||
index 33dee7606..08ba39cf6 100644
|
||||
--- a/daemon/gdm-session.c
|
||||
+++ b/daemon/gdm-session.c
|
||||
@@ -1840,7 +1840,8 @@ static void
|
||||
export_user_verifier_interface (GdmSession *self,
|
||||
GDBusConnection *connection)
|
||||
{
|
||||
- GdmDBusUserVerifier *user_verifier_interface;
|
||||
+ g_autoptr (GdmDBusUserVerifier) user_verifier_interface = NULL;
|
||||
+
|
||||
user_verifier_interface = GDM_DBUS_USER_VERIFIER (gdm_dbus_user_verifier_skeleton_new ());
|
||||
|
||||
g_object_set_data (G_OBJECT (connection), "gdm-session", self);
|
||||
@@ -1871,14 +1872,14 @@ export_user_verifier_interface (GdmSession *self,
|
||||
GDM_SESSION_DBUS_OBJECT_PATH,
|
||||
NULL);
|
||||
|
||||
- self->user_verifier_interface = user_verifier_interface;
|
||||
+ g_set_object (&self->user_verifier_interface, user_verifier_interface);
|
||||
}
|
||||
|
||||
static void
|
||||
export_greeter_interface (GdmSession *self,
|
||||
GDBusConnection *connection)
|
||||
{
|
||||
- GdmDBusGreeter *greeter_interface;
|
||||
+ g_autoptr (GdmDBusGreeter) greeter_interface = NULL;
|
||||
|
||||
greeter_interface = GDM_DBUS_GREETER (gdm_dbus_greeter_skeleton_new ());
|
||||
|
||||
@@ -1912,8 +1913,7 @@ export_greeter_interface (GdmSession *self,
|
||||
GDM_SESSION_DBUS_OBJECT_PATH,
|
||||
NULL);
|
||||
|
||||
- self->greeter_interface = greeter_interface;
|
||||
-
|
||||
+ g_set_object (&self->greeter_interface, greeter_interface);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -1931,7 +1931,7 @@ static void
|
||||
export_remote_greeter_interface (GdmSession *self,
|
||||
GDBusConnection *connection)
|
||||
{
|
||||
- GdmDBusRemoteGreeter *remote_greeter_interface;
|
||||
+ g_autoptr (GdmDBusRemoteGreeter) remote_greeter_interface = NULL;
|
||||
|
||||
remote_greeter_interface = GDM_DBUS_REMOTE_GREETER (gdm_dbus_remote_greeter_skeleton_new ());
|
||||
|
||||
@@ -1945,8 +1945,7 @@ export_remote_greeter_interface (GdmSession *self,
|
||||
GDM_SESSION_DBUS_OBJECT_PATH,
|
||||
NULL);
|
||||
|
||||
- self->remote_greeter_interface = remote_greeter_interface;
|
||||
-
|
||||
+ g_set_object (&self->remote_greeter_interface, remote_greeter_interface);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -1966,7 +1965,7 @@ static void
|
||||
export_chooser_interface (GdmSession *self,
|
||||
GDBusConnection *connection)
|
||||
{
|
||||
- GdmDBusChooser *chooser_interface;
|
||||
+ g_autoptr (GdmDBusChooser) chooser_interface = NULL;
|
||||
|
||||
chooser_interface = GDM_DBUS_CHOOSER (gdm_dbus_chooser_skeleton_new ());
|
||||
|
||||
@@ -1980,7 +1979,7 @@ export_chooser_interface (GdmSession *self,
|
||||
GDM_SESSION_DBUS_OBJECT_PATH,
|
||||
NULL);
|
||||
|
||||
- self->chooser_interface = chooser_interface;
|
||||
+ g_set_object (&self->chooser_interface, chooser_interface);
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.49.0
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
From cf4664891ede9648d096569900e8b95abd91a633 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Thu, 7 Apr 2022 12:44:10 -0400
|
||||
Subject: [PATCH] session-settings: Explicitly cache remote users
|
||||
|
||||
Right now a user's cache file won't get written out if they are logging
|
||||
in with entirely default settings.
|
||||
|
||||
This means remote users have to type in their usernames manually until
|
||||
they change their session.
|
||||
|
||||
This commit explicitly caches remote users.
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/gdm/-/issues/743
|
||||
---
|
||||
daemon/gdm-session-settings.c | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/daemon/gdm-session-settings.c b/daemon/gdm-session-settings.c
|
||||
index 5b64cb65b..ef5d72e7f 100644
|
||||
--- a/daemon/gdm-session-settings.c
|
||||
+++ b/daemon/gdm-session-settings.c
|
||||
@@ -406,6 +406,19 @@ gdm_session_settings_save (GdmSessionSettings *settings,
|
||||
if (settings->priv->language_name != NULL) {
|
||||
act_user_set_language (user, settings->priv->language_name);
|
||||
}
|
||||
+
|
||||
+ if (!act_user_is_local_account (user)) {
|
||||
+ g_autoptr (GError) error = NULL;
|
||||
+
|
||||
+ act_user_manager_cache_user (settings->priv->user_manager, username, &error);
|
||||
+
|
||||
+ if (error != NULL) {
|
||||
+ g_debug ("GdmSessionSettings: Could not locally cache remote user: %s", error->message);
|
||||
+ g_object_unref (user);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
g_object_unref (user);
|
||||
|
||||
return TRUE;
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -0,0 +1,174 @@
|
||||
From 510566699c480226b189215c6222f7e72979baf8 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Wed, 22 May 2024 14:05:20 -0400
|
||||
Subject: [PATCH 2/4] local-display-factory: Fix user switching with legacy
|
||||
xorg
|
||||
|
||||
legacy-xorg sessions currently fail to completely user switch.
|
||||
|
||||
This is because the wrong session types are attached to the generated
|
||||
login screen display.
|
||||
|
||||
This commit refactors the code so the same session types are used for
|
||||
user switching as are used for the initial login.
|
||||
---
|
||||
daemon/gdm-local-display-factory.c | 103 ++++++++++++++++++++++-------
|
||||
1 file changed, 78 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
||||
index 7447b98..34842a7 100644
|
||||
--- a/daemon/gdm-local-display-factory.c
|
||||
+++ b/daemon/gdm-local-display-factory.c
|
||||
@@ -358,6 +358,26 @@ store_display (GdmLocalDisplayFactory *factory,
|
||||
gdm_display_store_add (store, display);
|
||||
}
|
||||
|
||||
+static GdmDisplay *
|
||||
+create_legacy_xorg_display (GdmLocalDisplayFactory *factory)
|
||||
+{
|
||||
+ guint32 display_number;
|
||||
+ const char *session_types[] = { "x11", NULL };
|
||||
+ GdmDisplay *display;
|
||||
+
|
||||
+ display_number = take_next_display_number (factory);
|
||||
+
|
||||
+ g_debug ("GdmLocalDisplayFactory: Creating legacy Xorg display at :%d", display_number);
|
||||
+
|
||||
+ display = gdm_legacy_display_new (display_number);
|
||||
+ g_object_set (G_OBJECT (display),
|
||||
+ "session-type", session_types[0],
|
||||
+ "supported-session-types", session_types,
|
||||
+ NULL);
|
||||
+
|
||||
+ return display;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
Example:
|
||||
dbus-send --system --dest=org.gnome.DisplayManager \
|
||||
@@ -407,15 +427,8 @@ gdm_local_display_factory_create_transient_display (GdmLocalDisplayFactory *fact
|
||||
is_initial = TRUE;
|
||||
}
|
||||
#endif
|
||||
- if (g_strcmp0 (preferred_display_server, "legacy-xorg") == 0) {
|
||||
- if (display == NULL) {
|
||||
- guint32 num;
|
||||
-
|
||||
- num = take_next_display_number (factory);
|
||||
-
|
||||
- display = gdm_legacy_display_new (num);
|
||||
- }
|
||||
- }
|
||||
+ if (g_strcmp0 (preferred_display_server, "legacy-xorg") == 0)
|
||||
+ display = create_legacy_xorg_display (factory);
|
||||
|
||||
if (display == NULL) {
|
||||
g_set_error_literal (error,
|
||||
@@ -618,6 +631,24 @@ lookup_by_seat_id (const char *id,
|
||||
return res;
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+lookup_initial_display (const char *id,
|
||||
+ GdmDisplay *display,
|
||||
+ gpointer user_data)
|
||||
+{
|
||||
+ gboolean is_initial = FALSE;
|
||||
+ int status;
|
||||
+
|
||||
+ status = gdm_display_get_status (display);
|
||||
+
|
||||
+ if (status != GDM_DISPLAY_PREPARED && status != GDM_DISPLAY_MANAGED)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ g_object_get (G_OBJECT (display), "is-initial", &is_initial, NULL);
|
||||
+
|
||||
+ return is_initial;
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
lookup_prepared_display_by_seat_id (const char *id,
|
||||
GdmDisplay *display,
|
||||
@@ -633,6 +664,21 @@ lookup_prepared_display_by_seat_id (const char *id,
|
||||
return lookup_by_seat_id (id, display, user_data);
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+lookup_managed_display_by_seat_id (const char *id,
|
||||
+ GdmDisplay *display,
|
||||
+ gpointer user_data)
|
||||
+{
|
||||
+ int status;
|
||||
+
|
||||
+ status = gdm_display_get_status (display);
|
||||
+
|
||||
+ if (status != GDM_DISPLAY_MANAGED)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ return lookup_by_seat_id (id, display, user_data);
|
||||
+}
|
||||
+
|
||||
#ifdef HAVE_UDEV
|
||||
static gboolean
|
||||
udev_is_settled (GdmLocalDisplayFactory *factory)
|
||||
@@ -740,6 +786,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *factory,
|
||||
int ret;
|
||||
gboolean seat_supports_graphics;
|
||||
gboolean is_seat0;
|
||||
+ gboolean is_initial;
|
||||
g_auto (GStrv) session_types = NULL;
|
||||
const char *legacy_session_types[] = { "x11", NULL };
|
||||
GdmDisplayStore *store;
|
||||
@@ -861,10 +908,25 @@ ensure_display_for_seat (GdmLocalDisplayFactory *factory,
|
||||
|
||||
store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory));
|
||||
|
||||
- if (is_seat0)
|
||||
- display = gdm_display_store_find (store, lookup_prepared_display_by_seat_id, (gpointer) seat_id);
|
||||
- else
|
||||
+ if (is_seat0) {
|
||||
+ if (g_strcmp0 (preferred_display_server, "legacy-xorg") == 0) {
|
||||
+ GdmDisplay *initial_display = NULL;
|
||||
+
|
||||
+ display = gdm_display_store_find (store, lookup_managed_display_by_seat_id, (gpointer) seat_id);
|
||||
+ initial_display = gdm_display_store_find (store, lookup_initial_display, (gpointer) NULL);
|
||||
+
|
||||
+ if (initial_display == NULL || factory->active_vt != GDM_INITIAL_VT)
|
||||
+ display = NULL;
|
||||
+
|
||||
+ is_initial = initial_display == NULL;
|
||||
+ } else {
|
||||
+ display = gdm_display_store_find (store, lookup_prepared_display_by_seat_id, (gpointer) seat_id);
|
||||
+ is_initial = TRUE;
|
||||
+ }
|
||||
+ } else {
|
||||
display = gdm_display_store_find (store, lookup_by_seat_id, (gpointer) seat_id);
|
||||
+ is_initial = FALSE;
|
||||
+ }
|
||||
|
||||
/* Ensure we don't create the same display more than once */
|
||||
if (display != NULL) {
|
||||
@@ -905,20 +967,11 @@ ensure_display_for_seat (GdmLocalDisplayFactory *factory,
|
||||
}
|
||||
#endif
|
||||
|
||||
- if (display == NULL) {
|
||||
- guint32 num;
|
||||
-
|
||||
- num = take_next_display_number (factory);
|
||||
-
|
||||
- display = gdm_legacy_display_new (num);
|
||||
- g_object_set (G_OBJECT (display),
|
||||
- "session-type", legacy_session_types[0],
|
||||
- "supported-session-types", legacy_session_types,
|
||||
- NULL);
|
||||
- }
|
||||
+ if (display == NULL)
|
||||
+ display = create_legacy_xorg_display (factory);
|
||||
|
||||
g_object_set (display, "seat-id", seat_id, NULL);
|
||||
- g_object_set (display, "is-initial", is_seat0, NULL);
|
||||
+ g_object_set (display, "is-initial", is_initial, NULL);
|
||||
|
||||
store_display (factory, display);
|
||||
|
||||
@ -0,0 +1,102 @@
|
||||
From 27c78eb4efc598281eed9cd521ba1b05ee08e3d2 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Mon, 22 Jul 2024 14:59:43 -0400
|
||||
Subject: [PATCH 2/3] manager: Quit plymouth at first sign of failure
|
||||
|
||||
Rather than quit plymouth after a replacement X server is already
|
||||
started, this commit does it a bit earlier, so there is a battle
|
||||
of display servers.
|
||||
---
|
||||
common/gdm-address.c | 4 ++--
|
||||
daemon/gdm-manager.c | 5 +++++
|
||||
daemon/gdm-xdmcp-display-factory.c | 10 ++++++----
|
||||
3 files changed, 13 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/common/gdm-address.c b/common/gdm-address.c
|
||||
index a8b73e2..3a507d0 100644
|
||||
--- a/common/gdm-address.c
|
||||
+++ b/common/gdm-address.c
|
||||
@@ -134,7 +134,7 @@ gdm_address_get_sockaddr_storage (GdmAddress *address)
|
||||
g_return_val_if_fail (address != NULL, NULL);
|
||||
g_return_val_if_fail (address->ss != NULL, NULL);
|
||||
|
||||
- ss = g_memdup (address->ss, sizeof (struct sockaddr_storage));
|
||||
+ ss = g_memdup2 (address->ss, sizeof (struct sockaddr_storage));
|
||||
|
||||
return ss;
|
||||
}
|
||||
@@ -529,7 +529,7 @@ gdm_address_copy (GdmAddress *address)
|
||||
g_return_val_if_fail (address != NULL, NULL);
|
||||
|
||||
addr = g_new0 (GdmAddress, 1);
|
||||
- addr->ss = g_memdup (address->ss, sizeof (struct sockaddr_storage));
|
||||
+ addr->ss = g_memdup2 (address->ss, sizeof (struct sockaddr_storage));
|
||||
|
||||
return addr;
|
||||
}
|
||||
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
||||
index 7a68d52..23734e8 100644
|
||||
--- a/daemon/gdm-manager.c
|
||||
+++ b/daemon/gdm-manager.c
|
||||
@@ -1545,6 +1545,8 @@ on_display_status_changed (GdmDisplay *display,
|
||||
g_free (session_class);
|
||||
}
|
||||
break;
|
||||
+
|
||||
+ case GDM_DISPLAY_FAILING:
|
||||
case GDM_DISPLAY_FAILED:
|
||||
case GDM_DISPLAY_UNMANAGED:
|
||||
case GDM_DISPLAY_FINISHED:
|
||||
@@ -1555,6 +1557,9 @@ on_display_status_changed (GdmDisplay *display,
|
||||
}
|
||||
#endif
|
||||
|
||||
+ if (status == GDM_DISPLAY_FAILING)
|
||||
+ break;
|
||||
+
|
||||
g_object_set_data (G_OBJECT (display), "gdm-user-session", NULL);
|
||||
|
||||
if (display == manager->priv->automatic_login_display) {
|
||||
diff --git a/daemon/gdm-xdmcp-display-factory.c b/daemon/gdm-xdmcp-display-factory.c
|
||||
index abb58fa..e82cfe1 100644
|
||||
--- a/daemon/gdm-xdmcp-display-factory.c
|
||||
+++ b/daemon/gdm-xdmcp-display-factory.c
|
||||
@@ -918,10 +918,10 @@ set_port_for_request (GdmAddress *address,
|
||||
|
||||
switch (ss->ss_family) {
|
||||
case AF_INET:
|
||||
- port->data = (CARD8 *)g_memdup (&(SIN (ss)->sin_port), port->length);
|
||||
+ port->data = (CARD8 *)g_memdup2 (&(SIN (ss)->sin_port), port->length);
|
||||
break;
|
||||
case AF_INET6:
|
||||
- port->data = (CARD8 *)g_memdup (&(SIN6 (ss)->sin6_port), port->length);
|
||||
+ port->data = (CARD8 *)g_memdup2 (&(SIN6 (ss)->sin6_port), port->length);
|
||||
break;
|
||||
default:
|
||||
port->data = NULL;
|
||||
@@ -940,11 +940,11 @@ set_address_for_request (GdmAddress *address,
|
||||
switch (ss->ss_family) {
|
||||
case AF_INET:
|
||||
addr->length = sizeof (struct in_addr);
|
||||
- addr->data = g_memdup (&SIN (ss)->sin_addr, addr->length);
|
||||
+ addr->data = g_memdup2 (&SIN (ss)->sin_addr, addr->length);
|
||||
break;
|
||||
case AF_INET6:
|
||||
addr->length = sizeof (struct in6_addr);
|
||||
- addr->data = g_memdup (&SIN6 (ss)->sin6_addr, addr->length);
|
||||
+ addr->data = g_memdup2 (&SIN6 (ss)->sin6_addr, addr->length);
|
||||
break;
|
||||
default:
|
||||
addr->length = 0;
|
||||
@@ -2090,6 +2090,8 @@ on_display_status_changed (GdmDisplay *display,
|
||||
|
||||
gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory));
|
||||
break;
|
||||
+ case GDM_DISPLAY_FAILING:
|
||||
+ break;
|
||||
case GDM_DISPLAY_FAILED:
|
||||
gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory));
|
||||
break;
|
||||
--
|
||||
2.44.0
|
||||
|
||||
@ -0,0 +1,105 @@
|
||||
From de73b654cd1b726b905a9bf3238c7eaabfe465d5 Mon Sep 17 00:00:00 2001
|
||||
From: Joan Torres <joantolo@redhat.com>
|
||||
Date: Fri, 13 Jun 2025 13:05:07 +0200
|
||||
Subject: [PATCH 3/4] local-display-factory: Ensure displays are properly
|
||||
handled on status change
|
||||
|
||||
1. There are some cases where a display will change its status from any
|
||||
status to MANAGED and vice versa. Ensure that the display status handlers
|
||||
dont' re do work that has already been done.
|
||||
2. For legacy-xorg displays that reuse the display from login manager,
|
||||
avoid those displays to be killed on successfull authentication.
|
||||
---
|
||||
daemon/gdm-local-display-factory.c | 35 +++++++++++++++++++++---------
|
||||
daemon/gdm-manager.c | 4 +++-
|
||||
2 files changed, 28 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
||||
index f28fe1e..61b7b45 100644
|
||||
--- a/daemon/gdm-local-display-factory.c
|
||||
+++ b/daemon/gdm-local-display-factory.c
|
||||
@@ -600,6 +600,9 @@ on_display_status_changed (GdmDisplay *display,
|
||||
break;
|
||||
case GDM_DISPLAY_MANAGED:
|
||||
#if defined(ENABLE_USER_DISPLAY_SERVER)
|
||||
+ g_signal_handlers_disconnect_by_func (display,
|
||||
+ G_CALLBACK (on_session_registered_cb),
|
||||
+ factory);
|
||||
g_signal_connect_object (display,
|
||||
"notify::session-registered",
|
||||
G_CALLBACK (on_session_registered_cb),
|
||||
@@ -1183,6 +1186,18 @@ maybe_stop_greeter_in_background (GdmLocalDisplayFactory *factory,
|
||||
g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_WAITING_TO_FINISH, NULL);
|
||||
}
|
||||
|
||||
+static void
|
||||
+cancel_stop_greeter_in_background (GdmLocalDisplayFactory *factory,
|
||||
+ GdmDisplay *display)
|
||||
+{
|
||||
+ if (gdm_display_get_status (display) != GDM_DISPLAY_WAITING_TO_FINISH)
|
||||
+ return;
|
||||
+
|
||||
+ g_debug ("GdmLocalDisplayFactory: cancelling killing login window");
|
||||
+
|
||||
+ g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_MANAGED, NULL);
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
on_vt_changed (GIOChannel *source,
|
||||
GIOCondition condition,
|
||||
@@ -1261,23 +1276,23 @@ on_vt_changed (GIOChannel *source,
|
||||
store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory));
|
||||
|
||||
/* if the old VT was running a wayland login screen kill it
|
||||
+ * but cancel the killing if the user switched back to it
|
||||
*/
|
||||
if (gdm_get_login_window_session_id ("seat0", &login_session_id)) {
|
||||
ret = sd_session_get_vt (login_session_id, &login_window_vt);
|
||||
if (ret == 0 && login_window_vt != 0) {
|
||||
- g_debug ("GdmLocalDisplayFactory: VT of login window is %u", login_window_vt);
|
||||
- if (login_window_vt == previous_vt) {
|
||||
- GdmDisplay *display;
|
||||
+ GdmDisplay *display;
|
||||
|
||||
- g_debug ("GdmLocalDisplayFactory: VT switched from login window");
|
||||
+ g_debug ("GdmLocalDisplayFactory: VT of login window is %u", login_window_vt);
|
||||
|
||||
- display = gdm_display_store_find (store,
|
||||
- lookup_by_session_id,
|
||||
- (gpointer) login_session_id);
|
||||
- if (display != NULL)
|
||||
+ display = gdm_display_store_find (store,
|
||||
+ lookup_by_session_id,
|
||||
+ (gpointer) login_session_id);
|
||||
+ if (display != NULL) {
|
||||
+ if (login_window_vt == previous_vt)
|
||||
maybe_stop_greeter_in_background (factory, display);
|
||||
- } else {
|
||||
- g_debug ("GdmLocalDisplayFactory: VT not switched from login window");
|
||||
+ else if (login_window_vt == factory->active_vt)
|
||||
+ cancel_stop_greeter_in_background (factory, display);
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
||||
index e1bc62d..7a68d52 100644
|
||||
--- a/daemon/gdm-manager.c
|
||||
+++ b/daemon/gdm-manager.c
|
||||
@@ -1534,11 +1534,13 @@ on_display_status_changed (GdmDisplay *display,
|
||||
if ((display_number == -1 && status == GDM_DISPLAY_PREPARED) ||
|
||||
(display_number != -1 && status == GDM_DISPLAY_MANAGED)) {
|
||||
char *session_class;
|
||||
+ gboolean session_registered = FALSE;
|
||||
|
||||
g_object_get (display,
|
||||
"session-class", &session_class,
|
||||
+ "session-registered", &session_registered,
|
||||
NULL);
|
||||
- if (g_strcmp0 (session_class, "greeter") == 0)
|
||||
+ if (g_strcmp0 (session_class, "greeter") == 0 && !session_registered)
|
||||
set_up_session (manager, display);
|
||||
g_free (session_class);
|
||||
}
|
||||
--
|
||||
2.49.0
|
||||
|
||||
94
SOURCES/0003-manager-Quit-plymouth-synchronously.patch
Normal file
94
SOURCES/0003-manager-Quit-plymouth-synchronously.patch
Normal file
@ -0,0 +1,94 @@
|
||||
From 190a9f31446ddab66c8b5c2e246a6253f85bde76 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Wed, 24 Jul 2024 08:40:08 -0400
|
||||
Subject: [PATCH 3/3] manager: Quit plymouth synchronously
|
||||
|
||||
Plymouth needs to finish quitting before we start Xorg, so we can't
|
||||
run it async. This command makes sure it gets run synchronously.
|
||||
---
|
||||
daemon/gdm-manager.c | 11 ++++++++---
|
||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
||||
index 100b967fb..d4ad949fe 100644
|
||||
--- a/daemon/gdm-manager.c
|
||||
+++ b/daemon/gdm-manager.c
|
||||
@@ -167,67 +167,72 @@ plymouth_prepare_for_transition (void)
|
||||
|
||||
error = NULL;
|
||||
res = g_spawn_command_line_sync ("plymouth deactivate",
|
||||
NULL, NULL, NULL, &error);
|
||||
if (! res) {
|
||||
g_warning ("Could not deactivate plymouth: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
plymouth_quit_with_transition (void)
|
||||
{
|
||||
gboolean res;
|
||||
GError *error;
|
||||
|
||||
error = NULL;
|
||||
res = g_spawn_command_line_async ("plymouth quit --retain-splash", &error);
|
||||
if (! res) {
|
||||
g_warning ("Could not quit plymouth: %s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
plymouth_quit_without_transition (void)
|
||||
{
|
||||
gboolean res;
|
||||
- GError *error;
|
||||
+ g_autoptr (GError) error = NULL;
|
||||
+ g_autofree char *standard_error = NULL;
|
||||
+ int wait_status = 0;
|
||||
|
||||
error = NULL;
|
||||
- res = g_spawn_command_line_async ("plymouth quit", &error);
|
||||
+ res = g_spawn_command_line_sync ("plymouth quit", NULL, &standard_error, &wait_status, &error);
|
||||
if (! res) {
|
||||
g_warning ("Could not quit plymouth: %s", error->message);
|
||||
- g_error_free (error);
|
||||
+ } else if (!WIFEXITED (wait_status) || WEXITSTATUS (wait_status) != 0) {
|
||||
+ g_warning ("plymouth errored on quit command%s%s",
|
||||
+ standard_error? ":" : "",
|
||||
+ standard_error?: "");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static char *
|
||||
get_session_id_for_pid (pid_t pid,
|
||||
GError **error)
|
||||
{
|
||||
char *session, *gsession;
|
||||
int ret;
|
||||
|
||||
session = NULL;
|
||||
ret = sd_pid_get_session (pid, &session);
|
||||
if (ret < 0) {
|
||||
g_set_error (error,
|
||||
GDM_DISPLAY_ERROR,
|
||||
GDM_DISPLAY_ERROR_GETTING_SESSION_INFO,
|
||||
"Error getting session id from systemd: %s",
|
||||
g_strerror (-ret));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (session != NULL) {
|
||||
gsession = g_strdup (session);
|
||||
free (session);
|
||||
|
||||
return gsession;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
--
|
||||
2.44.0
|
||||
|
||||
@ -0,0 +1,54 @@
|
||||
From 8bcb9f43c203ab4818381cd707128eac74ab958d Mon Sep 17 00:00:00 2001
|
||||
From: Joan Torres <joantolo@redhat.com>
|
||||
Date: Fri, 13 Jun 2025 12:56:41 +0200
|
||||
Subject: [PATCH 4/4] local-display-factory: Return a session type on
|
||||
legacy-xorg
|
||||
|
||||
On legacy-xorg, there's graphic support through Xorg.
|
||||
|
||||
When returning none, it's considered that seat doesn't support graphics
|
||||
and has to wait a 10s timeout, then forces using Xorg.
|
||||
|
||||
Avoid that timeout directly returning x11 as session type for
|
||||
legacy-xorg.
|
||||
---
|
||||
daemon/gdm-local-display-factory.c | 12 +++++++++---
|
||||
1 file changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
||||
index 34842a7..f28fe1e 100644
|
||||
--- a/daemon/gdm-local-display-factory.c
|
||||
+++ b/daemon/gdm-local-display-factory.c
|
||||
@@ -303,6 +303,7 @@ gdm_local_display_factory_get_session_types (GdmLocalDisplayFactory *factory,
|
||||
const char *fallback_display_server = NULL;
|
||||
gboolean wayland_preferred = FALSE;
|
||||
gboolean xorg_preferred = FALSE;
|
||||
+ gboolean legacy_xorg_preferred = FALSE;
|
||||
g_autoptr (GPtrArray) session_types_array = NULL;
|
||||
char **session_types;
|
||||
|
||||
@@ -315,13 +316,18 @@ gdm_local_display_factory_get_session_types (GdmLocalDisplayFactory *factory,
|
||||
|
||||
wayland_preferred = g_str_equal (preferred_display_server, "wayland");
|
||||
xorg_preferred = g_str_equal (preferred_display_server, "xorg");
|
||||
+ legacy_xorg_preferred = g_str_equal (preferred_display_server, "legacy-xorg");
|
||||
|
||||
- if (wayland_preferred)
|
||||
+ if (wayland_preferred) {
|
||||
fallback_display_server = "xorg";
|
||||
- else if (xorg_preferred)
|
||||
+ } else if (xorg_preferred) {
|
||||
fallback_display_server = "wayland";
|
||||
- else
|
||||
+ } else if (legacy_xorg_preferred) {
|
||||
+ g_ptr_array_add (session_types_array, (gpointer) "x11");
|
||||
+ return g_strdupv ((char **) session_types_array->pdata);
|
||||
+ } else {
|
||||
return NULL;
|
||||
+ }
|
||||
|
||||
if (!should_fall_back) {
|
||||
if (display_server_enabled (factory, preferred_display_server))
|
||||
--
|
||||
2.49.0
|
||||
|
||||
1
SOURCES/gdm.sysusers
Normal file
1
SOURCES/gdm.sysusers
Normal file
@ -0,0 +1 @@
|
||||
u gdm 42 "GNOME Display Manager" /var/lib/gdm
|
||||
@ -0,0 +1,37 @@
|
||||
From 37c6a13fd6b605206120f99bc145d1a65a1404d1 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Tue, 4 Apr 2023 07:40:14 -0700
|
||||
Subject: [PATCH] Disable Wayland on Matrox chipsets
|
||||
|
||||
|
||||
Orabug: 34816116
|
||||
Signed-off-by: Alex Burmashev <alexander.burmashev@oracle.com>
|
||||
Signed-off-by: Darren Archibald <darren.archibald@oracle.com>
|
||||
---
|
||||
data/61-gdm.rules.in | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in
|
||||
index 7fb3d61..81a9269 100644
|
||||
--- a/data/61-gdm.rules.in
|
||||
+++ b/data/61-gdm.rules.in
|
||||
@@ -18,6 +18,16 @@ ATTR{vendor}=="0x1234", ATTR{device}=="0x1111", RUN+="/usr/bin/touch /run/udev/g
|
||||
# disable Wayland on Hi1710 chipsets
|
||||
ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", GOTO="gdm_disable_wayland"
|
||||
|
||||
+# disable Wayland on Matrox chipsets
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0522", GOTO="gdm_disable_wayland"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0524", GOTO="gdm_disable_wayland"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0530", GOTO="gdm_disable_wayland"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0532", GOTO="gdm_disable_wayland"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0533", GOTO="gdm_disable_wayland"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0534", GOTO="gdm_disable_wayland"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0536", GOTO="gdm_disable_wayland"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0538", GOTO="gdm_disable_wayland"
|
||||
+
|
||||
LABEL="gdm_pci_device_end"
|
||||
|
||||
# disable Wayland if modesetting is disabled
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
Name: gdm
|
||||
Epoch: 1
|
||||
Version: 40.1
|
||||
Release: 23%{?dist}
|
||||
Release: 30.0.1%{?dist}
|
||||
Summary: The GNOME Display Manager
|
||||
|
||||
License: GPLv2+
|
||||
@ -23,6 +23,8 @@ Source2: gdm-tmpfiles.conf
|
||||
# moved here from pulseaudio-gdm-hooks-11.1-16
|
||||
Source5: default.pa-for-gdm
|
||||
|
||||
Source6: gdm.sysusers
|
||||
|
||||
# Upstream backports
|
||||
Patch10001: 0001-local-display-factory-Provide-more-flexibility-for-c.patch
|
||||
|
||||
@ -43,7 +45,7 @@ Patch60001: 0001-session-settings-Fetch-session-from-user-even-if-use.patch
|
||||
|
||||
Patch70001: 0001-manager-Fix-btmp-record-accounting.patch
|
||||
|
||||
Patch80001: 0001-gdm-session-Force-reuse-vt-mode-for-legacy-Xorg-mode.patch
|
||||
Patch80002: 0001-session-settings-Explicitly-cache-remote-users.patch
|
||||
|
||||
# Latest udev rules and support code
|
||||
Patch90001: 0001-local-display-factory-Stall-startup-until-main-graph.patch
|
||||
@ -51,6 +53,17 @@ Patch90002: 0002-common-Add-API-to-reload-settings-from-disk.patch
|
||||
Patch90003: 0003-common-Reload-settings-when-graphics-initialize.patch
|
||||
Patch90004: 0004-data-Use-latest-upstream-udev-rules.patch
|
||||
|
||||
Patch100001: 0001-gdm-session-Force-reuse-vt-mode-for-legacy-Xorg-mode.patch
|
||||
Patch100002: 0002-local-display-factory-Fix-user-switching-with-legacy.patch
|
||||
Patch100003: 0003-local-display-factory-Ensure-displays-are-properly-h.patch
|
||||
Patch100004: 0004-local-display-factory-Return-a-session-type-on-legac.patch
|
||||
|
||||
Patch110001: 0001-display-Add-new-FAILING-state.patch
|
||||
Patch110002: 0002-manager-Quit-plymouth-at-first-sign-of-failure.patch
|
||||
Patch110003: 0003-manager-Quit-plymouth-synchronously.patch
|
||||
|
||||
Patch120001: 0001-session-Fix-memory-leak-on-new-outside-connection.patch
|
||||
|
||||
# Non-upstreamable workarounds
|
||||
Patch66610001: 0001-data-reap-gdm-sessions-on-shutdown.patch
|
||||
|
||||
@ -66,6 +79,8 @@ Patch99930001: 0001-data-add-system-dconf-databases-to-gdm-profile.patch
|
||||
|
||||
Patch99950001: 0001-data-Disable-network-configuration-on-login-screen.patch
|
||||
|
||||
#Oracle patches
|
||||
Patch1000000: orabug34816116-Disable-Wayland-on-Matrox-chipsets.patch
|
||||
|
||||
BuildRequires: accountsservice-devel
|
||||
BuildRequires: audit-libs-devel >= %{libauditver}
|
||||
@ -97,13 +112,13 @@ BuildRequires: pkgconfig(xorg-server)
|
||||
BuildRequires: plymouth-devel
|
||||
BuildRequires: systemd
|
||||
BuildRequires: systemd-devel
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: which
|
||||
BuildRequires: xorg-x11-server-Xorg
|
||||
BuildRequires: xorg-x11-server-devel
|
||||
BuildRequires: yelp-devel
|
||||
BuildRequires: yelp-tools
|
||||
|
||||
Requires(pre): /usr/sbin/useradd
|
||||
%{?systemd_requires}
|
||||
|
||||
Provides: service(graphical-login) = %{name}
|
||||
@ -132,6 +147,8 @@ Requires: xorg-x11-xinit
|
||||
# use a user bus
|
||||
Requires: /usr/bin/dbus-run-session
|
||||
|
||||
%{?sysusers_requires_compat}
|
||||
|
||||
Requires(posttrans): dconf
|
||||
|
||||
Provides: gdm-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||
@ -188,6 +205,8 @@ mkdir -p %{buildroot}%{_sysconfdir}/gdm/PostSession
|
||||
|
||||
install -p -m644 -D %{SOURCE2} %{buildroot}%{_tmpfilesdir}/%{name}.conf
|
||||
install -p -m644 -D %{SOURCE5} %{buildroot}%{_localstatedir}/lib/gdm/.config/pulse/default.pa
|
||||
install -p -m644 -D %{SOURCE6} %{buildroot}%{_sysusersdir}/%{name}.conf
|
||||
|
||||
|
||||
rm -f %{buildroot}%{_sysconfdir}/pam.d/gdm
|
||||
|
||||
@ -211,11 +230,8 @@ mkdir -p %{buildroot}%{_sysconfdir}/dconf/db/gdm.d/locks
|
||||
%find_lang gdm --with-gnome
|
||||
|
||||
%pre
|
||||
/usr/sbin/useradd -M -u 42 -d /var/lib/gdm -s /sbin/nologin -r gdm > /dev/null 2>&1
|
||||
/usr/sbin/usermod -d /var/lib/gdm -s /sbin/nologin gdm >/dev/null 2>&1
|
||||
# ignore errors, as we can't disambiguate between gdm already existed
|
||||
# and couldn't create account with the current adduser.
|
||||
exit 0
|
||||
%sysusers_create_compat %{SOURCE6}
|
||||
|
||||
|
||||
%post
|
||||
# if the user already has a config file, then migrate it to the new
|
||||
@ -339,6 +355,7 @@ dconf update || :
|
||||
%dir %{_userunitdir}/gnome-session@gnome-login.target.d/
|
||||
%{_userunitdir}/gnome-session@gnome-login.target.d/session.conf
|
||||
%{_tmpfilesdir}/%{name}.conf
|
||||
%{_sysusersdir}/%{name}.conf
|
||||
|
||||
%files devel
|
||||
%dir %{_includedir}/gdm
|
||||
@ -353,6 +370,42 @@ dconf update || :
|
||||
%{_libdir}/pkgconfig/gdm-pam-extensions.pc
|
||||
|
||||
%changelog
|
||||
* Tue Aug 05 2025 EL Errata <el-errata_ww@oracle.com> - 40.1-30.0.1
|
||||
- Disable Wayland on Matrox [Orabug: 34816116]
|
||||
|
||||
* Fri Jun 20 2025 Joan Torres <joantolo@redhat.com> - 40.1-30
|
||||
- Fix leak on new connections
|
||||
Resolves: RHEL-98725
|
||||
|
||||
* Thu Jun 12 2025 Joan Torres <joantolo@redhat.com> - 40.1-29
|
||||
- Fix legacy-xorg session switching
|
||||
The fix that intended to fix the issue wasn't complete and also,
|
||||
introduced a bug on user switching for non legacy-xorg servers.
|
||||
This fix addresses both issues.
|
||||
- Avoid waiting 10s when starting GDM in legacy-xorg mode
|
||||
Resolves: RHEL-97492
|
||||
|
||||
* Fri Mar 07 2025 Tomas Pelka - 40.1-28
|
||||
- Use systemd sysusers config to create user and group
|
||||
Resolves: RHEL-78738
|
||||
|
||||
* Wed Jul 24 2024 Ray Strode <rstrode@redhat.com> - 40.1-27
|
||||
- More fixes with wayland->xorg fallback
|
||||
Related: RHEL-35045
|
||||
Resolves: RHEL-50393
|
||||
|
||||
* Tue Jul 23 2024 Ray Strode <rstrode@redhat.com> - 40.1-26
|
||||
- Fix failure doing wayland->xorg fallback
|
||||
Related: RHEL-35045
|
||||
|
||||
* Wed May 01 2024 Ray Strode <rstrode@redhat.com> - 40.1-25
|
||||
- Fix user switching with PreferredDisplayServer=legacy-xorg
|
||||
Related: RHEL-29845
|
||||
|
||||
* Tue Jan 16 2024 Andrew Lukoshko <alukoshko@almalinux.org> - 40.1-24
|
||||
- Explicitly cache remote users
|
||||
Resolves: RHEL-21791
|
||||
|
||||
* Fri Dec 15 2023 Ray Strode <rstrode@redhat.com> - 40.1-23
|
||||
- Make /var/log/gdm tmpfiles.d snippet match files manifest
|
||||
to fix installability test
|
||||
|
||||
Loading…
Reference in New Issue
Block a user