Hello community,

here is the log from the commit of package gdm.3612 for openSUSE:13.2:Update 
checked in at 2015-03-18 17:18:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.2:Update/gdm.3612 (Old)
 and      /work/SRC/openSUSE:13.2:Update/.gdm.3612.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gdm.3612"

Changes:
--------
New Changes file:

--- /dev/null   2015-03-12 01:14:30.992027505 +0100
+++ /work/SRC/openSUSE:13.2:Update/.gdm.3612.new/gdm.changes    2015-03-18 
17:18:33.000000000 +0100
@@ -0,0 +1,3733 @@
+-------------------------------------------------------------------
+Tue Feb 10 11:28:29 UTC 2015 - [email protected]
+
+- Only install gdm-fingerprint and gdm-smartcard pamfiles if
+  enable_split_authentication is enabled (boo#900836).
+
+-------------------------------------------------------------------
+Tue Oct 14 13:04:31 UTC 2014 - [email protected]
+
+- Update to version 3.14.1:
+  + Update fedora PAM config to be more tolerant of /etc/nologin.
+  + leak fixes in libgdm.
+  + Fix spew on console generated from conversations that get
+    cancelled when they're closing.
+  + Drop some lingering fallback greeter cruft.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Sun Oct 12 19:09:15 UTC 2014 - [email protected]
+
+- Drop unused libattr-devel BuildRequires.
+
+-------------------------------------------------------------------
+Mon Sep 22 14:37:33 UTC 2014 - [email protected]
+
+- Update to version 3.14.0:
+  + Updated translations.
+
+-------------------------------------------------------------------
+Wed Sep 17 13:14:29 UTC 2014 - [email protected]
+
+- Update to version 3.13.92:
+  + Compat fixes to work with latest caribou.
+  + Minor code clean up.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Sun Sep  7 10:03:41 UTC 2014 - [email protected]
+
+- Update to version 3.13.91:
+  + Fix crash when typing password at screen lock.
+  + Fix default signal mask of session to not block SIGUSR1.
+  + Memory leak fixes.
+  + Fix for when building without consolekit.
+  + Fix autologin pam config on GNOME Continuous.
+  + Fix timed login race.
+  + Again read LANG from accountsservice.
+  + Misc fixes.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Fri Jun 27 16:43:48 UTC 2014 - [email protected]
+
+- Add gdm-plymouth-vt1.patch: switch back to VT1 when terminating
+  gdm, if plymouth was running at startup (bnc#881676).
+
+-------------------------------------------------------------------
+Mon Jun 23 09:57:12 UTC 2014 - [email protected]
+
+- Really drop gdm-greeter-greater-ui.patch: it has been removed
+  during the 3.9.5 update, but the patch file was not deleted.
+
+-------------------------------------------------------------------
+Fri Jun 20 09:35:25 UTC 2014 - [email protected]
+
+- Update X11-displaymanager-gdm: remove call to splashcopy, useless
+  with plymouth.
+
+-------------------------------------------------------------------
+Wed May 28 11:26:21 UTC 2014 - [email protected]
+
+- Remove scrollkeeper configure flag, no longer exists.
+- Only build ConsoleKit support when not building systemd support.
+- Update gdm-launch-environment.pamd to not call pam_loginuid, it
+  was causing gdm logind session to not be detected as a greeter
+  session.
+
+-------------------------------------------------------------------
+Sat May 17 07:40:40 UTC 2014 - [email protected]
+
+- Update to version 3.12.2:
+  + Work around ugly "Last Login" messages in fedora.
+  + Fix PATH variable.
+  + Fix undead worker processes.
+  + Fix crash on logout after user switching.
+
+-------------------------------------------------------------------
+Tue Apr 15 14:46:32 UTC 2014 - [email protected]
+
+- Update to version 3.12.1:
+  + Drop dead code.
+  + support XDG_CURRENT_DESKTOP.
+  + Fix PID file in build goo.
+  + doap file fix ups.
+  + Improve Fedora PAM config with regard to gnome-keyring.
+  + Small wayland fixes.
+  + ConsoleKit fixes.
+  + Fixes to non-GDM session unlock corner cases.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Wed Mar 26 18:45:34 UTC 2014 - [email protected]
+
+- Update to version 3.12.0:
+  + Fix automatic login.
+  + Fix timed login.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Thu Mar 20 08:28:44 UTC 2014 - [email protected]
+
+- Update to version 3.11.92.1:
+  + BSD build fixes.
+- Changes from version 3.11.92:
+  + BSD build fixes.
+  + Experimental Wayland support.
+  + Support gnome-shell unlocking from non GDM sessions.
+  + Drop slave process.
+  + Onscreen keyboard support at login screen.
+  + Updated translations.
+- Rebase gdm-desktop-session-env-pam.patch.
+- Copy autogen.sh to PWD instead of launching it from the SOURCE
+  directory.
+- Synchronize autogen.sh with gdm git tree.
+
+-------------------------------------------------------------------
+Fri Feb 21 19:45:07 UTC 2014 - [email protected]
+
+- Update to version 3.11.90:
+  + Code clean ups.
+  + Leak fixes.
+  + Log X server to systemd journal.
+  + Log fixes on none systemd systems.
+  + Fail better when invoked wrong.
+  + Change how dconf settings are used.
+  + FreeBSD build fixes.
+  + Updated translations.
+- Rebase gdm-desktop-session-env-pam.patch,
+  gdm-passwordless-login.patch and gdm-sysconfig-settings.patch.
+- Disable gdm-xauthlocalhostname.patch: Needs rebasing.
+
+-------------------------------------------------------------------
+Wed Jan 15 11:57:48 UTC 2014 - [email protected]
+
+- Update to version 3.11.4:
+  + Treat '' returned from a PAM module as "no username set" in the
+    same way NULL is.
+  + Fix to work with more open dbus policy.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Mon Dec 16 23:07:35 UTC 2013 - [email protected]
+
+- Update to version 3.11.3:
+  + Infinite loop fix.
+  + Require debugging to be explicitly enabled in unstable
+    versions.
+  + Pass LC_ vars from system to user session.
+  + Fix PAM reauthentication.
+  + Updated translations.
+- Drop gdm-is-not-unstable-unless.patch: debugging is no longer
+  enabled by default on unstable releases.
+
+-------------------------------------------------------------------
+Thu Nov 28 20:50:00 UTC 2013 - [email protected]
+
+- Update to version 3.11.2:
+  + XDMCP fixes.
+  + BSD portability fixes.
+  + Assorted changes to build goop.
+  + Updated translations.
+- Pass --with-gnome-settings-daemon-directory to configure.
+- Drop gdm-XDMCP-fixes.patch: fixed upstream.
+
+-------------------------------------------------------------------
+Wed Nov 27 19:52:01 UTC 2013 - [email protected]
+
+- Add gdm-XDMCP-fixes.patch: Backports fixes in git
+  addressing XDMCP related issues (bnc#851160, bgo#690926,
+  bgo#711180).
+
+-------------------------------------------------------------------
+Wed Oct 16 17:47:46 UTC 2013 - [email protected]
+
+- Update to version 3.10.0.1:
+  + Don't say we're updating btmp when we aren't.
+  + PAM updates for exherbo/lfs.
+  + Updated translations.
+
+-------------------------------------------------------------------
+Thu Sep 26 06:48:23 UTC 2013 - [email protected]
+
+- Remove dependencies from the old days:
+  + No metacity nor polkit-gnome Requires: this was for fallback
+    mode.
+  + Promote gnome-shell from Recommends to Requires.
+  + Drop commented out accessibility Recommends (gnome-mag, gok)
++++ 3536 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:13.2:Update/.gdm.3612.new/gdm.changes

New:
----
  X11-displaymanager-gdm
  autogen.sh
  gdm-3.14.1.tar.xz
  gdm-autologin.pamd
  gdm-default-wm.patch
  gdm-desktop-session-env-pam.patch
  gdm-fingerprint.pamd
  gdm-launch-environment.pamd
  gdm-look-at-runlevel.patch
  gdm-passwordless-login.patch
  gdm-plymouth-vt1.patch
  gdm-smartcard.pamd
  gdm-suse-xsession.patch
  gdm-sysconfig-settings.patch
  gdm-xauthlocalhostname.patch
  gdm.changes
  gdm.pamd
  gdm.spec
  gdmflexiserver-wrapper

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gdm.spec ++++++
#
# spec file for package gdm
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


# We can enable systemd support only if we have xorg 1.12, as it means
# starting X with --seat, and only if we build the whole system with
# systemd support (for instance, NetworkManager).
%define with_systemd 1
%if %{with_systemd}
%define systemdsystemunitdir %(pkg-config --variable=systemdsystemunitdir 
systemd)
%endif
# FIXME: need to check what should be done to enable this (at least adapt the 
pam files). See bnc#699999
%define enable_split_authentication 0

Name:           gdm
Version:        3.14.1
Release:        0
Summary:        The GNOME Display Manager
License:        GPL-2.0+
Group:          System/GUI/GNOME
Url:            http://projects.gnome.org/gdm/
Source:         
http://download.gnome.org/sources/gdm/3.14/%{name}-%{version}.tar.xz
Source1:        gdm.pamd
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
# GDM does not boostrap using gnome-autogen.sh, but has it's own bootstrap 
script
Source8:        autogen.sh
# PATCH-NEEDS-REBASE PATCH-FIX-OPENSUSE gdm-desktop-session-env-pam.patch 
bnc427744 [email protected] -- Sets a PAM environment variable to let the pam 
gnome-keyring module know which session is started
Patch6:         gdm-desktop-session-env-pam.patch
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch [email protected] -- Use the 
/etc/X11/xdm/* scripts
Patch7:         gdm-suse-xsession.patch
# WARNING: do not remove/significantly change patch8 without updating the 
relevant patch in accountsservice too
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 [email protected] -- 
Read autologin options from /etc/sysconfig/displaymanager; note that 
accountsservice has a similar patch (accountsservice-sysconfig.patch)
Patch8:         gdm-sysconfig-settings.patch
# PATCH-NEEDS-REBASE PATCH-FEATURE-OPENSUSE gdm-passwordless-login.patch 
[email protected] -- Support DISPLAYMANAGER_PASSWORD_LESS_LOGIN sysconfig 
option
Patch9:         gdm-passwordless-login.patch
# PATCH-FIX-OPENSUSE gdm-default-wm.patch [email protected] -- Use sysconfig to 
know to which desktop to use by default
Patch34:        gdm-default-wm.patch
# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bnc#538064 [email protected] 
-- Set XAUTHLOCALHOSTNAME to current hostname when we authenticate, for local 
logins, to avoid issues in the session in case the hostname changes later one. 
See comment 24 in the bug.
Patch35:        gdm-xauthlocalhostname.patch
# PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 
[email protected] -- Look at the current runlevel before managing the display 
again, so we don't do this when shutting down or rebooting
Patch40:        gdm-look-at-runlevel.patch
# PATCH-FIX-UPSTREAM gdm-plymouth-vt1.patch bnc#881676 [email protected] -- 
switch to VT1 when quitting if gdm was starting with plymouth running
Patch41:        gdm-plymouth-vt1.patch
BuildRequires:  check-devel
# needed for directory ownership
BuildRequires:  dconf
BuildRequires:  gnome-common
# needed for directory ownership
BuildRequires:  gnome-session-core
BuildRequires:  gobject-introspection-devel >= 0.9.12
BuildRequires:  iso-codes-devel
BuildRequires:  libXdmcp-devel
BuildRequires:  libXi-devel
BuildRequires:  libXinerama-devel
BuildRequires:  libcanberra-devel
BuildRequires:  pam-devel
BuildRequires:  pwdutils
BuildRequires:  tcpd-devel
BuildRequires:  translation-update-upstream
BuildRequires:  update-desktop-files
BuildRequires:  xorg-x11-server
BuildRequires:  xorg-x11-server-extra
BuildRequires:  pkgconfig(accountsservice)
%if %{with_systemd}
BuildRequires:  pkgconfig(libsystemd-daemon)
BuildRequires:  pkgconfig(libsystemd-journal)
BuildRequires:  pkgconfig(libsystemd-login) >= 186
%endif
BuildRequires:  pkgconfig(ply-boot-client)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xau)
BuildRequires:  pkgconfig(xrandr)
Requires:       %{name}-branding = %{version}
%if ! %{with_systemd}
Requires:       ConsoleKit-x11
%endif
Requires:       gdmflexiserver
Requires:       gnome-session-core
Requires:       gnome-settings-daemon
Requires:       gnome-shell
Requires:       xorg-x11-server-extra
Requires(post): dconf
# accessibility
Recommends:     orca
# For groupadd, useradd, usermod
PreReq:         pwdutils
PreReq:         %insserv_prereq
Recommends:     %{name}-lang
Recommends:     iso-codes
Provides:       gdm2 = %{version}
Obsoletes:      gdm2 < %{version}
Provides:       gnome-applets-gdm = %{version}
Obsoletes:      gnome-applets-gdm < %{version}
# gdmflexiserver is dropped since 3.5.90
Obsoletes:      gdmflexiserver < %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
DocDir:         %{_defaultdocdir}
%glib2_gsettings_schema_requires

%description
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.

%package -n libgdm1
Summary:        Client Library for Communicating with GDM Greeter Server
Group:          System/Libraries
Recommends:     gdm

%description -n libgdm1
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.

%package -n typelib-1_0-Gdm-1_0
Summary:        Client Library for Communicating with GDM Greeter Server -- 
Introspection bindings
Group:          System/Libraries

%description -n typelib-1_0-Gdm-1_0
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.

This package provides the GObject Introspection bindings for
communicating with the GDM greeter server.

%package devel
Summary:        Libraries for GDM -- Development Files
Group:          Development/Libraries/GNOME
Requires:       libgdm1 = %{version}
Requires:       typelib-1_0-Gdm-1_0 = %{version}

%description devel
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.

%package branding-upstream
Summary:        The GNOME Display Manager -- Upstream default configuration
Group:          System/GUI/GNOME
Requires:       %{name} = %{version}
Provides:       %{name}-branding = %{version}
Conflicts:      otherproviders(%{name}-branding)
Supplements:    packageand(%{name}:branding-upstream)
BuildArch:      noarch
#BRAND: Provide one file:
#BRAND: /etc/gdm/custom.conf
#BRAND:   Default configuration of gdm

%description branding-upstream
The GNOME Display Manager is a system service that is responsible for
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
cp %{S:8} .
translation-update-upstream
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch34 -p1
#patch35 -p1
%patch40 -p1
%patch41 -p1

%build
NOCONFIGURE=1 sh autogen.sh
%configure\
        --disable-static \
        --libexecdir=%{_prefix}/lib/gdm \
        --localstatedir=%{_localstatedir} \
        --with-at-spi-registryd-directory=%{_libexecdir}/at-spi \
        --with-check-accelerated-directory=%{_libexecdir} \
        
--with-gnome-settings-daemon-directory=%{_libexecdir}/gnome-settings-daemon-3.0 
\
        --enable-ipv6 \
        --with-plymouth \
%if %{with_systemd}
        --with-systemd \
%else
        --with-consolekit-directory=%{_libexecdir}/ConsoleKit \
        --without-systemd \
        --with-console-kit \
%endif
%if %{enable_split_authentication}
        --enable-split-authentication \
%else
        --disable-split-authentication \
%endif
        --with-initial-vt=7 \
        --with-run-dir=/run/gdm
%__make %{?jobs:-j%jobs} V=1

%install
%make_install
find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
# Do not ship the systemd.service file: openSUSE uses xdm, which enables the DM 
based on sysconfig.
%if %{with_systemd}
rm %{buildroot}%{systemdsystemunitdir}/gdm.service
%endif
## Install PAM files.
mkdir -p $RPM_BUILD_ROOT/etc/pam.d
# Generic pam config
cp %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/gdm
# Pam config for autologin
cp %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin
# Pam config for the greeter session
cp %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/gdm-launch-environment
%if %{enable_split_authentication}
# Pam config for fingerprint authentication
cp %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/gdm-fingerprint
# Pam config for smartcard authentication
cp %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/gdm-smartcard
%endif
# The default gdm pam configuration is the one to be used as pam-password too
%if %{enable_split_authentication}
rm $RPM_BUILD_ROOT/etc/pam.d/gdm-password
echo "We are not ready for this, we need to know what to put in gdm-fingerprint 
and gdm-smartcard pam config files."
false
%endif
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
# 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
mkdir -p $RPM_BUILD_ROOT/run/gdm
mkdir -p $RPM_BUILD_ROOT%{_bindir}
ln -s ../sbin/gdm $RPM_BUILD_ROOT%{_bindir}/gdm
%find_lang %{name} %{?no_lang_C}

%clean
rm -rf $RPM_BUILD_ROOT

%pre
/usr/sbin/groupadd -r gdm 2> /dev/null || :
/usr/sbin/useradd -r -g gdm -G video -s /bin/false \
-c "Gnome Display Manager daemon" -d /var/lib/gdm gdm 2> /dev/null || :
/usr/sbin/usermod -g gdm -G video -s /bin/false gdm 2> /dev/null
# Fix incorrect interpretation of DISPLAYMANAGER_PASSWORD_LESS_LOGIN (#307566).
# Last done in SLED10&10.1, first fixed in 10.3.
# Can be removed after SLES12:
if test -f sbin/conf.d/SuSEconfig.gdm && grep -q gdm-autologin 
sbin/conf.d/SuSEconfig.gdm ; then
    if grep -q '^DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"' 
etc/sysconfig/displaymanager ; then
        sed 
's/^\(auth[[:space:]][[:space:]]*\)include[[:space:]]\([[:space:]]*\)common-auth/\1required\2pam_permit.so/'
 <etc/pam.d/gdm-autologin >etc/pam.d/gdm-autologin.new
        if cmp -s etc/pam.d/gdm-autologin etc/pam.d/gdm-autologin.new ; then
            rm etc/pam.d/gdm-autologin.new
        else
            mv etc/pam.d/gdm-autologin.new etc/pam.d/gdm-autologin
        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

%post
%glib2_gsettings_schema_post
%icon_theme_cache_post

%posttrans
# Create dconf database for gdm, to lockdown the gdm session
dconf update

%postun
%insserv_cleanup
%glib2_gsettings_schema_postun
%icon_theme_cache_postun

%post -n libgdm1 -p /sbin/ldconfig

%postun -n libgdm1 -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog NEWS README
%doc %{_datadir}/help/C/%{name}/
%dir %config %{_sysconfdir}/gdm
%config %{_sysconfdir}/gdm/[IPXl]*
%{_sbindir}/gdm
%{_bindir}/gdm
%{_bindir}/gdm-screenshot
%dir %{_datadir}/dconf
%dir %{_datadir}/dconf/profile
%{_datadir}/dconf/profile/gdm
%{_datadir}/gdm/
%{_datadir}/glib-2.0/schemas/org.gnome.login-screen.gschema.xml
%{_datadir}/gnome-session/sessions/gdm-shell.session
%{_datadir}/icons/*/*/*/*.*
%{_datadir}/pixmaps/*.png
%dir %{_libexecdir}/gdm
%{_libexecdir}/gdm/gdm-*
%{_libexecdir}/gdm/gdmflexiserver
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm
%attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm
%dir %{_localstatedir}/cache/gdm
%ghost %attr(751,gdm,gdm) %dir /run/gdm
%config /etc/pam.d/gdm
%config /etc/pam.d/gdm-autologin
%if %{enable_split_authentication}
%config /etc/pam.d/gdm-fingerprint
%config /etc/pam.d/gdm-smartcard
%endif
%config /etc/pam.d/gdm-password
%config /etc/pam.d/gdm-launch-environment
%config %{_sysconfdir}/dbus-1/system.d/gdm.conf
# /etc/xinit.d/xdm integration
%dir %{_libexecdir}/X11/displaymanagers
%{_libexecdir}/X11/displaymanagers/gdm

%files -n libgdm1
%defattr(-,root,root)
%{_libdir}/libgdm.so.*

%files -n typelib-1_0-Gdm-1_0
%defattr(-,root,root)
%{_libdir}/girepository-1.0/Gdm-1.0.typelib

%files devel
%defattr(-,root,root)
%{_includedir}/gdm/
%{_libdir}/libgdm.so
%{_libdir}/pkgconfig/gdm.pc
%{_datadir}/gir-1.0/Gdm-1.0.gir

%files branding-upstream
%defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/gdm/custom.conf

%files -n gdmflexiserver
%defattr(-,root,root)
%{_bindir}/gdmflexiserver

%files lang -f %{name}.lang

%changelog
++++++ X11-displaymanager-gdm ++++++
gdm_start_proc () {
    if test "$DISPLAYMANAGER_REMOTE_ACCESS" = "yes"  -a \
            "$DISPLAYMANAGER_STARTS_XSERVER" = "no"; then
        XDMOPTIONS="--no-console"
    fi

    return 0
}

gdm_vars() {
    case "${DISPLAYMANAGER##*/}" in
        gdm|GDM|Gnome|GNOME)
            RELOADSIGNAL="-USR1"
            DISPLAYMANAGER=/usr/sbin/gdm
            PIDFILE=/run/gdm/gdm.pid
            STARTPROC=gdm_start_proc
            return 0 ;;
       *) return 1 ;;
    esac

    return 1
}
++++++ autogen.sh ++++++
#!/bin/sh
# Run this to generate all the initial makefiles, etc.

