Update to 3.31.91
This commit is contained in:
parent
1d70c6871d
commit
2375425525
1
.gitignore
vendored
1
.gitignore
vendored
@ -120,3 +120,4 @@ gdm-2.30.2.tar.bz2
|
|||||||
/gdm-3.30.1.tar.xz
|
/gdm-3.30.1.tar.xz
|
||||||
/gdm-3.30.2.tar.xz
|
/gdm-3.30.2.tar.xz
|
||||||
/gdm-3.30.3.tar.xz
|
/gdm-3.30.3.tar.xz
|
||||||
|
/gdm-3.31.91.tar.xz
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 757e620a8dd26902215a332af71cfcdf08574803 Mon Sep 17 00:00:00 2001
|
From 3c6de5c4673fd678e5aec8c8377c12e563287a84 Mon Sep 17 00:00:00 2001
|
||||||
From: Ray Strode <rstrode@redhat.com>
|
From: Ray Strode <rstrode@redhat.com>
|
||||||
Date: Thu, 4 Oct 2018 10:40:41 -0400
|
Date: Thu, 4 Oct 2018 10:40:41 -0400
|
||||||
Subject: [PATCH] local-display-factory: defer initialization for
|
Subject: [PATCH 1/2] local-display-factory: defer initialization for
|
||||||
CanGraphical=no seats
|
CanGraphical=no seats
|
||||||
|
|
||||||
During startup a seat may not be ready for a display server yet.
|
During startup a seat may not be ready for a display server yet.
|
||||||
@ -11,11 +11,11 @@ CanGraphical capable, before trying to put a login screen on it.
|
|||||||
|
|
||||||
Closes https://gitlab.gnome.org/bugzilla-migration/gdm/issues/103
|
Closes https://gitlab.gnome.org/bugzilla-migration/gdm/issues/103
|
||||||
---
|
---
|
||||||
daemon/gdm-local-display-factory.c | 132 +++++++++++++++++++++++++++--
|
daemon/gdm-local-display-factory.c | 131 +++++++++++++++++++++++++++--
|
||||||
1 file changed, 126 insertions(+), 6 deletions(-)
|
1 file changed, 125 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
||||||
index 891c25375..5430085ea 100644
|
index 98daca484..a6849f995 100644
|
||||||
--- a/daemon/gdm-local-display-factory.c
|
--- a/daemon/gdm-local-display-factory.c
|
||||||
+++ b/daemon/gdm-local-display-factory.c
|
+++ b/daemon/gdm-local-display-factory.c
|
||||||
@@ -29,92 +29,98 @@
|
@@ -29,92 +29,98 @@
|
||||||
@ -35,8 +35,6 @@ index 891c25375..5430085ea 100644
|
|||||||
#include "gdm-local-display.h"
|
#include "gdm-local-display.h"
|
||||||
#include "gdm-legacy-display.h"
|
#include "gdm-legacy-display.h"
|
||||||
|
|
||||||
#define GDM_LOCAL_DISPLAY_FACTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LOCAL_DISPLAY_FACTORY, GdmLocalDisplayFactoryPrivate))
|
|
||||||
|
|
||||||
#define GDM_DBUS_PATH "/org/gnome/DisplayManager"
|
#define GDM_DBUS_PATH "/org/gnome/DisplayManager"
|
||||||
#define GDM_LOCAL_DISPLAY_FACTORY_DBUS_PATH GDM_DBUS_PATH "/LocalDisplayFactory"
|
#define GDM_LOCAL_DISPLAY_FACTORY_DBUS_PATH GDM_DBUS_PATH "/LocalDisplayFactory"
|
||||||
#define GDM_MANAGER_DBUS_NAME "org.gnome.DisplayManager.LocalDisplayFactory"
|
#define GDM_MANAGER_DBUS_NAME "org.gnome.DisplayManager.LocalDisplayFactory"
|
||||||
@ -44,8 +42,10 @@ index 891c25375..5430085ea 100644
|
|||||||
#define MAX_DISPLAY_FAILURES 5
|
#define MAX_DISPLAY_FAILURES 5
|
||||||
#define WAIT_TO_FINISH_TIMEOUT 10 /* seconds */
|
#define WAIT_TO_FINISH_TIMEOUT 10 /* seconds */
|
||||||
|
|
||||||
struct GdmLocalDisplayFactoryPrivate
|
struct _GdmLocalDisplayFactory
|
||||||
{
|
{
|
||||||
|
GdmDisplayFactory parent;
|
||||||
|
|
||||||
GdmDBusLocalDisplayFactory *skeleton;
|
GdmDBusLocalDisplayFactory *skeleton;
|
||||||
GDBusConnection *connection;
|
GDBusConnection *connection;
|
||||||
GHashTable *used_display_numbers;
|
GHashTable *used_display_numbers;
|
||||||
@ -117,7 +117,7 @@ index 891c25375..5430085ea 100644
|
|||||||
sort_nums (gpointer a,
|
sort_nums (gpointer a,
|
||||||
gpointer b)
|
gpointer b)
|
||||||
{
|
{
|
||||||
@@ -409,60 +415,61 @@ lookup_by_seat_id (const char *id,
|
@@ -407,60 +413,61 @@ lookup_by_seat_id (const char *id,
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,11 +175,11 @@ index 891c25375..5430085ea 100644
|
|||||||
g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_MANAGED, NULL);
|
g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_MANAGED, NULL);
|
||||||
g_debug ("GdmLocalDisplayFactory: session %s found, activating.",
|
g_debug ("GdmLocalDisplayFactory: session %s found, activating.",
|
||||||
login_session_id);
|
login_session_id);
|
||||||
gdm_activate_session_by_id (factory->priv->connection, seat_id, login_session_id);
|
gdm_activate_session_by_id (factory->connection, seat_id, login_session_id);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -493,131 +500,236 @@ create_display (GdmLocalDisplayFactory *factory,
|
@@ -491,131 +498,236 @@ create_display (GdmLocalDisplayFactory *factory,
|
||||||
|
|
||||||
/* let store own the ref */
|
/* let store own the ref */
|
||||||
g_object_unref (display);
|
g_object_unref (display);
|
||||||
@ -214,7 +214,7 @@ index 891c25375..5430085ea 100644
|
|||||||
+ const char *seat, *path;
|
+ const char *seat, *path;
|
||||||
|
|
||||||
g_debug ("GdmLocalDisplayFactory: enumerating seats from logind");
|
g_debug ("GdmLocalDisplayFactory: enumerating seats from logind");
|
||||||
result = g_dbus_connection_call_sync (factory->priv->connection,
|
result = g_dbus_connection_call_sync (factory->connection,
|
||||||
"org.freedesktop.login1",
|
"org.freedesktop.login1",
|
||||||
"/org/freedesktop/login1",
|
"/org/freedesktop/login1",
|
||||||
"org.freedesktop.login1.Manager",
|
"org.freedesktop.login1.Manager",
|
||||||
@ -317,7 +317,7 @@ index 891c25375..5430085ea 100644
|
|||||||
+ g_debug ("GdmLocalDisplayFactory: creating seat proxy for seat '%s' with path '%s'",
|
+ g_debug ("GdmLocalDisplayFactory: creating seat proxy for seat '%s' with path '%s'",
|
||||||
+ seat, path);
|
+ seat, path);
|
||||||
+
|
+
|
||||||
+ proxy = g_dbus_proxy_new_sync (self->priv->connection,
|
+ proxy = g_dbus_proxy_new_sync (self->connection,
|
||||||
+ G_DBUS_PROXY_FLAGS_NONE,
|
+ G_DBUS_PROXY_FLAGS_NONE,
|
||||||
+ NULL,
|
+ NULL,
|
||||||
+ "org.freedesktop.login1",
|
+ "org.freedesktop.login1",
|
||||||
@ -332,7 +332,7 @@ index 891c25375..5430085ea 100644
|
|||||||
+ return FALSE;
|
+ return FALSE;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ g_hash_table_insert (self->priv->seat_proxies, g_strdup (seat), g_object_ref (proxy));
|
+ g_hash_table_insert (self->seat_proxies, g_strdup (seat), g_object_ref (proxy));
|
||||||
+ g_object_set_data_full (G_OBJECT (proxy), "seat-id", g_strdup (seat), (GDestroyNotify) g_free);
|
+ g_object_set_data_full (G_OBJECT (proxy), "seat-id", g_strdup (seat), (GDestroyNotify) g_free);
|
||||||
+ g_signal_connect_object (G_OBJECT (proxy),
|
+ g_signal_connect_object (G_OBJECT (proxy),
|
||||||
+ "g-properties-changed",
|
+ "g-properties-changed",
|
||||||
@ -390,7 +390,7 @@ index 891c25375..5430085ea 100644
|
|||||||
+
|
+
|
||||||
+ g_debug ("GdmLocalDisplayFactory: seat '%s' no longer available", seat);
|
+ g_debug ("GdmLocalDisplayFactory: seat '%s' no longer available", seat);
|
||||||
+
|
+
|
||||||
+ g_hash_table_remove (factory->priv->seat_proxies, (gpointer) seat);
|
+ g_hash_table_remove (factory->seat_proxies, (gpointer) seat);
|
||||||
+ delete_display (factory, seat);
|
+ delete_display (factory, seat);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -411,7 +411,7 @@ index 891c25375..5430085ea 100644
|
|||||||
wait_to_finish_timeout (GdmLocalDisplayFactory *factory)
|
wait_to_finish_timeout (GdmLocalDisplayFactory *factory)
|
||||||
{
|
{
|
||||||
finish_waiting_displays_on_seat (factory, "seat0");
|
finish_waiting_displays_on_seat (factory, "seat0");
|
||||||
factory->priv->wait_to_finish_timeout_id = 0;
|
factory->wait_to_finish_timeout_id = 0;
|
||||||
return G_SOURCE_REMOVE;
|
return G_SOURCE_REMOVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -422,7 +422,7 @@ index 891c25375..5430085ea 100644
|
|||||||
g_autofree char *display_session_type = NULL;
|
g_autofree char *display_session_type = NULL;
|
||||||
gboolean doing_initial_setup = FALSE;
|
gboolean doing_initial_setup = FALSE;
|
||||||
|
|
||||||
@@ -737,60 +849,65 @@ on_vt_changed (GIOChannel *source,
|
@@ -735,60 +847,65 @@ on_vt_changed (GIOChannel *source,
|
||||||
|
|
||||||
g_debug ("GdmLocalDisplayFactory: tty of login window is %s", tty_of_login_window_vt);
|
g_debug ("GdmLocalDisplayFactory: tty of login window is %s", tty_of_login_window_vt);
|
||||||
if (g_strcmp0 (tty_of_login_window_vt, tty_of_previous_vt) == 0) {
|
if (g_strcmp0 (tty_of_login_window_vt, tty_of_previous_vt) == 0) {
|
||||||
@ -448,7 +448,7 @@ index 891c25375..5430085ea 100644
|
|||||||
* on it (unless a login screen is already running elsewhere, then
|
* on it (unless a login screen is already running elsewhere, then
|
||||||
* jump to that login screen)
|
* jump to that login screen)
|
||||||
*/
|
*/
|
||||||
if (strcmp (factory->priv->tty_of_active_vt, tty_of_initial_vt) != 0) {
|
if (strcmp (factory->tty_of_active_vt, tty_of_initial_vt) != 0) {
|
||||||
g_debug ("GdmLocalDisplayFactory: active VT is not initial VT, so ignoring");
|
g_debug ("GdmLocalDisplayFactory: active VT is not initial VT, so ignoring");
|
||||||
return G_SOURCE_CONTINUE;
|
return G_SOURCE_CONTINUE;
|
||||||
}
|
}
|
||||||
@ -474,7 +474,7 @@ index 891c25375..5430085ea 100644
|
|||||||
{
|
{
|
||||||
g_autoptr (GIOChannel) io_channel = NULL;
|
g_autoptr (GIOChannel) io_channel = NULL;
|
||||||
|
|
||||||
factory->priv->seat_new_id = g_dbus_connection_signal_subscribe (factory->priv->connection,
|
factory->seat_new_id = g_dbus_connection_signal_subscribe (factory->connection,
|
||||||
"org.freedesktop.login1",
|
"org.freedesktop.login1",
|
||||||
"org.freedesktop.login1.Manager",
|
"org.freedesktop.login1.Manager",
|
||||||
"SeatNew",
|
"SeatNew",
|
||||||
@ -484,11 +484,15 @@ index 891c25375..5430085ea 100644
|
|||||||
on_seat_new,
|
on_seat_new,
|
||||||
g_object_ref (factory),
|
g_object_ref (factory),
|
||||||
g_object_unref);
|
g_object_unref);
|
||||||
factory->priv->seat_removed_id = g_dbus_connection_signal_subscribe (factory->priv->connection,
|
factory->seat_removed_id = g_dbus_connection_signal_subscribe (factory->connection,
|
||||||
"org.freedesktop.login1",
|
"org.freedesktop.login1",
|
||||||
"org.freedesktop.login1.Manager",
|
"org.freedesktop.login1.Manager",
|
||||||
"SeatRemoved",
|
"SeatRemoved",
|
||||||
@@ -1014,69 +1131,72 @@ gdm_local_display_factory_constructor (GType type,
|
@@ -1008,69 +1125,71 @@ gdm_local_display_factory_constructor (GType type,
|
||||||
|
n_construct_properties,
|
||||||
|
construct_properties));
|
||||||
|
|
||||||
|
res = register_factory (factory);
|
||||||
if (! res) {
|
if (! res) {
|
||||||
g_warning ("Unable to register local display factory with system bus");
|
g_warning ("Unable to register local display factory with system bus");
|
||||||
}
|
}
|
||||||
@ -509,17 +513,13 @@ index 891c25375..5430085ea 100644
|
|||||||
|
|
||||||
factory_class->start = gdm_local_display_factory_start;
|
factory_class->start = gdm_local_display_factory_start;
|
||||||
factory_class->stop = gdm_local_display_factory_stop;
|
factory_class->stop = gdm_local_display_factory_stop;
|
||||||
|
|
||||||
g_type_class_add_private (klass, sizeof (GdmLocalDisplayFactoryPrivate));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gdm_local_display_factory_init (GdmLocalDisplayFactory *factory)
|
gdm_local_display_factory_init (GdmLocalDisplayFactory *factory)
|
||||||
{
|
{
|
||||||
factory->priv = GDM_LOCAL_DISPLAY_FACTORY_GET_PRIVATE (factory);
|
factory->used_display_numbers = g_hash_table_new (NULL, NULL);
|
||||||
|
+ factory->seat_proxies = g_hash_table_new_full (NULL, NULL, g_free, g_object_unref);
|
||||||
factory->priv->used_display_numbers = g_hash_table_new (NULL, NULL);
|
|
||||||
+ factory->priv->seat_proxies = g_hash_table_new_full (NULL, NULL, g_free, g_object_unref);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -532,14 +532,13 @@ index 891c25375..5430085ea 100644
|
|||||||
|
|
||||||
factory = GDM_LOCAL_DISPLAY_FACTORY (object);
|
factory = GDM_LOCAL_DISPLAY_FACTORY (object);
|
||||||
|
|
||||||
g_return_if_fail (factory->priv != NULL);
|
g_return_if_fail (factory != NULL);
|
||||||
|
|
||||||
+ g_hash_table_destroy (factory->priv->seat_proxies);
|
+ g_hash_table_destroy (factory->seat_proxies);
|
||||||
+
|
g_clear_object (&factory->connection);
|
||||||
g_clear_object (&factory->priv->connection);
|
g_clear_object (&factory->skeleton);
|
||||||
g_clear_object (&factory->priv->skeleton);
|
|
||||||
|
|
||||||
g_hash_table_destroy (factory->priv->used_display_numbers);
|
g_hash_table_destroy (factory->used_display_numbers);
|
||||||
|
|
||||||
gdm_local_display_factory_stop_monitor (factory);
|
gdm_local_display_factory_stop_monitor (factory);
|
||||||
|
|
||||||
|
5
gdm.spec
5
gdm.spec
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
Name: gdm
|
Name: gdm
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 3.30.3
|
Version: 3.31.91
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The GNOME Display Manager
|
Summary: The GNOME Display Manager
|
||||||
|
|
||||||
@ -313,6 +313,9 @@ fi
|
|||||||
%{_libdir}/pkgconfig/gdm-pam-extensions.pc
|
%{_libdir}/pkgconfig/gdm-pam-extensions.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Feb 27 2019 Ray Strode <rstrode@redhat.com> - 3.31.91-1
|
||||||
|
- Update to 3.31.91
|
||||||
|
|
||||||
* Tue Feb 26 2019 Kalev Lember <klember@redhat.com> - 1:3.30.3-1
|
* Tue Feb 26 2019 Kalev Lember <klember@redhat.com> - 1:3.30.3-1
|
||||||
- Update to 3.30.3
|
- Update to 3.30.3
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (gdm-3.30.3.tar.xz) = 17aed5bf7d27b07553703873cda28a711d6135497d36e4c241bcf1ab3552b31007cc241dab394dccf8a4f1daccf7d55ba39edf91f4b22bdea5c2aa1ea17404b8
|
SHA512 (gdm-3.31.91.tar.xz) = 23cd784c995776be38c10193b7c5c506a29c820313774493c7a480a71b0dff981656ff86d70054de7d156106a73739f62a0bf9b1337d05305bceddb50deb5537
|
||||||
|
Loading…
Reference in New Issue
Block a user