![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community,
here is the log from the commit of package gdm for openSUSE:Factory
checked in at Fri Oct 15 16:46:19 CEST 2010.
--------
--- GNOME/gdm/gdm.changes 2010-09-22 15:40:14.000000000 +0200
+++ /mounts/work_src_done/STABLE/gdm/gdm.changes 2010-10-08 14:30:36.000000000 +0200
@@ -1,0 +2,35 @@
+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.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
SuSEconfig.gdm
gdm-2.31.92.tar.bz2
New:
----
gdm-2.32.0.tar.bz2
gdm-passwordless-login.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gdm.spec ++++++
--- /var/tmp/diff_new_pack.inPhBn/_old 2010-10-15 16:45:54.000000000 +0200
+++ /var/tmp/diff_new_pack.inPhBn/_new 2010-10-15 16:45:54.000000000 +0200
@@ -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: 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 @@
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 @@
%patch6 -p1
%patch7 -p1
%patch8 -p1
-#%patch9 -p1
+%patch9 -p1
+#%patch10 -p1
%patch15 -p1
%patch18 -p1
%patch20 -p1
@@ -181,16 +182,12 @@
%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 @@
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 @@
%{_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
++++++ gdm-2.31.92.tar.bz2 -> gdm-2.32.0.tar.bz2 ++++++
++++ 6148 lines of diff (skipped)
++++++ gdm-domain-logon.patch ++++++
--- /var/tmp/diff_new_pack.inPhBn/_old 2010-10-15 16:45:55.000000000 +0200
+++ /var/tmp/diff_new_pack.inPhBn/_new 2010-10-15 16:45:55.000000000 +0200
@@ -1803,7 +1803,7 @@
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 @@
#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 @@
--- 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 @@
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 @@
} 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 @@
===================================================================
--- 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 @@
</schema>
<schema>
-+ <key>greeter/ShowDomain</key>
++ <!-- SUSE-specific -->
++ <key>greeter/SUSEShowDomain</key>
+ <signature>b</signature>
+ <default>false</default>
+ </schema>
++++++ gdm-passwordless-login.patch ++++++
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 @@
<signature>i</signature>
<default>30</default>
</schema>
+ <schema>
+ <!-- SUSE-specific -->
+ <key>daemon/SUSEPasswordlessEnable</key>
+ <signature>b</signature>
+ <default>false</default>
+ </schema>
<schema>
<key>debug/Enable</key>
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);
}
++++++ gdm-sysconfig-settings.patch ++++++
--- /var/tmp/diff_new_pack.inPhBn/_old 2010-10-15 16:45:56.000000000 +0200
+++ /var/tmp/diff_new_pack.inPhBn/_new 2010-10-15 16:45:56.000000000 +0200
@@ -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 @@
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 @@
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
participants (1)
-
root@hilbert.suse.de