From 4977eb0e9404d2b5a45fa7fbb55f4c7c523be833b0f35576b81b5749f606aef0 Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Mon, 27 Sep 2010 13:08:36 +0000 Subject: [PATCH 1/5] Accepting request 49185 from home:a_jaeger:branches:openSUSE:Factory thanks OBS-URL: https://build.opensuse.org/request/show/49185 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=143 --- gdm.changes | 6 ++++++ gdm.spec | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gdm.changes b/gdm.changes index bf6617f..7a55f02 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Sep 27 05:59:41 UTC 2010 - aj@suse.de + +- Mark /var/run/gdm as ghost in case that /var/run is on tmpfs. + gdm creates the directory itself. + ------------------------------------------------------------------- Wed Sep 22 14:26:23 CEST 2010 - vuntz@opensuse.org diff --git a/gdm.spec b/gdm.spec index 33873e0..96e66c5 100644 --- a/gdm.spec +++ b/gdm.spec @@ -242,7 +242,7 @@ fi %{_libexecdir}/gdm/gdm-* %exclude %{_libexecdir}/gdm/gdm-user-switch-applet %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm -%attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm +%ghost %attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm/.gconf.mandatory %attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.mandatory/%gconf-tree.xml From 59614b68c9da1f28004a921b5b1950573e63bc8788dd53b11e1779ece6f16e5b Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Tue, 28 Sep 2010 19:25:43 +0000 Subject: [PATCH 2/5] Accepting request 49369 from home:vuntz:branches:GNOME:Factory thanks OBS-URL: https://build.opensuse.org/request/show/49369 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=144 --- gdm-2.31.92.tar.bz2 | 3 --- gdm-2.32.0.tar.bz2 | 3 +++ gdm.changes | 6 ++++++ gdm.spec | 4 ++-- 4 files changed, 11 insertions(+), 5 deletions(-) delete mode 100644 gdm-2.31.92.tar.bz2 create mode 100644 gdm-2.32.0.tar.bz2 diff --git a/gdm-2.31.92.tar.bz2 b/gdm-2.31.92.tar.bz2 deleted file mode 100644 index 83ec895..0000000 --- a/gdm-2.31.92.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:429c4d8ef0ae1a30be8f250dca36c69cf948d20f57b0114676e41adb2528d995 -size 2476222 diff --git a/gdm-2.32.0.tar.bz2 b/gdm-2.32.0.tar.bz2 new file mode 100644 index 0000000..56129ee --- /dev/null +++ b/gdm-2.32.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f47acd19ed10d6fbb37c3e2b54f5b392c7020db67f71db3f75567ead30ab2fa4 +size 2477647 diff --git a/gdm.changes b/gdm.changes index 7a55f02..706fbee 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Sep 27 20:29:08 CEST 2010 - vuntz@opensuse.org + +- Update to version 2.32.0: + + Updated translations. + ------------------------------------------------------------------- Mon Sep 27 05:59:41 UTC 2010 - aj@suse.de diff --git a/gdm.spec b/gdm.spec index 96e66c5..26bddf8 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,5 +1,5 @@ # -# spec file for package gdm (Version 2.31.92) +# spec file for package gdm (Version 2.32.0) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -41,7 +41,7 @@ BuildRequires: xorg-x11-server-extra BuildRequires: zenity License: GPLv2+ Group: System/GUI/GNOME -Version: 2.31.92 +Version: 2.32.0 Release: 1 Summary: The GNOME 2.x Display Manager Source: %{name}-%{version}.tar.bz2 From 8125b3f0ca4d47ee369775ed7b03501be6be88c64cb109455055497aad7cff5b Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 11 Oct 2010 08:06:26 +0000 Subject: [PATCH 3/5] Accepting request 50093 from home:vuntz:branches:GNOME:Factory Thanks.. I trust you on this one... did not see anything bad in the .spec and .changes :) OBS-URL: https://build.opensuse.org/request/show/50093 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=145 --- SuSEconfig.gdm | 29 ------- gdm-domain-logon.patch | 21 ++--- gdm-passwordless-login.patch | 163 +++++++++++++++++++++++++++++++++++ gdm-sysconfig-settings.patch | 47 +++++----- gdm.changes | 23 +++++ gdm.spec | 25 +++--- 6 files changed, 236 insertions(+), 72 deletions(-) delete mode 100644 SuSEconfig.gdm create mode 100644 gdm-passwordless-login.patch diff --git a/SuSEconfig.gdm b/SuSEconfig.gdm deleted file mode 100644 index 0cd56d1..0000000 --- a/SuSEconfig.gdm +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2004-2006 SuSE -# Author: Stanislav Brabec - -type -p cmp &> /dev/null || { - echo "${0##*/}: No cmp in PATH ... skipping" - exit 0 -} - -r=$ROOT -DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no" -test -f $r/etc/sysconfig/displaymanager || { - echo "${0##*/}: No $r/etc/sysconfig/displaymanager found." - exit 1 -} -. $r/etc/sysconfig/displaymanager - -# Password-less login is implemented by PAM. Do the required change. -if [ "$DISPLAYMANAGER_PASSWORD_LESS_LOGIN" = "yes" ] ; then - sed 's/^\(auth[[:space:]][[:space:]]*\)include[[:space:]]\([[:space:]]*\)common-auth/\1required\2pam_permit.so/' <$r/etc/pam.d/gdm >$r/etc/pam.d/gdm.new -else - sed 's/^\(auth[[:space:]][[:space:]]*\)required\([[:space:]][[:space:]]*\)pam_permit\.so/\1include \2common-auth/' <$r/etc/pam.d/gdm >$r/etc/pam.d/gdm.new -fi -if cmp -s $r/etc/pam.d/gdm $r/etc/pam.d/gdm.new ; then - rm $r/etc/pam.d/gdm.new -else - mv $r/etc/pam.d/gdm.new $r/etc/pam.d/gdm -fi diff --git a/gdm-domain-logon.patch b/gdm-domain-logon.patch index 2b0f04a..cb87d74 100644 --- a/gdm-domain-logon.patch +++ b/gdm-domain-logon.patch @@ -1803,7 +1803,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c panel->priv->geometry.width = -1; panel->priv->geometry.height = -1; -+ if (!gdm_settings_client_get_boolean (GDM_KEY_SHOW_DOMAIN, ++ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_SHOW_DOMAIN, + &panel->priv->show_domain)) { + panel->priv->show_domain = FALSE; + } @@ -2170,7 +2170,7 @@ Index: gdm-2.29.5/common/gdm-settings-keys.h #define GDM_KEY_DEBUG "debug/Enable" -+#define GDM_KEY_SHOW_DOMAIN "greeter/ShowDomain" ++#define GDM_KEY_SUSE_SHOW_DOMAIN "greeter/SUSEShowDomain" #define GDM_KEY_INCLUDE "greeter/Include" #define GDM_KEY_EXCLUDE "greeter/Exclude" #define GDM_KEY_INCLUDE_ALL "greeter/IncludeAll" @@ -2179,10 +2179,10 @@ Index: gdm-2.29.5/common/gdm-settings-system-backend.c --- gdm-2.29.5.orig/common/gdm-settings-system-backend.c +++ gdm-2.29.5/common/gdm-settings-system-backend.c @@ -44,11 +44,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_AD_KEY "DISPLAYMANAGER_AD_INTEGRATION" + #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_AD_KEY "DISPLAYMANAGER_AD_INTEGRATION" /* Keys from sysconfig that have no equivalent in GDM: * - DISPLAYMANAGER_ROOT_LOGIN_REMOTE * - DISPLAYMANAGER_STARTS_XSERVER (we always have a local display manager, @@ -2210,7 +2210,7 @@ Index: gdm-2.29.5/common/gdm-settings-system-backend.c val = g_strdup (xdmcp ? "true" : "false"); } } -+ } else if (!strcasecmp (key, GDM_KEY_SHOW_DOMAIN)) { ++ } else if (!strcasecmp (key, GDM_KEY_SUSE_SHOW_DOMAIN)) { + if (priv->dirty_show_domain) { + val = g_strdup (priv->set_show_domain ? "true" : "false"); + } else { @@ -2248,7 +2248,7 @@ Index: gdm-2.29.5/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_DOMAIN)) { ++ } else if (!strcasecmp (key, GDM_KEY_SUSE_SHOW_DOMAIN)) { + priv->set_show_domain = value_to_boolean (value); + GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_show_domain = TRUE; } else { @@ -2258,11 +2258,12 @@ Index: gdm-2.29.5/data/gdm.schemas.in.in =================================================================== --- gdm-2.29.5.orig/data/gdm.schemas.in.in +++ gdm-2.29.5/data/gdm.schemas.in.in -@@ -61,6 +61,11 @@ +@@ -61,6 +61,12 @@ -+ greeter/ShowDomain ++ ++ greeter/SUSEShowDomain + b + false + diff --git a/gdm-passwordless-login.patch b/gdm-passwordless-login.patch new file mode 100644 index 0000000..9c1e36d --- /dev/null +++ b/gdm-passwordless-login.patch @@ -0,0 +1,163 @@ +Index: gdm-2.32.0/common/gdm-settings-system-backend.c +=================================================================== +--- gdm-2.32.0.orig/common/gdm-settings-system-backend.c ++++ gdm-2.32.0/common/gdm-settings-system-backend.c +@@ -44,11 +44,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" + /* 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) + */ +@@ -66,12 +66,14 @@ struct GdmSettingsSystemBackendPrivate + gboolean dirty_autologin_user; + gboolean dirty_tcp_open; + gboolean dirty_xdmcp; ++ gboolean dirty_passwordless; + + gchar *set_autologin_user; + gboolean set_autologin_enabled; + + gboolean set_tcp_open; + gboolean set_xdmcp; ++ gboolean set_passwordless; + }; + + static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass); +@@ -141,6 +143,16 @@ gdm_settings_system_backend_get_value (G + val = g_strdup (xdmcp ? "true" : "false"); + } + } ++ } else if (!strcasecmp (key, GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE)) { ++ if (priv->dirty_passwordless) { ++ val = g_strdup (priv->set_passwordless ? "true" : "false"); ++ } else { ++ gboolean passwordless; ++ ++ if (gdm_sysconfig_get_value_boolean ((const gchar **) priv->lines, SYSCONFIG_PASSWORDLESS_KEY, &passwordless)) { ++ val = g_strdup (passwordless ? "true" : "false"); ++ } ++ } + } else { + g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found"); + goto out; +@@ -201,6 +213,12 @@ save_settings (GdmSettingsSystemBackend + backend->priv->set_xdmcp ? "yes" : "no"); + } + ++ if (backend->priv->dirty_passwordless) { ++ if (!gdm_sysconfig_set_value_boolean (backend->priv->lines, SYSCONFIG_PASSWORDLESS_KEY, backend->priv->set_passwordless)) ++ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_PASSWORDLESS_KEY, ++ backend->priv->set_passwordless ? "yes" : "no"); ++ } ++ + if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines)) + g_warning ("Unable to save settings to %s.", backend->priv->filename); + +@@ -209,6 +227,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; + } + + static gboolean +@@ -276,6 +295,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; ++ } 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-2.32.0/common/gdm-settings-keys.h +=================================================================== +--- gdm-2.32.0.orig/common/gdm-settings-keys.h ++++ gdm-2.32.0/common/gdm-settings-keys.h +@@ -32,6 +32,7 @@ G_BEGIN_DECLS + #define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable" + #define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin" + #define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay" ++#define GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE "daemon/SUSEPasswordlessEnable" + + #define GDM_KEY_DEBUG "debug/Enable" + +Index: gdm-2.32.0/data/gdm.schemas.in.in +=================================================================== +--- gdm-2.32.0.orig/data/gdm.schemas.in.in ++++ gdm-2.32.0/data/gdm.schemas.in.in +@@ -47,6 +47,12 @@ + i + 30 + ++ ++ ++ daemon/SUSEPasswordlessEnable ++ b ++ false ++ + + + debug/Enable +Index: gdm-2.32.0/daemon/gdm-factory-slave.c +=================================================================== +--- gdm-2.32.0.orig/daemon/gdm-factory-slave.c ++++ gdm-2.32.0/daemon/gdm-factory-slave.c +@@ -44,6 +44,9 @@ + + #include "gdm-common.h" + ++#include "gdm-settings-client.h" ++#include "gdm-settings-keys.h" ++ + #include "gdm-factory-slave.h" + #include "gdm-factory-slave-glue.h" + +@@ -406,9 +409,16 @@ on_greeter_begin_verification_for_user ( + const char *username, + GdmFactorySlave *slave) + { ++ gboolean passwordless; ++ ++ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE, ++ &passwordless)) { ++ passwordless = FALSE; ++ } ++ + g_debug ("GdmFactorySlave: begin verification for user"); + gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), +- "gdm", ++ passwordless ? "gdm-autologin" : "gdm", + username); + } + +Index: gdm-2.32.0/daemon/gdm-simple-slave.c +=================================================================== +--- gdm-2.32.0.orig/daemon/gdm-simple-slave.c ++++ gdm-2.32.0/daemon/gdm-simple-slave.c +@@ -837,9 +837,16 @@ on_greeter_begin_verification_for_user ( + const char *username, + GdmSimpleSlave *slave) + { ++ gboolean passwordless; ++ ++ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE, ++ &passwordless)) { ++ passwordless = FALSE; ++ } ++ + g_debug ("GdmSimpleSlave: begin verification"); + gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), +- "gdm", ++ passwordless ? "gdm-autologin" : "gdm", + username); + } + diff --git a/gdm-sysconfig-settings.patch b/gdm-sysconfig-settings.patch index 8f11d5e..3785e77 100644 --- a/gdm-sysconfig-settings.patch +++ b/gdm-sysconfig-settings.patch @@ -1,8 +1,8 @@ -Index: gdm-2.29.4/common/Makefile.am +Index: gdm-2.32.0/common/Makefile.am =================================================================== ---- gdm-2.29.4.orig/common/Makefile.am -+++ gdm-2.29.4/common/Makefile.am -@@ -84,6 +84,8 @@ libgdmcommon_la_SOURCES = \ +--- gdm-2.32.0.orig/common/Makefile.am ++++ gdm-2.32.0/common/Makefile.am +@@ -82,6 +82,8 @@ libgdmcommon_la_SOURCES = \ gdm-settings-backend.h \ gdm-settings-desktop-backend.c \ gdm-settings-desktop-backend.h \ @@ -11,7 +11,7 @@ Index: gdm-2.29.4/common/Makefile.am gdm-settings-keys.h \ gdm-settings-utils.h \ gdm-settings-utils.c \ -@@ -91,6 +93,8 @@ libgdmcommon_la_SOURCES = \ +@@ -89,6 +91,8 @@ libgdmcommon_la_SOURCES = \ gdm-settings-direct.h \ gdm-settings-client.h \ gdm-settings-client.c \ @@ -20,11 +20,11 @@ Index: gdm-2.29.4/common/Makefile.am gdm-log.h \ gdm-log.c \ gdm-md5.h \ -Index: gdm-2.29.4/common/gdm-settings-system-backend.c +Index: gdm-2.32.0/common/gdm-settings-system-backend.c =================================================================== --- /dev/null -+++ gdm-2.29.4/common/gdm-settings-system-backend.c -@@ -0,0 +1,348 @@ ++++ gdm-2.32.0/common/gdm-settings-system-backend.c +@@ -0,0 +1,349 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2008 Hans Petter Jansson @@ -68,13 +68,14 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c +#include "gdm-marshal.h" +#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" +/* 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) + */ @@ -373,10 +374,10 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c + + return GDM_SETTINGS_BACKEND (object); +} -Index: gdm-2.29.4/common/gdm-settings-system-backend.h +Index: gdm-2.32.0/common/gdm-settings-system-backend.h =================================================================== --- /dev/null -+++ gdm-2.29.4/common/gdm-settings-system-backend.h ++++ gdm-2.32.0/common/gdm-settings-system-backend.h @@ -0,0 +1,56 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -434,10 +435,10 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.h +G_END_DECLS + +#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */ -Index: gdm-2.29.4/common/gdm-settings.c +Index: gdm-2.32.0/common/gdm-settings.c =================================================================== ---- gdm-2.29.4.orig/common/gdm-settings.c -+++ gdm-2.29.4/common/gdm-settings.c +--- gdm-2.32.0.orig/common/gdm-settings.c ++++ gdm-2.32.0/common/gdm-settings.c @@ -41,6 +41,7 @@ #include "gdm-settings-glue.h" @@ -565,10 +566,10 @@ Index: gdm-2.29.4/common/gdm-settings.c G_OBJECT_CLASS (gdm_settings_parent_class)->finalize (object); } -Index: gdm-2.29.4/common/gdm-sysconfig.c +Index: gdm-2.32.0/common/gdm-sysconfig.c =================================================================== --- /dev/null -+++ gdm-2.29.4/common/gdm-sysconfig.c ++++ gdm-2.32.0/common/gdm-sysconfig.c @@ -0,0 +1,481 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1051,10 +1052,10 @@ Index: gdm-2.29.4/common/gdm-sysconfig.c + g_strfreev (lines); + return result; +} -Index: gdm-2.29.4/common/gdm-sysconfig.h +Index: gdm-2.32.0/common/gdm-sysconfig.h =================================================================== --- /dev/null -+++ gdm-2.29.4/common/gdm-sysconfig.h ++++ gdm-2.32.0/common/gdm-sysconfig.h @@ -0,0 +1,43 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1099,10 +1100,10 @@ Index: gdm-2.29.4/common/gdm-sysconfig.h +G_END_DECLS + +#endif /* __GDM_SYSCONFIG_H */ -Index: gdm-2.29.4/data/gdm.conf-custom.in +Index: gdm-2.32.0/data/gdm.conf-custom.in =================================================================== ---- gdm-2.29.4.orig/data/gdm.conf-custom.in -+++ gdm-2.29.4/data/gdm.conf-custom.in +--- gdm-2.32.0.orig/data/gdm.conf-custom.in ++++ gdm-2.32.0/data/gdm.conf-custom.in @@ -1,4 +1,7 @@ # GDM configuration storage +# diff --git a/gdm.changes b/gdm.changes index 706fbee..f6a1429 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Fri Oct 8 13:38:23 CEST 2010 - vuntz@opensuse.org + +- Rework the way we handle passwordless logins: + + Stop using SuSEconfig for this. Since this is the last thing + that was done in SuSEconfig.gdm, drop SuSEconfig.gdm. + + Add gdm-passwordless-login.patch: we now directly look at the + DISPLAYMANAGER_PASSWORD_LESS_LOGIN option in + /etc/sysconfig/displaymanager, and use the gdm-autologin pam + service for authentication when we want passwordless logins. + + On upgrades, we make sure that /etc/pam.d/gdm does not contain + the old way to handle DISPLAYMANAGER_PASSWORD_LESS_LOGIN: if + /sbin/conf.d/SuSEconfig.gdm exists and if /etc/pam.d/gdm + contains pam_permit.so, then we have an old package which used + the old way. We move /etc/pam.d/gdm to /etc/pam.d/gdm.rpmold to + make sure we get back the right pam configuration. +- Update gdm-domain-logon.patch a bit: even though it's not + applied because the patch needs to be rebased, a few things could + be cleaned up. The most visible part is that we prefix the + configuration key with SUSE to clearly show it's SUSE-specific. +- Update gdm-sysconfig-settings.patch a tiny bit to make + gdm-passwordless-login.patch easier. + ------------------------------------------------------------------- Mon Sep 27 20:29:08 CEST 2010 - vuntz@opensuse.org diff --git a/gdm.spec b/gdm.spec index 26bddf8..e0a13b0 100644 --- a/gdm.spec +++ b/gdm.spec @@ -47,8 +47,6 @@ Summary: The GNOME 2.x Display Manager Source: %{name}-%{version}.tar.bz2 Source1: gdm.pamd Source2: gdm-autologin.pamd -# FIXME: See FIXME in the script. -Source3: SuSEconfig.gdm # PATCH-FIX-UPSTREAM gdm-helper-directory.patch bgo582320 vuntz@novell.com -- Add --with-gnome-settings-daemon-directory, --with-consolekit-directory, --with-at-spi-registryd-directory Patch1: gdm-helper-directory.patch # PATCH-FIX-OPENSUSE gdm-is-not-unstable-unless.patch vuntz@opensuse.org -- Make gdm think it's never running a development version unless SUSE_ENABLE_UNSTABLE_CHECK is set. This disables fatal warnings as well as abusive log @@ -61,8 +59,10 @@ Patch6: gdm-desktop-session-env-pam.patch Patch7: gdm-suse-xsession.patch # PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager Patch8: gdm-sysconfig-settings.patch +# PATCH-FEATURE-OPENSUSE gdm-passwordless-login.patch vuntz@opensuse.org -- Support DISPLAYMANAGER_PASSWORD_LESS_LOGIN sysconfig option +Patch9: gdm-passwordless-login.patch # PATCH-NEEDS-REBASE gdm-domain-logon.patch hpj@novell.com -- Add UI to log in a specific domain (was: PATCH_FEATURE-SLED bnc#627575) -Patch9: gdm-domain-logon.patch +Patch10: gdm-domain-logon.patch # PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch) Patch15: gdm-greeter-greater-ui.patch # PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations. @@ -146,7 +146,8 @@ translation-update-upstream %patch6 -p1 %patch7 -p1 %patch8 -p1 -#%patch9 -p1 +%patch9 -p1 +#%patch10 -p1 %patch15 -p1 %patch18 -p1 %patch20 -p1 @@ -181,16 +182,12 @@ autoreconf -f -i %find_gconf_schemas # Remove wrapper, it is not needed. mv $RPM_BUILD_ROOT%{_sbindir}/gdm-binary $RPM_BUILD_ROOT%{_sbindir}/gdm -# Install PAM files and remove examples. +# Install PAM files. mkdir -p $RPM_BUILD_ROOT/etc/pam.d cp %{S:1} $RPM_BUILD_ROOT/etc/pam.d/gdm cp %{S:2} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin # Install PostLogin script. mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default -# Install SuSEconfig script. -mkdir -p $RPM_BUILD_ROOT/sbin/conf.d -cp %{S:3} $RPM_BUILD_ROOT/sbin/conf.d -chmod +x $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.gdm mkdir -p $RPM_BUILD_ROOT{_localstatedir}/log/gdm mkdir -p $RPM_BUILD_ROOT{_localstatedir}/run/gdm %find_lang %{name} @@ -219,6 +216,15 @@ if test -f sbin/conf.d/SuSEconfig.gdm && grep -q gdm-autologin sbin/conf.d/SuSEc fi fi fi +# Fix how DISPLAYMANAGER_PASSWORD_LESS_LOGIN is used. Before 11.4, +# /etc/pam.d/gdm was changed to use pam_permit. We don't want this anymore. +if test -f /sbin/conf.d/SuSEconfig.gdm; then + grep -q pam_permit.so /etc/pam.d/gdm + if test $? -eq 0; then + # We'll just use the file from the new package + mv /etc/pam.d/gdm /etc/pam.d/gdm.rpmold + fi +fi %preun -f %{name}.schemas_preun @@ -249,7 +255,6 @@ fi %attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.path %dir %{_localstatedir}/cache/gdm %config /etc/pam.d/* -/sbin/conf.d/SuSEconfig.gdm %config %{_sysconfdir}/dbus-1/system.d/gdm.conf %files branding-upstream From bd8d241a768d272b73c25ef23ee45411b175e2f014986af00f6ff4cf1cb1f643 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 15 Oct 2010 14:46:23 +0000 Subject: [PATCH 4/5] Accepting request 50675 from GNOME:Factory checked in (request 50675) OBS-URL: https://build.opensuse.org/request/show/50675 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=146 --- SuSEconfig.gdm | 29 +++++++ gdm-2.31.92.tar.bz2 | 3 + gdm-2.32.0.tar.bz2 | 3 - gdm-domain-logon.patch | 21 +++-- gdm-passwordless-login.patch | 163 ----------------------------------- gdm-sysconfig-settings.patch | 47 +++++----- gdm.changes | 35 -------- gdm.spec | 31 +++---- 8 files changed, 78 insertions(+), 254 deletions(-) create mode 100644 SuSEconfig.gdm create mode 100644 gdm-2.31.92.tar.bz2 delete mode 100644 gdm-2.32.0.tar.bz2 delete mode 100644 gdm-passwordless-login.patch diff --git a/SuSEconfig.gdm b/SuSEconfig.gdm new file mode 100644 index 0000000..0cd56d1 --- /dev/null +++ b/SuSEconfig.gdm @@ -0,0 +1,29 @@ +#!/bin/bash +# +# Copyright (c) 2004-2006 SuSE +# Author: Stanislav Brabec + +type -p cmp &> /dev/null || { + echo "${0##*/}: No cmp in PATH ... skipping" + exit 0 +} + +r=$ROOT +DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no" +test -f $r/etc/sysconfig/displaymanager || { + echo "${0##*/}: No $r/etc/sysconfig/displaymanager found." + exit 1 +} +. $r/etc/sysconfig/displaymanager + +# Password-less login is implemented by PAM. Do the required change. +if [ "$DISPLAYMANAGER_PASSWORD_LESS_LOGIN" = "yes" ] ; then + sed 's/^\(auth[[:space:]][[:space:]]*\)include[[:space:]]\([[:space:]]*\)common-auth/\1required\2pam_permit.so/' <$r/etc/pam.d/gdm >$r/etc/pam.d/gdm.new +else + sed 's/^\(auth[[:space:]][[:space:]]*\)required\([[:space:]][[:space:]]*\)pam_permit\.so/\1include \2common-auth/' <$r/etc/pam.d/gdm >$r/etc/pam.d/gdm.new +fi +if cmp -s $r/etc/pam.d/gdm $r/etc/pam.d/gdm.new ; then + rm $r/etc/pam.d/gdm.new +else + mv $r/etc/pam.d/gdm.new $r/etc/pam.d/gdm +fi diff --git a/gdm-2.31.92.tar.bz2 b/gdm-2.31.92.tar.bz2 new file mode 100644 index 0000000..83ec895 --- /dev/null +++ b/gdm-2.31.92.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:429c4d8ef0ae1a30be8f250dca36c69cf948d20f57b0114676e41adb2528d995 +size 2476222 diff --git a/gdm-2.32.0.tar.bz2 b/gdm-2.32.0.tar.bz2 deleted file mode 100644 index 56129ee..0000000 --- a/gdm-2.32.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f47acd19ed10d6fbb37c3e2b54f5b392c7020db67f71db3f75567ead30ab2fa4 -size 2477647 diff --git a/gdm-domain-logon.patch b/gdm-domain-logon.patch index cb87d74..2b0f04a 100644 --- a/gdm-domain-logon.patch +++ b/gdm-domain-logon.patch @@ -1803,7 +1803,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c panel->priv->geometry.width = -1; panel->priv->geometry.height = -1; -+ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_SHOW_DOMAIN, ++ if (!gdm_settings_client_get_boolean (GDM_KEY_SHOW_DOMAIN, + &panel->priv->show_domain)) { + panel->priv->show_domain = FALSE; + } @@ -2170,7 +2170,7 @@ Index: gdm-2.29.5/common/gdm-settings-keys.h #define GDM_KEY_DEBUG "debug/Enable" -+#define GDM_KEY_SUSE_SHOW_DOMAIN "greeter/SUSEShowDomain" ++#define GDM_KEY_SHOW_DOMAIN "greeter/ShowDomain" #define GDM_KEY_INCLUDE "greeter/Include" #define GDM_KEY_EXCLUDE "greeter/Exclude" #define GDM_KEY_INCLUDE_ALL "greeter/IncludeAll" @@ -2179,10 +2179,10 @@ Index: gdm-2.29.5/common/gdm-settings-system-backend.c --- gdm-2.29.5.orig/common/gdm-settings-system-backend.c +++ gdm-2.29.5/common/gdm-settings-system-backend.c @@ -44,11 +44,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_AD_KEY "DISPLAYMANAGER_AD_INTEGRATION" + #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_AD_KEY "DISPLAYMANAGER_AD_INTEGRATION" /* Keys from sysconfig that have no equivalent in GDM: * - DISPLAYMANAGER_ROOT_LOGIN_REMOTE * - DISPLAYMANAGER_STARTS_XSERVER (we always have a local display manager, @@ -2210,7 +2210,7 @@ Index: gdm-2.29.5/common/gdm-settings-system-backend.c val = g_strdup (xdmcp ? "true" : "false"); } } -+ } else if (!strcasecmp (key, GDM_KEY_SUSE_SHOW_DOMAIN)) { ++ } else if (!strcasecmp (key, GDM_KEY_SHOW_DOMAIN)) { + if (priv->dirty_show_domain) { + val = g_strdup (priv->set_show_domain ? "true" : "false"); + } else { @@ -2248,7 +2248,7 @@ Index: gdm-2.29.5/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_SUSE_SHOW_DOMAIN)) { ++ } else if (!strcasecmp (key, GDM_KEY_SHOW_DOMAIN)) { + priv->set_show_domain = value_to_boolean (value); + GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_show_domain = TRUE; } else { @@ -2258,12 +2258,11 @@ Index: gdm-2.29.5/data/gdm.schemas.in.in =================================================================== --- gdm-2.29.5.orig/data/gdm.schemas.in.in +++ gdm-2.29.5/data/gdm.schemas.in.in -@@ -61,6 +61,12 @@ +@@ -61,6 +61,11 @@ -+ -+ greeter/SUSEShowDomain ++ greeter/ShowDomain + b + false + diff --git a/gdm-passwordless-login.patch b/gdm-passwordless-login.patch deleted file mode 100644 index 9c1e36d..0000000 --- a/gdm-passwordless-login.patch +++ /dev/null @@ -1,163 +0,0 @@ -Index: gdm-2.32.0/common/gdm-settings-system-backend.c -=================================================================== ---- gdm-2.32.0.orig/common/gdm-settings-system-backend.c -+++ gdm-2.32.0/common/gdm-settings-system-backend.c -@@ -44,11 +44,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" - /* 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) - */ -@@ -66,12 +66,14 @@ struct GdmSettingsSystemBackendPrivate - gboolean dirty_autologin_user; - gboolean dirty_tcp_open; - gboolean dirty_xdmcp; -+ gboolean dirty_passwordless; - - gchar *set_autologin_user; - gboolean set_autologin_enabled; - - gboolean set_tcp_open; - gboolean set_xdmcp; -+ gboolean set_passwordless; - }; - - static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass); -@@ -141,6 +143,16 @@ gdm_settings_system_backend_get_value (G - val = g_strdup (xdmcp ? "true" : "false"); - } - } -+ } else if (!strcasecmp (key, GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE)) { -+ if (priv->dirty_passwordless) { -+ val = g_strdup (priv->set_passwordless ? "true" : "false"); -+ } else { -+ gboolean passwordless; -+ -+ if (gdm_sysconfig_get_value_boolean ((const gchar **) priv->lines, SYSCONFIG_PASSWORDLESS_KEY, &passwordless)) { -+ val = g_strdup (passwordless ? "true" : "false"); -+ } -+ } - } else { - g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found"); - goto out; -@@ -201,6 +213,12 @@ save_settings (GdmSettingsSystemBackend - backend->priv->set_xdmcp ? "yes" : "no"); - } - -+ if (backend->priv->dirty_passwordless) { -+ if (!gdm_sysconfig_set_value_boolean (backend->priv->lines, SYSCONFIG_PASSWORDLESS_KEY, backend->priv->set_passwordless)) -+ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_PASSWORDLESS_KEY, -+ backend->priv->set_passwordless ? "yes" : "no"); -+ } -+ - if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines)) - g_warning ("Unable to save settings to %s.", backend->priv->filename); - -@@ -209,6 +227,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; - } - - static gboolean -@@ -276,6 +295,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; -+ } 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-2.32.0/common/gdm-settings-keys.h -=================================================================== ---- gdm-2.32.0.orig/common/gdm-settings-keys.h -+++ gdm-2.32.0/common/gdm-settings-keys.h -@@ -32,6 +32,7 @@ G_BEGIN_DECLS - #define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable" - #define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin" - #define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay" -+#define GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE "daemon/SUSEPasswordlessEnable" - - #define GDM_KEY_DEBUG "debug/Enable" - -Index: gdm-2.32.0/data/gdm.schemas.in.in -=================================================================== ---- gdm-2.32.0.orig/data/gdm.schemas.in.in -+++ gdm-2.32.0/data/gdm.schemas.in.in -@@ -47,6 +47,12 @@ - i - 30 - -+ -+ -+ daemon/SUSEPasswordlessEnable -+ b -+ false -+ - - - debug/Enable -Index: gdm-2.32.0/daemon/gdm-factory-slave.c -=================================================================== ---- gdm-2.32.0.orig/daemon/gdm-factory-slave.c -+++ gdm-2.32.0/daemon/gdm-factory-slave.c -@@ -44,6 +44,9 @@ - - #include "gdm-common.h" - -+#include "gdm-settings-client.h" -+#include "gdm-settings-keys.h" -+ - #include "gdm-factory-slave.h" - #include "gdm-factory-slave-glue.h" - -@@ -406,9 +409,16 @@ on_greeter_begin_verification_for_user ( - const char *username, - GdmFactorySlave *slave) - { -+ gboolean passwordless; -+ -+ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE, -+ &passwordless)) { -+ passwordless = FALSE; -+ } -+ - g_debug ("GdmFactorySlave: begin verification for user"); - gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), -- "gdm", -+ passwordless ? "gdm-autologin" : "gdm", - username); - } - -Index: gdm-2.32.0/daemon/gdm-simple-slave.c -=================================================================== ---- gdm-2.32.0.orig/daemon/gdm-simple-slave.c -+++ gdm-2.32.0/daemon/gdm-simple-slave.c -@@ -837,9 +837,16 @@ on_greeter_begin_verification_for_user ( - const char *username, - GdmSimpleSlave *slave) - { -+ gboolean passwordless; -+ -+ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE, -+ &passwordless)) { -+ passwordless = FALSE; -+ } -+ - g_debug ("GdmSimpleSlave: begin verification"); - gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), -- "gdm", -+ passwordless ? "gdm-autologin" : "gdm", - username); - } - diff --git a/gdm-sysconfig-settings.patch b/gdm-sysconfig-settings.patch index 3785e77..8f11d5e 100644 --- a/gdm-sysconfig-settings.patch +++ b/gdm-sysconfig-settings.patch @@ -1,8 +1,8 @@ -Index: gdm-2.32.0/common/Makefile.am +Index: gdm-2.29.4/common/Makefile.am =================================================================== ---- gdm-2.32.0.orig/common/Makefile.am -+++ gdm-2.32.0/common/Makefile.am -@@ -82,6 +82,8 @@ libgdmcommon_la_SOURCES = \ +--- gdm-2.29.4.orig/common/Makefile.am ++++ gdm-2.29.4/common/Makefile.am +@@ -84,6 +84,8 @@ libgdmcommon_la_SOURCES = \ gdm-settings-backend.h \ gdm-settings-desktop-backend.c \ gdm-settings-desktop-backend.h \ @@ -11,7 +11,7 @@ Index: gdm-2.32.0/common/Makefile.am gdm-settings-keys.h \ gdm-settings-utils.h \ gdm-settings-utils.c \ -@@ -89,6 +91,8 @@ libgdmcommon_la_SOURCES = \ +@@ -91,6 +93,8 @@ libgdmcommon_la_SOURCES = \ gdm-settings-direct.h \ gdm-settings-client.h \ gdm-settings-client.c \ @@ -20,11 +20,11 @@ Index: gdm-2.32.0/common/Makefile.am gdm-log.h \ gdm-log.c \ gdm-md5.h \ -Index: gdm-2.32.0/common/gdm-settings-system-backend.c +Index: gdm-2.29.4/common/gdm-settings-system-backend.c =================================================================== --- /dev/null -+++ gdm-2.32.0/common/gdm-settings-system-backend.c -@@ -0,0 +1,349 @@ ++++ gdm-2.29.4/common/gdm-settings-system-backend.c +@@ -0,0 +1,348 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2008 Hans Petter Jansson @@ -68,14 +68,13 @@ Index: gdm-2.32.0/common/gdm-settings-system-backend.c +#include "gdm-marshal.h" +#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" +/* 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) + */ @@ -374,10 +373,10 @@ Index: gdm-2.32.0/common/gdm-settings-system-backend.c + + return GDM_SETTINGS_BACKEND (object); +} -Index: gdm-2.32.0/common/gdm-settings-system-backend.h +Index: gdm-2.29.4/common/gdm-settings-system-backend.h =================================================================== --- /dev/null -+++ gdm-2.32.0/common/gdm-settings-system-backend.h ++++ gdm-2.29.4/common/gdm-settings-system-backend.h @@ -0,0 +1,56 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -435,10 +434,10 @@ Index: gdm-2.32.0/common/gdm-settings-system-backend.h +G_END_DECLS + +#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */ -Index: gdm-2.32.0/common/gdm-settings.c +Index: gdm-2.29.4/common/gdm-settings.c =================================================================== ---- gdm-2.32.0.orig/common/gdm-settings.c -+++ gdm-2.32.0/common/gdm-settings.c +--- gdm-2.29.4.orig/common/gdm-settings.c ++++ gdm-2.29.4/common/gdm-settings.c @@ -41,6 +41,7 @@ #include "gdm-settings-glue.h" @@ -566,10 +565,10 @@ Index: gdm-2.32.0/common/gdm-settings.c G_OBJECT_CLASS (gdm_settings_parent_class)->finalize (object); } -Index: gdm-2.32.0/common/gdm-sysconfig.c +Index: gdm-2.29.4/common/gdm-sysconfig.c =================================================================== --- /dev/null -+++ gdm-2.32.0/common/gdm-sysconfig.c ++++ gdm-2.29.4/common/gdm-sysconfig.c @@ -0,0 +1,481 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1052,10 +1051,10 @@ Index: gdm-2.32.0/common/gdm-sysconfig.c + g_strfreev (lines); + return result; +} -Index: gdm-2.32.0/common/gdm-sysconfig.h +Index: gdm-2.29.4/common/gdm-sysconfig.h =================================================================== --- /dev/null -+++ gdm-2.32.0/common/gdm-sysconfig.h ++++ gdm-2.29.4/common/gdm-sysconfig.h @@ -0,0 +1,43 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1100,10 +1099,10 @@ Index: gdm-2.32.0/common/gdm-sysconfig.h +G_END_DECLS + +#endif /* __GDM_SYSCONFIG_H */ -Index: gdm-2.32.0/data/gdm.conf-custom.in +Index: gdm-2.29.4/data/gdm.conf-custom.in =================================================================== ---- gdm-2.32.0.orig/data/gdm.conf-custom.in -+++ gdm-2.32.0/data/gdm.conf-custom.in +--- gdm-2.29.4.orig/data/gdm.conf-custom.in ++++ gdm-2.29.4/data/gdm.conf-custom.in @@ -1,4 +1,7 @@ # GDM configuration storage +# diff --git a/gdm.changes b/gdm.changes index f6a1429..bf6617f 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,38 +1,3 @@ -------------------------------------------------------------------- -Fri Oct 8 13:38:23 CEST 2010 - vuntz@opensuse.org - -- Rework the way we handle passwordless logins: - + Stop using SuSEconfig for this. Since this is the last thing - that was done in SuSEconfig.gdm, drop SuSEconfig.gdm. - + Add gdm-passwordless-login.patch: we now directly look at the - DISPLAYMANAGER_PASSWORD_LESS_LOGIN option in - /etc/sysconfig/displaymanager, and use the gdm-autologin pam - service for authentication when we want passwordless logins. - + On upgrades, we make sure that /etc/pam.d/gdm does not contain - the old way to handle DISPLAYMANAGER_PASSWORD_LESS_LOGIN: if - /sbin/conf.d/SuSEconfig.gdm exists and if /etc/pam.d/gdm - contains pam_permit.so, then we have an old package which used - the old way. We move /etc/pam.d/gdm to /etc/pam.d/gdm.rpmold to - make sure we get back the right pam configuration. -- Update gdm-domain-logon.patch a bit: even though it's not - applied because the patch needs to be rebased, a few things could - be cleaned up. The most visible part is that we prefix the - configuration key with SUSE to clearly show it's SUSE-specific. -- Update gdm-sysconfig-settings.patch a tiny bit to make - gdm-passwordless-login.patch easier. - -------------------------------------------------------------------- -Mon Sep 27 20:29:08 CEST 2010 - vuntz@opensuse.org - -- Update to version 2.32.0: - + Updated translations. - -------------------------------------------------------------------- -Mon Sep 27 05:59:41 UTC 2010 - aj@suse.de - -- Mark /var/run/gdm as ghost in case that /var/run is on tmpfs. - gdm creates the directory itself. - ------------------------------------------------------------------- Wed Sep 22 14:26:23 CEST 2010 - vuntz@opensuse.org diff --git a/gdm.spec b/gdm.spec index e0a13b0..33873e0 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,5 +1,5 @@ # -# spec file for package gdm (Version 2.32.0) +# spec file for package gdm (Version 2.31.92) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -41,12 +41,14 @@ BuildRequires: xorg-x11-server-extra BuildRequires: zenity License: GPLv2+ Group: System/GUI/GNOME -Version: 2.32.0 +Version: 2.31.92 Release: 1 Summary: The GNOME 2.x Display Manager Source: %{name}-%{version}.tar.bz2 Source1: gdm.pamd Source2: gdm-autologin.pamd +# FIXME: See FIXME in the script. +Source3: SuSEconfig.gdm # PATCH-FIX-UPSTREAM gdm-helper-directory.patch bgo582320 vuntz@novell.com -- Add --with-gnome-settings-daemon-directory, --with-consolekit-directory, --with-at-spi-registryd-directory Patch1: gdm-helper-directory.patch # PATCH-FIX-OPENSUSE gdm-is-not-unstable-unless.patch vuntz@opensuse.org -- Make gdm think it's never running a development version unless SUSE_ENABLE_UNSTABLE_CHECK is set. This disables fatal warnings as well as abusive log @@ -59,10 +61,8 @@ Patch6: gdm-desktop-session-env-pam.patch Patch7: gdm-suse-xsession.patch # PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager Patch8: gdm-sysconfig-settings.patch -# PATCH-FEATURE-OPENSUSE gdm-passwordless-login.patch vuntz@opensuse.org -- Support DISPLAYMANAGER_PASSWORD_LESS_LOGIN sysconfig option -Patch9: gdm-passwordless-login.patch # PATCH-NEEDS-REBASE gdm-domain-logon.patch hpj@novell.com -- Add UI to log in a specific domain (was: PATCH_FEATURE-SLED bnc#627575) -Patch10: gdm-domain-logon.patch +Patch9: gdm-domain-logon.patch # PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch) Patch15: gdm-greeter-greater-ui.patch # PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations. @@ -146,8 +146,7 @@ translation-update-upstream %patch6 -p1 %patch7 -p1 %patch8 -p1 -%patch9 -p1 -#%patch10 -p1 +#%patch9 -p1 %patch15 -p1 %patch18 -p1 %patch20 -p1 @@ -182,12 +181,16 @@ autoreconf -f -i %find_gconf_schemas # Remove wrapper, it is not needed. mv $RPM_BUILD_ROOT%{_sbindir}/gdm-binary $RPM_BUILD_ROOT%{_sbindir}/gdm -# Install PAM files. +# Install PAM files and remove examples. mkdir -p $RPM_BUILD_ROOT/etc/pam.d cp %{S:1} $RPM_BUILD_ROOT/etc/pam.d/gdm cp %{S:2} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin # Install PostLogin script. mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default +# Install SuSEconfig script. +mkdir -p $RPM_BUILD_ROOT/sbin/conf.d +cp %{S:3} $RPM_BUILD_ROOT/sbin/conf.d +chmod +x $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.gdm mkdir -p $RPM_BUILD_ROOT{_localstatedir}/log/gdm mkdir -p $RPM_BUILD_ROOT{_localstatedir}/run/gdm %find_lang %{name} @@ -216,15 +219,6 @@ if test -f sbin/conf.d/SuSEconfig.gdm && grep -q gdm-autologin sbin/conf.d/SuSEc fi fi fi -# Fix how DISPLAYMANAGER_PASSWORD_LESS_LOGIN is used. Before 11.4, -# /etc/pam.d/gdm was changed to use pam_permit. We don't want this anymore. -if test -f /sbin/conf.d/SuSEconfig.gdm; then - grep -q pam_permit.so /etc/pam.d/gdm - if test $? -eq 0; then - # We'll just use the file from the new package - mv /etc/pam.d/gdm /etc/pam.d/gdm.rpmold - fi -fi %preun -f %{name}.schemas_preun @@ -248,13 +242,14 @@ fi %{_libexecdir}/gdm/gdm-* %exclude %{_libexecdir}/gdm/gdm-user-switch-applet %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm -%ghost %attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm +%attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm/.gconf.mandatory %attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.mandatory/%gconf-tree.xml %attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.path %dir %{_localstatedir}/cache/gdm %config /etc/pam.d/* +/sbin/conf.d/SuSEconfig.gdm %config %{_sysconfdir}/dbus-1/system.d/gdm.conf %files branding-upstream From 36cb474ec057893bfc29dae2f18cd4f89e689dfb782f8d750db401a61ab31718 Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Fri, 15 Oct 2010 14:46:24 +0000 Subject: [PATCH 5/5] Updating link to change in openSUSE:Factory/gdm revision 103.0 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=2a4875658e2556877029e39e9516e66a --- SuSEconfig.gdm | 29 ------- gdm-2.31.92.tar.bz2 | 3 - gdm-2.32.0.tar.bz2 | 3 + gdm-domain-logon.patch | 21 ++--- gdm-passwordless-login.patch | 163 +++++++++++++++++++++++++++++++++++ gdm-sysconfig-settings.patch | 47 +++++----- gdm.changes | 35 ++++++++ gdm.spec | 31 ++++--- 8 files changed, 254 insertions(+), 78 deletions(-) delete mode 100644 SuSEconfig.gdm delete mode 100644 gdm-2.31.92.tar.bz2 create mode 100644 gdm-2.32.0.tar.bz2 create mode 100644 gdm-passwordless-login.patch diff --git a/SuSEconfig.gdm b/SuSEconfig.gdm deleted file mode 100644 index 0cd56d1..0000000 --- a/SuSEconfig.gdm +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2004-2006 SuSE -# Author: Stanislav Brabec - -type -p cmp &> /dev/null || { - echo "${0##*/}: No cmp in PATH ... skipping" - exit 0 -} - -r=$ROOT -DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no" -test -f $r/etc/sysconfig/displaymanager || { - echo "${0##*/}: No $r/etc/sysconfig/displaymanager found." - exit 1 -} -. $r/etc/sysconfig/displaymanager - -# Password-less login is implemented by PAM. Do the required change. -if [ "$DISPLAYMANAGER_PASSWORD_LESS_LOGIN" = "yes" ] ; then - sed 's/^\(auth[[:space:]][[:space:]]*\)include[[:space:]]\([[:space:]]*\)common-auth/\1required\2pam_permit.so/' <$r/etc/pam.d/gdm >$r/etc/pam.d/gdm.new -else - sed 's/^\(auth[[:space:]][[:space:]]*\)required\([[:space:]][[:space:]]*\)pam_permit\.so/\1include \2common-auth/' <$r/etc/pam.d/gdm >$r/etc/pam.d/gdm.new -fi -if cmp -s $r/etc/pam.d/gdm $r/etc/pam.d/gdm.new ; then - rm $r/etc/pam.d/gdm.new -else - mv $r/etc/pam.d/gdm.new $r/etc/pam.d/gdm -fi diff --git a/gdm-2.31.92.tar.bz2 b/gdm-2.31.92.tar.bz2 deleted file mode 100644 index 83ec895..0000000 --- a/gdm-2.31.92.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:429c4d8ef0ae1a30be8f250dca36c69cf948d20f57b0114676e41adb2528d995 -size 2476222 diff --git a/gdm-2.32.0.tar.bz2 b/gdm-2.32.0.tar.bz2 new file mode 100644 index 0000000..56129ee --- /dev/null +++ b/gdm-2.32.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f47acd19ed10d6fbb37c3e2b54f5b392c7020db67f71db3f75567ead30ab2fa4 +size 2477647 diff --git a/gdm-domain-logon.patch b/gdm-domain-logon.patch index 2b0f04a..cb87d74 100644 --- a/gdm-domain-logon.patch +++ b/gdm-domain-logon.patch @@ -1803,7 +1803,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c panel->priv->geometry.width = -1; panel->priv->geometry.height = -1; -+ if (!gdm_settings_client_get_boolean (GDM_KEY_SHOW_DOMAIN, ++ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_SHOW_DOMAIN, + &panel->priv->show_domain)) { + panel->priv->show_domain = FALSE; + } @@ -2170,7 +2170,7 @@ Index: gdm-2.29.5/common/gdm-settings-keys.h #define GDM_KEY_DEBUG "debug/Enable" -+#define GDM_KEY_SHOW_DOMAIN "greeter/ShowDomain" ++#define GDM_KEY_SUSE_SHOW_DOMAIN "greeter/SUSEShowDomain" #define GDM_KEY_INCLUDE "greeter/Include" #define GDM_KEY_EXCLUDE "greeter/Exclude" #define GDM_KEY_INCLUDE_ALL "greeter/IncludeAll" @@ -2179,10 +2179,10 @@ Index: gdm-2.29.5/common/gdm-settings-system-backend.c --- gdm-2.29.5.orig/common/gdm-settings-system-backend.c +++ gdm-2.29.5/common/gdm-settings-system-backend.c @@ -44,11 +44,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_AD_KEY "DISPLAYMANAGER_AD_INTEGRATION" + #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_AD_KEY "DISPLAYMANAGER_AD_INTEGRATION" /* Keys from sysconfig that have no equivalent in GDM: * - DISPLAYMANAGER_ROOT_LOGIN_REMOTE * - DISPLAYMANAGER_STARTS_XSERVER (we always have a local display manager, @@ -2210,7 +2210,7 @@ Index: gdm-2.29.5/common/gdm-settings-system-backend.c val = g_strdup (xdmcp ? "true" : "false"); } } -+ } else if (!strcasecmp (key, GDM_KEY_SHOW_DOMAIN)) { ++ } else if (!strcasecmp (key, GDM_KEY_SUSE_SHOW_DOMAIN)) { + if (priv->dirty_show_domain) { + val = g_strdup (priv->set_show_domain ? "true" : "false"); + } else { @@ -2248,7 +2248,7 @@ Index: gdm-2.29.5/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_DOMAIN)) { ++ } else if (!strcasecmp (key, GDM_KEY_SUSE_SHOW_DOMAIN)) { + priv->set_show_domain = value_to_boolean (value); + GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_show_domain = TRUE; } else { @@ -2258,11 +2258,12 @@ Index: gdm-2.29.5/data/gdm.schemas.in.in =================================================================== --- gdm-2.29.5.orig/data/gdm.schemas.in.in +++ gdm-2.29.5/data/gdm.schemas.in.in -@@ -61,6 +61,11 @@ +@@ -61,6 +61,12 @@ -+ greeter/ShowDomain ++ ++ greeter/SUSEShowDomain + b + false + diff --git a/gdm-passwordless-login.patch b/gdm-passwordless-login.patch new file mode 100644 index 0000000..9c1e36d --- /dev/null +++ b/gdm-passwordless-login.patch @@ -0,0 +1,163 @@ +Index: gdm-2.32.0/common/gdm-settings-system-backend.c +=================================================================== +--- gdm-2.32.0.orig/common/gdm-settings-system-backend.c ++++ gdm-2.32.0/common/gdm-settings-system-backend.c +@@ -44,11 +44,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" + /* 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) + */ +@@ -66,12 +66,14 @@ struct GdmSettingsSystemBackendPrivate + gboolean dirty_autologin_user; + gboolean dirty_tcp_open; + gboolean dirty_xdmcp; ++ gboolean dirty_passwordless; + + gchar *set_autologin_user; + gboolean set_autologin_enabled; + + gboolean set_tcp_open; + gboolean set_xdmcp; ++ gboolean set_passwordless; + }; + + static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass); +@@ -141,6 +143,16 @@ gdm_settings_system_backend_get_value (G + val = g_strdup (xdmcp ? "true" : "false"); + } + } ++ } else if (!strcasecmp (key, GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE)) { ++ if (priv->dirty_passwordless) { ++ val = g_strdup (priv->set_passwordless ? "true" : "false"); ++ } else { ++ gboolean passwordless; ++ ++ if (gdm_sysconfig_get_value_boolean ((const gchar **) priv->lines, SYSCONFIG_PASSWORDLESS_KEY, &passwordless)) { ++ val = g_strdup (passwordless ? "true" : "false"); ++ } ++ } + } else { + g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found"); + goto out; +@@ -201,6 +213,12 @@ save_settings (GdmSettingsSystemBackend + backend->priv->set_xdmcp ? "yes" : "no"); + } + ++ if (backend->priv->dirty_passwordless) { ++ if (!gdm_sysconfig_set_value_boolean (backend->priv->lines, SYSCONFIG_PASSWORDLESS_KEY, backend->priv->set_passwordless)) ++ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_PASSWORDLESS_KEY, ++ backend->priv->set_passwordless ? "yes" : "no"); ++ } ++ + if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines)) + g_warning ("Unable to save settings to %s.", backend->priv->filename); + +@@ -209,6 +227,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; + } + + static gboolean +@@ -276,6 +295,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; ++ } 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-2.32.0/common/gdm-settings-keys.h +=================================================================== +--- gdm-2.32.0.orig/common/gdm-settings-keys.h ++++ gdm-2.32.0/common/gdm-settings-keys.h +@@ -32,6 +32,7 @@ G_BEGIN_DECLS + #define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable" + #define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin" + #define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay" ++#define GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE "daemon/SUSEPasswordlessEnable" + + #define GDM_KEY_DEBUG "debug/Enable" + +Index: gdm-2.32.0/data/gdm.schemas.in.in +=================================================================== +--- gdm-2.32.0.orig/data/gdm.schemas.in.in ++++ gdm-2.32.0/data/gdm.schemas.in.in +@@ -47,6 +47,12 @@ + i + 30 + ++ ++ ++ daemon/SUSEPasswordlessEnable ++ b ++ false ++ + + + debug/Enable +Index: gdm-2.32.0/daemon/gdm-factory-slave.c +=================================================================== +--- gdm-2.32.0.orig/daemon/gdm-factory-slave.c ++++ gdm-2.32.0/daemon/gdm-factory-slave.c +@@ -44,6 +44,9 @@ + + #include "gdm-common.h" + ++#include "gdm-settings-client.h" ++#include "gdm-settings-keys.h" ++ + #include "gdm-factory-slave.h" + #include "gdm-factory-slave-glue.h" + +@@ -406,9 +409,16 @@ on_greeter_begin_verification_for_user ( + const char *username, + GdmFactorySlave *slave) + { ++ gboolean passwordless; ++ ++ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE, ++ &passwordless)) { ++ passwordless = FALSE; ++ } ++ + g_debug ("GdmFactorySlave: begin verification for user"); + gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), +- "gdm", ++ passwordless ? "gdm-autologin" : "gdm", + username); + } + +Index: gdm-2.32.0/daemon/gdm-simple-slave.c +=================================================================== +--- gdm-2.32.0.orig/daemon/gdm-simple-slave.c ++++ gdm-2.32.0/daemon/gdm-simple-slave.c +@@ -837,9 +837,16 @@ on_greeter_begin_verification_for_user ( + const char *username, + GdmSimpleSlave *slave) + { ++ gboolean passwordless; ++ ++ if (!gdm_settings_client_get_boolean (GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE, ++ &passwordless)) { ++ passwordless = FALSE; ++ } ++ + g_debug ("GdmSimpleSlave: begin verification"); + gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), +- "gdm", ++ passwordless ? "gdm-autologin" : "gdm", + username); + } + diff --git a/gdm-sysconfig-settings.patch b/gdm-sysconfig-settings.patch index 8f11d5e..3785e77 100644 --- a/gdm-sysconfig-settings.patch +++ b/gdm-sysconfig-settings.patch @@ -1,8 +1,8 @@ -Index: gdm-2.29.4/common/Makefile.am +Index: gdm-2.32.0/common/Makefile.am =================================================================== ---- gdm-2.29.4.orig/common/Makefile.am -+++ gdm-2.29.4/common/Makefile.am -@@ -84,6 +84,8 @@ libgdmcommon_la_SOURCES = \ +--- gdm-2.32.0.orig/common/Makefile.am ++++ gdm-2.32.0/common/Makefile.am +@@ -82,6 +82,8 @@ libgdmcommon_la_SOURCES = \ gdm-settings-backend.h \ gdm-settings-desktop-backend.c \ gdm-settings-desktop-backend.h \ @@ -11,7 +11,7 @@ Index: gdm-2.29.4/common/Makefile.am gdm-settings-keys.h \ gdm-settings-utils.h \ gdm-settings-utils.c \ -@@ -91,6 +93,8 @@ libgdmcommon_la_SOURCES = \ +@@ -89,6 +91,8 @@ libgdmcommon_la_SOURCES = \ gdm-settings-direct.h \ gdm-settings-client.h \ gdm-settings-client.c \ @@ -20,11 +20,11 @@ Index: gdm-2.29.4/common/Makefile.am gdm-log.h \ gdm-log.c \ gdm-md5.h \ -Index: gdm-2.29.4/common/gdm-settings-system-backend.c +Index: gdm-2.32.0/common/gdm-settings-system-backend.c =================================================================== --- /dev/null -+++ gdm-2.29.4/common/gdm-settings-system-backend.c -@@ -0,0 +1,348 @@ ++++ gdm-2.32.0/common/gdm-settings-system-backend.c +@@ -0,0 +1,349 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2008 Hans Petter Jansson @@ -68,13 +68,14 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c +#include "gdm-marshal.h" +#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" +/* 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) + */ @@ -373,10 +374,10 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c + + return GDM_SETTINGS_BACKEND (object); +} -Index: gdm-2.29.4/common/gdm-settings-system-backend.h +Index: gdm-2.32.0/common/gdm-settings-system-backend.h =================================================================== --- /dev/null -+++ gdm-2.29.4/common/gdm-settings-system-backend.h ++++ gdm-2.32.0/common/gdm-settings-system-backend.h @@ -0,0 +1,56 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -434,10 +435,10 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.h +G_END_DECLS + +#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */ -Index: gdm-2.29.4/common/gdm-settings.c +Index: gdm-2.32.0/common/gdm-settings.c =================================================================== ---- gdm-2.29.4.orig/common/gdm-settings.c -+++ gdm-2.29.4/common/gdm-settings.c +--- gdm-2.32.0.orig/common/gdm-settings.c ++++ gdm-2.32.0/common/gdm-settings.c @@ -41,6 +41,7 @@ #include "gdm-settings-glue.h" @@ -565,10 +566,10 @@ Index: gdm-2.29.4/common/gdm-settings.c G_OBJECT_CLASS (gdm_settings_parent_class)->finalize (object); } -Index: gdm-2.29.4/common/gdm-sysconfig.c +Index: gdm-2.32.0/common/gdm-sysconfig.c =================================================================== --- /dev/null -+++ gdm-2.29.4/common/gdm-sysconfig.c ++++ gdm-2.32.0/common/gdm-sysconfig.c @@ -0,0 +1,481 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1051,10 +1052,10 @@ Index: gdm-2.29.4/common/gdm-sysconfig.c + g_strfreev (lines); + return result; +} -Index: gdm-2.29.4/common/gdm-sysconfig.h +Index: gdm-2.32.0/common/gdm-sysconfig.h =================================================================== --- /dev/null -+++ gdm-2.29.4/common/gdm-sysconfig.h ++++ gdm-2.32.0/common/gdm-sysconfig.h @@ -0,0 +1,43 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -1099,10 +1100,10 @@ Index: gdm-2.29.4/common/gdm-sysconfig.h +G_END_DECLS + +#endif /* __GDM_SYSCONFIG_H */ -Index: gdm-2.29.4/data/gdm.conf-custom.in +Index: gdm-2.32.0/data/gdm.conf-custom.in =================================================================== ---- gdm-2.29.4.orig/data/gdm.conf-custom.in -+++ gdm-2.29.4/data/gdm.conf-custom.in +--- gdm-2.32.0.orig/data/gdm.conf-custom.in ++++ gdm-2.32.0/data/gdm.conf-custom.in @@ -1,4 +1,7 @@ # GDM configuration storage +# diff --git a/gdm.changes b/gdm.changes index bf6617f..f6a1429 100644 --- a/gdm.changes +++ b/gdm.changes @@ -1,3 +1,38 @@ +------------------------------------------------------------------- +Fri Oct 8 13:38:23 CEST 2010 - vuntz@opensuse.org + +- Rework the way we handle passwordless logins: + + Stop using SuSEconfig for this. Since this is the last thing + that was done in SuSEconfig.gdm, drop SuSEconfig.gdm. + + Add gdm-passwordless-login.patch: we now directly look at the + DISPLAYMANAGER_PASSWORD_LESS_LOGIN option in + /etc/sysconfig/displaymanager, and use the gdm-autologin pam + service for authentication when we want passwordless logins. + + On upgrades, we make sure that /etc/pam.d/gdm does not contain + the old way to handle DISPLAYMANAGER_PASSWORD_LESS_LOGIN: if + /sbin/conf.d/SuSEconfig.gdm exists and if /etc/pam.d/gdm + contains pam_permit.so, then we have an old package which used + the old way. We move /etc/pam.d/gdm to /etc/pam.d/gdm.rpmold to + make sure we get back the right pam configuration. +- Update gdm-domain-logon.patch a bit: even though it's not + applied because the patch needs to be rebased, a few things could + be cleaned up. The most visible part is that we prefix the + configuration key with SUSE to clearly show it's SUSE-specific. +- Update gdm-sysconfig-settings.patch a tiny bit to make + gdm-passwordless-login.patch easier. + +------------------------------------------------------------------- +Mon Sep 27 20:29:08 CEST 2010 - vuntz@opensuse.org + +- Update to version 2.32.0: + + Updated translations. + +------------------------------------------------------------------- +Mon Sep 27 05:59:41 UTC 2010 - aj@suse.de + +- Mark /var/run/gdm as ghost in case that /var/run is on tmpfs. + gdm creates the directory itself. + ------------------------------------------------------------------- Wed Sep 22 14:26:23 CEST 2010 - vuntz@opensuse.org diff --git a/gdm.spec b/gdm.spec index 33873e0..e0a13b0 100644 --- a/gdm.spec +++ b/gdm.spec @@ -1,5 +1,5 @@ # -# spec file for package gdm (Version 2.31.92) +# spec file for package gdm (Version 2.32.0) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -41,14 +41,12 @@ BuildRequires: xorg-x11-server-extra BuildRequires: zenity License: GPLv2+ Group: System/GUI/GNOME -Version: 2.31.92 +Version: 2.32.0 Release: 1 Summary: The GNOME 2.x Display Manager Source: %{name}-%{version}.tar.bz2 Source1: gdm.pamd Source2: gdm-autologin.pamd -# FIXME: See FIXME in the script. -Source3: SuSEconfig.gdm # PATCH-FIX-UPSTREAM gdm-helper-directory.patch bgo582320 vuntz@novell.com -- Add --with-gnome-settings-daemon-directory, --with-consolekit-directory, --with-at-spi-registryd-directory Patch1: gdm-helper-directory.patch # PATCH-FIX-OPENSUSE gdm-is-not-unstable-unless.patch vuntz@opensuse.org -- Make gdm think it's never running a development version unless SUSE_ENABLE_UNSTABLE_CHECK is set. This disables fatal warnings as well as abusive log @@ -61,8 +59,10 @@ Patch6: gdm-desktop-session-env-pam.patch Patch7: gdm-suse-xsession.patch # PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager Patch8: gdm-sysconfig-settings.patch +# PATCH-FEATURE-OPENSUSE gdm-passwordless-login.patch vuntz@opensuse.org -- Support DISPLAYMANAGER_PASSWORD_LESS_LOGIN sysconfig option +Patch9: gdm-passwordless-login.patch # PATCH-NEEDS-REBASE gdm-domain-logon.patch hpj@novell.com -- Add UI to log in a specific domain (was: PATCH_FEATURE-SLED bnc#627575) -Patch9: gdm-domain-logon.patch +Patch10: gdm-domain-logon.patch # PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch) Patch15: gdm-greeter-greater-ui.patch # PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations. @@ -146,7 +146,8 @@ translation-update-upstream %patch6 -p1 %patch7 -p1 %patch8 -p1 -#%patch9 -p1 +%patch9 -p1 +#%patch10 -p1 %patch15 -p1 %patch18 -p1 %patch20 -p1 @@ -181,16 +182,12 @@ autoreconf -f -i %find_gconf_schemas # Remove wrapper, it is not needed. mv $RPM_BUILD_ROOT%{_sbindir}/gdm-binary $RPM_BUILD_ROOT%{_sbindir}/gdm -# Install PAM files and remove examples. +# Install PAM files. mkdir -p $RPM_BUILD_ROOT/etc/pam.d cp %{S:1} $RPM_BUILD_ROOT/etc/pam.d/gdm cp %{S:2} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin # Install PostLogin script. mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default -# Install SuSEconfig script. -mkdir -p $RPM_BUILD_ROOT/sbin/conf.d -cp %{S:3} $RPM_BUILD_ROOT/sbin/conf.d -chmod +x $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.gdm mkdir -p $RPM_BUILD_ROOT{_localstatedir}/log/gdm mkdir -p $RPM_BUILD_ROOT{_localstatedir}/run/gdm %find_lang %{name} @@ -219,6 +216,15 @@ if test -f sbin/conf.d/SuSEconfig.gdm && grep -q gdm-autologin sbin/conf.d/SuSEc fi fi fi +# Fix how DISPLAYMANAGER_PASSWORD_LESS_LOGIN is used. Before 11.4, +# /etc/pam.d/gdm was changed to use pam_permit. We don't want this anymore. +if test -f /sbin/conf.d/SuSEconfig.gdm; then + grep -q pam_permit.so /etc/pam.d/gdm + if test $? -eq 0; then + # We'll just use the file from the new package + mv /etc/pam.d/gdm /etc/pam.d/gdm.rpmold + fi +fi %preun -f %{name}.schemas_preun @@ -242,14 +248,13 @@ fi %{_libexecdir}/gdm/gdm-* %exclude %{_libexecdir}/gdm/gdm-user-switch-applet %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm -%attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm +%ghost %attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm/.gconf.mandatory %attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.mandatory/%gconf-tree.xml %attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.path %dir %{_localstatedir}/cache/gdm %config /etc/pam.d/* -/sbin/conf.d/SuSEconfig.gdm %config %{_sysconfdir}/dbus-1/system.d/gdm.conf %files branding-upstream