Accepting request 708269 from GNOME:Next
Submit to TW - the GNOME:Next Live image tests are passing reliably again OBS-URL: https://build.opensuse.org/request/show/708269 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=426
This commit is contained in:
parent
ecb4fcae54
commit
e518d70380
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6041a07fbbd28f6e55a15abea6fb650c8ab6988df557da320bd6983e4009b571
|
||||
size 1122352
|
3
gdm-3.32.0.tar.xz
Normal file
3
gdm-3.32.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:643db0c8c5089a96282b4c259b8823ca6dfad1ead6f2d0025d1c1211d36fd78b
|
||||
size 1262344
|
@ -9,29 +9,28 @@ X server will be started under root. The same way as if gdm was built with
|
||||
|
||||
This allows system to run X server under root if and only-if necessary.
|
||||
---
|
||||
daemon/gdm-local-display-factory.c | 10 ++++++----
|
||||
daemon/gdm-session.c | 13 +++++++++----
|
||||
2 files changed, 15 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
||||
index b29f5ac5..7c687cf6 100644
|
||||
--- a/daemon/gdm-local-display-factory.c
|
||||
+++ b/daemon/gdm-local-display-factory.c
|
||||
@@ -207,8 +207,11 @@ gdm_local_display_factory_create_transient_display (GdmLocalDisplayFactory *fact
|
||||
diff -urp gdm-3.32.0.orig/daemon/gdm-local-display-factory.c gdm-3.32.0/daemon/gdm-local-display-factory.c
|
||||
--- gdm-3.32.0.orig/daemon/gdm-local-display-factory.c 2019-03-05 09:10:56.000000000 -0600
|
||||
+++ gdm-3.32.0/daemon/gdm-local-display-factory.c 2019-03-19 11:31:18.093838985 -0500
|
||||
@@ -231,11 +231,12 @@ gdm_local_display_factory_create_transie
|
||||
|
||||
g_debug ("GdmLocalDisplayFactory: Creating transient display");
|
||||
|
||||
#ifdef ENABLE_USER_DISPLAY_SERVER
|
||||
-#ifdef ENABLE_USER_DISPLAY_SERVER
|
||||
- display = gdm_local_display_new ();
|
||||
- if (gdm_local_display_factory_use_wayland ())
|
||||
- g_object_set (G_OBJECT (display), "session-type", "wayland", NULL);
|
||||
-#else
|
||||
+ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL) {
|
||||
+ display = gdm_local_display_new ();
|
||||
+ if (gdm_local_display_factory_use_wayland ())
|
||||
+ g_object_set (G_OBJECT (display), "session-type", "wayland", NULL);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if (display == NULL) {
|
||||
guint32 num;
|
||||
|
||||
@@ -216,7 +219,6 @@ gdm_local_display_factory_create_transient_display (GdmLocalDisplayFactory *fact
|
||||
@@ -243,7 +244,6 @@ gdm_local_display_factory_create_transie
|
||||
|
||||
display = gdm_legacy_display_new (num);
|
||||
}
|
||||
@ -39,7 +38,7 @@ index b29f5ac5..7c687cf6 100644
|
||||
|
||||
g_object_set (display,
|
||||
"seat-id", "seat0",
|
||||
@@ -369,7 +371,7 @@ create_display (GdmLocalDisplayFactory *factory,
|
||||
@@ -468,7 +468,7 @@ create_display (GdmLocalDisplayFactory *
|
||||
g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", seat_id);
|
||||
|
||||
#ifdef ENABLE_USER_DISPLAY_SERVER
|
||||
@ -48,13 +47,12 @@ index b29f5ac5..7c687cf6 100644
|
||||
display = gdm_local_display_new ();
|
||||
if (session_type != NULL) {
|
||||
g_object_set (G_OBJECT (display), "session-type", session_type, NULL);
|
||||
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
|
||||
index 610ebcd0..cb37ed4e 100644
|
||||
--- a/daemon/gdm-session.c
|
||||
+++ b/daemon/gdm-session.c
|
||||
@@ -360,7 +360,11 @@ get_system_session_dirs (GdmSession *self)
|
||||
diff -urp gdm-3.32.0.orig/daemon/gdm-session.c gdm-3.32.0/daemon/gdm-session.c
|
||||
--- gdm-3.32.0.orig/daemon/gdm-session.c 2019-03-05 09:10:56.000000000 -0600
|
||||
+++ gdm-3.32.0/daemon/gdm-session.c 2019-03-19 10:42:39.493665629 -0500
|
||||
@@ -371,7 +371,11 @@ get_system_session_dirs (GdmSession *sel
|
||||
#ifdef ENABLE_WAYLAND_SUPPORT
|
||||
if (!self->priv->ignore_wayland) {
|
||||
if (!self->ignore_wayland) {
|
||||
#ifdef ENABLE_USER_DISPLAY_SERVER
|
||||
- g_array_prepend_val (search_array, wayland_search_dir);
|
||||
+ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL) {
|
||||
@ -62,10 +60,10 @@ index 610ebcd0..cb37ed4e 100644
|
||||
+ } else {
|
||||
+ g_array_append_val (search_array, wayland_search_dir);
|
||||
+ }
|
||||
#else
|
||||
g_array_append_val (search_array, wayland_search_dir);
|
||||
#endif
|
||||
@@ -3147,8 +3151,10 @@ gdm_session_get_display_mode (GdmSession *self)
|
||||
|
||||
for (i = 0; system_data_dirs[i]; i++) {
|
||||
gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
|
||||
@@ -3258,8 +3262,10 @@ gdm_session_get_display_mode (GdmSession
|
||||
* right now. It will die with an error if logind devices
|
||||
* are paused when handed out.
|
||||
*/
|
||||
@ -78,7 +76,7 @@ index 610ebcd0..cb37ed4e 100644
|
||||
|
||||
#ifdef ENABLE_WAYLAND_SUPPORT
|
||||
/* Wayland sessions are for now assumed to run in a
|
||||
@@ -3159,7 +3165,6 @@ gdm_session_get_display_mode (GdmSession *self)
|
||||
@@ -3270,7 +3276,6 @@ gdm_session_get_display_mode (GdmSession
|
||||
}
|
||||
#endif
|
||||
return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
|
||||
@ -86,6 +84,3 @@ index 610ebcd0..cb37ed4e 100644
|
||||
}
|
||||
|
||||
void
|
||||
--
|
||||
2.13.6
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: gdm-3.19.2/daemon/gdm-session.c
|
||||
Index: gdm-3.31.91/daemon/gdm-session.c
|
||||
===================================================================
|
||||
--- gdm-3.19.2.orig/daemon/gdm-session.c
|
||||
+++ gdm-3.19.2/daemon/gdm-session.c
|
||||
--- gdm-3.31.91.orig/daemon/gdm-session.c 2019-02-21 20:44:22.000000000 +0100
|
||||
+++ gdm-3.31.91/daemon/gdm-session.c 2019-02-27 07:46:21.417932330 +0100
|
||||
@@ -43,6 +43,8 @@
|
||||
#include <glib-object.h>
|
||||
#include <gio/gio.h>
|
||||
@ -11,18 +11,18 @@ Index: gdm-3.19.2/daemon/gdm-session.c
|
||||
#include "gdm-session.h"
|
||||
#include "gdm-session-glue.h"
|
||||
#include "gdm-dbus-util.h"
|
||||
@@ -523,6 +525,14 @@ get_fallback_session_name (GdmSession *s
|
||||
@@ -562,6 +564,14 @@ get_fallback_session_name (GdmSession *s
|
||||
}
|
||||
}
|
||||
|
||||
+ name = gdm_sysconfig_load_value ("/etc/sysconfig/windowmanager", "DEFAULT_WM");
|
||||
+ if (name && get_session_command_for_name (self, name, NULL)) {
|
||||
+ g_free (self->priv->fallback_session_name);
|
||||
+ self->priv->fallback_session_name = name;
|
||||
+ g_free (self->fallback_session_name);
|
||||
+ self->fallback_session_name = name;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ g_free (name);
|
||||
+
|
||||
name = g_strdup ("gnome");
|
||||
if (get_session_command_for_name (self, name, NULL)) {
|
||||
g_free (self->priv->fallback_session_name);
|
||||
g_free (self->fallback_session_name);
|
||||
|
@ -1,23 +0,0 @@
|
||||
Index: b/data/61-gdm.rules
|
||||
===================================================================
|
||||
--- a/data/61-gdm.rules 2018-02-20 02:16:32.000000000 +0800
|
||||
+++ b/data/61-gdm.rules 2018-04-08 20:31:18.860133428 +0800
|
||||
@@ -1,2 +1,17 @@
|
||||
-# disable Wayland on Cirrus chipsets
|
||||
+# Disable Wayland on specific chipsets
|
||||
+
|
||||
+# Cirrus Logic
|
||||
ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+
|
||||
+# Matrox Electronics Systems Ltd. MGA G200 server engines
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0522", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0524", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0530", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0532", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0533", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0534", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0536", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+ATTR{vendor}=="0x102b", ATTR{device}=="0x0538", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
||||
+
|
||||
+# ASPEED Technology, Inc.
|
||||
+ATTR{vendor}=="0x1a03", ATTR{device}=="0x2000", RUN+="/bin/sh -c '/bin/mkdir /run/gdm ; /usr/bin/printf \"[daemon]\nWaylandEnable=false\" >> /run/gdm/custom.conf'"
|
@ -1,11 +1,10 @@
|
||||
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
|
||||
index ab84ba4..e1d0996 100644
|
||||
--- a/daemon/gdm-display.c
|
||||
+++ b/daemon/gdm-display.c
|
||||
@@ -673,7 +673,7 @@ gdm_display_unmanage (GdmDisplay *self)
|
||||
diff -urp gdm-3.32.0.orig/daemon/gdm-display.c gdm-3.32.0/daemon/gdm-display.c
|
||||
--- gdm-3.32.0.orig/daemon/gdm-display.c 2019-03-05 09:10:56.000000000 -0600
|
||||
+++ gdm-3.32.0/daemon/gdm-display.c 2019-03-18 17:17:12.220630463 -0500
|
||||
@@ -696,7 +696,7 @@ gdm_display_unmanage (GdmDisplay *self)
|
||||
}
|
||||
|
||||
elapsed = g_timer_elapsed (self->priv->server_timer, NULL);
|
||||
elapsed = g_timer_elapsed (priv->server_timer, NULL);
|
||||
- if (elapsed < 3) {
|
||||
+ if (elapsed < 10) {
|
||||
g_warning ("GdmDisplay: display lasted %lf seconds", elapsed);
|
||||
|
@ -1,56 +0,0 @@
|
||||
Index: gdm-3.26.2.1/libgdm/gdm-sessions.c
|
||||
===================================================================
|
||||
--- gdm-3.26.2.1.orig/libgdm/gdm-sessions.c
|
||||
+++ gdm-3.26.2.1/libgdm/gdm-sessions.c
|
||||
@@ -202,6 +202,34 @@ collect_sessions_from_directory (const c
|
||||
g_dir_close (dir);
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+find_translated_name (const char *id,
|
||||
+ GdmSessionFile *session,
|
||||
+ char *translated_name)
|
||||
+{
|
||||
+ if (g_str_equal (id, "default"))
|
||||
+ return FALSE;
|
||||
+
|
||||
+ return g_str_equal (session->translated_name, translated_name) ? TRUE : FALSE;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+remove_duplicated_session_name (void)
|
||||
+{
|
||||
+ GdmSessionFile *session;
|
||||
+ char *translated_name = NULL;
|
||||
+
|
||||
+ session = g_hash_table_lookup (gdm_available_sessions_map, "default");
|
||||
+ if (session)
|
||||
+ translated_name = session->translated_name;
|
||||
+
|
||||
+ if (translated_name) {
|
||||
+ session = g_hash_table_find (gdm_available_sessions_map, (GHRFunc)find_translated_name, translated_name);
|
||||
+ if (session)
|
||||
+ g_hash_table_remove (gdm_available_sessions_map, session->id);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void
|
||||
collect_sessions (void)
|
||||
{
|
||||
@@ -233,6 +261,7 @@ collect_sessions (void)
|
||||
#ifdef ENABLE_WAYLAND_SUPPORT
|
||||
#ifdef ENABLE_USER_DISPLAY_SERVER
|
||||
if (g_getenv ("WAYLAND_DISPLAY") == NULL && g_getenv ("RUNNING_UNDER_GDM") != NULL) {
|
||||
+ remove_duplicated_session_name();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
@@ -241,6 +270,8 @@ collect_sessions (void)
|
||||
collect_sessions_from_directory (wayland_search_dirs [i]);
|
||||
}
|
||||
#endif
|
||||
+
|
||||
+ remove_duplicated_session_name();
|
||||
}
|
||||
|
||||
/**
|
264
gdm-kill-user-session.patch
Normal file
264
gdm-kill-user-session.patch
Normal file
@ -0,0 +1,264 @@
|
||||
diff --git a/daemon/gdm-display-store.c b/daemon/gdm-display-store.c
|
||||
index fd24334..8c1ae25 100644
|
||||
--- a/daemon/gdm-display-store.c
|
||||
+++ b/daemon/gdm-display-store.c
|
||||
@@ -136,6 +136,35 @@ typedef struct
|
||||
gpointer user_data;
|
||||
} FindClosure;
|
||||
|
||||
+static void
|
||||
+copy_func (StoredDisplay *stored_display,
|
||||
+ FindClosure *closure)
|
||||
+{
|
||||
+ closure->user_data = g_list_append (closure->user_data,
|
||||
+ stored_display->display);
|
||||
+}
|
||||
+
|
||||
+GList *
|
||||
+gdm_display_store_get_displays (GdmDisplayStore *store)
|
||||
+{
|
||||
+ GList *displays = NULL;
|
||||
+ GList *store_displays = NULL;
|
||||
+ FindClosure closure;
|
||||
+ g_return_val_if_fail (store != NULL, NULL);
|
||||
+
|
||||
+ store_displays = g_hash_table_get_values (store->priv->displays);
|
||||
+
|
||||
+ closure.user_data = displays;
|
||||
+
|
||||
+ g_list_foreach (store_displays,
|
||||
+ (GFunc) copy_func,
|
||||
+ &closure);
|
||||
+ displays = closure.user_data;
|
||||
+
|
||||
+ g_list_free (store_displays);
|
||||
+ return displays;
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
find_func (const char *id,
|
||||
StoredDisplay *stored_display,
|
||||
diff --git a/daemon/gdm-display-store.h b/daemon/gdm-display-store.h
|
||||
index 0aff8ee..cd69518 100644
|
||||
--- a/daemon/gdm-display-store.h
|
||||
+++ b/daemon/gdm-display-store.h
|
||||
@@ -86,6 +86,8 @@ GdmDisplay * gdm_display_store_find (GdmDisplayStore
|
||||
GdmDisplayStoreFunc predicate,
|
||||
gpointer user_data);
|
||||
|
||||
+GList * gdm_display_store_get_displays (GdmDisplayStore *store);
|
||||
+
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
||||
index cb9f662..a971ba3 100644
|
||||
--- a/daemon/gdm-manager.c
|
||||
+++ b/daemon/gdm-manager.c
|
||||
@@ -2703,9 +2703,7 @@ unexport_display (const char *id,
|
||||
}
|
||||
|
||||
static void
|
||||
-finish_display (const char *id,
|
||||
- GdmDisplay *display,
|
||||
- GdmManager *manager)
|
||||
+finish_display (GdmDisplay *display)
|
||||
{
|
||||
gdm_display_stop_greeter_session (display);
|
||||
if (gdm_display_get_status (display) == GDM_DISPLAY_MANAGED)
|
||||
@@ -2717,6 +2715,7 @@ static void
|
||||
gdm_manager_dispose (GObject *object)
|
||||
{
|
||||
GdmManager *manager;
|
||||
+ GList *displays = NULL;
|
||||
|
||||
g_return_if_fail (object != NULL);
|
||||
g_return_if_fail (GDM_IS_MANAGER (object));
|
||||
@@ -2758,9 +2757,11 @@ gdm_manager_dispose (GObject *object)
|
||||
g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (manager));
|
||||
}
|
||||
|
||||
- gdm_display_store_foreach (manager->priv->display_store,
|
||||
- (GdmDisplayStoreFunc) finish_display,
|
||||
- manager);
|
||||
+ displays = gdm_display_store_get_displays (manager->priv->display_store);
|
||||
+ g_list_foreach (displays,
|
||||
+ (GFunc) finish_display,
|
||||
+ NULL);
|
||||
+ g_list_free (displays);
|
||||
|
||||
gdm_display_store_clear (manager->priv->display_store);
|
||||
|
||||
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
|
||||
index 06e5a6a..07642cd 100644
|
||||
--- a/daemon/gdm-session-worker.c
|
||||
+++ b/daemon/gdm-session-worker.c
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <errno.h>
|
||||
#include <grp.h>
|
||||
#include <pwd.h>
|
||||
+#include <signal.h>
|
||||
|
||||
#include <security/pam_appl.h>
|
||||
|
||||
@@ -181,6 +182,8 @@ struct GdmSessionWorkerPrivate
|
||||
GdmSessionSettings *user_settings;
|
||||
|
||||
GDBusMethodInvocation *pending_invocation;
|
||||
+
|
||||
+ GMainLoop *main_loop;
|
||||
};
|
||||
|
||||
#ifdef SUPPORTS_PAM_EXTENSIONS
|
||||
@@ -197,6 +200,7 @@ enum {
|
||||
PROP_0,
|
||||
PROP_SERVER_ADDRESS,
|
||||
PROP_IS_REAUTH_SESSION,
|
||||
+ PROP_MAIN_LOOP,
|
||||
};
|
||||
|
||||
static void gdm_session_worker_class_init (GdmSessionWorkerClass *klass);
|
||||
@@ -2455,6 +2459,13 @@ gdm_session_worker_set_is_reauth_session (GdmSessionWorker *worker,
|
||||
worker->priv->is_reauth_session = is_reauth_session;
|
||||
}
|
||||
|
||||
+static void
|
||||
+gdm_session_worker_set_main_loop (GdmSessionWorker *worker,
|
||||
+ GMainLoop *main_loop)
|
||||
+{
|
||||
+ worker->priv->main_loop = main_loop;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
gdm_session_worker_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
@@ -2472,6 +2483,9 @@ gdm_session_worker_set_property (GObject *object,
|
||||
case PROP_IS_REAUTH_SESSION:
|
||||
gdm_session_worker_set_is_reauth_session (self, g_value_get_boolean (value));
|
||||
break;
|
||||
+ case PROP_MAIN_LOOP:
|
||||
+ gdm_session_worker_set_main_loop (self, g_value_get_pointer (value));
|
||||
+ break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -2495,6 +2509,9 @@ gdm_session_worker_get_property (GObject *object,
|
||||
case PROP_IS_REAUTH_SESSION:
|
||||
g_value_set_boolean (value, self->priv->is_reauth_session);
|
||||
break;
|
||||
+ case PROP_MAIN_LOOP:
|
||||
+ g_value_set_pointer (value, self->priv->main_loop);
|
||||
+ break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -2764,6 +2781,16 @@ do_open_session (GdmSessionWorker *worker)
|
||||
worker->priv->pending_invocation = NULL;
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+on_shutdown_signal_cb (gpointer user_data)
|
||||
+{
|
||||
+ GMainLoop *mainloop = user_data;
|
||||
+
|
||||
+ g_main_loop_quit (mainloop);
|
||||
+
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
do_start_session (GdmSessionWorker *worker)
|
||||
{
|
||||
@@ -2773,6 +2800,9 @@ do_start_session (GdmSessionWorker *worker)
|
||||
error = NULL;
|
||||
res = gdm_session_worker_start_session (worker, &error);
|
||||
if (res) {
|
||||
+ g_unix_signal_add (SIGTERM, on_shutdown_signal_cb, worker->priv->main_loop);
|
||||
+ g_unix_signal_add (SIGINT, on_shutdown_signal_cb, worker->priv->main_loop);
|
||||
+
|
||||
gdm_dbus_worker_complete_start_program (GDM_DBUS_WORKER (worker),
|
||||
worker->priv->pending_invocation,
|
||||
worker->priv->child_pid);
|
||||
@@ -3471,6 +3501,13 @@ gdm_session_worker_class_init (GdmSessionWorkerClass *klass)
|
||||
"is reauth session",
|
||||
FALSE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
|
||||
+
|
||||
+ g_object_class_install_property (object_class,
|
||||
+ PROP_MAIN_LOOP,
|
||||
+ g_param_spec_pointer ("main-loop",
|
||||
+ "main loop",
|
||||
+ "main loop",
|
||||
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -3561,13 +3598,15 @@ gdm_session_worker_finalize (GObject *object)
|
||||
|
||||
GdmSessionWorker *
|
||||
gdm_session_worker_new (const char *address,
|
||||
- gboolean is_reauth_session)
|
||||
+ gboolean is_reauth_session,
|
||||
+ GMainLoop *main_loop)
|
||||
{
|
||||
GObject *object;
|
||||
|
||||
object = g_object_new (GDM_TYPE_SESSION_WORKER,
|
||||
"server-address", address,
|
||||
"is-reauth-session", is_reauth_session,
|
||||
+ "main-loop", main_loop,
|
||||
NULL);
|
||||
|
||||
return GDM_SESSION_WORKER (object);
|
||||
diff --git a/daemon/gdm-session-worker.h b/daemon/gdm-session-worker.h
|
||||
index 5603e80..24979e4 100644
|
||||
--- a/daemon/gdm-session-worker.h
|
||||
+++ b/daemon/gdm-session-worker.h
|
||||
@@ -51,6 +51,7 @@ typedef struct
|
||||
GType gdm_session_worker_get_type (void);
|
||||
|
||||
GdmSessionWorker * gdm_session_worker_new (const char *server_address,
|
||||
- gboolean is_for_reauth) G_GNUC_MALLOC;
|
||||
+ gboolean is_for_reauth,
|
||||
+ GMainLoop *main_loop) G_GNUC_MALLOC;
|
||||
G_END_DECLS
|
||||
#endif /* GDM_SESSION_WORKER_H */
|
||||
diff --git a/daemon/session-worker-main.c b/daemon/session-worker-main.c
|
||||
index 4a3a8eb..da3e7c6 100644
|
||||
--- a/daemon/session-worker-main.c
|
||||
+++ b/daemon/session-worker-main.c
|
||||
@@ -64,12 +64,6 @@ is_debug_set (void)
|
||||
return debug;
|
||||
}
|
||||
|
||||
-static void
|
||||
-on_sigterm_cb (int signal_number)
|
||||
-{
|
||||
- _exit (EXIT_SUCCESS);
|
||||
-}
|
||||
-
|
||||
int
|
||||
main (int argc,
|
||||
char **argv)
|
||||
@@ -83,8 +77,6 @@ main (int argc,
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
- signal (SIGTERM, on_sigterm_cb);
|
||||
-
|
||||
bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
|
||||
textdomain (GETTEXT_PACKAGE);
|
||||
setlocale (LC_ALL, "");
|
||||
@@ -120,10 +112,10 @@ main (int argc,
|
||||
|
||||
is_for_reauth = g_getenv ("GDM_SESSION_FOR_REAUTH") != NULL;
|
||||
|
||||
- worker = gdm_session_worker_new (address, is_for_reauth);
|
||||
-
|
||||
main_loop = g_main_loop_new (NULL, FALSE);
|
||||
|
||||
+ worker = gdm_session_worker_new (address, is_for_reauth, main_loop);
|
||||
+
|
||||
g_unix_signal_add (SIGUSR1, on_sigusr1_cb, NULL);
|
||||
|
||||
g_main_loop_run (main_loop);
|
@ -1,65 +0,0 @@
|
||||
Index: gdm-3.26.1/daemon/main.c
|
||||
===================================================================
|
||||
--- gdm-3.26.1.orig/daemon/main.c
|
||||
+++ gdm-3.26.1/daemon/main.c
|
||||
@@ -33,6 +33,8 @@
|
||||
#include <sys/wait.h>
|
||||
#include <locale.h>
|
||||
#include <signal.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+#include <sys/vt.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib/gi18n.h>
|
||||
@@ -302,6 +304,23 @@ block_sigusr1 (void)
|
||||
sigprocmask (SIG_BLOCK, &mask, NULL);
|
||||
}
|
||||
|
||||
+static void
|
||||
+jump_to_vt (int vt_number)
|
||||
+{
|
||||
+ int fd;
|
||||
+
|
||||
+ fd = open ("/dev/tty0", O_RDWR | O_NOCTTY);
|
||||
+ if (ioctl (fd, VT_ACTIVATE, vt_number) < 0) {
|
||||
+ g_debug ("Gdm: couldn't initiate jump to VT %d: %m",
|
||||
+ vt_number);
|
||||
+ } else if (ioctl (fd, VT_WAITACTIVE, vt_number) < 0) {
|
||||
+ g_debug ("Gdm: couldn't finalize jump to VT %d: %m",
|
||||
+ vt_number);
|
||||
+ }
|
||||
+ close(fd);
|
||||
+}
|
||||
+
|
||||
+
|
||||
int
|
||||
main (int argc,
|
||||
char **argv)
|
||||
@@ -310,6 +329,7 @@ main (int argc,
|
||||
GOptionContext *context;
|
||||
GError *error = NULL;
|
||||
gboolean res;
|
||||
+ gboolean plymouth_running = FALSE;
|
||||
static gboolean do_timed_exit = FALSE;
|
||||
static gboolean print_version = FALSE;
|
||||
static gboolean fatal_warnings = FALSE;
|
||||
@@ -383,6 +403,8 @@ main (int argc,
|
||||
|
||||
g_chdir ("/");
|
||||
|
||||
+ plymouth_running = g_access("/run/plymouth/pid", F_OK) == 0;
|
||||
+
|
||||
main_loop = g_main_loop_new (NULL, FALSE);
|
||||
|
||||
g_unix_signal_add (SIGTERM, on_shutdown_signal_cb, main_loop);
|
||||
@@ -405,6 +427,10 @@ main (int argc,
|
||||
|
||||
g_main_loop_unref (main_loop);
|
||||
|
||||
+ if (plymouth_running) {
|
||||
+ jump_to_vt (1);
|
||||
+ }
|
||||
+
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
99
gdm-remove-duplicate-sessions.patch
Normal file
99
gdm-remove-duplicate-sessions.patch
Normal file
@ -0,0 +1,99 @@
|
||||
diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
|
||||
index afbc5c0..30eaa14 100644
|
||||
--- a/libgdm/gdm-sessions.c
|
||||
+++ b/libgdm/gdm-sessions.c
|
||||
@@ -111,14 +111,6 @@ key_file_is_relevant (GKeyFile *key_file)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
-static gboolean
|
||||
-find_session_with_same_name (const char *id,
|
||||
- GdmSessionFile *session,
|
||||
- const char *translated_name)
|
||||
-{
|
||||
- return g_strcmp0 (session->translated_name, translated_name) == 0;
|
||||
-}
|
||||
-
|
||||
static void
|
||||
load_session_file (const char *id,
|
||||
const char *path)
|
||||
@@ -126,7 +118,7 @@ load_session_file (const char *id,
|
||||
GKeyFile *key_file;
|
||||
GError *error;
|
||||
gboolean res;
|
||||
- GdmSessionFile *session, *session_with_same_name;
|
||||
+ GdmSessionFile *session;
|
||||
|
||||
key_file = g_key_file_new ();
|
||||
|
||||
@@ -162,13 +154,6 @@ load_session_file (const char *id,
|
||||
session->translated_name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Name", NULL, NULL);
|
||||
session->translated_comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Comment", NULL, NULL);
|
||||
|
||||
- session_with_same_name = g_hash_table_find (gdm_available_sessions_map,
|
||||
- (GHRFunc) find_session_with_same_name,
|
||||
- session->translated_name);
|
||||
-
|
||||
- if (session_with_same_name != NULL)
|
||||
- g_hash_table_remove (gdm_available_sessions_map, session_with_same_name->id);
|
||||
-
|
||||
g_hash_table_insert (gdm_available_sessions_map,
|
||||
g_strdup (id),
|
||||
session);
|
||||
@@ -176,6 +161,29 @@ load_session_file (const char *id,
|
||||
g_key_file_free (key_file);
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+remove_duplicate_sessions (gpointer key,
|
||||
+ gpointer value,
|
||||
+ gpointer user_data)
|
||||
+{
|
||||
+ gboolean already_known;
|
||||
+ const char *id;
|
||||
+ GHashTable *names_seen_before;
|
||||
+ GdmSessionFile *session;
|
||||
+
|
||||
+ id = (const char *) key;
|
||||
+ names_seen_before = (GHashTable *) user_data;
|
||||
+ session = (GdmSessionFile *) value;
|
||||
+ already_known = !g_hash_table_add (names_seen_before, session->translated_name);
|
||||
+
|
||||
+ if (already_known)
|
||||
+ g_debug ("GdmSession: Removing %s (%s) as we already have a session by this name",
|
||||
+ session->id,
|
||||
+ session->path);
|
||||
+
|
||||
+ return already_known;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
collect_sessions_from_directory (const char *dirname)
|
||||
{
|
||||
@@ -230,6 +238,7 @@ collect_sessions_from_directory (const char *dirname)
|
||||
static void
|
||||
collect_sessions (void)
|
||||
{
|
||||
+ g_autoptr(GHashTable) names_seen_before = NULL;
|
||||
GArray *xorg_search_array = NULL;
|
||||
GArray *wayland_search_array = NULL;
|
||||
gchar *session_dir = NULL;
|
||||
@@ -242,6 +251,8 @@ collect_sessions (void)
|
||||
NULL
|
||||
};
|
||||
|
||||
+ names_seen_before = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
+
|
||||
xorg_search_array = g_array_new (TRUE, TRUE, sizeof (char *));
|
||||
|
||||
const gchar * const *system_data_dirs = g_get_system_data_dirs ();
|
||||
@@ -294,6 +305,9 @@ collect_sessions (void)
|
||||
|
||||
g_array_free (wayland_search_array, TRUE);
|
||||
#endif
|
||||
+ g_hash_table_foreach_remove (gdm_available_sessions_map,
|
||||
+ remove_duplicate_sessions,
|
||||
+ names_seen_before);
|
||||
}
|
||||
|
||||
/**
|
9
gdm-s390-not-require-g-s-d_wacom.patch
Normal file
9
gdm-s390-not-require-g-s-d_wacom.patch
Normal file
@ -0,0 +1,9 @@
|
||||
Index: gdm-3.32.0/data/gnome-login.session.in
|
||||
===================================================================
|
||||
--- gdm-3.32.0.orig/data/gnome-login.session.in
|
||||
+++ gdm-3.32.0/data/gnome-login.session.in
|
||||
@@ -1,3 +1,3 @@
|
||||
[GNOME Session]
|
||||
Name=Display Manager
|
||||
-RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
|
||||
+RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.XSettings;
|
@ -1,7 +1,7 @@
|
||||
Index: gdm-2.29.92/data/Init.in
|
||||
Index: gdm-3.31.91/data/Init.in
|
||||
===================================================================
|
||||
--- gdm-2.29.92.orig/data/Init.in
|
||||
+++ gdm-2.29.92/data/Init.in
|
||||
--- gdm-3.31.91.orig/data/Init.in 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/data/Init.in 2019-02-27 07:46:21.401932235 +0100
|
||||
@@ -1,4 +1,9 @@
|
||||
#!/bin/sh
|
||||
+
|
||||
@ -12,10 +12,10 @@ Index: gdm-2.29.92/data/Init.in
|
||||
# Stolen from the debian kdm setup, aren't I sneaky
|
||||
# Plus a lot of fun stuff added
|
||||
# -George
|
||||
Index: gdm-2.29.92/data/PostSession.in
|
||||
Index: gdm-3.31.91/data/PostSession.in
|
||||
===================================================================
|
||||
--- gdm-2.29.92.orig/data/PostSession.in
|
||||
+++ gdm-2.29.92/data/PostSession.in
|
||||
--- gdm-3.31.91.orig/data/PostSession.in 2018-10-12 23:05:26.000000000 +0200
|
||||
+++ gdm-3.31.91/data/PostSession.in 2019-02-27 07:46:21.401932235 +0100
|
||||
@@ -1,3 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
@ -24,10 +24,10 @@ Index: gdm-2.29.92/data/PostSession.in
|
||||
+fi
|
||||
+
|
||||
exit 0
|
||||
Index: gdm-2.29.92/data/Xsession.in
|
||||
Index: gdm-3.31.91/data/Xsession.in
|
||||
===================================================================
|
||||
--- gdm-2.29.92.orig/data/Xsession.in
|
||||
+++ gdm-2.29.92/data/Xsession.in
|
||||
--- gdm-3.31.91.orig/data/Xsession.in 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/data/Xsession.in 2019-02-27 07:46:21.401932235 +0100
|
||||
@@ -1,4 +1,9 @@
|
||||
#!@XSESSION_SHELL@
|
||||
+
|
||||
@ -38,10 +38,10 @@ Index: gdm-2.29.92/data/Xsession.in
|
||||
#
|
||||
# This is SORT OF LIKE an X session, but not quite. You get a command as the
|
||||
# first argument (it could be multiple words, so run it with "eval"). As a
|
||||
Index: gdm-2.29.92/data/PreSession.in
|
||||
Index: gdm-3.31.91/data/PreSession.in
|
||||
===================================================================
|
||||
--- gdm-2.29.92.orig/data/PreSession.in
|
||||
+++ gdm-2.29.92/data/PreSession.in
|
||||
--- gdm-3.31.91.orig/data/PreSession.in 2018-10-12 23:05:26.000000000 +0200
|
||||
+++ gdm-3.31.91/data/PreSession.in 2019-02-27 07:46:21.401932235 +0100
|
||||
@@ -6,4 +6,8 @@
|
||||
#
|
||||
# Note that output goes into the .xsession-errors file for easy debugging
|
||||
|
68
gdm-switch-to-tty1.patch
Normal file
68
gdm-switch-to-tty1.patch
Normal file
@ -0,0 +1,68 @@
|
||||
Index: gdm-3.26.2.1/daemon/main.c
|
||||
===================================================================
|
||||
--- gdm-3.26.2.1.orig/daemon/main.c
|
||||
+++ gdm-3.26.2.1/daemon/main.c
|
||||
@@ -61,6 +61,31 @@ static GdmSettings *settings =
|
||||
static uid_t gdm_uid = -1;
|
||||
static gid_t gdm_gid = -1;
|
||||
|
||||
+#define SHELLSCRIPT "\
|
||||
+/bin/bash -c \
|
||||
+\'PROCESS=\"X Xwayland\"\;\
|
||||
+R=$(pidof $PROCESS)\;\
|
||||
+while [ $? == 0 ]\;\
|
||||
+do sleep 1\;\
|
||||
+ R=$(pidof $PROCESS)\;\
|
||||
+done\;\
|
||||
+systemd-cat echo Switch to tty1 Successfully\;\
|
||||
+/usr/bin/chvt 1\'\
|
||||
+"
|
||||
+
|
||||
+static void
|
||||
+jump_to_tty1 ()
|
||||
+{
|
||||
+ g_autoptr(GError) error = NULL;
|
||||
+
|
||||
+ g_debug ("Spawn jump to tty1 process");
|
||||
+ g_spawn_command_line_async (SHELLSCRIPT,
|
||||
+ &error);
|
||||
+
|
||||
+ if (error != NULL)
|
||||
+ g_warning ("Error chvt to tty1: %s", error->message);
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
timed_exit_cb (GMainLoop *loop)
|
||||
{
|
||||
@@ -263,6 +288,12 @@ on_shutdown_signal_cb (gpointer user_dat
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+static void
|
||||
+on_signal_term_cb ()
|
||||
+{
|
||||
+ g_debug ("Received SIGTERM again");
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
on_sighup_cb (gpointer user_data)
|
||||
{
|
||||
@@ -396,6 +427,7 @@ main (int argc,
|
||||
g_main_loop_run (main_loop);
|
||||
|
||||
g_debug ("GDM finished, cleaning up...");
|
||||
+ signal (SIGTERM, on_signal_term_cb);
|
||||
|
||||
g_clear_object (&manager);
|
||||
g_clear_object (&settings);
|
||||
@@ -403,6 +435,10 @@ main (int argc,
|
||||
gdm_settings_direct_shutdown ();
|
||||
gdm_log_shutdown ();
|
||||
|
||||
+ jump_to_tty1 ();
|
||||
+
|
||||
+ g_debug ("GDM finished");
|
||||
+
|
||||
g_main_loop_unref (main_loop);
|
||||
|
||||
return EXIT_SUCCESS;
|
@ -1,8 +1,8 @@
|
||||
Index: b/common/Makefile.am
|
||||
Index: gdm-3.31.91/common/Makefile.am
|
||||
===================================================================
|
||||
--- a/common/Makefile.am 2018-01-19 20:09:39.075556951 +0800
|
||||
+++ b/common/Makefile.am 2018-01-19 20:10:57.572967891 +0800
|
||||
@@ -52,11 +52,15 @@
|
||||
--- gdm-3.31.91.orig/common/Makefile.am 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/common/Makefile.am 2019-02-27 07:44:47.645367708 +0100
|
||||
@@ -46,11 +46,15 @@ libgdmcommon_la_SOURCES = \
|
||||
gdm-settings-backend.h \
|
||||
gdm-settings-desktop-backend.c \
|
||||
gdm-settings-desktop-backend.h \
|
||||
@ -17,11 +17,11 @@ Index: b/common/Makefile.am
|
||||
+ gdm-sysconfig.h \
|
||||
gdm-log.h \
|
||||
gdm-log.c \
|
||||
$(MKDTEMP_FILES) \
|
||||
Index: b/common/gdm-settings-system-backend.c
|
||||
$(NULL)
|
||||
Index: gdm-3.31.91/common/gdm-settings-system-backend.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ b/common/gdm-settings-system-backend.c 2018-01-19 20:10:57.572967891 +0800
|
||||
+++ gdm-3.31.91/common/gdm-settings-system-backend.c 2019-02-27 07:44:47.645367708 +0100
|
||||
@@ -0,0 +1,369 @@
|
||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||
+ *
|
||||
@ -392,10 +392,10 @@ Index: b/common/gdm-settings-system-backend.c
|
||||
+
|
||||
+ return GDM_SETTINGS_BACKEND (object);
|
||||
+}
|
||||
Index: b/common/gdm-settings-system-backend.h
|
||||
Index: gdm-3.31.91/common/gdm-settings-system-backend.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ b/common/gdm-settings-system-backend.h 2018-01-19 20:10:57.572967891 +0800
|
||||
+++ gdm-3.31.91/common/gdm-settings-system-backend.h 2019-02-27 07:44:47.645367708 +0100
|
||||
@@ -0,0 +1,56 @@
|
||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||
+ *
|
||||
@ -453,31 +453,31 @@ Index: b/common/gdm-settings-system-backend.h
|
||||
+G_END_DECLS
|
||||
+
|
||||
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
|
||||
Index: b/common/gdm-settings.c
|
||||
Index: gdm-3.31.91/common/gdm-settings.c
|
||||
===================================================================
|
||||
--- a/common/gdm-settings.c 2018-01-19 20:10:02.587982412 +0800
|
||||
+++ b/common/gdm-settings.c 2018-01-19 20:12:09.186231713 +0800
|
||||
--- gdm-3.31.91.orig/common/gdm-settings.c 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/common/gdm-settings.c 2019-02-27 07:44:47.645367708 +0100
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "gdm-settings.h"
|
||||
|
||||
#include "gdm-settings-desktop-backend.h"
|
||||
+#include "gdm-settings-system-backend.h"
|
||||
|
||||
#define GDM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS, GdmSettingsPrivate))
|
||||
|
||||
@@ -198,6 +199,8 @@
|
||||
struct _GdmSettings
|
||||
{
|
||||
@@ -194,6 +195,8 @@ gdm_settings_init (GdmSettings *settings
|
||||
if (backend)
|
||||
settings->priv->backends = g_list_prepend (NULL, backend);
|
||||
settings->backends = g_list_prepend (NULL, backend);
|
||||
|
||||
+ settings->priv->backends = g_list_prepend (settings->priv->backends, gdm_settings_system_backend_new ());
|
||||
+ settings->backends = g_list_prepend (settings->backends, gdm_settings_system_backend_new ());
|
||||
+
|
||||
backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF);
|
||||
if (backend)
|
||||
settings->priv->backends = g_list_prepend (settings->priv->backends, backend);
|
||||
Index: b/common/gdm-sysconfig.c
|
||||
settings->backends = g_list_prepend (settings->backends, backend);
|
||||
Index: gdm-3.31.91/common/gdm-sysconfig.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ b/common/gdm-sysconfig.c 2018-01-19 20:10:57.572967891 +0800
|
||||
+++ gdm-3.31.91/common/gdm-sysconfig.c 2019-02-27 07:44:47.645367708 +0100
|
||||
@@ -0,0 +1,484 @@
|
||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||
+ *
|
||||
@ -963,10 +963,10 @@ Index: b/common/gdm-sysconfig.c
|
||||
+ g_strfreev (lines);
|
||||
+ return result;
|
||||
+}
|
||||
Index: b/common/gdm-sysconfig.h
|
||||
Index: gdm-3.31.91/common/gdm-sysconfig.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ b/common/gdm-sysconfig.h 2018-01-19 20:10:57.572967891 +0800
|
||||
+++ gdm-3.31.91/common/gdm-sysconfig.h 2019-02-27 07:44:47.645367708 +0100
|
||||
@@ -0,0 +1,43 @@
|
||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||
+ *
|
||||
@ -1011,10 +1011,10 @@ Index: b/common/gdm-sysconfig.h
|
||||
+G_END_DECLS
|
||||
+
|
||||
+#endif /* __GDM_SYSCONFIG_H */
|
||||
Index: b/data/gdm.conf-custom.in
|
||||
Index: gdm-3.31.91/data/gdm.conf-custom.in
|
||||
===================================================================
|
||||
--- a/data/gdm.conf-custom.in 2018-01-19 20:09:39.075556951 +0800
|
||||
+++ b/data/gdm.conf-custom.in 2018-01-19 20:10:57.572967891 +0800
|
||||
--- gdm-3.31.91.orig/data/gdm.conf-custom.in 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/data/gdm.conf-custom.in 2019-02-27 07:44:47.649367731 +0100
|
||||
@@ -1,4 +1,7 @@
|
||||
# GDM configuration storage
|
||||
+#
|
||||
@ -1022,4 +1022,4 @@ Index: b/data/gdm.conf-custom.in
|
||||
+#
|
||||
|
||||
[daemon]
|
||||
# Uncoment the line below to force the login screen to use Xorg
|
||||
# Uncomment the line below to force the login screen to use Xorg
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdm-3.26.1/common/gdm-common.c
|
||||
Index: gdm-3.31.91/common/gdm-common.c
|
||||
===================================================================
|
||||
--- gdm-3.26.1.orig/common/gdm-common.c
|
||||
+++ gdm-3.26.1/common/gdm-common.c
|
||||
@@ -591,6 +591,8 @@ gdm_get_script_environment (const char *
|
||||
--- gdm-3.31.91.orig/common/gdm-common.c 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/common/gdm-common.c 2019-02-27 07:47:16.998264608 +0100
|
||||
@@ -632,6 +632,8 @@ gdm_get_script_environment (const char *
|
||||
|
||||
if (display_hostname) {
|
||||
g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (display_hostname));
|
||||
@ -11,7 +11,7 @@ Index: gdm-3.26.1/common/gdm-common.c
|
||||
}
|
||||
|
||||
/* Runs as root */
|
||||
@@ -797,3 +799,14 @@ gdm_shell_expand (const char *str,
|
||||
@@ -843,3 +845,14 @@ gdm_shell_expand (const char *str,
|
||||
}
|
||||
return g_string_free (s, FALSE);
|
||||
}
|
||||
@ -26,23 +26,23 @@ Index: gdm-3.26.1/common/gdm-common.c
|
||||
+ return g_strdup ("localhost");
|
||||
+ }
|
||||
+}
|
||||
Index: gdm-3.26.1/common/gdm-common.h
|
||||
Index: gdm-3.31.91/common/gdm-common.h
|
||||
===================================================================
|
||||
--- gdm-3.26.1.orig/common/gdm-common.h
|
||||
+++ gdm-3.26.1/common/gdm-common.h
|
||||
@@ -54,6 +54,7 @@ const char * gdm_make_temp_dir
|
||||
char *gdm_generate_random_bytes (gsize size,
|
||||
GError **error);
|
||||
--- gdm-3.31.91.orig/common/gdm-common.h 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/common/gdm-common.h 2019-02-27 07:47:16.998264608 +0100
|
||||
@@ -56,6 +56,7 @@ char *gdm_generate_random_bytes
|
||||
gboolean gdm_get_login_window_session_id (const char *seat_id,
|
||||
char **session_id);
|
||||
gboolean gdm_goto_login_session (GError **error);
|
||||
+char *gdm_gethostname (void);
|
||||
|
||||
GPtrArray *gdm_get_script_environment (const char *username,
|
||||
const char *display_name,
|
||||
Index: gdm-3.26.1/daemon/gdm-display-access-file.c
|
||||
Index: gdm-3.31.91/daemon/gdm-display-access-file.c
|
||||
===================================================================
|
||||
--- gdm-3.26.1.orig/daemon/gdm-display-access-file.c
|
||||
+++ gdm-3.26.1/daemon/gdm-display-access-file.c
|
||||
@@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAc
|
||||
--- gdm-3.31.91.orig/daemon/gdm-display-access-file.c 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/daemon/gdm-display-access-file.c 2019-02-27 07:47:16.998264608 +0100
|
||||
@@ -441,13 +441,10 @@ _get_auth_info_for_display (GdmDisplayAc
|
||||
*
|
||||
* https://bugs.freedesktop.org/show_bug.cgi?id=43425
|
||||
*/
|
||||
@ -59,11 +59,11 @@ Index: gdm-3.26.1/daemon/gdm-display-access-file.c
|
||||
} else {
|
||||
*family = FamilyWild;
|
||||
gdm_display_get_remote_hostname (display, address, NULL);
|
||||
Index: gdm-3.26.1/daemon/gdm-launch-environment.c
|
||||
Index: gdm-3.31.91/daemon/gdm-launch-environment.c
|
||||
===================================================================
|
||||
--- gdm-3.26.1.orig/daemon/gdm-launch-environment.c
|
||||
+++ gdm-3.26.1/daemon/gdm-launch-environment.c
|
||||
@@ -201,6 +201,11 @@ build_launch_environment (GdmLaunchEnvir
|
||||
--- gdm-3.31.91.orig/daemon/gdm-launch-environment.c 2019-02-21 20:44:14.000000000 +0100
|
||||
+++ gdm-3.31.91/daemon/gdm-launch-environment.c 2019-02-27 07:47:16.998264608 +0100
|
||||
@@ -218,6 +218,11 @@ build_launch_environment (GdmLaunchEnvir
|
||||
g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id));
|
||||
}
|
||||
|
||||
@ -72,18 +72,18 @@ Index: gdm-3.26.1/daemon/gdm-launch-environment.c
|
||||
+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ());
|
||||
+ }
|
||||
+
|
||||
g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH")));
|
||||
|
||||
g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true"));
|
||||
Index: gdm-3.26.1/daemon/gdm-session.c
|
||||
|
||||
return hash;
|
||||
Index: gdm-3.31.91/daemon/gdm-session.c
|
||||
===================================================================
|
||||
--- gdm-3.26.1.orig/daemon/gdm-session.c
|
||||
+++ gdm-3.26.1/daemon/gdm-session.c
|
||||
@@ -2570,6 +2570,14 @@ set_up_session_environment (GdmSession *
|
||||
--- gdm-3.31.91.orig/daemon/gdm-session.c 2019-02-27 07:47:16.990264560 +0100
|
||||
+++ gdm-3.31.91/daemon/gdm-session.c 2019-02-27 07:47:16.998264608 +0100
|
||||
@@ -2683,6 +2683,14 @@ set_up_session_environment (GdmSession *
|
||||
}
|
||||
}
|
||||
|
||||
+ if (self->priv->display_is_local) {
|
||||
+ if (self->display_is_local) {
|
||||
+ char *hostname = gdm_gethostname ();
|
||||
+ gdm_session_set_environment_variable (self,
|
||||
+ "XAUTHLOCALHOSTNAME",
|
||||
|
270
gdm.changes
270
gdm.changes
@ -1,3 +1,261 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu May 23 08:40:18 UTC 2019 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Fixup gdm.tmpfiles (boo#1135272).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 22 16:39:19 UTC 2019 - Markus S <kamikazow@opensuse.org>
|
||||
|
||||
- Make systemd service file optional instead of outright deleting it.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 15 01:57:12 UTC 2019 - Xiaoguang Wang <xwang@suse.com>
|
||||
|
||||
- Update gdm-switch-to-tty1.patch (bsc#1120307)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 9 08:58:52 UTC 2019 - Xiaoguang Wang <xwang@suse.com>
|
||||
|
||||
- New solution for auto login problem(bsc#1116011)
|
||||
+ Drop gdm-revert-commit-39fb4ff.patch
|
||||
+ Add reserveVT.conf file.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 28 07:23:07 UTC 2019 - qzheng <qzheng@suse.com>
|
||||
|
||||
- Add gdm-remove-duplicate-sessions.patch: Backport from upstream
|
||||
commit 187c8515 and 1795bb31 to remove duplicate sessions once,
|
||||
after all sessions have been processed (boo#1131625,
|
||||
glgo#GNOME/gdm#473).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:32:02 UTC 2019 - Yifan Jiang <yfjiang@suse.com>
|
||||
|
||||
- Add gdm-s390-not-require-g-s-d_wacom.patch: Remove the gnome
|
||||
session runtime requirement of g-s-d Wacom plugin because it is
|
||||
not build on s390 (bsc#1129412).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:32:02 UTC 2019 - mgorse@suse.com
|
||||
|
||||
- Rebase patches (boo#1128589):
|
||||
+ gdm-sysconfig-settings.patch
|
||||
+ gdm-default-wm.patch
|
||||
+ gdm-xauthlocalhostname.patch
|
||||
+ gdm-kill-user-session.patch
|
||||
+ gdm-fails-to-restart-gnome-shell.patch
|
||||
+ gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
|
||||
- Re-enable gdm-switch-to-tty1.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:32:01 UTC 2019 - xwang@suse.com
|
||||
|
||||
- Add gdm-revert-commit-39fb4ff.patch: Make auto login successful
|
||||
(bsc#1116011).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:32:00 UTC 2019 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 3.32.0:
|
||||
+ Stable release version bump.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:31:51 UTC 2019 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 3.31.91:
|
||||
+ Screen lock bypass fix (when timed login is enabled)
|
||||
(CVE-2019-3825).
|
||||
+ PAM file updates.
|
||||
+ Improved debug logging.
|
||||
+ Keyboard layout fixes.
|
||||
+ Display foreach handling.
|
||||
+ Updated translations.
|
||||
- Changes from version 3.31.4:
|
||||
+ DOAP file fixes.
|
||||
+ Misc code clean ups.
|
||||
+ Filter out duplicates from session list.
|
||||
+ Updated translations.
|
||||
- Disable patches needing rebase:
|
||||
+ gdm-sysconfig-settings.patch
|
||||
+ gdm-kill-user-session.patch
|
||||
+ gdm-default-wm.patch
|
||||
+ gdm-xauthlocalhostname.patch
|
||||
+ gdm-switch-to-tty1.patch
|
||||
+ gdm-fails-to-restart-gnome-shell.patch
|
||||
+ gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
|
||||
- Rebase patches with quilt, but sadly not enough, hence the
|
||||
massive disabling of patches.
|
||||
- Drop gdm-ignore-duplicate-desktop-file.patch: Fixed upstream.
|
||||
- Drop old hack only needed for upgrades from pre SLED 12 and
|
||||
openSUSE 10.3.
|
||||
- Test if we still need to nuke data/61-gdm.rules, aka disable rm.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:08 UTC 2019 - bjorn.lie@gmail.com
|
||||
|
||||
- Update to version 3.30.3:
|
||||
+ Screen lock bypass fix (when timed login is enabled)
|
||||
(CVE-2019-3825).
|
||||
+ Updated translations.
|
||||
- Drop gdm-CVE-2019-3825.patch: Fixed upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:07 UTC 2019 - xwang@suse.com
|
||||
|
||||
- Add gdm-kill-user-session.patch: Kill all sessions when stopping
|
||||
gdm service
|
||||
(bsc#1112294 bsc#1120307 bsc#1113245 glgo#GNOME/gdm#400).
|
||||
- Add gdm-switch-to-tty1.patch: Switch to tty1 when stopping gdm
|
||||
service (bsc#1113700).
|
||||
- Drop gdm-plymouth-vt1.patch: Replaced by gdm-switch-to-tty1.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:06 UTC 2019 - Felix Zhang <fezhang@suse.com>
|
||||
|
||||
- Add gdm-CVE-2019-3825.patch: Fix lock screen bypass when timed
|
||||
login is enabled (boo#1124628, glgo#GNOME/gdm#460, CVE-2019-3825)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:05 UTC 2019 - qzheng@suse.com
|
||||
|
||||
- Add gdm-ignore-duplicate-desktop-file.patch to ignore duplicate
|
||||
desktop file with same "Name" value, including symlinks of
|
||||
desktop files (bsc#1112834, glgo#GNOME/gdm#437).
|
||||
- Drop gdm-ignore-duplicate-session.patch, the patch hardcodes
|
||||
"default.desktop" while LightDM and SDDM treat symlinks as
|
||||
aliases.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:04 UTC 2019 - bjorn.lie@gmail.com
|
||||
|
||||
- Update to version 3.30.2:
|
||||
+ Fix autologin crash.
|
||||
+ Unlock keyring again on autologin with newerish systemds.
|
||||
+ Fix initial-setup.
|
||||
+ Updated translations.
|
||||
- Drop patches fixed upstream:
|
||||
+ gdm-fix-autologin.patch.
|
||||
+ gdm-fix-initial-setup.patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:03 UTC 2019 - luc14n0@linuxmail.org
|
||||
|
||||
- Add upstream patches:
|
||||
+ gdm-fix-autologin.patch: as autologin got reworked and broken,
|
||||
accessing the proper display variable should fix it.
|
||||
+ gdm-fix-initial-setup.patch: as the initial-setup related post
|
||||
work is done when stopping the greeter and this stop is delayed
|
||||
until after the user session is started now, the post work
|
||||
needs to be done before the user session is started.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:02 UTC 2019 - luc14n0@linuxmail.org
|
||||
|
||||
- Re-add still needed 61-gdm.rules removal until glgo#GNOME/gdm#424
|
||||
gets fixed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:01 UTC 2019 - bjorn.lie@gmail.com
|
||||
|
||||
- Update to version 3.30.1:
|
||||
+ Make udev rule configurable.
|
||||
+ Follow up fixes dealing with login screen reaping from two
|
||||
releases ago.
|
||||
+ Disable wayland on proprietary nvidia machines for now.
|
||||
+ Updated translations.
|
||||
- Drop gdm-make-udev-dir-configurable.patch: Fixed upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:30:00 UTC 2019 - luc14n0@linuxmail.org
|
||||
|
||||
- Update to version 3.30.0:
|
||||
+ No visible changes for the user.
|
||||
- Drop gdm-ignore-spurios-SeatNew-signal.patch: fixed upstream.
|
||||
- Add gdm-make-udev-dir-configurable.patch: Make udev directory
|
||||
configurable. Patch provided by upstream (glgo#GNOME/gdm!44).
|
||||
- Rebase gdm-ignore-duplicate-session.patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:29:52 UTC 2019 - bjorn.lie@gmail.com
|
||||
|
||||
- Update to version 3.29.92:
|
||||
+ Search for sessions in XDG_DATA_DIRS.
|
||||
+ Blacklist some more wayland unfriendly hardware.
|
||||
+ Initial setup fix.
|
||||
+ Flicker fix.
|
||||
+ Misc bug fixes.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:29:51 UTC 2019 - bjorn.lie@gmail.com
|
||||
|
||||
- Update to version 3.29.91:
|
||||
+ CVE-2018-14424: double free fix.
|
||||
+ Follow up fixes dealing with login screen reaping form last
|
||||
release.
|
||||
+ Add more debug logging.
|
||||
+ Updated translations.
|
||||
- Drop gdm-CVE-2018-14424.patch: Fixed upstream.
|
||||
- Add gdm-ignore-spurios-SeatNew-signal.patch: Fix crashes.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:28:04 UTC 2019 - bjorn.lie@gmail.com
|
||||
|
||||
- Update to version 3.28.4:
|
||||
+ Add missing gdm-disable-wayland binary (fixes VM boots).
|
||||
+ Disable wayland for certain server cards that mutter can't yet
|
||||
handle sufficiently.
|
||||
- Drop gdm-disable-wayland-on-unsupported-chipsets.patch: Fixed
|
||||
upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 03:28:03 UTC 2019 - luc14n0@linuxmail.org
|
||||
|
||||
- Update to version 3.28.3:
|
||||
+ CVE-2018-14424 - double free fix.
|
||||
+ Lifecycle fixes to libgdm/GdmClient.
|
||||
+ Follow up fixes dealing with login screen reaping from last
|
||||
release.
|
||||
+ Allow pam modules to use SIGUSR1.
|
||||
+ Set PWD for user session.
|
||||
+ Tell cirrus not to use wayland.
|
||||
+ Updated translations.
|
||||
- Drop gdm-CVE-2018-14424.patch: fixed upstream.
|
||||
- Rebase gdm-disable-wayland-on-unsupported-chipsets.patch applying
|
||||
it against data/61-gdm.rules.in instead of data/61-gdm.rules to
|
||||
avoid hard coding directories.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 00:30:00 UTC 2019 - fezhang@suse.com
|
||||
|
||||
- Add gdm-CVE-2018-14424.patch: Pass the display object rather than
|
||||
the id in the removed signal, fix use-after-free of disposed
|
||||
transient displays (CVE-2018-14424, glgo#GNOME#gdm#401,
|
||||
boo#1103737).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 00:00:00 UTC 2019 - bjorn.lie@gmail.com
|
||||
|
||||
- Update to version 3.29.90:
|
||||
+ Display wayland on certain server machines.
|
||||
+ Lifecycle fixes to libgdm/GdmClient.
|
||||
+ Drop intltool.
|
||||
+ Build goo clean ups
|
||||
+ Kill login screen when not in use.
|
||||
+ Cclean up stale utmp entries.
|
||||
+ Misc fixes.
|
||||
+ Updated translations.
|
||||
- Rebase gdm-disable-wayland-on-unsupported-chipsets.patch.
|
||||
- Disable
|
||||
dm-add-runtime-option-to-disable-starting-X-server-as-u.patch:
|
||||
Needs rebase.
|
||||
- Refresh the following patches with quilt:
|
||||
+ gdm-default-wm.patch.
|
||||
+ gdm-fails-to-restart-gnome-shell.patch.
|
||||
+ gdm-ignore-duplicate-session.patch.
|
||||
+ gdm-plymouth-vt1.patch.
|
||||
+ gdm-sysconfig-settings.patch
|
||||
+ gdm-xauthlocalhostname.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 30 16:04:12 UTC 2019 - alarrosa@suse.com
|
||||
|
||||
@ -17,6 +275,16 @@ Thu Jul 26 11:52:06 UTC 2018 - dimstar@opensuse.org
|
||||
|
||||
- Enable pam_keyinit module (boo#1081947).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 2 02:39:31 UTC 2018 - luc14n0@linuxmail.org
|
||||
|
||||
- Update to version 3.29.1:
|
||||
+ Reference counting fixes for GdmClient- ensure plymouth is quit
|
||||
properly even when local greeter is disabled.
|
||||
+ Make sure GDM doesn't hang when called with unknown command
|
||||
line arguments.
|
||||
- Rebase gdm-xauthlocalhostname.patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun May 20 02:19:32 UTC 2018 - luc14n0@linuxmail.org
|
||||
|
||||
@ -98,7 +366,7 @@ Mon Mar 12 04:46:37 UTC 2018 - yfjiang@suse.com
|
||||
back GNOME to X, the patch targets to provide a better user
|
||||
experiences for servers with mgag200 graphic chips, which suffer
|
||||
the sluggish keyboard/mouse issues running GNOME on wayland
|
||||
(bsc#1073550 bsc#1077802). Some of the servers could not
|
||||
(bsc#1073550, bsc#1077802). Some of the servers could not
|
||||
initiate GNOME in a similar context (bsc#1070933).
|
||||
|
||||
With the complexity of the problem, Wayland probably needs
|
||||
|
118
gdm.spec
118
gdm.spec
@ -20,13 +20,13 @@
|
||||
# FIXME: need to check what should be done to enable this (at least adapt the pam files). See bnc#699999
|
||||
%define enable_split_authentication 0
|
||||
Name: gdm
|
||||
Version: 3.28.2
|
||||
Version: 3.32.0
|
||||
Release: 0
|
||||
Summary: The GNOME Display Manager
|
||||
License: GPL-2.0-or-later
|
||||
Group: System/GUI/GNOME
|
||||
URL: https://wiki.gnome.org/Projects/GDM
|
||||
Source: http://download.gnome.org/sources/gdm/3.28/%{name}-%{version}.tar.xz
|
||||
Source0: https://download.gnome.org/sources/gdm/3.32/%{name}-%{version}.tar.xz
|
||||
Source1: gdm.pamd
|
||||
Source2: gdm-autologin.pamd
|
||||
Source3: gdm-launch-environment.pamd
|
||||
@ -40,32 +40,35 @@ Source7: X11-displaymanager-gdm
|
||||
Source8: autogen.sh
|
||||
# Use tmpfiles to create directories under /var to support transactional updates
|
||||
Source9: gdm.tmpfiles
|
||||
# PATCH-FIX-UPSTREAM gdm-disable-wayland-on-unsupported-chipsets.patch bgo#789081 bgo#794106 boo#1059356 boo#1083609 boo#1088539 fezhang@suse.com -- Disable Wayland on unsupported chipsets
|
||||
Patch1: gdm-disable-wayland-on-unsupported-chipsets.patch
|
||||
# WARNING: do not remove/significantly change patch3 without updating the relevant patch in accountsservice too
|
||||
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 bsc#919723 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager; note that accountsservice has a similar patch (accountsservice-sysconfig.patch)
|
||||
Patch3: gdm-sysconfig-settings.patch
|
||||
# Use reserveVT.conf to make autologin user session not to select tty1
|
||||
Source10: reserveVT.conf
|
||||
# WARNING: do not remove/significantly change patch0 without updating the relevant patch in accountsservice too
|
||||
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 bsc#919723 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager; note that accountsservice has a similar patch (accountsservice-sysconfig.patch)
|
||||
Patch0: gdm-sysconfig-settings.patch
|
||||
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
|
||||
Patch7: gdm-suse-xsession.patch
|
||||
Patch2: gdm-suse-xsession.patch
|
||||
# PATCH-FIX-OPENSUSE gdm-default-wm.patch vuntz@novell.com -- Use sysconfig to know to which desktop to use by default
|
||||
Patch34: gdm-default-wm.patch
|
||||
Patch3: gdm-default-wm.patch
|
||||
# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bnc#538064 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to current hostname when we authenticate, for local logins, to avoid issues in the session in case the hostname changes later one. See comment 24 in the bug.
|
||||
Patch35: gdm-xauthlocalhostname.patch
|
||||
# PATCH-FIX-OPENSUSE gdm-ignore-duplicate-session.patch xwang@suse.com -- gdm sessions entries duplicate
|
||||
Patch36: gdm-ignore-duplicate-session.patch
|
||||
# PATCH-FIX-UPSTREAM gdm-plymouth-vt1.patch bnc#881676 fcrozat@suse.com -- switch to VT1 when quitting if gdm was starting with plymouth running
|
||||
Patch41: gdm-plymouth-vt1.patch
|
||||
# PATCH-FIX-UPSTREAM gdm-fails-to-restart-gnome-shell.patch bsc#981976 bgo#769969 tyang@suse.com -- Gdm should stop after a few times fails
|
||||
Patch42: gdm-fails-to-restart-gnome-shell.patch
|
||||
# PATCH-FIX-UPSTREAM gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch bnc#1075805 bgo#793255 msrb@suse.com -- Add runtime option to start X under root instead of regular user. Necessary if no DRI drivers are present.
|
||||
Patch43: gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
|
||||
Patch4: gdm-xauthlocalhostname.patch
|
||||
# PATCH-FIX-OPENSUSE gdm-switch-to-tty1.patch bsc#1113700 xwang@suse.com -- switch to tty1 when stopping gdm service
|
||||
Patch6: gdm-switch-to-tty1.patch
|
||||
# PATCH-FIX-UPSTREAM gdm-fails-to-restart-gnome-shell.patch bsc#981976 glgo#GNOME/gdm#266 tyang@suse.com -- Gdm should stop after a few times fails
|
||||
Patch7: gdm-fails-to-restart-gnome-shell.patch
|
||||
# PATCH-FIX-OPENSUSE gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch bnc#1075805 bgo#793255 msrb@suse.com -- Add runtime option to start X under root instead of regular user. Necessary if no DRI drivers are present. rejected upstream
|
||||
Patch8: gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
|
||||
# PATCH-FIX-UPSTREAM gdm-kill-user-session.patch bsc#1112294 glgo#GNOME/gdm#400 xwang@suse.com -- Kill all sessions when stopping gdm service
|
||||
Patch11: gdm-kill-user-session.patch
|
||||
# PATCH-FIX-OPENSUSE gdm-s390-not-require-g-s-d_wacom.patch bsc#1129412 yfjiang@suse.com -- Remove the runtime requirement of g-s-d Wacom plugin
|
||||
Patch13: gdm-s390-not-require-g-s-d_wacom.patch
|
||||
# PATCH-FIX-UPSTREAM gdm-remove-duplicate-sessions.patch boo#1131625 glgo#GNOME/gdm#473 qzheng@suse.com -- Remove duplicate sessions once, after all sessions have been processed.
|
||||
Patch14: gdm-remove-duplicate-sessions.patch
|
||||
### NOTE: Keep please SLE-only patches at bottom (starting on 1000).
|
||||
# PATCH-FIX-SLE gdm-disable-gnome-initial-setup.patch bnc#1067976 qzhao@suse.com -- Disable gnome-initial-setup runs before gdm, g-i-s will only serve for CJK people to choose the input-method after login.
|
||||
Patch1002: gdm-disable-gnome-initial-setup.patch
|
||||
Patch1000: gdm-disable-gnome-initial-setup.patch
|
||||
BuildRequires: check-devel
|
||||
# needed for directory ownership
|
||||
# dconf and gnome-session-core are needed for directory ownership
|
||||
BuildRequires: dconf
|
||||
# needed for directory ownership
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gnome-common
|
||||
BuildRequires: gnome-session-core
|
||||
@ -176,6 +179,18 @@ providing graphical log-ins and managing local and remote displays.
|
||||
|
||||
This package provides the upstream default configuration for gdm.
|
||||
|
||||
%package systemd
|
||||
Summary: systemd gdm.service file
|
||||
Group: System/GUI/GNOME
|
||||
Requires: gdm
|
||||
BuildArch: noarch
|
||||
|
||||
%description systemd
|
||||
GDM's systemd service file.
|
||||
By default openSUSE uses xdm which enables the DM based on sysconfig.
|
||||
This package is only needed if the system administrator wishes to use
|
||||
'systemctl' instead of openSUSE's default 'update-alternatives' method.
|
||||
|
||||
%package -n gdmflexiserver
|
||||
Summary: Compatibility Wrapper for Display Managers
|
||||
Group: System/GUI/GNOME
|
||||
@ -193,18 +208,25 @@ running display manager.
|
||||
%prep
|
||||
%setup -q
|
||||
cp %{SOURCE8} .
|
||||
%patch1 -p1
|
||||
%patch0 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch34 -p1
|
||||
%patch35 -p1
|
||||
%patch36 -p1
|
||||
%patch41 -p1
|
||||
%patch42 -p1
|
||||
%patch43 -p1
|
||||
%patch8 -p1
|
||||
%patch11 -p1
|
||||
%ifarch s390 s390x
|
||||
%patch13 -p1
|
||||
%endif
|
||||
%patch14 -p1
|
||||
|
||||
# TODO: Hack still needed until https://gitlab.gnome.org/GNOME/gdm/issues/424 gets fixed and released.
|
||||
#rm data/61-gdm.rules
|
||||
|
||||
# SLE-only patches start at 1000
|
||||
%if !0%{?is_opensuse}
|
||||
%patch1002 -p1
|
||||
%patch1000 -p1
|
||||
%endif
|
||||
|
||||
%build
|
||||
@ -233,14 +255,13 @@ autoreconf -fiv
|
||||
--disable-split-authentication \
|
||||
%endif
|
||||
--with-initial-vt=7 \
|
||||
--with-run-dir=/run/gdm
|
||||
--with-run-dir=/run/gdm \
|
||||
--with-udevdir=%{_prefix}/lib/udev
|
||||
%make_build V=1
|
||||
|
||||
%install
|
||||
%make_install
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
# Do not ship the systemd.service file: openSUSE uses xdm, which enables the DM based on sysconfig.
|
||||
rm %{buildroot}%{systemdsystemunitdir}/gdm.service
|
||||
## Install PAM files.
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
|
||||
# Generic pam config
|
||||
@ -273,7 +294,6 @@ install -D -m 644 %{SOURCE7} %{buildroot}%{_libexecdir}/X11/displaymanagers/gdm
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
|
||||
touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager
|
||||
ln -s %{_sysconfdir}/alternatives/default-displaymanager %{buildroot}%{_libexecdir}/X11/displaymanagers/default-displaymanager
|
||||
|
||||
# Install other files
|
||||
mkdir -p %{buildroot}/run/gdm
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
@ -282,6 +302,9 @@ ln -s ../sbin/gdm %{buildroot}%{_bindir}/gdm
|
||||
mkdir -p %{buildroot}%{_prefix}/lib/tmpfiles.d
|
||||
install -m 644 %{SOURCE9} %{buildroot}%{_prefix}/lib/tmpfiles.d/gdm.conf
|
||||
|
||||
mkdir -p %{buildroot}%{_libexecdir}/systemd/logind.conf.d
|
||||
install -m 644 %{SOURCE10} %{buildroot}%{_libexecdir}/systemd/logind.conf.d/reserveVT.conf
|
||||
|
||||
%find_lang %{name} %{?no_lang_C}
|
||||
%fdupes -s %{buildroot}%{_datadir}/help
|
||||
|
||||
@ -290,28 +313,6 @@ install -m 644 %{SOURCE9} %{buildroot}%{_prefix}/lib/tmpfiles.d/gdm.conf
|
||||
%{_sbindir}/useradd -r -g gdm -G video -s /bin/false \
|
||||
-c "Gnome Display Manager daemon" -d %{_localstatedir}/lib/gdm gdm 2> /dev/null || :
|
||||
%{_sbindir}/usermod -g gdm -G video -s /bin/false gdm 2> /dev/null
|
||||
# Fix incorrect interpretation of DISPLAYMANAGER_PASSWORD_LESS_LOGIN (#307566).
|
||||
# Last done in SLED10&10.1, first fixed in 10.3.
|
||||
# Can be removed after SLES12:
|
||||
if test -f sbin/conf.d/SuSEconfig.gdm && grep -q gdm-autologin sbin/conf.d/SuSEconfig.gdm ; then
|
||||
if grep -q '^DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"' etc/sysconfig/displaymanager ; then
|
||||
sed 's/^\(auth[[:space:]][[:space:]]*\)include[[:space:]]\([[:space:]]*\)common-auth/\1required\2pam_permit.so/' <etc/pam.d/gdm-autologin >etc/pam.d/gdm-autologin.new
|
||||
if cmp -s etc/pam.d/gdm-autologin etc/pam.d/gdm-autologin.new ; then
|
||||
rm etc/pam.d/gdm-autologin.new
|
||||
else
|
||||
mv etc/pam.d/gdm-autologin.new etc/pam.d/gdm-autologin
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# Fix how DISPLAYMANAGER_PASSWORD_LESS_LOGIN is used. Before 11.4,
|
||||
# /etc/pam.d/gdm was changed to use pam_permit. We don't want this anymore.
|
||||
if test -f /sbin/conf.d/SuSEconfig.gdm; then
|
||||
grep -q pam_permit.so %{_sysconfdir}/pam.d/gdm
|
||||
if test $? -eq 0; then
|
||||
# We'll just use the file from the new package
|
||||
mv %{_sysconfdir}/pam.d/gdm %{_sysconfdir}/pam.d/gdm.rpmold
|
||||
fi
|
||||
fi
|
||||
|
||||
%post
|
||||
%tmpfiles_create gdm.conf
|
||||
@ -331,7 +332,7 @@ dconf update
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc AUTHORS ChangeLog NEWS README
|
||||
%doc AUTHORS NEWS README.md
|
||||
%doc %{_datadir}/help/C/%{name}/
|
||||
%dir %config %{_sysconfdir}/gdm
|
||||
%config %{_sysconfdir}/gdm/[IPXl]*
|
||||
@ -370,6 +371,8 @@ dconf update
|
||||
%ghost %{_sysconfdir}/alternatives/default-displaymanager
|
||||
%{_udevrulesdir}/61-gdm.rules
|
||||
%{_libexecdir}/tmpfiles.d/gdm.conf
|
||||
%dir %{_libexecdir}/systemd/logind.conf.d
|
||||
%{_libexecdir}/systemd/logind.conf.d/reserveVT.conf
|
||||
|
||||
%files -n libgdm1
|
||||
%{_libdir}/libgdm.so.*
|
||||
@ -387,6 +390,9 @@ dconf update
|
||||
%files branding-upstream
|
||||
%config(noreplace) %{_sysconfdir}/gdm/custom.conf
|
||||
|
||||
%files systemd
|
||||
%{systemdsystemunitdir}/gdm.service
|
||||
|
||||
%files -n gdmflexiserver
|
||||
%{_bindir}/gdmflexiserver
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
+d /var/lib/gdm/ 0750 gdm gdm -
|
||||
+d /var/log/gdm/ 0711 root gdm -
|
||||
+d /var/cache/gdm/ 1755 root root -
|
||||
d /var/lib/gdm/ 0750 gdm gdm -
|
||||
d /var/log/gdm/ 0711 root gdm -
|
||||
d /var/cache/gdm/ 1755 root root -
|
||||
|
||||
|
2
reserveVT.conf
Normal file
2
reserveVT.conf
Normal file
@ -0,0 +1,2 @@
|
||||
[Login]
|
||||
ReserveVT=1
|
Loading…
x
Reference in New Issue
Block a user