SHA256
1
0
forked from pool/gdm
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
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6041a07fbbd28f6e55a15abea6fb650c8ab6988df557da320bd6983e4009b571
size 1122352

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5301fc76e92124a13e123af8eb04af089a249d0200ad8df07a7996f3cfa7c795
size 1261224

View File

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

View 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'"

View File

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

View File

@ -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);
}

View 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();
}
/**

View File

@ -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
View 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;
}

View File

@ -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");

View File

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

View File

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

View File

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

View File

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

View File

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