diff --git a/gdm-3.6.0.tar.xz b/gdm-3.6.0.tar.xz
deleted file mode 100644
index 87328d5..0000000
--- a/gdm-3.6.0.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ea63736fc8f7234aca442f4e99b3ba9cc29dce5e464ed93f7bf7eb8c49abd60b
-size 1627064
diff --git a/gdm-3.6.1.tar.xz b/gdm-3.6.1.tar.xz
new file mode 100644
index 0000000..b4269f9
--- /dev/null
+++ b/gdm-3.6.1.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aff69dde55e11b540145002c95cf966cd16376910283b385520431ced10c5031
+size 1627088
diff --git a/gdm-passwordless-login.patch b/gdm-passwordless-login.patch
index c6eea8c..a7a2e9a 100644
--- a/gdm-passwordless-login.patch
+++ b/gdm-passwordless-login.patch
@@ -1,7 +1,7 @@
-Index: gdm-3.5.91/common/gdm-settings-system-backend.c
+Index: gdm-3.6.1/common/gdm-settings-system-backend.c
===================================================================
---- gdm-3.5.91.orig/common/gdm-settings-system-backend.c
-+++ gdm-3.5.91/common/gdm-settings-system-backend.c
+--- gdm-3.6.1.orig/common/gdm-settings-system-backend.c
++++ gdm-3.6.1/common/gdm-settings-system-backend.c
@@ -43,11 +43,11 @@
#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
#define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
@@ -78,10 +78,10 @@ Index: gdm-3.5.91/common/gdm-settings-system-backend.c
} else {
g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
return FALSE;
-Index: gdm-3.5.91/common/gdm-settings-keys.h
+Index: gdm-3.6.1/common/gdm-settings-keys.h
===================================================================
---- gdm-3.5.91.orig/common/gdm-settings-keys.h
-+++ gdm-3.5.91/common/gdm-settings-keys.h
+--- gdm-3.6.1.orig/common/gdm-settings-keys.h
++++ gdm-3.6.1/common/gdm-settings-keys.h
@@ -33,6 +33,7 @@ G_BEGIN_DECLS
#define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin"
#define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay"
@@ -90,11 +90,11 @@ Index: gdm-3.5.91/common/gdm-settings-keys.h
#define GDM_KEY_DEBUG "debug/Enable"
-Index: gdm-3.5.91/data/gdm.schemas.in.in
+Index: gdm-3.6.1/data/gdm.schemas.in.in
===================================================================
---- gdm-3.5.91.orig/data/gdm.schemas.in.in
-+++ gdm-3.5.91/data/gdm.schemas.in.in
-@@ -52,6 +52,12 @@
+--- gdm-3.6.1.orig/data/gdm.schemas.in.in
++++ gdm-3.6.1/data/gdm.schemas.in.in
+@@ -58,6 +58,12 @@
b
false
@@ -106,11 +106,11 @@ Index: gdm-3.5.91/data/gdm.schemas.in.in
+
- debug/Enable
-Index: gdm-3.5.91/daemon/gdm-session.c
+ security/DisallowTCP
+Index: gdm-3.6.1/daemon/gdm-session.c
===================================================================
---- gdm-3.5.91.orig/daemon/gdm-session.c
-+++ gdm-3.5.91/daemon/gdm-session.c
+--- gdm-3.6.1.orig/daemon/gdm-session.c
++++ gdm-3.6.1/daemon/gdm-session.c
@@ -55,6 +55,9 @@
#include "gdm-session-worker-glue.h"
#include "gdm-common.h"
@@ -121,7 +121,7 @@ Index: gdm-3.5.91/daemon/gdm-session.c
#define GDM_SESSION_DBUS_ERROR_CANCEL "org.gnome.DisplayManager.Session.Error.Cancel"
#define GDM_SESSION_DBUS_OBJECT_PATH "/org/gnome/DisplayManager/Session"
-@@ -1222,6 +1225,15 @@ gdm_session_handle_client_begin_verifica
+@@ -1228,6 +1231,15 @@ gdm_session_handle_client_begin_verifica
GdmSession *self)
{
GdmSessionConversation *conversation;
diff --git a/gdm.changes b/gdm.changes
index 0d8f155..77287f4 100644
--- a/gdm.changes
+++ b/gdm.changes
@@ -1,3 +1,20 @@
+-------------------------------------------------------------------
+Tue Oct 16 07:10:36 UTC 2012 - dimstar@opensuse.org
+
+- Update to version 3.6.1:
+ + Various InitialSetup fixes
+ + ignore pam info messages for automatic logins
+ + unlock fixes
+ + user switching fix on consolekit systems
+ + be more robust against empty user shells/home dirs
+ + create program session log file as root instead of after setuid
+ + properly reload gdm.schemas on SIGHUP
+ + bring back gdmflexiserver
+ + Updated translations.
+- Reintroduce gdmflexiserver subpackage and gdmflexiserver-wrapper
+ source that were dropped with 3.5.90: gdmflexiserver was
+ re-introduced as gnome-screensaver depends on it.
+
-------------------------------------------------------------------
Tue Sep 25 19:01:14 UTC 2012 - dimstar@opensuse.org
diff --git a/gdm.spec b/gdm.spec
index 13fc5ab..ae614b1 100644
--- a/gdm.spec
+++ b/gdm.spec
@@ -24,7 +24,7 @@
%define enable_split_authentication 0
Name: gdm
-Version: 3.6.0
+Version: 3.6.1
Release: 0
Summary: The GNOME Display Manager
License: GPL-2.0+
@@ -36,6 +36,8 @@ Source2: gdm-autologin.pamd
Source3: gdm-launch-environment.pamd
Source6: gdm-fingerprint.pamd
Source7: gdm-smartcard.pamd
+# gdmflexiserver wrapper, to enable other display managers to abuse the gdmflexiserver namespace (like lightdm)
+Source4: gdmflexiserver-wrapper
# /etc/xinit.d/xdm integration script
Source5: X11-displaymanager-gdm
# 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
@@ -94,6 +96,7 @@ Requires: %{name}-branding = %{version}
%if ! %{with_systemd}
Requires: ConsoleKit-x11
%endif
+Requires: gdmflexiserver
Requires: gnome-session-core
Requires: klogd
Requires: xorg-x11-server-extra
@@ -202,6 +205,18 @@ providing graphical log-ins and managing local and remote displays.
This package provides the upstream default configuration for gdm.
+%package -n gdmflexiserver
+Summary: Gdmflexiserver Compatibility Wrapper for Display Managers
+Group: System/GUI/GNOME
+Suggests: gdm
+BuildArch: noarch
+
+%description -n gdmflexiserver
+The gdmflexiserver tool interacts with the display manager to
+enable fast user switching. This package contains a wrapper that
+selects the correct gdmflexiserver implementatoin, based on the
+running display manager.
+
%lang_package
%prep
%setup -q
@@ -280,7 +295,10 @@ ln -s gdm $RPM_BUILD_ROOT/etc/pam.d/gdm-password
## Install other files
# Install PostLogin script.
mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default
-# Install /etc/xinit.d/xdm integration script
+# Move gdmflexiserver to libexecdir and replace it with the compatibility wrapper
+mv $RPM_BUILD_ROOT%{_bindir}/gdmflexiserver $RPM_BUILD_ROOT%{_libexecdir}/gdm/gdmflexiserver
+install -m 755 %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/gdmflexiserver
+#Install /etc/xinit.d/xdm integration script
install -D -m 644 %{SOURCE5} %{buildroot}%{_libexecdir}/X11/displaymanagers/gdm
# Install other files
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/gdm
@@ -358,6 +376,7 @@ dconf update
%{_datadir}/pixmaps/*.png
%dir %{_libexecdir}/gdm
%{_libexecdir}/gdm/gdm-*
+%{_libexecdir}/gdm/gdmflexiserver
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm
%ghost %attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm
%attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm
@@ -431,6 +450,10 @@ dconf update
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/gdm/custom.conf
+%files -n gdmflexiserver
+%defattr(-,root,root)
+%{_bindir}/gdmflexiserver
+
%files lang -f %{name}.lang
%changelog
diff --git a/gdmflexiserver-wrapper b/gdmflexiserver-wrapper
new file mode 100644
index 0000000..3943b69
--- /dev/null
+++ b/gdmflexiserver-wrapper
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+if test ! -x "${GDMFLEXISERVER:-/usr/lib/gdm/gdmflexiserver}"; then
+ echo "No gdmflexiserver implementation found. Maybe install gdm?" >&2
+ exit 1
+else
+ exec "${GDMFLEXISERVER:-/usr/lib/gdm/gdmflexiserver}"
+fi