Accepting request 287921 from home:fcrozat:branches:GNOME:Factory

- Update gdm-sysconfig-settings.patch / X11-displaymanager-gdm: fix
  support for DISPLAYMANAGER_STARTS_XSERVER from
  /etc/sysconfig/displaymanager.
- Add gdm-correct-ShowLocalGreeter-standalone-XDMCP-server.patch:
  ensure ShowLocalGreeter configuration key is properly handled
  (bgo#743440).

OBS-URL: https://build.opensuse.org/request/show/287921
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=282
This commit is contained in:
Dominique Leuenberger 2015-02-27 10:39:04 +00:00 committed by Git OBS Bridge
parent 723af63b0f
commit bcba239a7a
6 changed files with 138 additions and 76 deletions

View File

@ -1,19 +1,9 @@
gdm_start_proc () {
if test "$DISPLAYMANAGER_REMOTE_ACCESS" = "yes" -a \
"$DISPLAYMANAGER_STARTS_XSERVER" = "no"; then
XDMOPTIONS="--no-console"
fi
return 0
}
gdm_vars() {
case "${DISPLAYMANAGER##*/}" in
gdm|GDM|Gnome|GNOME)
RELOADSIGNAL="-USR1"
DISPLAYMANAGER=/usr/sbin/gdm
PIDFILE=/run/gdm/gdm.pid
STARTPROC=gdm_start_proc
return 0 ;;
*) return 1 ;;
esac

View File

