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.
|
This allows system to run X server under root if and only-if necessary.
|
||||||
---
|
---
|
||||||
daemon/gdm-local-display-factory.c | 10 ++++++----
|
diff -urp gdm-3.32.0.orig/daemon/gdm-local-display-factory.c gdm-3.32.0/daemon/gdm-local-display-factory.c
|
||||||
daemon/gdm-session.c | 13 +++++++++----
|
--- gdm-3.32.0.orig/daemon/gdm-local-display-factory.c 2019-03-05 09:10:56.000000000 -0600
|
||||||
2 files changed, 15 insertions(+), 8 deletions(-)
|
+++ 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
|
||||||
|
|
||||||
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
|
|
||||||
g_debug ("GdmLocalDisplayFactory: Creating transient display");
|
g_debug ("GdmLocalDisplayFactory: Creating transient display");
|
||||||
|
|
||||||
#ifdef ENABLE_USER_DISPLAY_SERVER
|
-#ifdef ENABLE_USER_DISPLAY_SERVER
|
||||||
- display = gdm_local_display_new ();
|
- display = gdm_local_display_new ();
|
||||||
|
- if (gdm_local_display_factory_use_wayland ())
|
||||||
|
- g_object_set (G_OBJECT (display), "session-type", "wayland", NULL);
|
||||||
-#else
|
-#else
|
||||||
+ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL) {
|
+ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL) {
|
||||||
+ display = gdm_local_display_new ();
|
+ 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) {
|
if (display == NULL) {
|
||||||
guint32 num;
|
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);
|
display = gdm_legacy_display_new (num);
|
||||||
}
|
}
|
||||||
@ -39,7 +38,7 @@ index b29f5ac5..7c687cf6 100644
|
|||||||
|
|
||||||
g_object_set (display,
|
g_object_set (display,
|
||||||
"seat-id", "seat0",
|
"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);
|
g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", seat_id);
|
||||||
|
|
||||||
#ifdef ENABLE_USER_DISPLAY_SERVER
|
#ifdef ENABLE_USER_DISPLAY_SERVER
|
||||||
@ -48,13 +47,12 @@ index b29f5ac5..7c687cf6 100644
|
|||||||
display = gdm_local_display_new ();
|
display = gdm_local_display_new ();
|
||||||
if (session_type != NULL) {
|
if (session_type != NULL) {
|
||||||
g_object_set (G_OBJECT (display), "session-type", 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
|
diff -urp gdm-3.32.0.orig/daemon/gdm-session.c gdm-3.32.0/daemon/gdm-session.c
|
||||||
index 610ebcd0..cb37ed4e 100644
|
--- gdm-3.32.0.orig/daemon/gdm-session.c 2019-03-05 09:10:56.000000000 -0600
|
||||||
--- a/daemon/gdm-session.c
|
+++ gdm-3.32.0/daemon/gdm-session.c 2019-03-19 10:42:39.493665629 -0500
|
||||||
+++ b/daemon/gdm-session.c
|
@@ -371,7 +371,11 @@ get_system_session_dirs (GdmSession *sel
|
||||||
@@ -360,7 +360,11 @@ get_system_session_dirs (GdmSession *self)
|
|
||||||
#ifdef ENABLE_WAYLAND_SUPPORT
|
#ifdef ENABLE_WAYLAND_SUPPORT
|
||||||
if (!self->priv->ignore_wayland) {
|
if (!self->ignore_wayland) {
|
||||||
#ifdef ENABLE_USER_DISPLAY_SERVER
|
#ifdef ENABLE_USER_DISPLAY_SERVER
|
||||||
- g_array_prepend_val (search_array, wayland_search_dir);
|
- g_array_prepend_val (search_array, wayland_search_dir);
|
||||||
+ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL) {
|
+ if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL) {
|
||||||
@ -62,10 +60,10 @@ index 610ebcd0..cb37ed4e 100644
|
|||||||
+ } else {
|
+ } else {
|
||||||
+ g_array_append_val (search_array, wayland_search_dir);
|
+ g_array_append_val (search_array, wayland_search_dir);
|
||||||
+ }
|
+ }
|
||||||
#else
|
|
||||||
g_array_append_val (search_array, wayland_search_dir);
|
for (i = 0; system_data_dirs[i]; i++) {
|
||||||
#endif
|
gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
|
||||||
@@ -3147,8 +3151,10 @@ gdm_session_get_display_mode (GdmSession *self)
|
@@ -3258,8 +3262,10 @@ gdm_session_get_display_mode (GdmSession
|
||||||
* right now. It will die with an error if logind devices
|
* right now. It will die with an error if logind devices
|
||||||
* are paused when handed out.
|
* are paused when handed out.
|
||||||
*/
|
*/
|
||||||
@ -78,7 +76,7 @@ index 610ebcd0..cb37ed4e 100644
|
|||||||
|
|
||||||
#ifdef ENABLE_WAYLAND_SUPPORT
|
#ifdef ENABLE_WAYLAND_SUPPORT
|
||||||
/* Wayland sessions are for now assumed to run in a
|
/* 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
|
#endif
|
||||||
return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
|
return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
|
||||||
@ -86,6 +84,3 @@ index 610ebcd0..cb37ed4e 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
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.31.91.orig/daemon/gdm-session.c 2019-02-21 20:44:22.000000000 +0100
|
||||||
+++ gdm-3.19.2/daemon/gdm-session.c
|
+++ gdm-3.31.91/daemon/gdm-session.c 2019-02-27 07:46:21.417932330 +0100
|
||||||
@@ -43,6 +43,8 @@
|
@@ -43,6 +43,8 @@
|
||||||
#include <glib-object.h>
|
#include <glib-object.h>
|
||||||
#include <gio/gio.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.h"
|
||||||
#include "gdm-session-glue.h"
|
#include "gdm-session-glue.h"
|
||||||
#include "gdm-dbus-util.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");
|
+ name = gdm_sysconfig_load_value ("/etc/sysconfig/windowmanager", "DEFAULT_WM");
|
||||||
+ if (name && get_session_command_for_name (self, name, NULL)) {
|
+ if (name && get_session_command_for_name (self, name, NULL)) {
|
||||||
+ g_free (self->priv->fallback_session_name);
|
+ g_free (self->fallback_session_name);
|
||||||
+ self->priv->fallback_session_name = name;
|
+ self->fallback_session_name = name;
|
||||||
+ goto out;
|
+ goto out;
|
||||||
+ }
|
+ }
|
||||||
+ g_free (name);
|
+ g_free (name);
|
||||||
+
|
+
|
||||||
name = g_strdup ("gnome");
|
name = g_strdup ("gnome");
|
||||||
if (get_session_command_for_name (self, name, NULL)) {
|
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
|
diff -urp gdm-3.32.0.orig/daemon/gdm-display.c gdm-3.32.0/daemon/gdm-display.c
|
||||||
index ab84ba4..e1d0996 100644
|
--- gdm-3.32.0.orig/daemon/gdm-display.c 2019-03-05 09:10:56.000000000 -0600
|
||||||
--- a/daemon/gdm-display.c
|
+++ gdm-3.32.0/daemon/gdm-display.c 2019-03-18 17:17:12.220630463 -0500
|
||||||
+++ b/daemon/gdm-display.c
|
@@ -696,7 +696,7 @@ gdm_display_unmanage (GdmDisplay *self)
|
||||||
@@ -673,7 +673,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 < 3) {
|
||||||
+ if (elapsed < 10) {
|
+ if (elapsed < 10) {
|
||||||
g_warning ("GdmDisplay: display lasted %lf seconds", elapsed);
|
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-3.31.91.orig/data/Init.in 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ gdm-2.29.92/data/Init.in
|
+++ gdm-3.31.91/data/Init.in 2019-02-27 07:46:21.401932235 +0100
|
||||||
@@ -1,4 +1,9 @@
|
@@ -1,4 +1,9 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
+
|
+
|
||||||
@ -12,10 +12,10 @@ Index: gdm-2.29.92/data/Init.in
|
|||||||
# Stolen from the debian kdm setup, aren't I sneaky
|
# Stolen from the debian kdm setup, aren't I sneaky
|
||||||
# Plus a lot of fun stuff added
|
# Plus a lot of fun stuff added
|
||||||
# -George
|
# -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-3.31.91.orig/data/PostSession.in 2018-10-12 23:05:26.000000000 +0200
|
||||||
+++ gdm-2.29.92/data/PostSession.in
|
+++ gdm-3.31.91/data/PostSession.in 2019-02-27 07:46:21.401932235 +0100
|
||||||
@@ -1,3 +1,7 @@
|
@@ -1,3 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
@ -24,10 +24,10 @@ Index: gdm-2.29.92/data/PostSession.in
|
|||||||
+fi
|
+fi
|
||||||
+
|
+
|
||||||
exit 0
|
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-3.31.91.orig/data/Xsession.in 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ gdm-2.29.92/data/Xsession.in
|
+++ gdm-3.31.91/data/Xsession.in 2019-02-27 07:46:21.401932235 +0100
|
||||||
@@ -1,4 +1,9 @@
|
@@ -1,4 +1,9 @@
|
||||||
#!@XSESSION_SHELL@
|
#!@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
|
# 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
|
# 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-3.31.91.orig/data/PreSession.in 2018-10-12 23:05:26.000000000 +0200
|
||||||
+++ gdm-2.29.92/data/PreSession.in
|
+++ gdm-3.31.91/data/PreSession.in 2019-02-27 07:46:21.401932235 +0100
|
||||||
@@ -6,4 +6,8 @@
|
@@ -6,4 +6,8 @@
|
||||||
#
|
#
|
||||||
# Note that output goes into the .xsession-errors file for easy debugging
|
# 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
|
--- gdm-3.31.91.orig/common/Makefile.am 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ b/common/Makefile.am 2018-01-19 20:10:57.572967891 +0800
|
+++ gdm-3.31.91/common/Makefile.am 2019-02-27 07:44:47.645367708 +0100
|
||||||
@@ -52,11 +52,15 @@
|
@@ -46,11 +46,15 @@ libgdmcommon_la_SOURCES = \
|
||||||
gdm-settings-backend.h \
|
gdm-settings-backend.h \
|
||||||
gdm-settings-desktop-backend.c \
|
gdm-settings-desktop-backend.c \
|
||||||
gdm-settings-desktop-backend.h \
|
gdm-settings-desktop-backend.h \
|
||||||
@ -17,11 +17,11 @@ Index: b/common/Makefile.am
|
|||||||
+ gdm-sysconfig.h \
|
+ gdm-sysconfig.h \
|
||||||
gdm-log.h \
|
gdm-log.h \
|
||||||
gdm-log.c \
|
gdm-log.c \
|
||||||
$(MKDTEMP_FILES) \
|
$(NULL)
|
||||||
Index: b/common/gdm-settings-system-backend.c
|
Index: gdm-3.31.91/common/gdm-settings-system-backend.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /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 @@
|
@@ -0,0 +1,369 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- 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);
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,56 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- 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
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
|
+#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
|
--- gdm-3.31.91.orig/common/gdm-settings.c 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ b/common/gdm-settings.c 2018-01-19 20:12:09.186231713 +0800
|
+++ gdm-3.31.91/common/gdm-settings.c 2019-02-27 07:44:47.645367708 +0100
|
||||||
@@ -38,6 +38,7 @@
|
@@ -38,6 +38,7 @@
|
||||||
#include "gdm-settings.h"
|
#include "gdm-settings.h"
|
||||||
|
|
||||||
#include "gdm-settings-desktop-backend.h"
|
#include "gdm-settings-desktop-backend.h"
|
||||||
+#include "gdm-settings-system-backend.h"
|
+#include "gdm-settings-system-backend.h"
|
||||||
|
|
||||||
#define GDM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS, GdmSettingsPrivate))
|
struct _GdmSettings
|
||||||
|
{
|
||||||
@@ -198,6 +199,8 @@
|
@@ -194,6 +195,8 @@ gdm_settings_init (GdmSettings *settings
|
||||||
if (backend)
|
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);
|
backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF);
|
||||||
if (backend)
|
if (backend)
|
||||||
settings->priv->backends = g_list_prepend (settings->priv->backends, backend);
|
settings->backends = g_list_prepend (settings->backends, backend);
|
||||||
Index: b/common/gdm-sysconfig.c
|
Index: gdm-3.31.91/common/gdm-sysconfig.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /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 @@
|
@@ -0,0 +1,484 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- 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);
|
+ g_strfreev (lines);
|
||||||
+ return result;
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,43 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- 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
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
+#endif /* __GDM_SYSCONFIG_H */
|
+#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
|
--- gdm-3.31.91.orig/data/gdm.conf-custom.in 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ b/data/gdm.conf-custom.in 2018-01-19 20:10:57.572967891 +0800
|
+++ gdm-3.31.91/data/gdm.conf-custom.in 2019-02-27 07:44:47.649367731 +0100
|
||||||
@@ -1,4 +1,7 @@
|
@@ -1,4 +1,7 @@
|
||||||
# GDM configuration storage
|
# GDM configuration storage
|
||||||
+#
|
+#
|
||||||
@ -1022,4 +1022,4 @@ Index: b/data/gdm.conf-custom.in
|
|||||||
+#
|
+#
|
||||||
|
|
||||||
[daemon]
|
[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.31.91.orig/common/gdm-common.c 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ gdm-3.26.1/common/gdm-common.c
|
+++ gdm-3.31.91/common/gdm-common.c 2019-02-27 07:47:16.998264608 +0100
|
||||||
@@ -591,6 +591,8 @@ gdm_get_script_environment (const char *
|
@@ -632,6 +632,8 @@ gdm_get_script_environment (const char *
|
||||||
|
|
||||||
if (display_hostname) {
|
if (display_hostname) {
|
||||||
g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (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 */
|
/* 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);
|
return g_string_free (s, FALSE);
|
||||||
}
|
}
|
||||||
@ -26,23 +26,23 @@ Index: gdm-3.26.1/common/gdm-common.c
|
|||||||
+ return g_strdup ("localhost");
|
+ 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.31.91.orig/common/gdm-common.h 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ gdm-3.26.1/common/gdm-common.h
|
+++ gdm-3.31.91/common/gdm-common.h 2019-02-27 07:47:16.998264608 +0100
|
||||||
@@ -54,6 +54,7 @@ const char * gdm_make_temp_dir
|
@@ -56,6 +56,7 @@ char *gdm_generate_random_bytes
|
||||||
char *gdm_generate_random_bytes (gsize size,
|
gboolean gdm_get_login_window_session_id (const char *seat_id,
|
||||||
GError **error);
|
char **session_id);
|
||||||
gboolean gdm_goto_login_session (GError **error);
|
gboolean gdm_goto_login_session (GError **error);
|
||||||
+char *gdm_gethostname (void);
|
+char *gdm_gethostname (void);
|
||||||
|
|
||||||
GPtrArray *gdm_get_script_environment (const char *username,
|
GPtrArray *gdm_get_script_environment (const char *username,
|
||||||
const char *display_name,
|
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.31.91.orig/daemon/gdm-display-access-file.c 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ gdm-3.26.1/daemon/gdm-display-access-file.c
|
+++ gdm-3.31.91/daemon/gdm-display-access-file.c 2019-02-27 07:47:16.998264608 +0100
|
||||||
@@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAc
|
@@ -441,13 +441,10 @@ _get_auth_info_for_display (GdmDisplayAc
|
||||||
*
|
*
|
||||||
* https://bugs.freedesktop.org/show_bug.cgi?id=43425
|
* 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 {
|
} else {
|
||||||
*family = FamilyWild;
|
*family = FamilyWild;
|
||||||
gdm_display_get_remote_hostname (display, address, NULL);
|
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.31.91.orig/daemon/gdm-launch-environment.c 2019-02-21 20:44:14.000000000 +0100
|
||||||
+++ gdm-3.26.1/daemon/gdm-launch-environment.c
|
+++ gdm-3.31.91/daemon/gdm-launch-environment.c 2019-02-27 07:47:16.998264608 +0100
|
||||||
@@ -201,6 +201,11 @@ build_launch_environment (GdmLaunchEnvir
|
@@ -218,6 +218,11 @@ build_launch_environment (GdmLaunchEnvir
|
||||||
g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id));
|
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 ("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"));
|
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.31.91.orig/daemon/gdm-session.c 2019-02-27 07:47:16.990264560 +0100
|
||||||
+++ gdm-3.26.1/daemon/gdm-session.c
|
+++ gdm-3.31.91/daemon/gdm-session.c 2019-02-27 07:47:16.998264608 +0100
|
||||||
@@ -2570,6 +2570,14 @@ set_up_session_environment (GdmSession *
|
@@ -2683,6 +2683,14 @@ set_up_session_environment (GdmSession *
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (self->priv->display_is_local) {
|
+ if (self->display_is_local) {
|
||||||
+ char *hostname = gdm_gethostname ();
|
+ char *hostname = gdm_gethostname ();
|
||||||
+ gdm_session_set_environment_variable (self,
|
+ gdm_session_set_environment_variable (self,
|
||||||
+ "XAUTHLOCALHOSTNAME",
|
+ "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
|
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).
|
- 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
|
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
|
back GNOME to X, the patch targets to provide a better user
|
||||||
experiences for servers with mgag200 graphic chips, which suffer
|
experiences for servers with mgag200 graphic chips, which suffer
|
||||||
the sluggish keyboard/mouse issues running GNOME on wayland
|
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).
|
initiate GNOME in a similar context (bsc#1070933).
|
||||||
|
|
||||||
With the complexity of the problem, Wayland probably needs
|
With the complexity of the problem, Wayland probably needs
|
||||||
|
116
gdm.spec
116
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
|
# 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
|
%define enable_split_authentication 0
|
||||||
Name: gdm
|
Name: gdm
|
||||||
Version: 3.28.2
|
Version: 3.32.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: The GNOME Display Manager
|
Summary: The GNOME Display Manager
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
Group: System/GUI/GNOME
|
Group: System/GUI/GNOME
|
||||||
URL: https://wiki.gnome.org/Projects/GDM
|
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
|
Source1: gdm.pamd
|
||||||
Source2: gdm-autologin.pamd
|
Source2: gdm-autologin.pamd
|
||||||
Source3: gdm-launch-environment.pamd
|
Source3: gdm-launch-environment.pamd
|
||||||
@ -40,32 +40,35 @@ Source7: X11-displaymanager-gdm
|
|||||||
Source8: autogen.sh
|
Source8: autogen.sh
|
||||||
# Use tmpfiles to create directories under /var to support transactional updates
|
# Use tmpfiles to create directories under /var to support transactional updates
|
||||||
Source9: gdm.tmpfiles
|
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
|
# Use reserveVT.conf to make autologin user session not to select tty1
|
||||||
Patch1: gdm-disable-wayland-on-unsupported-chipsets.patch
|
Source10: reserveVT.conf
|
||||||
# WARNING: do not remove/significantly change patch3 without updating the relevant patch in accountsservice too
|
# 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)
|
# 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
|
Patch0: gdm-sysconfig-settings.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
|
# 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
|
# 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.
|
# 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
|
Patch4: gdm-xauthlocalhostname.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-ignore-duplicate-session.patch xwang@suse.com -- gdm sessions entries duplicate
|
# PATCH-FIX-OPENSUSE gdm-switch-to-tty1.patch bsc#1113700 xwang@suse.com -- switch to tty1 when stopping gdm service
|
||||||
Patch36: gdm-ignore-duplicate-session.patch
|
Patch6: gdm-switch-to-tty1.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
|
# 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
|
||||||
Patch41: gdm-plymouth-vt1.patch
|
Patch7: gdm-fails-to-restart-gnome-shell.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
|
# 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
|
||||||
Patch42: gdm-fails-to-restart-gnome-shell.patch
|
Patch8: gdm-add-runtime-option-to-disable-starting-X-server-as-u.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.
|
# PATCH-FIX-UPSTREAM gdm-kill-user-session.patch bsc#1112294 glgo#GNOME/gdm#400 xwang@suse.com -- Kill all sessions when stopping gdm service
|
||||||
Patch43: gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
|
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).
|
### 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.
|
# 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
|
BuildRequires: check-devel
|
||||||
# needed for directory ownership
|
# dconf and gnome-session-core are needed for directory ownership
|
||||||
BuildRequires: dconf
|
BuildRequires: dconf
|
||||||
# needed for directory ownership
|
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gnome-common
|
BuildRequires: gnome-common
|
||||||
BuildRequires: gnome-session-core
|
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.
|
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
|
%package -n gdmflexiserver
|
||||||
Summary: Compatibility Wrapper for Display Managers
|
Summary: Compatibility Wrapper for Display Managers
|
||||||
Group: System/GUI/GNOME
|
Group: System/GUI/GNOME
|
||||||
@ -193,18 +208,25 @@ running display manager.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
cp %{SOURCE8} .
|
cp %{SOURCE8} .
|
||||||
%patch1 -p1
|
%patch0 -p1
|
||||||
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch6 -p1
|
||||||
%patch7 -p1
|
%patch7 -p1
|
||||||
%patch34 -p1
|
%patch8 -p1
|
||||||
%patch35 -p1
|
%patch11 -p1
|
||||||
%patch36 -p1
|
%ifarch s390 s390x
|
||||||
%patch41 -p1
|
%patch13 -p1
|
||||||
%patch42 -p1
|
%endif
|
||||||
%patch43 -p1
|
%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
|
# SLE-only patches start at 1000
|
||||||
%if !0%{?is_opensuse}
|
%if !0%{?is_opensuse}
|
||||||
%patch1002 -p1
|
%patch1000 -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -233,14 +255,13 @@ autoreconf -fiv
|
|||||||
--disable-split-authentication \
|
--disable-split-authentication \
|
||||||
%endif
|
%endif
|
||||||
--with-initial-vt=7 \
|
--with-initial-vt=7 \
|
||||||
--with-run-dir=/run/gdm
|
--with-run-dir=/run/gdm \
|
||||||
|
--with-udevdir=%{_prefix}/lib/udev
|
||||||
%make_build V=1
|
%make_build V=1
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install
|
||||||
find %{buildroot} -type f -name "*.la" -delete -print
|
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.
|
## Install PAM files.
|
||||||
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
|
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
|
||||||
# Generic pam config
|
# Generic pam config
|
||||||
@ -273,7 +294,6 @@ install -D -m 644 %{SOURCE7} %{buildroot}%{_libexecdir}/X11/displaymanagers/gdm
|
|||||||
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
|
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
|
||||||
touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager
|
touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager
|
||||||
ln -s %{_sysconfdir}/alternatives/default-displaymanager %{buildroot}%{_libexecdir}/X11/displaymanagers/default-displaymanager
|
ln -s %{_sysconfdir}/alternatives/default-displaymanager %{buildroot}%{_libexecdir}/X11/displaymanagers/default-displaymanager
|
||||||
|
|
||||||
# Install other files
|
# Install other files
|
||||||
mkdir -p %{buildroot}/run/gdm
|
mkdir -p %{buildroot}/run/gdm
|
||||||
mkdir -p %{buildroot}%{_bindir}
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
@ -282,6 +302,9 @@ ln -s ../sbin/gdm %{buildroot}%{_bindir}/gdm
|
|||||||
mkdir -p %{buildroot}%{_prefix}/lib/tmpfiles.d
|
mkdir -p %{buildroot}%{_prefix}/lib/tmpfiles.d
|
||||||
install -m 644 %{SOURCE9} %{buildroot}%{_prefix}/lib/tmpfiles.d/gdm.conf
|
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}
|
%find_lang %{name} %{?no_lang_C}
|
||||||
%fdupes -s %{buildroot}%{_datadir}/help
|
%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 \
|
%{_sbindir}/useradd -r -g gdm -G video -s /bin/false \
|
||||||
-c "Gnome Display Manager daemon" -d %{_localstatedir}/lib/gdm gdm 2> /dev/null || :
|
-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
|
%{_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
|
%post
|
||||||
%tmpfiles_create gdm.conf
|
%tmpfiles_create gdm.conf
|
||||||
@ -331,7 +332,7 @@ dconf update
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%doc AUTHORS ChangeLog NEWS README
|
%doc AUTHORS NEWS README.md
|
||||||
%doc %{_datadir}/help/C/%{name}/
|
%doc %{_datadir}/help/C/%{name}/
|
||||||
%dir %config %{_sysconfdir}/gdm
|
%dir %config %{_sysconfdir}/gdm
|
||||||
%config %{_sysconfdir}/gdm/[IPXl]*
|
%config %{_sysconfdir}/gdm/[IPXl]*
|
||||||
@ -370,6 +371,8 @@ dconf update
|
|||||||
%ghost %{_sysconfdir}/alternatives/default-displaymanager
|
%ghost %{_sysconfdir}/alternatives/default-displaymanager
|
||||||
%{_udevrulesdir}/61-gdm.rules
|
%{_udevrulesdir}/61-gdm.rules
|
||||||
%{_libexecdir}/tmpfiles.d/gdm.conf
|
%{_libexecdir}/tmpfiles.d/gdm.conf
|
||||||
|
%dir %{_libexecdir}/systemd/logind.conf.d
|
||||||
|
%{_libexecdir}/systemd/logind.conf.d/reserveVT.conf
|
||||||
|
|
||||||
%files -n libgdm1
|
%files -n libgdm1
|
||||||
%{_libdir}/libgdm.so.*
|
%{_libdir}/libgdm.so.*
|
||||||
@ -387,6 +390,9 @@ dconf update
|
|||||||
%files branding-upstream
|
%files branding-upstream
|
||||||
%config(noreplace) %{_sysconfdir}/gdm/custom.conf
|
%config(noreplace) %{_sysconfdir}/gdm/custom.conf
|
||||||
|
|
||||||
|
%files systemd
|
||||||
|
%{systemdsystemunitdir}/gdm.service
|
||||||
|
|
||||||
%files -n gdmflexiserver
|
%files -n gdmflexiserver
|
||||||
%{_bindir}/gdmflexiserver
|
%{_bindir}/gdmflexiserver
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
+d /var/lib/gdm/ 0750 gdm gdm -
|
d /var/lib/gdm/ 0750 gdm gdm -
|
||||||
+d /var/log/gdm/ 0711 root gdm -
|
d /var/log/gdm/ 0711 root gdm -
|
||||||
+d /var/cache/gdm/ 1755 root root -
|
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