Dominique Leuenberger 2019-04-15 08:19:53 +00:00 committed by Git OBS Bridge
parent da90ae06e2
commit fe264016b9
15 changed files with 233 additions and 663 deletions

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.19.2.orig/daemon/gdm-session.c
+++ gdm-3.29.90/daemon/gdm-session.c 2018-08-04 00:31:42.875646365 +0200 +++ gdm-3.19.2/daemon/gdm-session.c
@@ -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,7 +11,7 @@ Index: gdm-3.29.90/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"
@@ -541,6 +543,14 @@ get_fallback_session_name (GdmSession *s @@ -523,6 +525,14 @@ get_fallback_session_name (GdmSession *s
} }
} }

@ -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 diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
=================================================================== index ab84ba4..e1d0996 100644
--- gdm-3.29.90.orig/daemon/gdm-display.c 2018-08-03 16:20:47.000000000 +0200 --- a/daemon/gdm-display.c
+++ gdm-3.29.90/daemon/gdm-display.c 2018-08-04 00:31:42.919646968 +0200 +++ b/daemon/gdm-display.c
@@ -706,7 +706,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 (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);
}

@ -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

@ -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 --- a/common/Makefile.am 2018-01-19 20:09:39.075556951 +0800
+++ gdm-3.29.90/common/Makefile.am 2018-08-04 00:23:24.620553113 +0200 +++ b/common/Makefile.am 2018-01-19 20:10:57.572967891 +0800
@@ -46,11 +46,15 @@ libgdmcommon_la_SOURCES = \ @@ -52,11 +52,15 @@
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: gdm-3.29.90/common/Makefile.am
+ gdm-sysconfig.h \ + gdm-sysconfig.h \
gdm-log.h \ gdm-log.h \
gdm-log.c \ gdm-log.c \
$(NULL) $(MKDTEMP_FILES) \
Index: gdm-3.29.90/common/gdm-settings-system-backend.c Index: b/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
+++ 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 @@ @@ -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: gdm-3.29.90/common/gdm-settings-system-backend.c
+ +
+ return GDM_SETTINGS_BACKEND (object); + 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 --- /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 @@ @@ -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,10 +453,10 @@ Index: gdm-3.29.90/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: 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 --- a/common/gdm-settings.c 2018-01-19 20:10:02.587982412 +0800
+++ gdm-3.29.90/common/gdm-settings.c 2018-08-04 00:23:24.620553113 +0200 +++ b/common/gdm-settings.c 2018-01-19 20:12:09.186231713 +0800
@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
#include "gdm-settings.h" #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)) #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) if (backend)
settings->priv->backends = g_list_prepend (NULL, 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); backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF);
if (backend) if (backend)
settings->priv->backends = g_list_prepend (settings->priv->backends, 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 --- /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 @@ @@ -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: gdm-3.29.90/common/gdm-sysconfig.c
+ g_strfreev (lines); + g_strfreev (lines);
+ return result; + 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 --- /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 @@ @@ -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: gdm-3.29.90/common/gdm-sysconfig.h
+G_END_DECLS +G_END_DECLS
+ +
+#endif /* __GDM_SYSCONFIG_H */ +#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 --- a/data/gdm.conf-custom.in 2018-01-19 20:09:39.075556951 +0800
+++ gdm-3.29.90/data/gdm.conf-custom.in 2018-08-04 00:23:24.624553173 +0200 +++ b/data/gdm.conf-custom.in 2018-01-19 20:10:57.572967891 +0800
@@ -1,4 +1,7 @@ @@ -1,4 +1,7 @@
# GDM configuration storage # GDM configuration storage
+# +#
@ -1022,4 +1022,4 @@ Index: gdm-3.29.90/data/gdm.conf-custom.in
+# +#
[daemon] [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.26.1.orig/common/gdm-common.c
+++ gdm-3.29.90/common/gdm-common.c 2018-08-04 00:26:09.874978033 +0200 +++ gdm-3.26.1/common/gdm-common.c
@@ -628,6 +628,8 @@ gdm_get_script_environment (const char * @@ -591,6 +591,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.29.90/common/gdm-common.c
} }
/* Runs as root */ /* 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); return g_string_free (s, FALSE);
} }
@ -26,22 +26,22 @@ Index: gdm-3.29.90/common/gdm-common.c
+ return g_strdup ("localhost"); + 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.26.1.orig/common/gdm-common.h
+++ gdm-3.29.90/common/gdm-common.h 2018-08-04 00:26:09.874978033 +0200 +++ gdm-3.26.1/common/gdm-common.h
@@ -56,6 +56,7 @@ char *gdm_generate_random_bytes @@ -54,6 +54,7 @@ const char * gdm_make_temp_dir
gboolean gdm_get_login_window_session_id (const char *seat_id, char *gdm_generate_random_bytes (gsize size,
char **session_id); GError **error);
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.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.26.1.orig/daemon/gdm-display-access-file.c
+++ gdm-3.29.90/daemon/gdm-display-access-file.c 2018-08-04 00:26:09.874978033 +0200 +++ gdm-3.26.1/daemon/gdm-display-access-file.c
@@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAc @@ -443,13 +443,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.29.90/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.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.26.1.orig/daemon/gdm-launch-environment.c
+++ gdm-3.29.90/daemon/gdm-launch-environment.c 2018-08-04 00:26:09.874978033 +0200 +++ gdm-3.26.1/daemon/gdm-launch-environment.c
@@ -218,6 +218,11 @@ build_launch_environment (GdmLaunchEnvir @@ -201,6 +201,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,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 ("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; g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup ("true"));
Index: gdm-3.29.90/daemon/gdm-session.c 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.26.1.orig/daemon/gdm-session.c
+++ gdm-3.29.90/daemon/gdm-session.c 2018-08-04 00:26:09.874978033 +0200 +++ gdm-3.26.1/daemon/gdm-session.c
@@ -2578,6 +2578,14 @@ set_up_session_environment (GdmSession * @@ -2570,6 +2570,14 @@ set_up_session_environment (GdmSession *
} }
} }

@ -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 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). - 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
@ -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 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

@ -12,23 +12,21 @@
# license that conforms to the Open Source Definition (Version 1.9) # license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative. # 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) %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 # 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.30.3 Version: 3.28.2
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
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 Source1: gdm.pamd
Source2: gdm-autologin.pamd Source2: gdm-autologin.pamd
Source3: gdm-launch-environment.pamd Source3: gdm-launch-environment.pamd
@ -40,36 +38,32 @@ Source6: gdmflexiserver-wrapper
Source7: X11-displaymanager-gdm Source7: X11-displaymanager-gdm
# GDM does not boostrap using gnome-autogen.sh, but has it's own bootstrap script # GDM does not boostrap using gnome-autogen.sh, but has it's own bootstrap script
Source8: autogen.sh Source8: autogen.sh
# 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
# WARNING: do not remove/significantly change patch0 without updating the relevant patch in accountsservice too 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) # 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 # 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 # 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. # 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 Patch35: gdm-xauthlocalhostname.patch
# PATCH-FIX-OPENSUSE gdm-switch-to-tty1.patch bsc#1113700 xwang@suse.com -- switch to tty1 when stopping gdm service # PATCH-FIX-OPENSUSE gdm-ignore-duplicate-session.patch xwang@suse.com -- gdm sessions entries duplicate
Patch6: gdm-switch-to-tty1.patch 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 # 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 Patch42: 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 # 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.
Patch8: gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch Patch43: 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
### 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.
Patch1000: gdm-disable-gnome-initial-setup.patch Patch1002: gdm-disable-gnome-initial-setup.patch
BuildRequires: check-devel BuildRequires: check-devel
# dconf and gnome-session-core are needed for directory ownership # 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
@ -197,23 +191,18 @@ running display manager.
%prep %prep
%setup -q %setup -q
cp %{SOURCE8} . cp %{SOURCE8} .
%patch0 -p1 %patch1 -p1
%patch2 -p1
%patch3 -p1 %patch3 -p1
%patch4 -p1
%patch6 -p1
%patch7 -p1 %patch7 -p1
#patch8 -p1 %patch34 -p1
%patch9 -p1 %patch35 -p1
%patch11 -p1 %patch36 -p1
%patch12 -p1 %patch41 -p1
%patch42 -p1
# TODO: Hack still needed until https://gitlab.gnome.org/GNOME/gdm/issues/424 gets fixed and released. %patch43 -p1
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}
%patch1000 -p1 %patch1002 -p1
%endif %endif
%build %build
@ -242,8 +231,7 @@ 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=/usr/lib/udev
%make_build V=1 %make_build V=1
%install %install
@ -283,6 +271,7 @@ 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}%{_localstatedir}/log/gdm mkdir -p %{buildroot}%{_localstatedir}/log/gdm
mkdir -p %{buildroot}/run/gdm mkdir -p %{buildroot}/run/gdm
@ -336,7 +325,7 @@ dconf update
%files %files
%license COPYING %license COPYING
%doc AUTHORS NEWS README.md %doc AUTHORS ChangeLog NEWS README
%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]*