@ -0,0 +1,39 @@
From 1721403c8c16c62c1c814d5bbf7a01714680a3fd Mon Sep 17 00:00:00 2001
From: Maxime de Roucy <maxime.deroucy@gmail.com>
Date: Sat, 24 Jan 2015 15:12:16 +0100
Subject: [PATCH] correct ShowLocalGreeter (standalone XDMCP server)
Get the ShowLocalGreeter option from configuration file BEFORE launching
the gdm manager. In order to let the manager know if it have to launch a
local X server or not.
https://bugzilla.gnome.org/show_bug.cgi?id=743440
---
daemon/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/daemon/main.c b/daemon/main.c
index cdb41fa..848cf3c 100644
--- a/daemon/main.c
+++ b/daemon/main.c
@@ -448,8 +448,6 @@ on_name_acquired (GDBusConnection *bus,
g_debug ("Successfully connected to D-Bus");
- gdm_manager_start (manager);
-
show_local_greeter = TRUE;
gdm_settings_direct_get_boolean (GDM_KEY_SHOW_LOCAL_GREETER, &show_local_greeter);
gdm_manager_set_show_local_greeter (manager, show_local_greeter);
@@ -457,6 +455,8 @@ on_name_acquired (GDBusConnection *bus,
xdmcp_enabled = FALSE;
gdm_settings_direct_get_boolean (GDM_KEY_XDMCP_ENABLE, &xdmcp_enabled);
gdm_manager_set_xdmcp_enabled (manager, xdmcp_enabled);
+
+ gdm_manager_start (manager);
}
static void
--
1.8.5.6

View File

@ -1,37 +1,36 @@
Index: gdm-3.6.1/common/gdm-settings-system-backend.c
Index: gdm-3.14.1/common/gdm-settings-system-backend.c
===================================================================
--- gdm-3.6.1.orig/common/gdm-settings-system-backend.c
+++ gdm-3.6.1/common/gdm-settings-system-backend.c
@@ -43,11 +43,11 @@
#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
#define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
#define SYSCONFIG_XDMCP_KEY "DISPLAYMANAGER_REMOTE_ACCESS"
+#define SYSCONFIG_PASSWORDLESS_KEY "DISPLAYMANAGER_PASSWORD_LESS_LOGIN"
--- gdm-3.14.1.orig/common/gdm-settings-system-backend.c
+++ gdm-3.14.1/common/gdm-settings-system-backend.c
@@ -44,9 +44,9 @@
#define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
#define SYSCONFIG_XDMCP_KEY "DISPLAYMANAGER_REMOTE_ACCESS"
#define SYSCONFIG_STARTS_XSERVER_KEY "DISPLAYMANAGER_STARTS_XSERVER"
+#define SYSCONFIG_PASSWORDLESS_KEY "DISPLAYMANAGER_PASSWORD_LESS_LOGIN"
/* Keys from sysconfig that have no equivalent in GDM:
* - DISPLAYMANAGER_ROOT_LOGIN_REMOTE
* - DISPLAYMANAGER_STARTS_XSERVER (we always have a local display manager,
* see gdm_manager_constructor())
- * - DISPLAYMANAGER_PASSWORD_LESS_LOGIN
* - DISPLAYMANAGER_AD_INTEGRATION
* - DISPLAYMANAGER_SHUTDOWN (handled by ConsoleKit)
*/
@@ -65,12 +65,14 @@ struct GdmSettingsSystemBackendPrivate
gboolean dirty_autologin_user;
@@ -65,6 +65,7 @@ struct GdmSettingsSystemBackendPrivate
gboolean dirty_tcp_open;
gboolean dirty_xdmcp;
gboolean dirty_show_local_greeter;
+ gboolean dirty_passwordless;
gchar *set_autologin_user;
gboolean set_autologin_enabled;
@@ -72,6 +73,7 @@ struct GdmSettingsSystemBackendPrivate
gboolean set_tcp_open;
gboolean set_xdmcp;
gboolean set_show_local_greeter;
+ gboolean set_passwordless;
};
static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass);
@@ -140,6 +142,16 @@ gdm_settings_system_backend_get_value (G
val = g_strdup (xdmcp ? "true" : "false");
@@ -151,6 +153,16 @@ gdm_settings_system_backend_get_value (G
val = g_strdup (local_greeter ? "true" : "false");
}
}
+ } else if (!strcasecmp (key, GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE)) {
@ -47,8 +46,8 @@ Index: gdm-3.6.1/common/gdm-settings-system-backend.c
} else {
g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
goto out;
@@ -200,6 +212,12 @@ save_settings (GdmSettingsSystemBackend
backend->priv->set_xdmcp ? "yes" : "no");
@@ -217,6 +229,12 @@ save_settings (GdmSettingsSystemBackend
backend->priv->set_show_local_greeter? "yes" : "no");
}
+ if (backend->priv->dirty_passwordless) {
@ -60,28 +59,28 @@ Index: gdm-3.6.1/common/gdm-settings-system-backend.c
if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines))
g_warning ("Unable to save settings to %s.", backend->priv->filename);
@@ -208,6 +226,7 @@ save_settings (GdmSettingsSystemBackend
backend->priv->dirty_autologin_user = FALSE;
backend->priv->dirty_tcp_open = FALSE;
backend->priv->dirty_xdmcp = FALSE;
+ backend->priv->dirty_passwordless = FALSE;
@@ -226,6 +244,7 @@ save_settings (GdmSettingsSystemBackend
backend->priv->dirty_tcp_open = FALSE;
backend->priv->dirty_xdmcp = FALSE;
backend->priv->dirty_show_local_greeter = FALSE;
+ backend->priv->dirty_passwordless = FALSE;
}
static gboolean
@@ -275,6 +294,9 @@ gdm_settings_system_backend_set_value (G
} else if (!strcasecmp (key, GDM_KEY_XDMCP_ENABLE)) {
priv->set_xdmcp = value_to_boolean (value);
GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_xdmcp = TRUE;
@@ -296,6 +315,9 @@ gdm_settings_system_backend_set_value (G
} else if (!strcasecmp (key, GDM_KEY_SHOW_LOCAL_GREETER)) {
priv->set_show_local_greeter = value_to_boolean (value);
GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_show_local_greeter = TRUE;
+ } else if (!strcasecmp (key, GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE)) {
+ priv->set_passwordless = value_to_boolean (value);
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_passwordless = TRUE;
} else {
g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
return FALSE;
Index: gdm-3.6.1/common/gdm-settings-keys.h
Index: gdm-3.14.1/common/gdm-settings-keys.h
===================================================================
--- gdm-3.6.1.orig/common/gdm-settings-keys.h
+++ gdm-3.6.1/common/gdm-settings-keys.h
--- gdm-3.14.1.orig/common/gdm-settings-keys.h
+++ gdm-3.14.1/common/gdm-settings-keys.h
@@ -33,6 +33,7 @@ G_BEGIN_DECLS
#define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin"
#define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay"
@ -90,11 +89,11 @@ Index: gdm-3.6.1/common/gdm-settings-keys.h
#define GDM_KEY_DEBUG "debug/Enable"
Index: gdm-3.6.1/data/gdm.schemas.in.in
Index: gdm-3.14.1/data/gdm.schemas.in.in
===================================================================
--- gdm-3.6.1.orig/data/gdm.schemas.in.in
+++ gdm-3.6.1/data/gdm.schemas.in.in
@@ -58,6 +58,12 @@
--- gdm-3.14.1.orig/data/gdm.schemas.in.in
+++ gdm-3.14.1/data/gdm.schemas.in.in
@@ -63,6 +63,12 @@
<signature>b</signature>
<default>false</default>
</schema>
@ -107,10 +106,10 @@ Index: gdm-3.6.1/data/gdm.schemas.in.in
<schema>
<key>security/DisallowTCP</key>
Index: gdm-3.6.1/daemon/gdm-session.c
Index: gdm-3.14.1/daemon/gdm-session.c
===================================================================
--- gdm-3.6.1.orig/daemon/gdm-session.c
+++ gdm-3.6.1/daemon/gdm-session.c
--- gdm-3.14.1.orig/daemon/gdm-session.c
+++ gdm-3.14.1/daemon/gdm-session.c
@@ -55,6 +55,9 @@
#include "gdm-session-worker-glue.h"
#include "gdm-common.h"
@ -121,7 +120,7 @@ Index: gdm-3.6.1/daemon/gdm-session.c
#define GDM_SESSION_DBUS_ERROR_CANCEL "org.gnome.DisplayManager.Session.Error.Cancel"
#define GDM_SESSION_DBUS_OBJECT_PATH "/org/gnome/DisplayManager/Session"
@@ -1228,6 +1231,15 @@ gdm_session_handle_client_begin_verifica
@@ -1262,6 +1265,15 @@ gdm_session_handle_client_begin_verifica
GdmSession *self)
{
GdmSessionConversation *conversation;

View File

@ -1,8 +1,8 @@
Index: gdm-3.11.90/common/Makefile.am
Index: gdm-3.14.1/common/Makefile.am
===================================================================
--- gdm-3.11.90.orig/common/Makefile.am
+++ gdm-3.11.90/common/Makefile.am
@@ -49,11 +49,15 @@ libgdmcommon_la_SOURCES = \
--- gdm-3.14.1.orig/common/Makefile.am
+++ gdm-3.14.1/common/Makefile.am
@@ -50,11 +50,15 @@ libgdmcommon_la_SOURCES = \
gdm-settings-backend.h \
gdm-settings-desktop-backend.c \
gdm-settings-desktop-backend.h \
@ -18,11 +18,11 @@ Index: gdm-3.11.90/common/Makefile.am
gdm-log.h \
gdm-log.c \
$(MKDTEMP_FILES) \
Index: gdm-3.11.90/common/gdm-settings-system-backend.c
Index: gdm-3.14.1/common/gdm-settings-system-backend.c
===================================================================
--- /dev/null
+++ gdm-3.11.90/common/gdm-settings-system-backend.c
@@ -0,0 +1,348 @@
+++ gdm-3.14.1/common/gdm-settings-system-backend.c
@@ -0,0 +1,369 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Hans Petter Jansson <hpj@copyleft.no>
@ -65,13 +65,12 @@ Index: gdm-3.11.90/common/gdm-settings-system-backend.c
+
+#include "gdm-log.h"
+
+#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
+#define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
+#define SYSCONFIG_XDMCP_KEY "DISPLAYMANAGER_REMOTE_ACCESS"
+#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
+#define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
+#define SYSCONFIG_XDMCP_KEY "DISPLAYMANAGER_REMOTE_ACCESS"
+#define SYSCONFIG_STARTS_XSERVER_KEY "DISPLAYMANAGER_STARTS_XSERVER"
+/* Keys from sysconfig that have no equivalent in GDM:
+ * - DISPLAYMANAGER_ROOT_LOGIN_REMOTE
+ * - DISPLAYMANAGER_STARTS_XSERVER (we always have a local display manager,
+ * see gdm_manager_constructor())
+ * - DISPLAYMANAGER_PASSWORD_LESS_LOGIN
+ * - DISPLAYMANAGER_AD_INTEGRATION
+ * - DISPLAYMANAGER_SHUTDOWN (handled by ConsoleKit)
@ -90,12 +89,14 @@ Index: gdm-3.11.90/common/gdm-settings-system-backend.c
+ gboolean dirty_autologin_user;
+ gboolean dirty_tcp_open;
+ gboolean dirty_xdmcp;
+ gboolean dirty_show_local_greeter;
+
+ gchar *set_autologin_user;
+ gboolean set_autologin_enabled;
+
+ gboolean set_tcp_open;
+ gboolean set_xdmcp;
+ gboolean set_show_local_greeter;
+};
+
+static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass);
@ -165,6 +166,16 @@ Index: gdm-3.11.90/common/gdm-settings-system-backend.c
+ val = g_strdup (xdmcp ? "true" : "false");
+ }
+ }
+ } else if (!strcasecmp (key, GDM_KEY_SHOW_LOCAL_GREETER)) {
+ if (priv->dirty_show_local_greeter) {
+ val = g_strdup (priv->set_xdmcp ? "true" : "false");
+ } else {
+ gboolean local_greeter;
+
+ if (gdm_sysconfig_get_value_boolean ((const gchar **) priv->lines, SYSCONFIG_STARTS_XSERVER_KEY, &local_greeter)) {
+ val = g_strdup (local_greeter ? "true" : "false");
+ }
+ }
+ } else {
+ g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
+ goto out;
@ -225,14 +236,21 @@ Index: gdm-3.11.90/common/gdm-settings-system-backend.c
+ backend->priv->set_xdmcp ? "yes" : "no");
+ }
+
+ if (backend->priv->dirty_show_local_greeter) {
+ if (!gdm_sysconfig_set_value_boolean (backend->priv->lines, SYSCONFIG_STARTS_XSERVER_KEY, backend->priv->set_show_local_greeter))
+ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_STARTS_XSERVER_KEY,
+ backend->priv->set_show_local_greeter? "yes" : "no");
+ }
+
+ if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines))
+ g_warning ("Unable to save settings to %s.", backend->priv->filename);
+
+ backend->priv->dirty = FALSE;
+ backend->priv->dirty_autologin = FALSE;
+ backend->priv->dirty_autologin_user = FALSE;
+ backend->priv->dirty_tcp_open = FALSE;
+ backend->priv->dirty_xdmcp = FALSE;
+ backend->priv->dirty = FALSE;
+ backend->priv->dirty_autologin = FALSE;
+ backend->priv->dirty_autologin_user = FALSE;
+ backend->priv->dirty_tcp_open = FALSE;
+ backend->priv->dirty_xdmcp = FALSE;
+ backend->priv->dirty_show_local_greeter = FALSE;
+}
+
+static gboolean
@ -300,6 +318,9 @@ Index: gdm-3.11.90/common/gdm-settings-system-backend.c
+ } else if (!strcasecmp (key, GDM_KEY_XDMCP_ENABLE)) {
+ priv->set_xdmcp = value_to_boolean (value);
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_xdmcp = TRUE;
+ } else if (!strcasecmp (key, GDM_KEY_SHOW_LOCAL_GREETER)) {
+ priv->set_show_local_greeter = value_to_boolean (value);
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_show_local_greeter = TRUE;
+ } else {
+ g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
+ return FALSE;
@ -371,10 +392,10 @@ Index: gdm-3.11.90/common/gdm-settings-system-backend.c
+
+ return GDM_SETTINGS_BACKEND (object);
+}
Index: gdm-3.11.90/common/gdm-settings-system-backend.h
Index: gdm-3.14.1/common/gdm-settings-system-backend.h
===================================================================
--- /dev/null
+++ gdm-3.11.90/common/gdm-settings-system-backend.h
+++ gdm-3.14.1/common/gdm-settings-system-backend.h
@@ -0,0 +1,56 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -432,10 +453,10 @@ Index: gdm-3.11.90/common/gdm-settings-system-backend.h
+G_END_DECLS
+
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
Index: gdm-3.11.90/common/gdm-settings.c
Index: gdm-3.14.1/common/gdm-settings.c
===================================================================
--- gdm-3.11.90.orig/common/gdm-settings.c
+++ gdm-3.11.90/common/gdm-settings.c
--- gdm-3.14.1.orig/common/gdm-settings.c
+++ gdm-3.14.1/common/gdm-settings.c
@@ -38,12 +38,13 @@
#include "gdm-settings.h"
@ -561,10 +582,10 @@ Index: gdm-3.11.90/common/gdm-settings.c
G_OBJECT_CLASS (gdm_settings_parent_class)->finalize (object);
}
Index: gdm-3.11.90/common/gdm-sysconfig.c
Index: gdm-3.14.1/common/gdm-sysconfig.c
===================================================================
--- /dev/null
+++ gdm-3.11.90/common/gdm-sysconfig.c
+++ gdm-3.14.1/common/gdm-sysconfig.c
@@ -0,0 +1,484 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -1050,10 +1071,10 @@ Index: gdm-3.11.90/common/gdm-sysconfig.c
+ g_strfreev (lines);
+ return result;
+}
Index: gdm-3.11.90/common/gdm-sysconfig.h
Index: gdm-3.14.1/common/gdm-sysconfig.h
===================================================================
--- /dev/null
+++ gdm-3.11.90/common/gdm-sysconfig.h
+++ gdm-3.14.1/common/gdm-sysconfig.h
@@ -0,0 +1,43 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -1098,10 +1119,10 @@ Index: gdm-3.11.90/common/gdm-sysconfig.h
+G_END_DECLS
+
+#endif /* __GDM_SYSCONFIG_H */
Index: gdm-3.11.90/data/gdm.conf-custom.in
Index: gdm-3.14.1/data/gdm.conf-custom.in
===================================================================
--- gdm-3.11.90.orig/data/gdm.conf-custom.in
+++ gdm-3.11.90/data/gdm.conf-custom.in
--- gdm-3.14.1.orig/data/gdm.conf-custom.in
+++ gdm-3.14.1/data/gdm.conf-custom.in
@@ -1,4 +1,7 @@
# GDM configuration storage
+#

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Thu Feb 26 12:03:15 UTC 2015 - fcrozat@suse.com
- Update gdm-sysconfig-settings.patch / X11-displaymanager-gdm: fix
support for DISPLAYMANAGER_STARTS_XSERVER from
/etc/sysconfig/displaymanager.
- Add gdm-correct-ShowLocalGreeter-standalone-XDMCP-server.patch:
ensure ShowLocalGreeter configuration key is properly handled
(bgo#743440).
-------------------------------------------------------------------
Tue Feb 10 11:28:29 UTC 2015 - zaitor@opensuse.org

View File

@ -62,6 +62,8 @@ Patch35: gdm-xauthlocalhostname.patch
Patch40: gdm-look-at-runlevel.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-correct-ShowLocalGreeter-standalone-XDMCP-server.patch bgo#743440 fcrozat@suse.com -- Ensure ShowLocalGreeter value is properly handled
Patch42: gdm-correct-ShowLocalGreeter-standalone-XDMCP-server.patch
BuildRequires: check-devel
# needed for directory ownership
BuildRequires: dconf
@ -195,6 +197,7 @@ translation-update-upstream
#patch35 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%build
NOCONFIGURE=1 sh autogen.sh