Update to 3.30.1
Rebase patches and remove no longer needed udev directory workarounds.
This commit is contained in:
parent
a0ac06f0b3
commit
c1551d6f67
1
.gitignore
vendored
1
.gitignore
vendored
@ -117,3 +117,4 @@ gdm-2.30.2.tar.bz2
|
|||||||
/gdm-3.29.90.tar.xz
|
/gdm-3.29.90.tar.xz
|
||||||
/gdm-3.29.91.tar.xz
|
/gdm-3.29.91.tar.xz
|
||||||
/gdm-3.30.0.tar.xz
|
/gdm-3.30.0.tar.xz
|
||||||
|
/gdm-3.30.1.tar.xz
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
From fa5733788ae5f8e8caeb07e956be370e96f9b6b1 Mon Sep 17 00:00:00 2001
|
From 42b18e4c84d470f33cdec5fc1f481cb25c25cf0d Mon Sep 17 00:00:00 2001
|
||||||
From: Rui Matos <tiagomatos@gmail.com>
|
From: Rui Matos <tiagomatos@gmail.com>
|
||||||
Date: Mon, 23 Jan 2017 20:19:51 +0100
|
Date: Mon, 23 Jan 2017 20:19:51 +0100
|
||||||
Subject: [PATCH] Honor initial setup being disabled by distro installer
|
Subject: [PATCH] Honor initial setup being disabled by distro installer
|
||||||
@ -19,10 +19,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=777708
|
|||||||
2 files changed, 30 insertions(+)
|
2 files changed, 30 insertions(+)
|
||||||
|
|
||||||
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
|
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
|
||||||
index ab5dda0..786e0c5 100644
|
index 5e9eb5e..3b1b151 100644
|
||||||
--- a/daemon/Makefile.am
|
--- a/daemon/Makefile.am
|
||||||
+++ b/daemon/Makefile.am
|
+++ b/daemon/Makefile.am
|
||||||
@@ -14,6 +14,7 @@ AM_CPPFLAGS = \
|
@@ -15,6 +15,7 @@ AM_CPPFLAGS = \
|
||||||
-DLOCALSTATEDIR=\"$(localstatedir)\" \
|
-DLOCALSTATEDIR=\"$(localstatedir)\" \
|
||||||
-DLOGDIR=\"$(logdir)\" \
|
-DLOGDIR=\"$(logdir)\" \
|
||||||
-DSBINDIR=\"$(sbindir)\" \
|
-DSBINDIR=\"$(sbindir)\" \
|
||||||
@ -31,13 +31,14 @@ index ab5dda0..786e0c5 100644
|
|||||||
-DGDM_RUN_DIR=\"$(GDM_RUN_DIR)\" \
|
-DGDM_RUN_DIR=\"$(GDM_RUN_DIR)\" \
|
||||||
-DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
|
-DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
|
||||||
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
|
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
|
||||||
index 0057e2c..2af8e13 100644
|
index 5e193f2..878be88 100644
|
||||||
--- a/daemon/gdm-display.c
|
--- a/daemon/gdm-display.c
|
||||||
+++ b/daemon/gdm-display.c
|
+++ b/daemon/gdm-display.c
|
||||||
@@ -1456,6 +1456,31 @@ can_create_environment (const char *session_id)
|
@@ -1547,6 +1547,31 @@ kernel_cmdline_initial_setup_force_state (gboolean *force_state)
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
+static gboolean
|
||||||
+initial_setup_disabled_by_anaconda (void)
|
+initial_setup_disabled_by_anaconda (void)
|
||||||
+{
|
+{
|
||||||
+ GKeyFile *key_file;
|
+ GKeyFile *key_file;
|
||||||
@ -62,11 +63,10 @@ index 0057e2c..2af8e13 100644
|
|||||||
+ return disabled;
|
+ return disabled;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static gboolean
|
static gboolean
|
||||||
wants_initial_setup (GdmDisplay *self)
|
wants_initial_setup (GdmDisplay *self)
|
||||||
{
|
{
|
||||||
gboolean enabled = FALSE;
|
@@ -1587,6 +1612,10 @@ wants_initial_setup (GdmDisplay *self)
|
||||||
@@ -1480,6 +1505,10 @@ wants_initial_setup (GdmDisplay *self)
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,5 +78,5 @@ index 0057e2c..2af8e13 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.9.3
|
2.19.0
|
||||||
|
|
||||||
|
@ -1,162 +0,0 @@
|
|||||||
From d868eb3ced19d0624aa8ce948ccc8d8523551e78 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ray Strode <rstrode@redhat.com>
|
|
||||||
Date: Tue, 14 Aug 2018 10:21:17 -0400
|
|
||||||
Subject: [PATCH] local-display-factory: ignore spurios SeatNew signal at start
|
|
||||||
up
|
|
||||||
|
|
||||||
Sometimes during startup, logind will send a `SeatNew` signal for
|
|
||||||
seat0 after GDM has already called `ListSeats` and processed `seat0`.
|
|
||||||
|
|
||||||
That `SeatNew` signal leads to GDM calling `create_display` twice in
|
|
||||||
quick succession.
|
|
||||||
|
|
||||||
This commit changes GDM to avoid such double processing, by ignoring
|
|
||||||
the `create_display` requests for seats that already have a prepared
|
|
||||||
display ("prepared" means "starting up").
|
|
||||||
|
|
||||||
Closes: https://gitlab.gnome.org/GNOME/gdm/issues/410
|
|
||||||
---
|
|
||||||
daemon/gdm-local-display-factory.c | 33 +++++++++++++++++++++++-------
|
|
||||||
1 file changed, 26 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
|
||||||
index 39f3e30a3..7ec998efa 100644
|
|
||||||
--- a/daemon/gdm-local-display-factory.c
|
|
||||||
+++ b/daemon/gdm-local-display-factory.c
|
|
||||||
@@ -348,107 +348,126 @@ on_display_status_changed (GdmDisplay *display,
|
|
||||||
case GDM_DISPLAY_MANAGED:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
g_assert_not_reached ();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_free (seat_id);
|
|
||||||
g_free (session_type);
|
|
||||||
g_free (session_class);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
lookup_by_seat_id (const char *id,
|
|
||||||
GdmDisplay *display,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
const char *looking_for = user_data;
|
|
||||||
char *current;
|
|
||||||
gboolean res;
|
|
||||||
|
|
||||||
g_object_get (G_OBJECT (display), "seat-id", ¤t, NULL);
|
|
||||||
|
|
||||||
res = g_strcmp0 (current, looking_for) == 0;
|
|
||||||
|
|
||||||
g_free(current);
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static gboolean
|
|
||||||
+lookup_prepared_display_by_seat_id (const char *id,
|
|
||||||
+ GdmDisplay *display,
|
|
||||||
+ gpointer user_data)
|
|
||||||
+{
|
|
||||||
+ int status;
|
|
||||||
+
|
|
||||||
+ status = gdm_display_get_status (display);
|
|
||||||
+
|
|
||||||
+ if (status != GDM_DISPLAY_PREPARED)
|
|
||||||
+ return FALSE;
|
|
||||||
+
|
|
||||||
+ return lookup_by_seat_id (id, display, user_data);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static GdmDisplay *
|
|
||||||
create_display (GdmLocalDisplayFactory *factory,
|
|
||||||
const char *seat_id,
|
|
||||||
const char *session_type,
|
|
||||||
gboolean initial)
|
|
||||||
{
|
|
||||||
GdmDisplayStore *store;
|
|
||||||
GdmDisplay *display = NULL;
|
|
||||||
char *active_session_id = NULL;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
g_debug ("GdmLocalDisplayFactory: %s login display for seat %s requested",
|
|
||||||
session_type? : "X11", seat_id);
|
|
||||||
store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory));
|
|
||||||
|
|
||||||
+ if (sd_seat_can_multi_session (seat_id))
|
|
||||||
+ display = gdm_display_store_find (store, lookup_prepared_display_by_seat_id, (gpointer) seat_id);
|
|
||||||
+ else
|
|
||||||
+ display = gdm_display_store_find (store, lookup_by_seat_id, (gpointer) seat_id);
|
|
||||||
+
|
|
||||||
+ /* Ensure we don't create the same display more than once */
|
|
||||||
+ if (display != NULL) {
|
|
||||||
+ g_debug ("GdmLocalDisplayFactory: display already created");
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
ret = sd_seat_get_active (seat_id, &active_session_id, NULL);
|
|
||||||
|
|
||||||
if (ret == 0) {
|
|
||||||
char *login_session_id = NULL;
|
|
||||||
|
|
||||||
/* If we already have a login window, switch to it */
|
|
||||||
if (gdm_get_login_window_session_id (seat_id, &login_session_id)) {
|
|
||||||
GdmDisplay *display;
|
|
||||||
|
|
||||||
display = gdm_display_store_find (store,
|
|
||||||
lookup_by_session_id,
|
|
||||||
(gpointer) login_session_id);
|
|
||||||
if (display != NULL && gdm_display_get_status (display) == GDM_DISPLAY_MANAGED) {
|
|
||||||
if (g_strcmp0 (active_session_id, login_session_id) != 0) {
|
|
||||||
g_debug ("GdmLocalDisplayFactory: session %s found, activating.",
|
|
||||||
login_session_id);
|
|
||||||
gdm_activate_session_by_id (factory->priv->connection, seat_id, login_session_id);
|
|
||||||
}
|
|
||||||
g_clear_pointer (&login_session_id, g_free);
|
|
||||||
g_clear_pointer (&active_session_id, g_free);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
g_clear_pointer (&login_session_id, g_free);
|
|
||||||
}
|
|
||||||
g_clear_pointer (&active_session_id, g_free);
|
|
||||||
- } else if (!sd_seat_can_multi_session (seat_id)) {
|
|
||||||
- /* Ensure we don't create the same display more than once */
|
|
||||||
- display = gdm_display_store_find (store, lookup_by_seat_id, (gpointer) seat_id);
|
|
||||||
-
|
|
||||||
- if (display != NULL) {
|
|
||||||
- return NULL;
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", seat_id);
|
|
||||||
|
|
||||||
#ifdef ENABLE_USER_DISPLAY_SERVER
|
|
||||||
if (g_strcmp0 (seat_id, "seat0") == 0) {
|
|
||||||
display = gdm_local_display_new ();
|
|
||||||
if (session_type != NULL) {
|
|
||||||
g_object_set (G_OBJECT (display), "session-type", session_type, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (display == NULL) {
|
|
||||||
guint32 num;
|
|
||||||
|
|
||||||
num = take_next_display_number (factory);
|
|
||||||
|
|
||||||
display = gdm_legacy_display_new (num);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_object_set (display, "seat-id", seat_id, NULL);
|
|
||||||
g_object_set (display, "is-initial", initial, NULL);
|
|
||||||
|
|
||||||
store_display (factory, display);
|
|
||||||
|
|
||||||
/* let store own the ref */
|
|
||||||
g_object_unref (display);
|
|
||||||
|
|
||||||
if (! gdm_display_manage (display)) {
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
From 692613bc996f5ab090a1fb605ae8dd50c6bb81bf Mon Sep 17 00:00:00 2001
|
From 03cd095d78fed6632e32ed933d71b8819d86afab Mon Sep 17 00:00:00 2001
|
||||||
From: Ray Strode <rstrode@redhat.com>
|
From: Ray Strode <rstrode@redhat.com>
|
||||||
Date: Thu, 6 Sep 2018 19:31:50 -0400
|
Date: Thu, 6 Sep 2018 19:31:50 -0400
|
||||||
Subject: [PATCH] manager: do initial-setup post work in manager code
|
Subject: [PATCH] manager: do initial-setup post work in manager code
|
||||||
@ -18,7 +18,7 @@ This commit moves the code to a more logical place.
|
|||||||
2 files changed, 132 insertions(+), 132 deletions(-)
|
2 files changed, 132 insertions(+), 132 deletions(-)
|
||||||
|
|
||||||
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
|
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
|
||||||
index 5e193f2f5..511a5ca3f 100644
|
index 878be88da..c036a0a5c 100644
|
||||||
--- a/daemon/gdm-display.c
|
--- a/daemon/gdm-display.c
|
||||||
+++ b/daemon/gdm-display.c
|
+++ b/daemon/gdm-display.c
|
||||||
@@ -22,61 +22,60 @@
|
@@ -22,61 +22,60 @@
|
||||||
@ -215,7 +215,7 @@ index 5e193f2f5..511a5ca3f 100644
|
|||||||
const char *
|
const char *
|
||||||
gdm_display_get_session_id (GdmDisplay *self)
|
gdm_display_get_session_id (GdmDisplay *self)
|
||||||
{
|
{
|
||||||
@@ -1631,145 +1559,85 @@ gdm_display_start_greeter_session (GdmDisplay *self)
|
@@ -1660,145 +1588,85 @@ gdm_display_start_greeter_session (GdmDisplay *self)
|
||||||
G_CALLBACK (on_launch_environment_session_stopped),
|
G_CALLBACK (on_launch_environment_session_stopped),
|
||||||
self, 0);
|
self, 0);
|
||||||
g_signal_connect_object (self->priv->launch_environment,
|
g_signal_connect_object (self->priv->launch_environment,
|
||||||
@ -362,7 +362,7 @@ index 5e193f2f5..511a5ca3f 100644
|
|||||||
xcb_intern_atom_cookie_t atom_cookie;
|
xcb_intern_atom_cookie_t atom_cookie;
|
||||||
xcb_intern_atom_reply_t *atom_reply = NULL;
|
xcb_intern_atom_reply_t *atom_reply = NULL;
|
||||||
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
||||||
index 20a9ba7d7..c37135f44 100644
|
index b1e9b68be..7a0832977 100644
|
||||||
--- a/daemon/gdm-manager.c
|
--- a/daemon/gdm-manager.c
|
||||||
+++ b/daemon/gdm-manager.c
|
+++ b/daemon/gdm-manager.c
|
||||||
@@ -35,60 +35,61 @@
|
@@ -35,60 +35,61 @@
|
||||||
@ -413,6 +413,7 @@ index 20a9ba7d7..c37135f44 100644
|
|||||||
#ifdef HAVE_LIBXDMCP
|
#ifdef HAVE_LIBXDMCP
|
||||||
GdmXdmcpDisplayFactory *xdmcp_factory;
|
GdmXdmcpDisplayFactory *xdmcp_factory;
|
||||||
#endif
|
#endif
|
||||||
|
GdmDisplay *automatic_login_display;
|
||||||
GList *user_sessions;
|
GList *user_sessions;
|
||||||
GHashTable *transient_sessions;
|
GHashTable *transient_sessions;
|
||||||
GHashTable *open_reauthentication_requests;
|
GHashTable *open_reauthentication_requests;
|
||||||
@ -426,8 +427,7 @@ index 20a9ba7d7..c37135f44 100644
|
|||||||
|
|
||||||
#ifdef WITH_PLYMOUTH
|
#ifdef WITH_PLYMOUTH
|
||||||
guint plymouth_is_running : 1;
|
guint plymouth_is_running : 1;
|
||||||
#endif
|
@@ -1568,130 +1569,261 @@ start_user_session (GdmManager *manager,
|
||||||
@@ -1552,130 +1553,261 @@ start_user_session (GdmManager *manager,
|
|
||||||
|
|
||||||
destroy_start_user_session_operation (operation);
|
destroy_start_user_session_operation (operation);
|
||||||
}
|
}
|
||||||
@ -671,24 +671,24 @@ index 20a9ba7d7..c37135f44 100644
|
|||||||
g_object_set_data (G_OBJECT (operation->session), "gdm-display", NULL);
|
g_object_set_data (G_OBJECT (operation->session), "gdm-display", NULL);
|
||||||
create_user_session_for_display (operation->manager, display, allowed_uid);
|
create_user_session_for_display (operation->manager, display, allowed_uid);
|
||||||
|
|
||||||
|
/* Give the user session a new display object for bookkeeping purposes */
|
||||||
|
create_display_for_user_session (operation->manager,
|
||||||
|
operation->session,
|
||||||
|
session_id);
|
||||||
|
|
||||||
|
|
||||||
if (g_strcmp0 (operation->service_name, "gdm-autologin") == 0) {
|
if (g_strcmp0 (operation->service_name, "gdm-autologin") == 0) {
|
||||||
/* remove the unused prepared greeter display since we're not going
|
/* remove the unused prepared greeter display since we're not going
|
||||||
* to have a greeter */
|
* to have a greeter */
|
||||||
gdm_display_store_remove (self->priv->display_store, display);
|
gdm_display_store_remove (self->priv->display_store, display);
|
||||||
g_object_unref (display);
|
g_object_unref (display);
|
||||||
}
|
|
||||||
|
|
||||||
/* Give the user session a new display object for bookkeeping purposes */
|
self->priv->automatic_login_display = g_object_get_data (G_OBJECT (operation->session), "gdm-display");
|
||||||
create_display_for_user_session (operation->manager,
|
g_object_add_weak_pointer (G_OBJECT (display), (gpointer *) &self->priv->automatic_login_display);
|
||||||
operation->session,
|
}
|
||||||
session_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
start_user_session (operation->manager, operation);
|
start_user_session (operation->manager, operation);
|
||||||
|
|
||||||
out:
|
|
||||||
return G_SOURCE_REMOVE;
|
|
||||||
}
|
|
||||||
--
|
--
|
||||||
2.17.1
|
2.19.0
|
||||||
|
|
||||||
|
11
gdm.spec
11
gdm.spec
@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
Name: gdm
|
Name: gdm
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 3.30.0
|
Version: 3.30.1
|
||||||
Release: 3%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The GNOME Display Manager
|
Summary: The GNOME Display Manager
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -175,10 +175,6 @@ mkdir -p %{buildroot}/run/gdm
|
|||||||
find %{buildroot} -name '*.a' -delete
|
find %{buildroot} -name '*.a' -delete
|
||||||
find %{buildroot} -name '*.la' -delete
|
find %{buildroot} -name '*.la' -delete
|
||||||
|
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_udevrulesdir}
|
|
||||||
mv ${RPM_BUILD_ROOT}/lib/udev/rules.d/* ${RPM_BUILD_ROOT}%{_udevrulesdir}
|
|
||||||
rm -rf ${RPM_BUILD_ROOT}/lib/udev
|
|
||||||
|
|
||||||
%find_lang gdm --with-gnome
|
%find_lang gdm --with-gnome
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
@ -321,6 +317,9 @@ fi
|
|||||||
%{_libdir}/pkgconfig/gdm-pam-extensions.pc
|
%{_libdir}/pkgconfig/gdm-pam-extensions.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Sep 29 2018 Kalev Lember <klember@redhat.com> - 1:3.30.1-1
|
||||||
|
- Update to 3.30.1
|
||||||
|
|
||||||
* Fri Sep 07 2018 Kalev Lember <klember@redhat.com> - 1:3.30.0-3
|
* Fri Sep 07 2018 Kalev Lember <klember@redhat.com> - 1:3.30.0-3
|
||||||
- Rebuilt against fixed atk (#1626575)
|
- Rebuilt against fixed atk (#1626575)
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (gdm-3.30.0.tar.xz) = 829d6a99f17231691907f2bd230b3dc5a211370cb99b4f83865a14f5fc70e91f1f3551b341515bbc88ba32b9e2e091e72a2026c962e4b3a1a35a668c627a1413
|
SHA512 (gdm-3.30.1.tar.xz) = 60e830ea76fac5e8cf275993e42cac9f342bf0eca86a9463fe5317a8b5e6dcf40672f466970c26fb4fe93a5fdf84c6e38cd78e9e2d172b2ca9ba038438c16f16
|
||||||
|
Loading…
Reference in New Issue
Block a user