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
