From 8125b3f0ca4d47ee369775ed7b03501be6be88c64cb109455055497aad7cff5b Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 11 Oct 2010 08:06:26 +0000 Subject: [PATCH] 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