test -n "$srcdir" || srcdir=`dirname "$0"`
test -n "$srcdir" || srcdir=.

olddir=`pwd`
cd $srcdir

AUTORECONF=`which autoreconf`
if test -z $AUTORECONF; then
        echo "*** No autoreconf found, please intall it ***"
        exit 1
fi

INTLTOOLIZE=`which intltoolize`
if test -z $INTLTOOLIZE; then
        echo "*** No intltoolize found, please install the intltool package ***"
        exit 1
fi

set -e

intltoolize --force --copy --automake 
autoreconf --force --install --verbose

cd $olddir
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"

++++++ gdm-autologin.pamd ++++++
#%PAM-1.0
# GDM PAM configuration for autologin
auth     required       pam_permit.so
account  include        common-account
password include        common-password
session  required       pam_loginuid.so
session  include        common-session
++++++ gdm-default-wm.patch ++++++
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 90b9045..f2ea011 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -43,6 +43,8 @@
 #include <glib-object.h>
 #include <gio/gio.h>
 
+#include "gdm-sysconfig.h"
+
 #include "gdm-session.h"
 #include "gdm-session-glue.h"
 #include "gdm-dbus-util.h"
@@ -518,6 +520,14 @@ get_fallback_session_name (GdmSession *self)
                 }
         }
 
