This commit is contained in:
parent
da90ae06e2
commit
fe264016b9
3
gdm-3.28.2.tar.xz
Normal file
3
gdm-3.28.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6041a07fbbd28f6e55a15abea6fb650c8ab6988df557da320bd6983e4009b571
|
||||
size 1122352
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5301fc76e92124a13e123af8eb04af089a249d0200ad8df07a7996f3cfa7c795
|
||||
size 1261224
|
@ -1,7 +1,7 @@
|
||||
Index: gdm-3.29.90/daemon/gdm-session.c
|
||||
Index: gdm-3.19.2/daemon/gdm-session.c
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/daemon/gdm-session.c 2018-08-03 16:20:50.000000000 +0200
|
||||
+++ gdm-3.29.90/daemon/gdm-session.c 2018-08-04 00:31:42.875646365 +0200
|
||||
--- gdm-3.19.2.orig/daemon/gdm-session.c
|
||||
+++ gdm-3.19.2/daemon/gdm-session.c
|
||||
@@ -43,6 +43,8 @@
|
||||
#include <glib-object.h>
|
||||
#include <gio/gio.h>
|
||||
@ -11,7 +11,7 @@ Index: gdm-3.29.90/daemon/gdm-session.c
|
||||
#include "gdm-session.h"
|
||||
#include "gdm-session-glue.h"
|
||||
#include "gdm-dbus-util.h"
|
||||
@@ -541,6 +543,14 @@ get_fallback_session_name (GdmSession *s
|
||||
@@ -523,6 +525,14 @@ get_fallback_session_name (GdmSession *s
|
||||
}
|
||||
}
|
||||
|
||||
|
23
gdm-disable-wayland-on-unsupported-chipsets.patch
Normal file
23
gdm-disable-wayland-on-unsupported-chipsets.patch
Normal file
@ -0,0 +1,23 @@
|
||||
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,8 +1,8 @@
|
||||
Index: gdm-3.29.90/daemon/gdm-display.c
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/daemon/gdm-display.c 2018-08-03 16:20:47.000000000 +0200
|
||||
+++ gdm-3.29.90/daemon/gdm-display.c 2018-08-04 00:31:42.919646968 +0200
|
||||
@@ -706,7 +706,7 @@ gdm_display_unmanage (GdmDisplay *self)
|
||||
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)
|
||||
}
|
||||
|
||||
elapsed = g_timer_elapsed (self->priv->server_timer, NULL);
|
||||
|
@ -1,48 +0,0 @@
|
||||
diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
|
||||
index 7badafe..2aafce1 100644
|
||||
--- a/libgdm/gdm-sessions.c
|
||||
+++ b/libgdm/gdm-sessions.c
|
||||
@@ -111,6 +111,17 @@ key_file_is_relevant (GKeyFile *key_file)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+find_translated_name (gpointer key,
|
||||
+ gpointer value,
|
||||
+ gpointer user_data)
|
||||
+{
|
||||
+ char *id = key;
|
||||
+ GdmSessionFile *session = value;
|
||||
+ char *translated_name = user_data;
|
||||
+ return g_strcmp0 (session->translated_name, translated_name) == 0;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
load_session_file (const char *id,
|
||||
const char *path)
|
||||
@@ -118,7 +129,7 @@ load_session_file (const char *id,
|
||||
GKeyFile *key_file;
|
||||
GError *error;
|
||||
gboolean res;
|
||||
- GdmSessionFile *session;
|
||||
+ GdmSessionFile *session, *psession;
|
||||
|
||||
key_file = g_key_file_new ();
|
||||
|
||||
@@ -154,9 +165,13 @@ 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);
|
||||
|
||||
- g_hash_table_insert (gdm_available_sessions_map,
|
||||
- g_strdup (id),
|
||||
- session);
|
||||
+ psession = g_hash_table_find (gdm_available_sessions_map, find_translated_name, session->translated_name);
|
||||
+
|
||||
+ if(psession)
|
||||
+ g_hash_table_remove (gdm_available_sessions_map, psession->id);
|
||||
+
|
||||
+ g_hash_table_insert (gdm_available_sessions_map, g_strdup (id), session);
|
||||
+
|
||||
out:
|
||||
g_key_file_free (key_file);
|
||||
}
|
56
gdm-ignore-duplicate-session.patch
Normal file
56
gdm-ignore-duplicate-session.patch
Normal file
@ -0,0 +1,56 @@
|
||||
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();
|
||||
}
|
||||
|
||||
/**
|
@ -1,264 +0,0 @@
|
||||
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_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);
|
65
gdm-plymouth-vt1.patch
Normal file
65
gdm-plymouth-vt1.patch
Normal file
@ -0,0 +1,65 @@
|
||||
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;
|
||||
}
|
||||
|
@ -1,26 +0,0 @@
|
||||
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
||||
index b1e9b68b..ea328381 100644
|
||||
--- a/daemon/gdm-manager.c
|
||||
+++ b/daemon/gdm-manager.c
|
||||
@@ -1273,6 +1273,7 @@ set_up_automatic_login_session (GdmManager *manager,
|
||||
{
|
||||
GdmSession *session;
|
||||
char *display_session_type = NULL;
|
||||
+ gboolean is_initial;
|
||||
|
||||
/* 0 is root user; since the daemon talks to the session object
|
||||
* directly, itself, for automatic login
|
||||
@@ -1280,11 +1281,12 @@ set_up_automatic_login_session (GdmManager *manager,
|
||||
session = create_user_session_for_display (manager, display, 0);
|
||||
|
||||
g_object_get (G_OBJECT (display),
|
||||
+ "is-initial", &is_initial,
|
||||
"session-type", &display_session_type,
|
||||
NULL);
|
||||
|
||||
g_object_set (G_OBJECT (session),
|
||||
- "display-is-initial", FALSE,
|
||||
+ "display-is-initial", is_initial,
|
||||
NULL);
|
||||
|
||||
g_debug ("GdmManager: Starting automatic login conversation");
|
@ -1,43 +0,0 @@
|
||||
Index: gdm-3.30.2/daemon/main.c
|
||||
===================================================================
|
||||
--- gdm-3.30.2.orig/daemon/main.c
|
||||
+++ gdm-3.30.2/daemon/main.c
|
||||
@@ -61,6 +61,29 @@ 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\;\
|
||||
+/usr/bin/chvt 1\'\
|
||||
+"
|
||||
+
|
||||
+static void
|
||||
+jump_to_tty1 ()
|
||||
+{
|
||||
+ g_autoptr(GError) error = NULL;
|
||||
+
|
||||
+ 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)
|
||||
{
|
||||
@@ -402,6 +425,8 @@ main (int argc,
|
||||
gdm_settings_direct_shutdown ();
|
||||
gdm_log_shutdown ();
|
||||
|
||||
+ jump_to_tty1 ();
|
||||
+
|
||||
g_main_loop_unref (main_loop);
|
||||
|
||||
return EXIT_SUCCESS;
|
@ -1,8 +1,8 @@
|
||||
Index: gdm-3.29.90/common/Makefile.am
|
||||
Index: b/common/Makefile.am
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/common/Makefile.am 2018-08-01 20:59:59.000000000 +0200
|
||||
+++ gdm-3.29.90/common/Makefile.am 2018-08-04 00:23:24.620553113 +0200
|
||||
@@ -46,11 +46,15 @@ libgdmcommon_la_SOURCES = \
|
||||
--- 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-settings-backend.h \
|
||||
gdm-settings-desktop-backend.c \
|
||||
gdm-settings-desktop-backend.h \
|
||||
@ -17,11 +17,11 @@ Index: gdm-3.29.90/common/Makefile.am
|
||||
+ gdm-sysconfig.h \
|
||||
gdm-log.h \
|
||||
gdm-log.c \
|
||||
$(NULL)
|
||||
Index: gdm-3.29.90/common/gdm-settings-system-backend.c
|
||||
$(MKDTEMP_FILES) \
|
||||
Index: b/common/gdm-settings-system-backend.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdm-3.29.90/common/gdm-settings-system-backend.c 2018-08-04 00:23:24.620553113 +0200
|
||||
+++ b/common/gdm-settings-system-backend.c 2018-01-19 20:10:57.572967891 +0800
|
||||
@@ -0,0 +1,369 @@
|
||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||
+ *
|
||||
@ -392,10 +392,10 @@ Index: gdm-3.29.90/common/gdm-settings-system-backend.c
|
||||
+
|
||||
+ return GDM_SETTINGS_BACKEND (object);
|
||||
+}
|
||||
Index: gdm-3.29.90/common/gdm-settings-system-backend.h
|
||||
Index: b/common/gdm-settings-system-backend.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdm-3.29.90/common/gdm-settings-system-backend.h 2018-08-04 00:23:24.620553113 +0200
|
||||
+++ b/common/gdm-settings-system-backend.h 2018-01-19 20:10:57.572967891 +0800
|
||||
@@ -0,0 +1,56 @@
|
||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||
+ *
|
||||
@ -453,10 +453,10 @@ Index: gdm-3.29.90/common/gdm-settings-system-backend.h
|
||||
+G_END_DECLS
|
||||
+
|
||||
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
|
||||
Index: gdm-3.29.90/common/gdm-settings.c
|
||||
Index: b/common/gdm-settings.c
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/common/gdm-settings.c 2018-06-26 19:59:06.000000000 +0200
|
||||
+++ gdm-3.29.90/common/gdm-settings.c 2018-08-04 00:23:24.620553113 +0200
|
||||
--- 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
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "gdm-settings.h"
|
||||
|
||||
@ -465,7 +465,7 @@ Index: gdm-3.29.90/common/gdm-settings.c
|
||||
|
||||
#define GDM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS, GdmSettingsPrivate))
|
||||
|
||||
@@ -198,6 +199,8 @@ gdm_settings_init (GdmSettings *settings
|
||||
@@ -198,6 +199,8 @@
|
||||
if (backend)
|
||||
settings->priv->backends = g_list_prepend (NULL, backend);
|
||||
|
||||
@ -474,10 +474,10 @@ Index: gdm-3.29.90/common/gdm-settings.c
|
||||
backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF);
|
||||
if (backend)
|
||||
settings->priv->backends = g_list_prepend (settings->priv->backends, backend);
|
||||
Index: gdm-3.29.90/common/gdm-sysconfig.c
|
||||
Index: b/common/gdm-sysconfig.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdm-3.29.90/common/gdm-sysconfig.c 2018-08-04 00:23:24.620553113 +0200
|
||||
+++ b/common/gdm-sysconfig.c 2018-01-19 20:10:57.572967891 +0800
|
||||
@@ -0,0 +1,484 @@
|
||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||
+ *
|
||||
@ -963,10 +963,10 @@ Index: gdm-3.29.90/common/gdm-sysconfig.c
|
||||
+ g_strfreev (lines);
|
||||
+ return result;
|
||||
+}
|
||||
Index: gdm-3.29.90/common/gdm-sysconfig.h
|
||||
Index: b/common/gdm-sysconfig.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdm-3.29.90/common/gdm-sysconfig.h 2018-08-04 00:23:24.624553173 +0200
|
||||
+++ b/common/gdm-sysconfig.h 2018-01-19 20:10:57.572967891 +0800
|
||||
@@ -0,0 +1,43 @@
|
||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||
+ *
|
||||
@ -1011,10 +1011,10 @@ Index: gdm-3.29.90/common/gdm-sysconfig.h
|
||||
+G_END_DECLS
|
||||
+
|
||||
+#endif /* __GDM_SYSCONFIG_H */
|
||||
Index: gdm-3.29.90/data/gdm.conf-custom.in
|
||||
Index: b/data/gdm.conf-custom.in
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/data/gdm.conf-custom.in 2018-08-01 21:00:01.000000000 +0200
|
||||
+++ gdm-3.29.90/data/gdm.conf-custom.in 2018-08-04 00:23:24.624553173 +0200
|
||||
--- 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
|
||||
@@ -1,4 +1,7 @@
|
||||
# GDM configuration storage
|
||||
+#
|
||||
@ -1022,4 +1022,4 @@ Index: gdm-3.29.90/data/gdm.conf-custom.in
|
||||
+#
|
||||
|
||||
[daemon]
|
||||
# Uncomment the line below to force the login screen to use Xorg
|
||||
# Uncoment the line below to force the login screen to use Xorg
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdm-3.29.90/common/gdm-common.c
|
||||
Index: gdm-3.26.1/common/gdm-common.c
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/common/gdm-common.c 2018-08-02 22:02:19.000000000 +0200
|
||||
+++ gdm-3.29.90/common/gdm-common.c 2018-08-04 00:26:09.874978033 +0200
|
||||
@@ -628,6 +628,8 @@ gdm_get_script_environment (const char *
|
||||
--- 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 *
|
||||
|
||||
if (display_hostname) {
|
||||
g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup (display_hostname));
|
||||
@ -11,7 +11,7 @@ Index: gdm-3.29.90/common/gdm-common.c
|
||||
}
|
||||
|
||||
/* Runs as root */
|
||||
@@ -839,3 +841,14 @@ gdm_shell_expand (const char *str,
|
||||
@@ -797,3 +799,14 @@ gdm_shell_expand (const char *str,
|
||||
}
|
||||
return g_string_free (s, FALSE);
|
||||
}
|
||||
@ -26,22 +26,22 @@ Index: gdm-3.29.90/common/gdm-common.c
|
||||
+ return g_strdup ("localhost");
|
||||
+ }
|
||||
+}
|
||||
Index: gdm-3.29.90/common/gdm-common.h
|
||||
Index: gdm-3.26.1/common/gdm-common.h
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/common/gdm-common.h 2018-08-02 22:02:19.000000000 +0200
|
||||
+++ gdm-3.29.90/common/gdm-common.h 2018-08-04 00:26:09.874978033 +0200
|
||||
@@ -56,6 +56,7 @@ char *gdm_generate_random_bytes
|
||||
gboolean gdm_get_login_window_session_id (const char *seat_id,
|
||||
char **session_id);
|
||||
--- 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);
|
||||
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.29.90/daemon/gdm-display-access-file.c
|
||||
Index: gdm-3.26.1/daemon/gdm-display-access-file.c
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/daemon/gdm-display-access-file.c 2018-08-03 16:20:47.000000000 +0200
|
||||
+++ gdm-3.29.90/daemon/gdm-display-access-file.c 2018-08-04 00:26:09.874978033 +0200
|
||||
--- 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
|
||||
*
|
||||
* https://bugs.freedesktop.org/show_bug.cgi?id=43425
|
||||
@ -59,11 +59,11 @@ Index: gdm-3.29.90/daemon/gdm-display-access-file.c
|
||||
} else {
|
||||
*family = FamilyWild;
|
||||
gdm_display_get_remote_hostname (display, address, NULL);
|
||||
Index: gdm-3.29.90/daemon/gdm-launch-environment.c
|
||||
Index: gdm-3.26.1/daemon/gdm-launch-environment.c
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/daemon/gdm-launch-environment.c 2018-08-03 16:20:48.000000000 +0200
|
||||
+++ gdm-3.29.90/daemon/gdm-launch-environment.c 2018-08-04 00:26:09.874978033 +0200
|
||||
@@ -218,6 +218,11 @@ build_launch_environment (GdmLaunchEnvir
|
||||
--- 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
|
||||
g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup (seat_id));
|
||||
}
|
||||
|
||||
@ -72,14 +72,14 @@ Index: gdm-3.29.90/daemon/gdm-launch-environment.c
|
||||
+ g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), gdm_gethostname ());
|
||||
+ }
|
||||
+
|
||||
g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true"));
|
||||
g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv ("PATH")));
|
||||
|
||||
return hash;
|
||||
Index: gdm-3.29.90/daemon/gdm-session.c
|
||||
g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true"));
|
||||
Index: gdm-3.26.1/daemon/gdm-session.c
|
||||
===================================================================
|
||||
--- gdm-3.29.90.orig/daemon/gdm-session.c 2018-08-04 00:26:09.862977860 +0200
|
||||
+++ gdm-3.29.90/daemon/gdm-session.c 2018-08-04 00:26:09.874978033 +0200
|
||||
@@ -2578,6 +2578,14 @@ set_up_session_environment (GdmSession *
|
||||
--- 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 *
|
||||
}
|
||||
}
|
||||
|
||||
|
184
gdm.changes
184
gdm.changes
@ -1,175 +1,3 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 19 09:07:58 UTC 2019 - xwang@suse.com
|
||||
|
||||
- Add gdm-revert-commit-39fb4ff.patch: Make auto login successful
|
||||
(bsc#1116011).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 27 06:21:03 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 Feb 20 07:10:14 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 12 10:49:15 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)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 21 02:48:21 UTC 2018 - 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 Nov 7 06:28:27 UTC 2018 - 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 13 01:04:41 UTC 2018 - 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 1 21:18:00 UTC 2018 - luc14n0@linuxmail.org
|
||||
|
||||
- Re-add still needed 61-gdm.rules removal until glgo#GNOME/gdm#424
|
||||
gets fixed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 26 10:45:19 UTC 2018 - 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 Sep 5 02:42:59 UTC 2018 - 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 1 19:20:01 UTC 2018 - 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 24 03:29:91 UTC 2018 - 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 23 15:03:13 UTC 2018 - 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 Aug 15 23:53:20 UTC 2018 - 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 Aug 15 06:50:36 UTC 2018 - 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).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 3 22:16:38 UTC 2018 - 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 31 12:43:52 UTC 2018 - bwiedemann@suse.com
|
||||
|
||||
@ -181,16 +9,6 @@ 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
|
||||
|
||||
@ -272,7 +90,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
|
||||
|
73
gdm.spec
73
gdm.spec
@ -12,23 +12,21 @@
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define systemdsystemunitdir %(pkg-config --variable=systemdsystemunitdir systemd)
|
||||
# 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.30.3
|
||||
Version: 3.28.2
|
||||
Release: 0
|
||||
Summary: The GNOME Display Manager
|
||||
License: GPL-2.0-or-later
|
||||
Group: System/GUI/GNOME
|
||||
URL: https://wiki.gnome.org/Projects/GDM
|
||||
Source0: https://download.gnome.org/sources/gdm/3.30/%{name}-%{version}.tar.xz
|
||||
|
||||
Source: http://download.gnome.org/sources/gdm/3.28/%{name}-%{version}.tar.xz
|
||||
Source1: gdm.pamd
|
||||
Source2: gdm-autologin.pamd
|
||||
Source3: gdm-launch-environment.pamd
|
||||
@ -40,36 +38,32 @@ Source6: gdmflexiserver-wrapper
|
||||
Source7: X11-displaymanager-gdm
|
||||
# GDM does not boostrap using gnome-autogen.sh, but has it's own bootstrap script
|
||||
Source8: autogen.sh
|
||||
|
||||
# WARNING: do not remove/significantly change patch0 without updating the relevant patch in accountsservice too
|
||||
# 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)
|
||||
Patch0: gdm-sysconfig-settings.patch
|
||||
Patch3: gdm-sysconfig-settings.patch
|
||||
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
|
||||
Patch2: gdm-suse-xsession.patch
|
||||
Patch7: 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
|
||||
Patch3: gdm-default-wm.patch
|
||||
Patch34: 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.
|
||||
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
|
||||
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
|
||||
Patch7: gdm-fails-to-restart-gnome-shell.patch
|
||||
# PATCH-NEEDS-REBASE 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. WAS: PATCH-FIX-UPSTREAM, rejected upstream
|
||||
Patch8: gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
|
||||
# PATCH-FIX-UPSTREAM gdm-ignore-duplicate-desktop-file.patch bsc#1112834 glgo#GNOME/gdm#437 qzheng@suse.com -- Ignore duplicate desktop file with same "Name".
|
||||
Patch9: gdm-ignore-duplicate-desktop-file.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-revert-commit-39fb4ff.patch bsc#1116011 xwang@suse.com -- Revert commit 39fb4ff to make auto login successful
|
||||
Patch12: gdm-revert-commit-39fb4ff.patch
|
||||
|
||||
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
|
||||
### 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.
|
||||
Patch1000: gdm-disable-gnome-initial-setup.patch
|
||||
|
||||
Patch1002: gdm-disable-gnome-initial-setup.patch
|
||||
BuildRequires: check-devel
|
||||
# dconf and gnome-session-core are needed for directory ownership
|
||||
# needed for directory ownership
|
||||
BuildRequires: dconf
|
||||
# needed for directory ownership
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gnome-common
|
||||
BuildRequires: gnome-session-core
|
||||
@ -197,23 +191,18 @@ running display manager.
|
||||
%prep
|
||||
%setup -q
|
||||
cp %{SOURCE8} .
|
||||
%patch0 -p1
|
||||
%patch2 -p1
|
||||
%patch1 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
#patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
|
||||
# TODO: Hack still needed until https://gitlab.gnome.org/GNOME/gdm/issues/424 gets fixed and released.
|
||||
rm data/61-gdm.rules
|
||||
|
||||
%patch34 -p1
|
||||
%patch35 -p1
|
||||
%patch36 -p1
|
||||
%patch41 -p1
|
||||
%patch42 -p1
|
||||
%patch43 -p1
|
||||
# SLE-only patches start at 1000
|
||||
%if !0%{?is_opensuse}
|
||||
%patch1000 -p1
|
||||
%patch1002 -p1
|
||||
%endif
|
||||
|
||||
%build
|
||||
@ -242,8 +231,7 @@ autoreconf -fiv
|
||||
--disable-split-authentication \
|
||||
%endif
|
||||
--with-initial-vt=7 \
|
||||
--with-run-dir=/run/gdm \
|
||||
--with-udevdir=/usr/lib/udev
|
||||
--with-run-dir=/run/gdm
|
||||
%make_build V=1
|
||||
|
||||
%install
|
||||
@ -283,6 +271,7 @@ 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}%{_localstatedir}/log/gdm
|
||||
mkdir -p %{buildroot}/run/gdm
|
||||
@ -336,7 +325,7 @@ dconf update
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc AUTHORS NEWS README.md
|
||||
%doc AUTHORS ChangeLog NEWS README
|
||||
%doc %{_datadir}/help/C/%{name}/
|
||||
%dir %config %{_sysconfdir}/gdm
|
||||
%config %{_sysconfdir}/gdm/[IPXl]*
|
||||
|
Loading…
x
Reference in New Issue
Block a user