Hello community,

here is the log from the commit of package gdm for openSUSE:Factory checked in 
at 2019-06-13 22:29:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gdm (Old)
 and      /work/SRC/openSUSE:Factory/.gdm.new.4811 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gdm"

Thu Jun 13 22:29:39 2019 rev:216 rq:708281 version:3.32.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/gdm/gdm.changes  2019-04-17 10:06:34.534655836 
+0200
+++ /work/SRC/openSUSE:Factory/.gdm.new.4811/gdm.changes        2019-06-13 
22:29:40.928452700 +0200
@@ -1,0 +2,258 @@
+Thu May 23 08:40:18 UTC 2019 - Dominique Leuenberger <[email protected]>
+
+- Fixup gdm.tmpfiles (boo#1135272).
+
+-------------------------------------------------------------------
+Wed May 22 16:39:19 UTC 2019 - Markus S <[email protected]>
+
+- Make systemd service file optional instead of outright deleting it.
+
+-------------------------------------------------------------------
+Wed May 15 01:57:12 UTC 2019 - Xiaoguang Wang <[email protected]>
+
+- Update gdm-switch-to-tty1.patch (bsc#1120307)
+
+-------------------------------------------------------------------
+Thu May  9 08:58:52 UTC 2019 - Xiaoguang Wang <[email protected]>
+
+- New solution for auto login problem(bsc#1116011)
+  + Drop gdm-revert-commit-39fb4ff.patch
+  + Add reserveVT.conf file.
+
+-------------------------------------------------------------------
+Sun Apr 28 07:23:07 UTC 2019 - qzheng <[email protected]>
+
+- Add gdm-remove-duplicate-sessions.patch: Backport from upstream 
+  commit 187c8515 and 1795bb31 to remove duplicate sessions once, 
+  after all sessions have been processed (boo#1131625, 
+  glgo#GNOME/gdm#473).
+
+-------------------------------------------------------------------
+Wed Apr 17 03:32:02 UTC 2019 - Yifan Jiang <[email protected]>
+
+- Add gdm-s390-not-require-g-s-d_wacom.patch: Remove the gnome
+  session runtime requirement of g-s-d Wacom plugin because it is
+  not build on s390 (bsc#1129412).
+
+-------------------------------------------------------------------
+Wed Apr 17 03:32:02 UTC 2019 - [email protected]
+
+- Rebase patches (boo#1128589):
+  + gdm-sysconfig-settings.patch
+  + gdm-default-wm.patch
+  + gdm-xauthlocalhostname.patch
+  + gdm-kill-user-session.patch
+  + gdm-fails-to-restart-gnome-shell.patch
+  + gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
+- Re-enable gdm-switch-to-tty1.patch
+
+-------------------------------------------------------------------
+Wed Apr 17 03:32:01 UTC 2019 - [email protected]
+
+- Add gdm-revert-commit-39fb4ff.patch: Make auto login successful
+  (bsc#1116011).
+
+-------------------------------------------------------------------
+Wed Apr 17 03:32:00 UTC 2019 - Bjørn Lie <[email protected]>
+
+- Update to version 3.32.0:
+  + Stable release version bump.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:31:51 UTC 2019 - Bjørn Lie <[email protected]>
+
+- Update to version 3.31.91:
+  + Screen lock bypass fix (when timed login is enabled)
+    (CVE-2019-3825).
+  + PAM file updates.
+  + Improved debug logging.
+  + Keyboard layout fixes.
+  + Display foreach handling.
+  + Updated translations.
+- Changes from version 3.31.4:
+  + DOAP file fixes.
+  + Misc code clean ups.
+  + Filter out duplicates from session list.
+  + Updated translations.
+- Disable patches needing rebase:
+  + gdm-sysconfig-settings.patch
+  + gdm-kill-user-session.patch
+  + gdm-default-wm.patch
+  + gdm-xauthlocalhostname.patch
+  + gdm-switch-to-tty1.patch
+  + gdm-fails-to-restart-gnome-shell.patch
+  + gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
+- Rebase patches with quilt, but sadly not enough, hence the
+  massive disabling of patches.
+- Drop gdm-ignore-duplicate-desktop-file.patch: Fixed upstream.
+- Drop old hack only needed for upgrades from pre SLED 12 and
+  openSUSE 10.3.
+- Test if we still need to nuke data/61-gdm.rules, aka disable rm.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:08 UTC 2019 - [email protected]
+
+- Update to version 3.30.3:
+  + Screen lock bypass fix (when timed login is enabled)
+    (CVE-2019-3825).
+  + Updated translations.
+- Drop gdm-CVE-2019-3825.patch: Fixed upstream.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:07 UTC 2019 - [email protected]
+
+- Add gdm-kill-user-session.patch: Kill all sessions when stopping
+  gdm service
+  (bsc#1112294 bsc#1120307 bsc#1113245 glgo#GNOME/gdm#400).
+- Add gdm-switch-to-tty1.patch: Switch to tty1 when stopping gdm
+  service (bsc#1113700).
+- Drop gdm-plymouth-vt1.patch: Replaced by gdm-switch-to-tty1.patch
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:06 UTC 2019 - Felix Zhang <[email protected]>
+
+- Add gdm-CVE-2019-3825.patch: Fix lock screen bypass when timed
+  login is enabled (boo#1124628, glgo#GNOME/gdm#460, CVE-2019-3825)
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:05 UTC 2019 - [email protected]
+
+- Add gdm-ignore-duplicate-desktop-file.patch to ignore duplicate
+  desktop file with same "Name" value, including symlinks of
+  desktop files (bsc#1112834, glgo#GNOME/gdm#437).
+- Drop gdm-ignore-duplicate-session.patch, the patch hardcodes
+  "default.desktop" while LightDM and SDDM treat symlinks as
+  aliases.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:04 UTC 2019 - [email protected]
+
+- Update to version 3.30.2:
+  + Fix autologin crash.
+  + Unlock keyring again on autologin with newerish systemds.
+  + Fix initial-setup.
+  + Updated translations.
+- Drop patches fixed upstream:
+  + gdm-fix-autologin.patch.
+  + gdm-fix-initial-setup.patch.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:03 UTC 2019 - [email protected]
+
+- Add upstream patches:
+  + gdm-fix-autologin.patch: as autologin got reworked and broken,
+    accessing the proper display variable should fix it.
+  + gdm-fix-initial-setup.patch: as the initial-setup related post
+    work is done when stopping the greeter and this stop is delayed
+    until after the user session is started now, the post work
+    needs to be done before the user session is started.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:02 UTC 2019 - [email protected]
+
+- Re-add still needed 61-gdm.rules removal until glgo#GNOME/gdm#424
+  gets fixed.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:01 UTC 2019 - [email protected]
+
+- Update to version 3.30.1:
+  + Make udev rule configurable.
+  + Follow up fixes dealing with login screen reaping from two
+    releases ago.
+  + Disable wayland on proprietary nvidia machines for now.
+  + Updated translations.
+- Drop gdm-make-udev-dir-configurable.patch: Fixed upstream.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:30:00 UTC 2019 - [email protected]
+
+- Update to version 3.30.0:
+  + No visible changes for the user.
+- Drop gdm-ignore-spurios-SeatNew-signal.patch: fixed upstream.
+- Add gdm-make-udev-dir-configurable.patch: Make udev directory
+  configurable. Patch provided by upstream (glgo#GNOME/gdm!44).
+- Rebase gdm-ignore-duplicate-session.patch.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:29:52 UTC 2019 - [email protected]
+
+- Update to version 3.29.92:
+  + Search for sessions in XDG_DATA_DIRS.
+  + Blacklist some more wayland unfriendly hardware.
+  + Initial setup fix.
+  + Flicker fix.
+  + Misc bug fixes.
+
+-------------------------------------------------------------------
+Wed Apr 17 03:29:51 UTC 2019 - [email protected]
+
+- Update to version 3.29.91:
+  + CVE-2018-14424: double free fix.
+  + Follow up fixes dealing with login screen reaping form last
+    release.
+  + Add more debug logging.
+  + Updated translations.
+- Drop gdm-CVE-2018-14424.patch: Fixed upstream.
+- Add gdm-ignore-spurios-SeatNew-signal.patch: Fix crashes.
++++ 75 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/gdm/gdm.changes
++++ and /work/SRC/openSUSE:Factory/.gdm.new.4811/gdm.changes

Old:
----
  gdm-3.28.2.tar.xz
  gdm-disable-wayland-on-unsupported-chipsets.patch
  gdm-ignore-duplicate-session.patch
  gdm-plymouth-vt1.patch

New:
----
  gdm-3.32.0.tar.xz
  gdm-kill-user-session.patch
  gdm-remove-duplicate-sessions.patch
  gdm-s390-not-require-g-s-d_wacom.patch
  gdm-switch-to-tty1.patch
  reserveVT.conf

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

Other differences:
------------------
++++++ gdm.spec ++++++
--- /var/tmp/diff_new_pack.caID0R/_old  2019-06-13 22:29:41.560452495 +0200
+++ /var/tmp/diff_new_pack.caID0R/_new  2019-06-13 22:29:41.560452495 +0200
@@ -20,13 +20,13 @@
 # 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.28.2
+Version:        3.32.0
 Release:        0
 Summary:        The GNOME Display Manager
 License:        GPL-2.0-or-later
 Group:          System/GUI/GNOME
 URL:            https://wiki.gnome.org/Projects/GDM
-Source:         
http://download.gnome.org/sources/gdm/3.28/%{name}-%{version}.tar.xz
+Source0:        
https://download.gnome.org/sources/gdm/3.32/%{name}-%{version}.tar.xz
 Source1:        gdm.pamd
 Source2:        gdm-autologin.pamd
 Source3:        gdm-launch-environment.pamd
@@ -40,32 +40,35 @@
 Source8:        autogen.sh
 # Use tmpfiles to create directories under /var to support transactional 
updates
 Source9:        gdm.tmpfiles
-# PATCH-FIX-UPSTREAM gdm-disable-wayland-on-unsupported-chipsets.patch 
bgo#789081 bgo#794106 boo#1059356 boo#1083609 boo#1088539 [email protected] -- 
Disable Wayland on unsupported chipsets
-Patch1:         gdm-disable-wayland-on-unsupported-chipsets.patch
-# WARNING: do not remove/significantly change patch3 without updating the 
relevant patch in accountsservice too
+# Use reserveVT.conf to make autologin user session not to select tty1
+Source10:       reserveVT.conf
+# WARNING: do not remove/significantly change patch0 without updating the 
relevant patch in accountsservice too
 # PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 bsc#919723 
[email protected] -- Read autologin options from /etc/sysconfig/displaymanager; 
note that accountsservice has a similar patch (accountsservice-sysconfig.patch)
-Patch3:         gdm-sysconfig-settings.patch
+Patch0:         gdm-sysconfig-settings.patch
 # PATCH-FIX-OPENSUSE gdm-suse-xsession.patch [email protected] -- Use the 
/etc/X11/xdm/* scripts
-Patch7:         gdm-suse-xsession.patch
+Patch2:         gdm-suse-xsession.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
+Patch3:         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-OPENSUSE gdm-ignore-duplicate-session.patch [email protected] -- gdm 
sessions entries duplicate
-Patch36:        gdm-ignore-duplicate-session.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
-# PATCH-FIX-UPSTREAM gdm-fails-to-restart-gnome-shell.patch bsc#981976 
bgo#769969 [email protected] -- Gdm should stop after a few times fails
-Patch42:        gdm-fails-to-restart-gnome-shell.patch
-# PATCH-FIX-UPSTREAM 
gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch bnc#1075805 
bgo#793255 [email protected] -- Add runtime option to start X under root instead of 
regular user. Necessary if no DRI drivers are present.
-Patch43:        gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
+Patch4:         gdm-xauthlocalhostname.patch
+# PATCH-FIX-OPENSUSE gdm-switch-to-tty1.patch bsc#1113700 [email protected] -- 
switch to tty1 when stopping gdm service
+Patch6:         gdm-switch-to-tty1.patch
+# PATCH-FIX-UPSTREAM gdm-fails-to-restart-gnome-shell.patch bsc#981976 
glgo#GNOME/gdm#266 [email protected] -- Gdm should stop after a few times fails
+Patch7:         gdm-fails-to-restart-gnome-shell.patch
+# PATCH-FIX-OPENSUSE 
gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch bnc#1075805 
bgo#793255 [email protected] -- Add runtime option to start X under root instead of 
regular user. Necessary if no DRI drivers are present. rejected upstream
+Patch8:         gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch
+# PATCH-FIX-UPSTREAM gdm-kill-user-session.patch bsc#1112294 
glgo#GNOME/gdm#400 [email protected] -- Kill all sessions when stopping gdm service
+Patch11:        gdm-kill-user-session.patch
+# PATCH-FIX-OPENSUSE gdm-s390-not-require-g-s-d_wacom.patch bsc#1129412 
[email protected] -- Remove the runtime requirement of g-s-d Wacom plugin
+Patch13:        gdm-s390-not-require-g-s-d_wacom.patch
+# PATCH-FIX-UPSTREAM gdm-remove-duplicate-sessions.patch boo#1131625 
glgo#GNOME/gdm#473 [email protected] -- Remove duplicate sessions once, after all 
sessions have been processed.
+Patch14:        gdm-remove-duplicate-sessions.patch
 ### NOTE: Keep please SLE-only patches at bottom (starting on 1000).
 # PATCH-FIX-SLE gdm-disable-gnome-initial-setup.patch bnc#1067976 
[email protected] -- Disable gnome-initial-setup runs before gdm, g-i-s will only 
serve for CJK people to choose the input-method after login.
-Patch1002:      gdm-disable-gnome-initial-setup.patch
+Patch1000:      gdm-disable-gnome-initial-setup.patch
 BuildRequires:  check-devel
-# needed for directory ownership
+# dconf and gnome-session-core are needed for directory ownership
 BuildRequires:  dconf
-# needed for directory ownership
 BuildRequires:  fdupes
 BuildRequires:  gnome-common
 BuildRequires:  gnome-session-core
@@ -176,6 +179,18 @@
 
 This package provides the upstream default configuration for gdm.
 
+%package systemd
+Summary:        systemd gdm.service file
+Group:          System/GUI/GNOME
+Requires:       gdm
+BuildArch:      noarch
+
+%description systemd
+GDM's systemd service file.
+By default openSUSE uses xdm which enables the DM based on sysconfig.
+This package is only needed if the system administrator wishes to use
+'systemctl' instead of openSUSE's default 'update-alternatives' method.
+
 %package -n gdmflexiserver
 Summary:        Compatibility Wrapper for Display Managers
 Group:          System/GUI/GNOME
@@ -193,18 +208,25 @@
 %prep
 %setup -q
 cp %{SOURCE8} .
-%patch1 -p1
+%patch0 -p1
+%patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch6 -p1
 %patch7 -p1
-%patch34 -p1
-%patch35 -p1
-%patch36 -p1
-%patch41 -p1
-%patch42 -p1
-%patch43 -p1
+%patch8 -p1
+%patch11 -p1
+%ifarch s390 s390x
+%patch13 -p1
+%endif
+%patch14 -p1
+
+# TODO: Hack still needed until https://gitlab.gnome.org/GNOME/gdm/issues/424 
gets fixed and released.
+#rm data/61-gdm.rules
+
 # SLE-only patches start at 1000
 %if !0%{?is_opensuse}
-%patch1002 -p1
+%patch1000 -p1
 %endif
 
 %build
@@ -233,14 +255,13 @@
         --disable-split-authentication \
 %endif
         --with-initial-vt=7 \
-        --with-run-dir=/run/gdm
+        --with-run-dir=/run/gdm \
+        --with-udevdir=%{_prefix}/lib/udev
 %make_build V=1
 
 %install
 %make_install
 find %{buildroot} -type f -name "*.la" -delete -print
-# Do not ship the systemd.service file: openSUSE uses xdm, which enables the 
DM based on sysconfig.
-rm %{buildroot}%{systemdsystemunitdir}/gdm.service
 ## Install PAM files.
 mkdir -p %{buildroot}%{_sysconfdir}/pam.d
 # Generic pam config
@@ -273,7 +294,6 @@
 mkdir -p %{buildroot}%{_sysconfdir}/alternatives
 touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager
 ln -s %{_sysconfdir}/alternatives/default-displaymanager 
%{buildroot}%{_libexecdir}/X11/displaymanagers/default-displaymanager
-
 # Install other files
 mkdir -p %{buildroot}/run/gdm
 mkdir -p %{buildroot}%{_bindir}
@@ -282,6 +302,9 @@
 mkdir -p %{buildroot}%{_prefix}/lib/tmpfiles.d
 install -m 644 %{SOURCE9} %{buildroot}%{_prefix}/lib/tmpfiles.d/gdm.conf
 
+mkdir -p %{buildroot}%{_libexecdir}/systemd/logind.conf.d
+install -m 644 %{SOURCE10} 
%{buildroot}%{_libexecdir}/systemd/logind.conf.d/reserveVT.conf
+
 %find_lang %{name} %{?no_lang_C}
 %fdupes -s %{buildroot}%{_datadir}/help
 
@@ -290,28 +313,6 @@
 %{_sbindir}/useradd -r -g gdm -G video -s /bin/false \
 -c "Gnome Display Manager daemon" -d %{_localstatedir}/lib/gdm gdm 2> 
/dev/null || :
 %{_sbindir}/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 %{_sysconfdir}/pam.d/gdm
-    if test $? -eq 0; then
-        # We'll just use the file from the new package
-        mv %{_sysconfdir}/pam.d/gdm %{_sysconfdir}/pam.d/gdm.rpmold
-    fi
-fi
 
 %post
 %tmpfiles_create gdm.conf
@@ -331,7 +332,7 @@
 
 %files
 %license COPYING
-%doc AUTHORS ChangeLog NEWS README
+%doc AUTHORS NEWS README.md
 %doc %{_datadir}/help/C/%{name}/
 %dir %config %{_sysconfdir}/gdm
 %config %{_sysconfdir}/gdm/[IPXl]*
@@ -370,6 +371,8 @@
 %ghost %{_sysconfdir}/alternatives/default-displaymanager
 %{_udevrulesdir}/61-gdm.rules
 %{_libexecdir}/tmpfiles.d/gdm.conf
+%dir %{_libexecdir}/systemd/logind.conf.d
+%{_libexecdir}/systemd/logind.conf.d/reserveVT.conf
 
 %files -n libgdm1
 %{_libdir}/libgdm.so.*
@@ -387,6 +390,9 @@
 %files branding-upstream
 %config(noreplace) %{_sysconfdir}/gdm/custom.conf
 
+%files systemd
+%{systemdsystemunitdir}/gdm.service
+
 %files -n gdmflexiserver
 %{_bindir}/gdmflexiserver
 

++++++ gdm-3.28.2.tar.xz -> gdm-3.32.0.tar.xz ++++++
++++ 39039 lines of diff (skipped)

++++++ gdm-add-runtime-option-to-disable-starting-X-server-as-u.patch ++++++
--- /var/tmp/diff_new_pack.caID0R/_old  2019-06-13 22:29:41.992452355 +0200
+++ /var/tmp/diff_new_pack.caID0R/_new  2019-06-13 22:29:41.992452355 +0200
@@ -9,29 +9,28 @@
 
 This allows system to run X server under root if and only-if necessary.
 ---
- daemon/gdm-local-display-factory.c | 10 ++++++----
- daemon/gdm-session.c               | 13 +++++++++----
- 2 files changed, 15 insertions(+), 8 deletions(-)
-
-diff --git a/daemon/gdm-local-display-factory.c 
b/daemon/gdm-local-display-factory.c
-index b29f5ac5..7c687cf6 100644
---- a/daemon/gdm-local-display-factory.c
-+++ b/daemon/gdm-local-display-factory.c
-@@ -207,8 +207,11 @@ gdm_local_display_factory_create_transient_display 
(GdmLocalDisplayFactory *fact
+diff -urp gdm-3.32.0.orig/daemon/gdm-local-display-factory.c 
gdm-3.32.0/daemon/gdm-local-display-factory.c
+--- gdm-3.32.0.orig/daemon/gdm-local-display-factory.c 2019-03-05 
09:10:56.000000000 -0600
++++ gdm-3.32.0/daemon/gdm-local-display-factory.c      2019-03-19 
11:31:18.093838985 -0500
+@@ -231,11 +231,12 @@ gdm_local_display_factory_create_transie
+ 
          g_debug ("GdmLocalDisplayFactory: Creating transient display");
  
- #ifdef ENABLE_USER_DISPLAY_SERVER
+-#ifdef ENABLE_USER_DISPLAY_SERVER
 -        display = gdm_local_display_new ();
+-        if (gdm_local_display_factory_use_wayland ())
+-                g_object_set (G_OBJECT (display), "session-type", "wayland", 
NULL);
 -#else
 +        if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL) {
 +                display = gdm_local_display_new ();
++                if (gdm_local_display_factory_use_wayland ())
++                        g_object_set (G_OBJECT (display), "session-type", 
"wayland", NULL);
 +        }
-+#endif
 +
          if (display == NULL) {
                  guint32 num;
  
-@@ -216,7 +219,6 @@ gdm_local_display_factory_create_transient_display 
(GdmLocalDisplayFactory *fact
+@@ -243,7 +244,6 @@ gdm_local_display_factory_create_transie
  
                  display = gdm_legacy_display_new (num);
          }
@@ -39,7 +38,7 @@
  
          g_object_set (display,
                        "seat-id", "seat0",
-@@ -369,7 +371,7 @@ create_display (GdmLocalDisplayFactory *factory,
+@@ -468,7 +468,7 @@ create_display (GdmLocalDisplayFactory *
          g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", 
seat_id);
  
  #ifdef ENABLE_USER_DISPLAY_SERVER
@@ -48,13 +47,12 @@
                  display = gdm_local_display_new ();
                  if (session_type != NULL) {
                          g_object_set (G_OBJECT (display), "session-type", 
session_type, NULL);
-diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
-index 610ebcd0..cb37ed4e 100644
---- a/daemon/gdm-session.c
-+++ b/daemon/gdm-session.c
-@@ -360,7 +360,11 @@ get_system_session_dirs (GdmSession *self)
+diff -urp gdm-3.32.0.orig/daemon/gdm-session.c gdm-3.32.0/daemon/gdm-session.c
+--- gdm-3.32.0.orig/daemon/gdm-session.c       2019-03-05 09:10:56.000000000 
-0600
++++ gdm-3.32.0/daemon/gdm-session.c    2019-03-19 10:42:39.493665629 -0500
+@@ -371,7 +371,11 @@ get_system_session_dirs (GdmSession *sel
  #ifdef ENABLE_WAYLAND_SUPPORT
-         if (!self->priv->ignore_wayland) {
+         if (!self->ignore_wayland) {
  #ifdef ENABLE_USER_DISPLAY_SERVER
 -                g_array_prepend_val (search_array, wayland_search_dir);
 +                if (getenv ("GDM_DISABLE_USER_DISPLAY_SERVER") == NULL) {
@@ -62,10 +60,10 @@
 +                } else {
 +                        g_array_append_val (search_array, wayland_search_dir);
 +                }
- #else
-                 g_array_append_val (search_array, wayland_search_dir);
- #endif
-@@ -3147,8 +3151,10 @@ gdm_session_get_display_mode (GdmSession *self)
+ 
+                 for (i = 0; system_data_dirs[i]; i++) {
+                         gchar *dir = g_build_filename (system_data_dirs[i], 
"wayland-sessions", NULL);
+@@ -3258,8 +3262,10 @@ gdm_session_get_display_mode (GdmSession
           *   right now.  It will die with an error if logind devices
           *   are paused when handed out.
           */
@@ -78,7 +76,7 @@
  
  #ifdef ENABLE_WAYLAND_SUPPORT
          /* Wayland sessions are for now assumed to run in a
-@@ -3159,7 +3165,6 @@ gdm_session_get_display_mode (GdmSession *self)
+@@ -3270,7 +3276,6 @@ gdm_session_get_display_mode (GdmSession
          }
  #endif
          return GDM_SESSION_DISPLAY_MODE_REUSE_VT;
@@ -86,6 +84,3 @@
  }
  
  void
--- 
-2.13.6
-

++++++ gdm-default-wm.patch ++++++
--- /var/tmp/diff_new_pack.caID0R/_old  2019-06-13 22:29:42.012452348 +0200
+++ /var/tmp/diff_new_pack.caID0R/_new  2019-06-13 22:29:42.012452348 +0200
@@ -1,7 +1,7 @@
-Index: gdm-3.19.2/daemon/gdm-session.c
+Index: gdm-3.31.91/daemon/gdm-session.c
 ===================================================================
---- gdm-3.19.2.orig/daemon/gdm-session.c
-+++ gdm-3.19.2/daemon/gdm-session.c
+--- gdm-3.31.91.orig/daemon/gdm-session.c      2019-02-21 20:44:22.000000000 
+0100
++++ gdm-3.31.91/daemon/gdm-session.c   2019-02-27 07:46:21.417932330 +0100
 @@ -43,6 +43,8 @@
  #include <glib-object.h>
  #include <gio/gio.h>
@@ -11,18 +11,18 @@
  #include "gdm-session.h"
  #include "gdm-session-glue.h"
  #include "gdm-dbus-util.h"
-@@ -523,6 +525,14 @@ get_fallback_session_name (GdmSession *s
+@@ -562,6 +564,14 @@ get_fallback_session_name (GdmSession *s
                  }
          }
  
 +        name = gdm_sysconfig_load_value ("/etc/sysconfig/windowmanager", 
"DEFAULT_WM");
 +        if (name && get_session_command_for_name (self, name, NULL)) {
-+                g_free (self->priv->fallback_session_name);
-+                self->priv->fallback_session_name = name;
++                g_free (self->fallback_session_name);
++                self->fallback_session_name = name;
 +                goto out;
 +        }
 +        g_free (name);
 +
          name = g_strdup ("gnome");
          if (get_session_command_for_name (self, name, NULL)) {
-                 g_free (self->priv->fallback_session_name);
+                 g_free (self->fallback_session_name);

++++++ gdm-fails-to-restart-gnome-shell.patch ++++++
--- /var/tmp/diff_new_pack.caID0R/_old  2019-06-13 22:29:42.020452345 +0200
+++ /var/tmp/diff_new_pack.caID0R/_new  2019-06-13 22:29:42.020452345 +0200
@@ -1,11 +1,10 @@
-diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
-index ab84ba4..e1d0996 100644
---- a/daemon/gdm-display.c
-+++ b/daemon/gdm-display.c
-@@ -673,7 +673,7 @@ gdm_display_unmanage (GdmDisplay *self)
+diff -urp gdm-3.32.0.orig/daemon/gdm-display.c gdm-3.32.0/daemon/gdm-display.c
+--- gdm-3.32.0.orig/daemon/gdm-display.c       2019-03-05 09:10:56.000000000 
-0600
++++ gdm-3.32.0/daemon/gdm-display.c    2019-03-18 17:17:12.220630463 -0500
+@@ -696,7 +696,7 @@ gdm_display_unmanage (GdmDisplay *self)
          }
  
-         elapsed = g_timer_elapsed (self->priv->server_timer, NULL);
+         elapsed = g_timer_elapsed (priv->server_timer, NULL);
 -        if (elapsed < 3) {
 +        if (elapsed < 10) {
                  g_warning ("GdmDisplay: display lasted %lf seconds", elapsed);

++++++ gdm-kill-user-session.patch ++++++
diff --git a/daemon/gdm-display-store.c b/daemon/gdm-display-store.c
index fd24334..8c1ae25 100644
--- a/daemon/gdm-display-store.c
+++ b/daemon/gdm-display-store.c
@@ -136,6 +136,35 @@ typedef struct
         gpointer            user_data;
 } FindClosure;
 
+static void
+copy_func (StoredDisplay *stored_display,
+           FindClosure   *closure)
+{
+        closure->user_data = g_list_append (closure->user_data,
+                                            stored_display->display);
+}
+
+GList *
+gdm_display_store_get_displays (GdmDisplayStore    *store)
+{
+        GList *displays = NULL;
+        GList *store_displays = NULL;
+        FindClosure  closure;
+        g_return_val_if_fail (store != NULL, NULL);
+
+        store_displays = g_hash_table_get_values (store->priv->displays);
+
+        closure.user_data = displays;
+
+        g_list_foreach (store_displays,
+                        (GFunc) copy_func,
+                        &closure);
+        displays = closure.user_data;
+
+        g_list_free (store_displays);
+        return displays;
+}
+
 static gboolean
 find_func (const char    *id,
            StoredDisplay *stored_display,
diff --git a/daemon/gdm-display-store.h b/daemon/gdm-display-store.h
index 0aff8ee..cd69518 100644
--- a/daemon/gdm-display-store.h
+++ b/daemon/gdm-display-store.h
@@ -86,6 +86,8 @@ GdmDisplay *        gdm_display_store_find                    
 (GdmDisplayStore
                                                                 
GdmDisplayStoreFunc predicate,
                                                                 gpointer       
     user_data);
 
+GList *             gdm_display_store_get_displays             
(GdmDisplayStore    *store);
+
 
 G_END_DECLS
 
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index cb9f662..a971ba3 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -2703,9 +2703,7 @@ unexport_display (const char *id,
 }
 
 static void
-finish_display (const char *id,
-                GdmDisplay *display,
-                GdmManager *manager)
+finish_display (GdmDisplay *display)
 {
         gdm_display_stop_greeter_session (display);
         if (gdm_display_get_status (display) == GDM_DISPLAY_MANAGED)
@@ -2717,6 +2715,7 @@ static void
 gdm_manager_dispose (GObject *object)
 {
         GdmManager *manager;
+        GList      *displays = NULL;
 
         g_return_if_fail (object != NULL);
         g_return_if_fail (GDM_IS_MANAGER (object));
@@ -2758,9 +2757,11 @@ gdm_manager_dispose (GObject *object)
                 g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON 
(manager));
         }
 
-        gdm_display_store_foreach (manager->priv->display_store,
-                                   (GdmDisplayStoreFunc) finish_display,
-                                   manager);
+        displays = gdm_display_store_get_displays 
(manager->priv->display_store);
+        g_list_foreach (displays,
+                        (GFunc) finish_display,
+                        NULL);
+        g_list_free (displays);
 
         gdm_display_store_clear (manager->priv->display_store);
 
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index 06e5a6a..07642cd 100644
--- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c
@@ -34,6 +34,7 @@
 #include <errno.h>
 #include <grp.h>
 #include <pwd.h>
+#include <signal.h>
 
 #include <security/pam_appl.h>
 
@@ -181,6 +182,8 @@ struct GdmSessionWorkerPrivate
         GdmSessionSettings *user_settings;
 
         GDBusMethodInvocation *pending_invocation;
+
+        GMainLoop          *main_loop;
 };
 
 #ifdef SUPPORTS_PAM_EXTENSIONS
@@ -197,6 +200,7 @@ enum {
         PROP_0,
         PROP_SERVER_ADDRESS,
         PROP_IS_REAUTH_SESSION,
+        PROP_MAIN_LOOP,
 };
 
 static void     gdm_session_worker_class_init   (GdmSessionWorkerClass *klass);
@@ -2455,6 +2459,13 @@ gdm_session_worker_set_is_reauth_session 
(GdmSessionWorker *worker,
         worker->priv->is_reauth_session = is_reauth_session;
 }
 
+static void
+gdm_session_worker_set_main_loop (GdmSessionWorker *worker,
+                                  GMainLoop        *main_loop)
+{
+        worker->priv->main_loop = main_loop;
+}
+
 static void
 gdm_session_worker_set_property (GObject      *object,
                                 guint         prop_id,
@@ -2472,6 +2483,9 @@ gdm_session_worker_set_property (GObject      *object,
         case PROP_IS_REAUTH_SESSION:
                 gdm_session_worker_set_is_reauth_session (self, 
g_value_get_boolean (value));
                 break;
+        case PROP_MAIN_LOOP:
+                gdm_session_worker_set_main_loop (self, g_value_get_pointer 
(value));
+                break;
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                 break;
@@ -2495,6 +2509,9 @@ gdm_session_worker_get_property (GObject    *object,
         case PROP_IS_REAUTH_SESSION:
                 g_value_set_boolean (value, self->priv->is_reauth_session);
                 break;
+        case PROP_MAIN_LOOP:
+                g_value_set_pointer (value, self->priv->main_loop);
+                break;
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
                 break;
@@ -2764,6 +2781,16 @@ do_open_session (GdmSessionWorker *worker)
         worker->priv->pending_invocation = NULL;
 }
 
+static gboolean
+on_shutdown_signal_cb (gpointer user_data)
+{
+        GMainLoop *mainloop = user_data;
+
+        g_main_loop_quit (mainloop);
+
+        return FALSE;
+}
+
 static void
 do_start_session (GdmSessionWorker *worker)
 {
@@ -2773,6 +2800,9 @@ do_start_session (GdmSessionWorker *worker)
         error = NULL;
         res = gdm_session_worker_start_session (worker, &error);
         if (res) {
+                g_unix_signal_add (SIGTERM, on_shutdown_signal_cb, 
worker->priv->main_loop);
+                g_unix_signal_add (SIGINT, on_shutdown_signal_cb,  
worker->priv->main_loop);
+
                 gdm_dbus_worker_complete_start_program (GDM_DBUS_WORKER 
(worker),
                                                         
worker->priv->pending_invocation,
                                                         
worker->priv->child_pid);
@@ -3471,6 +3501,13 @@ gdm_session_worker_class_init (GdmSessionWorkerClass 
*klass)
                                                                "is reauth 
session",
                                                               FALSE,
                                                               
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
+
+        g_object_class_install_property (object_class,
+                                         PROP_MAIN_LOOP,
+                                         g_param_spec_pointer ("main-loop",
+                                                               "main loop",
+                                                               "main loop",
+                                                               
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 }
 
 static void
@@ -3561,13 +3598,15 @@ gdm_session_worker_finalize (GObject *object)
 
 GdmSessionWorker *
 gdm_session_worker_new (const char *address,
-                        gboolean    is_reauth_session)
+                        gboolean    is_reauth_session,
+                        GMainLoop   *main_loop)
 {
         GObject *object;
 
         object = g_object_new (GDM_TYPE_SESSION_WORKER,
                                "server-address", address,
                                "is-reauth-session", is_reauth_session,
+                               "main-loop", main_loop,
                                NULL);
 
         return GDM_SESSION_WORKER (object);
diff --git a/daemon/gdm-session-worker.h b/daemon/gdm-session-worker.h
index 5603e80..24979e4 100644
--- a/daemon/gdm-session-worker.h
+++ b/daemon/gdm-session-worker.h
@@ -51,6 +51,7 @@ typedef struct
 GType              gdm_session_worker_get_type                 (void);
 
 GdmSessionWorker * gdm_session_worker_new                      (const char 
*server_address,
-                                                                gboolean    
is_for_reauth) G_GNUC_MALLOC;
+                                                                gboolean    
is_for_reauth,
+                                                                GMainLoop  
*main_loop) G_GNUC_MALLOC;
 G_END_DECLS
 #endif /* GDM_SESSION_WORKER_H */
diff --git a/daemon/session-worker-main.c b/daemon/session-worker-main.c
index 4a3a8eb..da3e7c6 100644
--- a/daemon/session-worker-main.c
+++ b/daemon/session-worker-main.c
@@ -64,12 +64,6 @@ is_debug_set (void)
         return debug;
 }
 
-static void
-on_sigterm_cb (int signal_number)
-{
-        _exit (EXIT_SUCCESS);
-}
-
 int
 main (int    argc,
       char **argv)
@@ -83,8 +77,6 @@ main (int    argc,
                 { NULL }
         };
 
-        signal (SIGTERM, on_sigterm_cb);
-
         bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
         textdomain (GETTEXT_PACKAGE);
         setlocale (LC_ALL, "");
@@ -120,10 +112,10 @@ main (int    argc,
 
         is_for_reauth = g_getenv ("GDM_SESSION_FOR_REAUTH") != NULL;
 
-        worker = gdm_session_worker_new (address, is_for_reauth);
-
         main_loop = g_main_loop_new (NULL, FALSE);
 
+        worker = gdm_session_worker_new (address, is_for_reauth, main_loop);
+
         g_unix_signal_add (SIGUSR1, on_sigusr1_cb, NULL);
 
         g_main_loop_run (main_loop);
++++++ gdm-remove-duplicate-sessions.patch ++++++
diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
index afbc5c0..30eaa14 100644
--- a/libgdm/gdm-sessions.c
+++ b/libgdm/gdm-sessions.c
@@ -111,14 +111,6 @@ key_file_is_relevant (GKeyFile     *key_file)
         return TRUE;
 }
 
-static gboolean
-find_session_with_same_name (const char     *id,
-                             GdmSessionFile *session,
-                             const char     *translated_name)
-{
-        return g_strcmp0 (session->translated_name, translated_name) == 0;
-}
-
 static void
 load_session_file (const char              *id,
                    const char              *path)
@@ -126,7 +118,7 @@ load_session_file (const char              *id,
         GKeyFile          *key_file;
         GError            *error;
         gboolean           res;
-        GdmSessionFile    *session, *session_with_same_name;
+        GdmSessionFile    *session;
 
         key_file = g_key_file_new ();
 
@@ -162,13 +154,6 @@ load_session_file (const char              *id,
         session->translated_name = g_key_file_get_locale_string (key_file, 
G_KEY_FILE_DESKTOP_GROUP, "Name", NULL, NULL);
         session->translated_comment = g_key_file_get_locale_string (key_file, 
G_KEY_FILE_DESKTOP_GROUP, "Comment", NULL, NULL);
 
-        session_with_same_name = g_hash_table_find (gdm_available_sessions_map,
-                                                    (GHRFunc) 
find_session_with_same_name,
-                                                    session->translated_name);
-
-        if (session_with_same_name != NULL)
-                g_hash_table_remove (gdm_available_sessions_map, 
session_with_same_name->id);
-
         g_hash_table_insert (gdm_available_sessions_map,
                              g_strdup (id),
                              session);
@@ -176,6 +161,29 @@ load_session_file (const char              *id,
         g_key_file_free (key_file);
 }
 
+static gboolean
+remove_duplicate_sessions (gpointer key,
+                           gpointer value,
+                           gpointer user_data)
+{
+        gboolean already_known;
+        const char *id;
+        GHashTable *names_seen_before;
+        GdmSessionFile *session;
+
+        id = (const char *) key;
+        names_seen_before = (GHashTable *) user_data;
+        session = (GdmSessionFile *) value;
+        already_known = !g_hash_table_add (names_seen_before, 
session->translated_name);
+
+        if (already_known)
+                g_debug ("GdmSession: Removing %s (%s) as we already have a 
session by this name",
+                         session->id,
+                         session->path);
+
+        return already_known;
+}
+
 static void
 collect_sessions_from_directory (const char *dirname)
 {
@@ -230,6 +238,7 @@ collect_sessions_from_directory (const char *dirname)
 static void
 collect_sessions (void)
 {
+        g_autoptr(GHashTable) names_seen_before = NULL;
         GArray     *xorg_search_array = NULL;
         GArray     *wayland_search_array = NULL;
         gchar      *session_dir = NULL;
@@ -242,6 +251,8 @@ collect_sessions (void)
                 NULL
         };
 
+        names_seen_before = g_hash_table_new (g_str_hash, g_str_equal);
+
         xorg_search_array = g_array_new (TRUE, TRUE, sizeof (char *));
 
         const gchar * const *system_data_dirs = g_get_system_data_dirs ();
@@ -294,6 +305,9 @@ collect_sessions (void)
 
         g_array_free (wayland_search_array, TRUE);
 #endif
+        g_hash_table_foreach_remove (gdm_available_sessions_map,
+                                     remove_duplicate_sessions,
+                                     names_seen_before);
 }
 
 /**
++++++ gdm-s390-not-require-g-s-d_wacom.patch ++++++
Index: gdm-3.32.0/data/gnome-login.session.in
===================================================================
--- gdm-3.32.0.orig/data/gnome-login.session.in
+++ gdm-3.32.0/data/gnome-login.session.in
@@ -1,3 +1,3 @@
 [GNOME Session]
 Name=Display Manager
-RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
+RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.XSettings;
++++++ gdm-suse-xsession.patch ++++++
--- /var/tmp/diff_new_pack.caID0R/_old  2019-06-13 22:29:42.064452331 +0200
+++ /var/tmp/diff_new_pack.caID0R/_new  2019-06-13 22:29:42.064452331 +0200
@@ -1,7 +1,7 @@
-Index: gdm-2.29.92/data/Init.in
+Index: gdm-3.31.91/data/Init.in
 ===================================================================
---- gdm-2.29.92.orig/data/Init.in
-+++ gdm-2.29.92/data/Init.in
+--- gdm-3.31.91.orig/data/Init.in      2019-02-21 20:44:14.000000000 +0100
++++ gdm-3.31.91/data/Init.in   2019-02-27 07:46:21.401932235 +0100
 @@ -1,4 +1,9 @@
  #!/bin/sh
 +
@@ -12,10 +12,10 @@
  # 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
+Index: gdm-3.31.91/data/PostSession.in
 ===================================================================
---- gdm-2.29.92.orig/data/PostSession.in
-+++ gdm-2.29.92/data/PostSession.in
+--- gdm-3.31.91.orig/data/PostSession.in       2018-10-12 23:05:26.000000000 
+0200
++++ gdm-3.31.91/data/PostSession.in    2019-02-27 07:46:21.401932235 +0100
 @@ -1,3 +1,7 @@
  #!/bin/sh
  
@@ -24,10 +24,10 @@
 +fi
 +
  exit 0
-Index: gdm-2.29.92/data/Xsession.in
+Index: gdm-3.31.91/data/Xsession.in
 ===================================================================
---- gdm-2.29.92.orig/data/Xsession.in
-+++ gdm-2.29.92/data/Xsession.in
+--- gdm-3.31.91.orig/data/Xsession.in  2019-02-21 20:44:14.000000000 +0100
++++ gdm-3.31.91/data/Xsession.in       2019-02-27 07:46:21.401932235 +0100
 @@ -1,4 +1,9 @@
  #!@XSESSION_SHELL@
 +
@@ -38,10 +38,10 @@
  #
  # 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
+Index: gdm-3.31.91/data/PreSession.in
 ===================================================================
---- gdm-2.29.92.orig/data/PreSession.in
-+++ gdm-2.29.92/data/PreSession.in
+--- gdm-3.31.91.orig/data/PreSession.in        2018-10-12 23:05:26.000000000 
+0200
++++ gdm-3.31.91/data/PreSession.in     2019-02-27 07:46:21.401932235 +0100
 @@ -6,4 +6,8 @@
  #
  # Note that output goes into the .xsession-errors file for easy debugging

++++++ gdm-switch-to-tty1.patch ++++++
Index: gdm-3.26.2.1/daemon/main.c
===================================================================
--- gdm-3.26.2.1.orig/daemon/main.c
+++ gdm-3.26.2.1/daemon/main.c
@@ -61,6 +61,31 @@ static GdmSettings     *settings      =
 static uid_t            gdm_uid       = -1;
 static gid_t            gdm_gid       = -1;
 
+#define SHELLSCRIPT "\
+/bin/bash -c \
+\'PROCESS=\"X Xwayland\"\;\
+R=$(pidof $PROCESS)\;\
+while [ $? == 0 ]\;\
+do sleep 1\;\
+  R=$(pidof $PROCESS)\;\
+done\;\
+systemd-cat echo Switch to tty1 Successfully\;\
+/usr/bin/chvt 1\'\
+"
+
+static void
+jump_to_tty1 ()
+{
+        g_autoptr(GError) error = NULL;
+
+        g_debug ("Spawn jump to tty1 process");
+        g_spawn_command_line_async (SHELLSCRIPT,
+                                    &error);
+
+        if (error != NULL)
+                g_warning ("Error chvt to tty1: %s", error->message);
+}
+
 static gboolean
 timed_exit_cb (GMainLoop *loop)
 {
@@ -263,6 +288,12 @@ on_shutdown_signal_cb (gpointer user_dat
         return FALSE;
 }
 
+static void
+on_signal_term_cb ()
+{
+        g_debug ("Received SIGTERM again");
+}
+
 static gboolean
 on_sighup_cb (gpointer user_data)
 {
@@ -396,6 +427,7 @@ main (int    argc,
         g_main_loop_run (main_loop);
 
         g_debug ("GDM finished, cleaning up...");
+        signal (SIGTERM, on_signal_term_cb);
 
         g_clear_object (&manager);
         g_clear_object (&settings);
@@ -403,6 +435,10 @@ main (int    argc,
         gdm_settings_direct_shutdown ();
         gdm_log_shutdown ();
 
+        jump_to_tty1 ();
+
+        g_debug ("GDM finished");
+
         g_main_loop_unref (main_loop);
 
         return EXIT_SUCCESS;
++++++ gdm-sysconfig-settings.patch ++++++
--- /var/tmp/diff_new_pack.caID0R/_old  2019-06-13 22:29:42.076452327 +0200
+++ /var/tmp/diff_new_pack.caID0R/_new  2019-06-13 22:29:42.076452327 +0200
@@ -1,8 +1,8 @@
-Index: b/common/Makefile.am
+Index: gdm-3.31.91/common/Makefile.am
 ===================================================================
---- a/common/Makefile.am       2018-01-19 20:09:39.075556951 +0800
-+++ b/common/Makefile.am       2018-01-19 20:10:57.572967891 +0800
-@@ -52,11 +52,15 @@
+--- gdm-3.31.91.orig/common/Makefile.am        2019-02-21 20:44:14.000000000 
+0100
++++ gdm-3.31.91/common/Makefile.am     2019-02-27 07:44:47.645367708 +0100
+@@ -46,11 +46,15 @@ libgdmcommon_la_SOURCES =  \
        gdm-settings-backend.h  \
        gdm-settings-desktop-backend.c  \
        gdm-settings-desktop-backend.h  \
@@ -17,11 +17,11 @@
 +      gdm-sysconfig.h         \
        gdm-log.h               \
        gdm-log.c               \
-       $(MKDTEMP_FILES)        \
-Index: b/common/gdm-settings-system-backend.c
+       $(NULL)
+Index: gdm-3.31.91/common/gdm-settings-system-backend.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ b/common/gdm-settings-system-backend.c     2018-01-19 20:10:57.572967891 
+0800
++++ gdm-3.31.91/common/gdm-settings-system-backend.c   2019-02-27 
07:44:47.645367708 +0100
 @@ -0,0 +1,369 @@
 +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
 + *
@@ -392,10 +392,10 @@
 +
 +        return GDM_SETTINGS_BACKEND (object);
 +}
-Index: b/common/gdm-settings-system-backend.h
+Index: gdm-3.31.91/common/gdm-settings-system-backend.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ b/common/gdm-settings-system-backend.h     2018-01-19 20:10:57.572967891 
+0800
++++ gdm-3.31.91/common/gdm-settings-system-backend.h   2019-02-27 
07:44:47.645367708 +0100
 @@ -0,0 +1,56 @@
 +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
 + *
@@ -453,31 +453,31 @@
 +G_END_DECLS
 +
 +#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
-Index: b/common/gdm-settings.c
+Index: gdm-3.31.91/common/gdm-settings.c
 ===================================================================
---- a/common/gdm-settings.c    2018-01-19 20:10:02.587982412 +0800
-+++ b/common/gdm-settings.c    2018-01-19 20:12:09.186231713 +0800
+--- gdm-3.31.91.orig/common/gdm-settings.c     2019-02-21 20:44:14.000000000 
+0100
++++ gdm-3.31.91/common/gdm-settings.c  2019-02-27 07:44:47.645367708 +0100
 @@ -38,6 +38,7 @@
  #include "gdm-settings.h"
  
  #include "gdm-settings-desktop-backend.h"
 +#include "gdm-settings-system-backend.h"
  
- #define GDM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), 
GDM_TYPE_SETTINGS, GdmSettingsPrivate))
- 
-@@ -198,6 +199,8 @@
+ struct _GdmSettings
+ {
+@@ -194,6 +195,8 @@ gdm_settings_init (GdmSettings *settings
          if (backend)
-                 settings->priv->backends = g_list_prepend (NULL, backend);
+                 settings->backends = g_list_prepend (NULL, backend);
  
-+        settings->priv->backends = g_list_prepend (settings->priv->backends, 
gdm_settings_system_backend_new ());
++        settings->backends = g_list_prepend (settings->backends, 
gdm_settings_system_backend_new ());
 +
          backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF);
          if (backend)
-                 settings->priv->backends = g_list_prepend 
(settings->priv->backends, backend);
-Index: b/common/gdm-sysconfig.c
+                 settings->backends = g_list_prepend (settings->backends, 
backend);
+Index: gdm-3.31.91/common/gdm-sysconfig.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ b/common/gdm-sysconfig.c   2018-01-19 20:10:57.572967891 +0800
++++ gdm-3.31.91/common/gdm-sysconfig.c 2019-02-27 07:44:47.645367708 +0100
 @@ -0,0 +1,484 @@
 +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
 + *
@@ -963,10 +963,10 @@
 +        g_strfreev (lines);
 +        return result;
 +}
-Index: b/common/gdm-sysconfig.h
+Index: gdm-3.31.91/common/gdm-sysconfig.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ b/common/gdm-sysconfig.h   2018-01-19 20:10:57.572967891 +0800
++++ gdm-3.31.91/common/gdm-sysconfig.h 2019-02-27 07:44:47.645367708 +0100
 @@ -0,0 +1,43 @@
 +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
 + *
@@ -1011,10 +1011,10 @@
 +G_END_DECLS
 +
 +#endif /* __GDM_SYSCONFIG_H */
-Index: b/data/gdm.conf-custom.in
+Index: gdm-3.31.91/data/gdm.conf-custom.in
 ===================================================================
---- a/data/gdm.conf-custom.in  2018-01-19 20:09:39.075556951 +0800
-+++ b/data/gdm.conf-custom.in  2018-01-19 20:10:57.572967891 +0800
+--- gdm-3.31.91.orig/data/gdm.conf-custom.in   2019-02-21 20:44:14.000000000 
+0100
++++ gdm-3.31.91/data/gdm.conf-custom.in        2019-02-27 07:44:47.649367731 
+0100
 @@ -1,4 +1,7 @@
  # GDM configuration storage
 +#
@@ -1022,4 +1022,4 @@
 +#
  
  [daemon]
- # Uncoment the line below to force the login screen to use Xorg
+ # Uncomment the line below to force the login screen to use Xorg

++++++ gdm-xauthlocalhostname.patch ++++++
--- /var/tmp/diff_new_pack.caID0R/_old  2019-06-13 22:29:42.080452326 +0200
+++ /var/tmp/diff_new_pack.caID0R/_new  2019-06-13 22:29:42.084452325 +0200
@@ -1,8 +1,8 @@
-Index: gdm-3.26.1/common/gdm-common.c
+Index: gdm-3.31.91/common/gdm-common.c
 ===================================================================
---- gdm-3.26.1.orig/common/gdm-common.c
-+++ gdm-3.26.1/common/gdm-common.c
-@@ -591,6 +591,8 @@ gdm_get_script_environment (const char *
+--- gdm-3.31.91.orig/common/gdm-common.c       2019-02-21 20:44:14.000000000 
+0100
++++ gdm-3.31.91/common/gdm-common.c    2019-02-27 07:47:16.998264608 +0100
+@@ -632,6 +632,8 @@ gdm_get_script_environment (const char *
  
          if (display_hostname) {
                  g_hash_table_insert (hash, g_strdup ("REMOTE_HOST"), g_strdup 
(display_hostname));
@@ -11,7 +11,7 @@
          }
  
          /* Runs as root */
-@@ -797,3 +799,14 @@ gdm_shell_expand (const char *str,
+@@ -843,3 +845,14 @@ gdm_shell_expand (const char *str,
          }
          return g_string_free (s, FALSE);
  }
@@ -26,23 +26,23 @@
 +                return g_strdup ("localhost");
 +        }
 +}
-Index: gdm-3.26.1/common/gdm-common.h
+Index: gdm-3.31.91/common/gdm-common.h
 ===================================================================
---- gdm-3.26.1.orig/common/gdm-common.h
-+++ gdm-3.26.1/common/gdm-common.h
-@@ -54,6 +54,7 @@ const char *   gdm_make_temp_dir
- char          *gdm_generate_random_bytes (gsize          size,
-                                           GError       **error);
+--- gdm-3.31.91.orig/common/gdm-common.h       2019-02-21 20:44:14.000000000 
+0100
++++ gdm-3.31.91/common/gdm-common.h    2019-02-27 07:47:16.998264608 +0100
+@@ -56,6 +56,7 @@ char          *gdm_generate_random_bytes
+ gboolean       gdm_get_login_window_session_id (const char  *seat_id,
+                                                 char       **session_id);
  gboolean       gdm_goto_login_session    (GError **error);
 +char          *gdm_gethostname           (void);
  
  GPtrArray     *gdm_get_script_environment (const char *username,
                                             const char *display_name,
-Index: gdm-3.26.1/daemon/gdm-display-access-file.c
+Index: gdm-3.31.91/daemon/gdm-display-access-file.c
 ===================================================================
---- gdm-3.26.1.orig/daemon/gdm-display-access-file.c
-+++ gdm-3.26.1/daemon/gdm-display-access-file.c
-@@ -443,13 +443,10 @@ _get_auth_info_for_display (GdmDisplayAc
+--- gdm-3.31.91.orig/daemon/gdm-display-access-file.c  2019-02-21 
20:44:14.000000000 +0100
++++ gdm-3.31.91/daemon/gdm-display-access-file.c       2019-02-27 
07:47:16.998264608 +0100
+@@ -441,13 +441,10 @@ _get_auth_info_for_display (GdmDisplayAc
                   *
                   * https://bugs.freedesktop.org/show_bug.cgi?id=43425
                   */
@@ -59,11 +59,11 @@
          } else {
                  *family = FamilyWild;
                  gdm_display_get_remote_hostname (display, address, NULL);
-Index: gdm-3.26.1/daemon/gdm-launch-environment.c
+Index: gdm-3.31.91/daemon/gdm-launch-environment.c
 ===================================================================
---- gdm-3.26.1.orig/daemon/gdm-launch-environment.c
-+++ gdm-3.26.1/daemon/gdm-launch-environment.c
-@@ -201,6 +201,11 @@ build_launch_environment (GdmLaunchEnvir
+--- gdm-3.31.91.orig/daemon/gdm-launch-environment.c   2019-02-21 
20:44:14.000000000 +0100
++++ gdm-3.31.91/daemon/gdm-launch-environment.c        2019-02-27 
07:47:16.998264608 +0100
+@@ -218,6 +218,11 @@ build_launch_environment (GdmLaunchEnvir
                  g_hash_table_insert (hash, g_strdup ("GDM_SEAT_ID"), g_strdup 
(seat_id));
          }
  
@@ -72,18 +72,18 @@
 +                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.26.1/daemon/gdm-session.c
+ 
+         return hash;
+Index: gdm-3.31.91/daemon/gdm-session.c
 ===================================================================
---- gdm-3.26.1.orig/daemon/gdm-session.c
-+++ gdm-3.26.1/daemon/gdm-session.c
-@@ -2570,6 +2570,14 @@ set_up_session_environment (GdmSession *
+--- gdm-3.31.91.orig/daemon/gdm-session.c      2019-02-27 07:47:16.990264560 
+0100
++++ gdm-3.31.91/daemon/gdm-session.c   2019-02-27 07:47:16.998264608 +0100
+@@ -2683,6 +2683,14 @@ set_up_session_environment (GdmSession *
                  }
          }
  
-+        if (self->priv->display_is_local) {
++        if (self->display_is_local) {
 +                char *hostname = gdm_gethostname ();
 +                gdm_session_set_environment_variable (self,
 +                                                      "XAUTHLOCALHOSTNAME",

++++++ gdm.tmpfiles ++++++
--- /var/tmp/diff_new_pack.caID0R/_old  2019-06-13 22:29:42.104452318 +0200
+++ /var/tmp/diff_new_pack.caID0R/_new  2019-06-13 22:29:42.104452318 +0200
@@ -1,4 +1,4 @@
-+d /var/lib/gdm/ 0750 gdm gdm -
-+d /var/log/gdm/ 0711 root gdm -
-+d /var/cache/gdm/ 1755 root root -
+d /var/lib/gdm/ 0750 gdm gdm -
+d /var/log/gdm/ 0711 root gdm -
+d /var/cache/gdm/ 1755 root root -
 

++++++ reserveVT.conf ++++++
[Login]
ReserveVT=1

Reply via email to