+        name = gdm_sysconfig_load_value ("/etc/sysconfig/windowmanager", 
"DEFAULT_WM");
+        if (name && get_session_command_for_name (name, NULL)) {
+                g_free (self->priv->fallback_session_name);
+                self->priv->fallback_session_name = name;
+                goto out;
+        }
+        g_free (name);
+
         name = g_strdup ("gnome");
         if (get_session_command_for_name (name, NULL)) {
                 g_free (self->priv->fallback_session_name);
++++++ gdm-desktop-session-env-pam.patch ++++++
Index: gdm-3.11.92.1/daemon/gdm-session-worker.c
===================================================================
--- gdm-3.11.92.1.orig/daemon/gdm-session-worker.c
+++ gdm-3.11.92.1/daemon/gdm-session-worker.c
@@ -179,6 +179,8 @@ struct GdmSessionWorkerPrivate
         GdmSessionSettings *user_settings;
 
         GDBusMethodInvocation *pending_invocation;
+
+        char               *suse_session_name;
 };
 
 enum {
@@ -1144,6 +1146,9 @@ gdm_session_worker_initialize_pam (GdmSe
                 gdm_session_worker_set_environment_variable (worker, 
"XDG_SESSION_CLASS", "greeter");
         }
 
+        if (worker->priv->suse_session_name)
+                gdm_session_worker_set_environment_variable (worker, 
"DESKTOP_SESSION", worker->priv->suse_session_name);
+
         g_debug ("GdmSessionWorker: state SETUP_COMPLETE");
         worker->priv->state = GDM_SESSION_WORKER_STATE_SETUP_COMPLETE;
 
@@ -2286,6 +2291,12 @@ gdm_session_worker_handle_set_session_na
 {
         GdmSessionWorker *worker = GDM_SESSION_WORKER (object);
         g_debug ("GdmSessionWorker: session name set to %s", session_name);
+
+        if (worker->priv->pam_handle != NULL)
+                gdm_session_worker_set_environment_variable (worker, 
"DESKTOP_SESSION", session_name);
+        g_free (worker->priv->suse_session_name);
+        worker->priv->suse_session_name = g_strdup (session_name);
+
         gdm_session_settings_set_session_name (worker->priv->user_settings,
                                                session_name);
         gdm_dbus_worker_complete_set_session_name (object, invocation);
@@ -2293,6 +2304,24 @@ gdm_session_worker_handle_set_session_na
 }
 
 static gboolean
+gdm_session_worker_handle_set_default_session_name (GdmDBusWorker         
*object,
+                                                    GDBusMethodInvocation 
*invocation,
+                                                    const char            
*session_name)
+{
+        GdmSessionWorker *worker = GDM_SESSION_WORKER (object);
+        g_debug ("GdmSessionWorker: default session name set to %s", 
session_name);
+
+        if (worker->priv->pam_handle != NULL)
+                gdm_session_worker_set_environment_variable (worker, 
"DESKTOP_SESSION", session_name);
+        g_free (worker->priv->suse_session_name);
+        worker->priv->suse_session_name = g_strdup (session_name);
+
+        gdm_dbus_worker_complete_set_default_session_name (object, invocation);
+        return TRUE;
+}
+
+
+static gboolean
 gdm_session_worker_handle_set_session_type (GdmDBusWorker         *object,
                                             GDBusMethodInvocation *invocation,
                                             const char            
*session_type)
@@ -3098,6 +3127,7 @@ worker_interface_init (GdmDBusWorkerIfac
         interface->handle_open = gdm_session_worker_handle_open;
         interface->handle_set_language_name = 
gdm_session_worker_handle_set_language_name;
         interface->handle_set_session_name = 
gdm_session_worker_handle_set_session_name;
+        interface->handle_set_default_session_name = 
gdm_session_worker_handle_set_default_session_name;
         interface->handle_set_session_type = 
gdm_session_worker_handle_set_session_type;
         interface->handle_set_session_display_mode = 
gdm_session_worker_handle_set_session_display_mode;
         interface->handle_set_environment_variable = 
gdm_session_worker_handle_set_environment_variable;
@@ -3211,6 +3241,8 @@ gdm_session_worker_finalize (GObject *ob
 
         g_hash_table_unref (worker->priv->reauthentication_requests);
 
+        g_free (worker->priv->suse_session_name);
+
         G_OBJECT_CLASS (gdm_session_worker_parent_class)->finalize (object);
 }
 
Index: gdm-3.11.92.1/daemon/gdm-session-worker.xml
===================================================================
--- gdm-3.11.92.1.orig/daemon/gdm-session-worker.xml
+++ gdm-3.11.92.1/daemon/gdm-session-worker.xml
@@ -13,6 +13,9 @@
     <method name="SetSessionName">
       <arg name="session_name" direction="in" type="s" />
     </method>
+    <method name="SetDefaultSessionName">
+      <arg name="default_session_name" direction="in" type="s"/>
+    </method>
     <method name="SetSessionType">
       <arg name="session_type" direction="in" type="s"/>
     </method>
Index: gdm-3.11.92.1/daemon/gdm-session.c
===================================================================
--- gdm-3.11.92.1.orig/daemon/gdm-session.c
+++ gdm-3.11.92.1/daemon/gdm-session.c
@@ -164,6 +164,8 @@ G_DEFINE_TYPE (GdmSession,
                gdm_session,
                G_TYPE_OBJECT);
 
+static const char *get_session_name (GdmSession *self);
+
 static GdmSessionConversation *
 find_conversation_by_name (GdmSession *self,
                            const char *service_name)
@@ -616,6 +618,9 @@ get_default_session_name (GdmSession *se
 static void
 gdm_session_defaults_changed (GdmSession *self)
 {
+        GHashTableIter iter;
+        gpointer key, value;
+        const char *text;
 
         if (self->priv->greeter_interface != NULL) {
                 gdm_dbus_greeter_emit_default_language_name_changed 
(self->priv->greeter_interface,
@@ -623,6 +628,19 @@ gdm_session_defaults_changed (GdmSession
                 gdm_dbus_greeter_emit_default_session_name_changed 
(self->priv->greeter_interface,
                                                                     
get_default_session_name (self));
         }
+
+        text = get_session_name (self);
+
+        g_hash_table_iter_init (&iter, self->priv->conversations);
+        while (g_hash_table_iter_next (&iter, &key, &value)) {
+                GdmSessionConversation *conversation;
+
+                conversation = (GdmSessionConversation *) value;
+
+                gdm_dbus_worker_call_set_default_session_name 
(conversation->worker_proxy,
+                                                               text,
+                                                               NULL, NULL, 
NULL);
+        }
 }
 
 void
@@ -931,6 +949,10 @@ worker_on_saved_session_name_read (GdmDB
 
         if (strcmp (session_name,
                     get_default_session_name (self)) != 0) {
+                GHashTableIter iter;
+                gpointer key, value;
+                const char *text;
+
                 g_free (self->priv->saved_session);
                 self->priv->saved_session = g_strdup (session_name);
 
@@ -938,6 +960,19 @@ worker_on_saved_session_name_read (GdmDB
                         gdm_dbus_greeter_emit_default_session_name_changed 
(self->priv->greeter_interface,
                                                                             
session_name);
                 }
+
+                text = get_session_name (self);
+
+                g_hash_table_iter_init (&iter, self->priv->conversations);
+                while (g_hash_table_iter_next (&iter, &key, &value)) {
+                        GdmSessionConversation *conversation;
+
+                        conversation = (GdmSessionConversation *) value;
+
+                        gdm_dbus_worker_call_set_default_session_name 
(conversation->worker_proxy,
+                                                                       text,
+                                                                       NULL, 
NULL, NULL);
+                }
         }
 }
 
++++++ gdm-fingerprint.pamd ++++++
# Sample PAM file for doing fingerprint authentication.
# Distros should replace this with what makes sense for them.
auth        required      pam_env.so
auth        sufficient    pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     required      pam_unix.so
++++++ gdm-launch-environment.pamd ++++++
#%PAM-1.0
# GDM PAM configuration used only for the greeter session
auth     required       pam_permit.so
account  required       pam_permit.so
password include        common-password
session  include        common-session
++++++ gdm-look-at-runlevel.patch ++++++
Index: gdm-2.28.0/daemon/gdm-static-display.c
===================================================================
--- gdm-2.28.0.orig/daemon/gdm-static-display.c
+++ gdm-2.28.0/daemon/gdm-static-display.c
@@ -26,6 +26,7 @@
 #include <fcntl.h>
 #include <pwd.h>
 #include <unistd.h>
+#include <utmp.h>
 #include <string.h>
 #include <signal.h>
 #include <sys/stat.h>
@@ -96,6 +97,29 @@ gdm_static_display_manage (GdmDisplay *d
 }
 
 static gboolean
+gdm_static_display_should_manage_again (void)
+{
+        struct utmp *ut;
+
+        setutent();
+        while ((ut = getutent()) != NULL) {
+                if (ut->ut_type == RUN_LVL) {
+                        char current;
+                        current = ut->ut_pid % 256;
+                        endutent();
+
+                        if (current == '0' || current == '6')
+                                return FALSE;
+                        return TRUE;
+                }
+        }
+
+        endutent();
+
+        return TRUE;
+}
+
+static gboolean
 gdm_static_display_finish (GdmDisplay *display)
 {
         int status;
@@ -108,9 +132,11 @@ gdm_static_display_finish (GdmDisplay *d
         /* restart static displays */
         gdm_display_unmanage (display);
 
-        status = gdm_display_get_status (display);
-        if (status != GDM_DISPLAY_FAILED) {
-                gdm_display_manage (display);
+        if (gdm_static_display_should_manage_again ()) {
+                status = gdm_display_get_status (display);
+                if (status != GDM_DISPLAY_FAILED) {
+                        gdm_display_manage (display);
+                }
         }
 
         return TRUE;
++++++ gdm-passwordless-login.patch ++++++
Index: gdm-3.6.1/common/gdm-settings-system-backend.c
===================================================================
--- gdm-3.6.1.orig/common/gdm-settings-system-backend.c
+++ gdm-3.6.1/common/gdm-settings-system-backend.c
@@ -43,11 +43,11 @@
 #define SYSCONFIG_AUTOLOGIN_KEY                "DISPLAYMANAGER_AUTOLOGIN"
 #define SYSCONFIG_TCP_OPEN_KEY         
"DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
 #define SYSCONFIG_XDMCP_KEY            "DISPLAYMANAGER_REMOTE_ACCESS"
+#define SYSCONFIG_PASSWORDLESS_KEY     "DISPLAYMANAGER_PASSWORD_LESS_LOGIN"
 /* Keys from sysconfig that have no equivalent in GDM:
  *   - DISPLAYMANAGER_ROOT_LOGIN_REMOTE
  *   - DISPLAYMANAGER_STARTS_XSERVER (we always have a local display manager,
  *     see gdm_manager_constructor())
- *   - DISPLAYMANAGER_PASSWORD_LESS_LOGIN
  *   - DISPLAYMANAGER_AD_INTEGRATION
  *   - DISPLAYMANAGER_SHUTDOWN (handled by ConsoleKit)
  */
@@ -65,12 +65,14 @@ struct GdmSettingsSystemBackendPrivate
         gboolean    dirty_autologin_user;
         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);
@@ -140,6 +142,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;
@@ -200,6 +212,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);
 
@@ -208,6 +226,7 @@ save_settings (GdmSettingsSystemBackend
         backend->priv->dirty_autologin_user = FALSE;
         backend->priv->dirty_tcp_open       = FALSE;
         backend->priv->dirty_xdmcp          = FALSE;
+        backend->priv->dirty_passwordless   = FALSE;
 }
 
 static gboolean
@@ -275,6 +294,9 @@ gdm_settings_system_backend_set_value (G
         } else if (!strcasecmp (key, GDM_KEY_XDMCP_ENABLE)) {
                 priv->set_xdmcp = value_to_boolean (value);
                 GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_xdmcp = 
TRUE;
+        } else if (!strcasecmp (key, GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE)) {
+                priv->set_passwordless = value_to_boolean (value);
+                GDM_SETTINGS_SYSTEM_BACKEND 
(backend)->priv->dirty_passwordless = TRUE;
         } else {
                 g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, 
GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
                 return FALSE;
Index: gdm-3.6.1/common/gdm-settings-keys.h
===================================================================
--- 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"
 #define GDM_KEY_INITIAL_SETUP_ENABLE "daemon/InitialSetupEnable"
+#define GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE "daemon/SUSEPasswordlessEnable"
 
 #define GDM_KEY_DEBUG "debug/Enable"
 
Index: gdm-3.6.1/data/gdm.schemas.in.in
===================================================================
--- gdm-3.6.1.orig/data/gdm.schemas.in.in
+++ gdm-3.6.1/data/gdm.schemas.in.in
@@ -58,6 +58,12 @@
       <signature>b</signature>
       <default>false</default>
     </schema>
+    <schema>
+      <!-- SUSE-specific -->
+      <key>daemon/SUSEPasswordlessEnable</key>
+      <signature>b</signature>
+      <default>false</default>
+    </schema>
 
     <schema>
       <key>security/DisallowTCP</key>
Index: gdm-3.6.1/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"
 
+#include "gdm-settings-direct.h"
+#include "gdm-settings-keys.h"
+
 #define GDM_SESSION_DBUS_ERROR_CANCEL 
"org.gnome.DisplayManager.Session.Error.Cancel"
 #define GDM_SESSION_DBUS_OBJECT_PATH "/org/gnome/DisplayManager/Session"
 
@@ -1228,6 +1231,15 @@ gdm_session_handle_client_begin_verifica
                                               GdmSession             *self)
 {
         GdmSessionConversation *conversation;
+        gboolean passwordless;
+
+        if (!gdm_settings_direct_get_boolean 
(GDM_KEY_SUSE_PASSWORDLESS_LOGIN_ENABLE,
+                                              &passwordless)) {
+                passwordless = FALSE;
+        }
+
+        if (passwordless)
+                service_name = "gdm-autologin";
 
         conversation = begin_verification_conversation (self, invocation, 
service_name);
 
++++++ gdm-plymouth-vt1.patch ++++++
Index: gdm-3.12.2/daemon/main.c
===================================================================
--- gdm-3.12.2.orig/daemon/main.c
+++ gdm-3.12.2/daemon/main.c
@@ -33,6 +33,8 @@
 #include <sys/wait.h>
 #include <locale.h>
 #include <signal.h>
+#include <sys/ioctl.h>
+#include <sys/vt.h>
 
 #include <glib.h>
 #include <glib/gi18n.h>
@@ -308,6 +310,23 @@ block_sigusr1 (void)
         sigprocmask (SIG_BLOCK, &mask, NULL);
 }
 
+static void
+jump_to_vt (int                vt_number)
+{
+        int fd;
+
+        fd = open ("/dev/tty0", O_RDWR | O_NOCTTY);
+        if (ioctl (fd, VT_ACTIVATE, vt_number) < 0) {
+                g_debug ("Gdm: couldn't initiate jump to VT %d: %m",
+                         vt_number);
+        } else if (ioctl (fd, VT_WAITACTIVE, vt_number) < 0) {
+                g_debug ("Gdm: couldn't finalize jump to VT %d: %m",
+                         vt_number);
+        }
+        close(fd);
+}
+
+
 int
 main (int    argc,
       char **argv)
@@ -317,6 +336,7 @@ main (int    argc,
         GError             *error = NULL;
         int                 ret;
         gboolean            res;
+        gboolean            plymouth_running = FALSE;
         static gboolean     do_timed_exit    = FALSE;
         static gboolean     print_version    = FALSE;
         static gboolean     fatal_warnings   = FALSE;
@@ -400,6 +420,8 @@ main (int    argc,
 
         g_chdir ("/");
 
+        plymouth_running = g_access("/run/plymouth/pid", F_OK) == 0;
+
         main_loop = g_main_loop_new (NULL, FALSE);
 
         g_unix_signal_add (SIGTERM, on_shutdown_signal_cb, main_loop);
@@ -429,6 +451,11 @@ main (int    argc,
                 g_printerr ("%s\n", error->message);
                 g_clear_error (&error);
         }
+
+        if (plymouth_running) {
+            jump_to_vt (1);
+        }
+
         return ret;
 }
 
++++++ gdm-smartcard.pamd ++++++
# Sample PAM file for doing smartcard authentication.
# Distros should replace this with what makes sense for them.
auth        required      pam_env.so
auth        [success=done ignore=ignore default=die] pam_pkcs11.so 
wait_for_card card_only
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

password    optional      pam_pkcs11.so
password    requisite     pam_cracklib.so try_first_pass retry=3 type=

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     required      pam_unix.so
++++++ gdm-suse-xsession.patch ++++++
Index: gdm-2.29.92/data/Init.in
===================================================================
--- gdm-2.29.92.orig/data/Init.in
+++ gdm-2.29.92/data/Init.in
@@ -1,4 +1,9 @@
 #!/bin/sh
+
+if test -x /etc/X11/xdm/Xsetup; then
+       exec /etc/X11/xdm/Xsetup
+fi
+
 # Stolen from the debian kdm setup, aren't I sneaky
 # Plus a lot of fun stuff added
 #  -George
Index: gdm-2.29.92/data/PostSession.in
===================================================================
--- gdm-2.29.92.orig/data/PostSession.in
+++ gdm-2.29.92/data/PostSession.in
@@ -1,3 +1,7 @@
 #!/bin/sh
 
+if test -x /etc/X11/xdm/Xreset; then
+       exec /etc/X11/xdm/Xreset
+fi
+
 exit 0
Index: gdm-2.29.92/data/Xsession.in
===================================================================
--- gdm-2.29.92.orig/data/Xsession.in
+++ gdm-2.29.92/data/Xsession.in
@@ -1,4 +1,9 @@
 #!@XSESSION_SHELL@
+
+if test -x /etc/X11/xdm/Xsession; then
+       exec /etc/X11/xdm/Xsession $1 $GDM_LANG
+fi
+
 #
 # This is SORT OF LIKE an X session, but not quite.  You get a command as the
 # first argument (it could be multiple words, so run it with "eval").  As a
Index: gdm-2.29.92/data/PreSession.in
===================================================================
--- gdm-2.29.92.orig/data/PreSession.in
+++ gdm-2.29.92/data/PreSession.in
@@ -6,4 +6,8 @@
 #
 # Note that output goes into the .xsession-errors file for easy debugging
 #
+if test -x /etc/X11/xdm/Xstartup; then
+       exec /etc/X11/xdm/Xstartup
+fi
+
 PATH="@X_PATH@:$PATH"
++++++ gdm-sysconfig-settings.patch ++++++
++++ 1112 lines (skipped)

++++++ gdm-xauthlocalhostname.patch ++++++
Index: gdm-3.7.3.1/daemon/gdm-display-access-file.c
===================================================================
--- gdm-3.7.3.1.orig/daemon/gdm-display-access-file.c
+++ gdm-3.7.3.1/daemon/gdm-display-access-file.c
@@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAc
                  *
                  * https://bugs.freedesktop.org/show_bug.cgi?id=43425
                  */
-                char localhost[HOST_NAME_MAX + 1] = "";
                 *family = FamilyLocal;
-                if (gethostname (localhost, HOST_NAME_MAX) == 0) {
-                        *address = g_strdup (localhost);
-                } else {
-                        *address = g_strdup ("localhost");
-                }
+               /* using the new function we create in the patch, to detect
+               * changes here, in the original code */
+               *address = gdm_gethostname ();
         } else {
                 *family = FamilyWild;
                 gdm_display_get_remote_hostname (display, address, NULL);
Index: gdm-3.7.3.1/daemon/gdm-launch-environment.c
===================================================================
--- gdm-3.7.3.1.orig/daemon/gdm-launch-environment.c
+++ gdm-3.7.3.1/daemon/gdm-launch-environment.c
@@ -284,6 +284,11 @@ build_launch_environment (GdmLaunchEnvir
                 g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup 
(seat_id));
         }
 
+        if (launch_environment->priv->x11_display_is_local) {
+                g_hash_table_remove (hash, "XAUTHLOCALHOSTNAME");
+                g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), 
gdm_gethostname ());
+        }
+
         g_hash_table_insert (hash, g_strdup ("PATH"), g_strdup (g_getenv 
("PATH")));
 
         g_hash_table_insert (hash, g_strdup ("RUNNING_UNDER_GDM"), g_strdup 
("true"));
Index: gdm-3.7.3.1/daemon/gdm-session.c
===================================================================
--- gdm-3.7.3.1.orig/daemon/gdm-session.c
+++ gdm-3.7.3.1/daemon/gdm-session.c
@@ -2374,6 +2374,14 @@ setup_session_environment (GdmSession *s
                                                       
self->priv->user_x11_authority_file);
         }
 
+        if (self->priv->display_is_local) {
+                char *hostname = gdm_gethostname ();
+                gdm_session_set_environment_variable (self,
+                                                      "XAUTHLOCALHOSTNAME",
+                                                      hostname);
+                g_free (hostname);
+        }
+
         if (g_getenv ("WINDOWPATH") != NULL) {
                 gdm_session_set_environment_variable (self,
                                                       "WINDOWPATH",
Index: gdm-3.7.3.1/daemon/gdm-slave.c
===================================================================
--- gdm-3.7.3.1.orig/daemon/gdm-slave.c
+++ gdm-3.7.3.1/daemon/gdm-slave.c
@@ -255,6 +255,10 @@ get_script_environment (GdmSlave   *slav
                 g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup 
(slave->priv->display_hostname));
         }
 
+        if (slave->priv->display_is_local) {
+                g_hash_table_insert (hash, g_strdup ("XAUTHLOCALHOSTNAME"), 
gdm_gethostname ());
+        }
+
         /* Runs as root */
         g_hash_table_insert (hash, g_strdup ("XAUTHORITY"), g_strdup 
(slave->priv->display_x11_authority_file));
         g_hash_table_insert (hash, g_strdup ("DISPLAY"), g_strdup 
(slave->priv->display_name));
@@ -644,6 +648,11 @@ gdm_slave_connect_to_x11_display (GdmSla
 
         g_setenv ("DISPLAY", slave->priv->display_name, TRUE);
         g_setenv ("XAUTHORITY", slave->priv->display_x11_authority_file, TRUE);
+        do {
+                char *hostname = gdm_gethostname ();
+                g_setenv ("XAUTHLOCALHOSTNAME", hostname, TRUE);
+                g_free (hostname);
+        } while (0);
 
         sigemptyset (&mask);
         sigaddset (&mask, SIGCHLD);
Index: gdm-3.7.3.1/common/gdm-common.c
===================================================================
--- gdm-3.7.3.1.orig/common/gdm-common.c
+++ gdm-3.7.3.1/common/gdm-common.c
@@ -509,3 +509,14 @@ gdm_generate_random_bytes (gsize    size
         close (fd);
         return bytes;
 }
+
+char *
+gdm_gethostname (void)
+{
+        char localhost[HOST_NAME_MAX + 1] = "";
+        if (gethostname (localhost, HOST_NAME_MAX) == 0) {
+                return g_strdup (localhost);
+        } else {
+                return g_strdup ("localhost");
+        }
+}
Index: gdm-3.7.3.1/common/gdm-common.h
===================================================================
--- gdm-3.7.3.1.orig/common/gdm-common.h
+++ gdm-3.7.3.1/common/gdm-common.h
@@ -58,6 +58,7 @@ gboolean       gdm_string_hex_decode
                                           int            insert_at);
 char          *gdm_generate_random_bytes (gsize          size,
                                           GError       **error);
+char          *gdm_gethostname           (void);
 
 G_END_DECLS
 
++++++ gdm.pamd ++++++
#%PAM-1.0
# GDM PAM standard configuration (with passwords)
auth     include        common-auth
account  include        common-account
password include        common-password
session  required       pam_loginuid.so
session  include        common-session
++++++ gdmflexiserver-wrapper ++++++
#!/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
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to