Hello community, here is the log from the commit of package lightdm for openSUSE:Factory checked in at 2018-03-18 21:45:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lightdm (Old) and /work/SRC/openSUSE:Factory/.lightdm.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lightdm" Sun Mar 18 21:45:10 2018 rev:96 rq:588168 version:1.24.1 Changes: -------- --- /work/SRC/openSUSE:Factory/lightdm/lightdm.changes 2017-10-13 14:19:41.122737366 +0200 +++ /work/SRC/openSUSE:Factory/.lightdm.new/lightdm.changes 2018-03-18 21:45:15.844807104 +0100 @@ -1,0 +2,11 @@ +Fri Mar 9 19:10:07 UTC 2018 - sor.ale...@meowr.ru + +- Update to version 1.24.1: + * Fixes for VNC and XDMCP connections (boo#1066708, boo#1083161). + * Set names for XDMCP and VNC seats. + * Expose autologin-session as a hint to the greeter. + * Fix timed autologins not using autologin-session when no + session specified. +- Enable libaudit support on Leap 15.0 or newer. + +------------------------------------------------------------------- Old: ---- lightdm-1.24.0.tar.xz lightdm-1.24.0.tar.xz.asc lightdm.keyring New: ---- lightdm-1.24.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lightdm.spec ++++++ --- /var/tmp/diff_new_pack.lgqS1Z/_old 2018-03-18 21:45:17.216757680 +0100 +++ /var/tmp/diff_new_pack.lgqS1Z/_new 2018-03-18 21:45:17.236756959 +0100 @@ -1,7 +1,7 @@ # # spec file for package lightdm # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2011 Guido Berhoerster. # # All modifications and additions to the file contributed by third parties @@ -27,20 +27,18 @@ %define typelibname typelib-1_0-LightDM-1 %define rundir /run Name: lightdm -Version: 1.24.0 +Version: 1.24.1 Release: 0 Summary: Lightweight, Cross-desktop Display Manager -License: GPL-3.0+ +License: GPL-3.0-or-later Group: System/X11/Displaymanagers Url: https://freedesktop.org/wiki/Software/LightDM -Source: https://launchpad.net/lightdm/%{ver_master}/%{version}/+download/%{name}-%{version}.tar.xz -Source1: https://launchpad.net/lightdm/%{ver_master}/%{version}/+download/%{name}-%{version}.tar.xz.asc -Source2: %{name}.keyring -Source3: %{name}-greeter.pamd -Source4: X11-displaymanagers-%{name} -Source5: gdmflexiserver -Source6: 50-suse-defaults.conf -Source7: users.conf +Source: https://github.com/CanonicalLtd/lightdm/releases/download/%{version}/%{name}-%{version}.tar.xz +Source1: %{name}-greeter.pamd +Source2: X11-displaymanagers-%{name} +Source3: gdmflexiserver +Source4: 50-suse-defaults.conf +Source5: users.conf # PATCH-FEATURE-OPENSUSE lightdm-sysconfig-support.patch g...@opensuse.org -- Adds support for reading configuration options from /etc/sysconfig/displaymanager and /etc/sysconfig/windowmanager Patch0: lightdm-sysconfig-support.patch # PATCH-FEATURE-OPENSUSE lightdm-xauthlocalhostname-support.patch boo#796230 g...@opensuse.org -- Set XAUTHLOCALHOSTNAME to the hostname for local logins to avoid issues in the session in case the hostname changes @@ -51,7 +49,7 @@ Patch3: lightdm-disable-utmp-handling.patch # PATCH-FIX-OPENSUSE lightdm-use-run-dir.patch g...@opensuse.org -- Use /run instead of /var/run Patch4: lightdm-use-run-dir.patch -# PATCH-FIX-OPENSUSE +# PATCH-FIX-OPENSUSE ignore-known-symlink-sessions.patch boo#1030873 -- Ignore known synlink sessions. Patch5: ignore-known-symlink-sessions.patch BuildRequires: autoconf BuildRequires: automake @@ -90,6 +88,9 @@ Recommends: %{name}-lang # Migrate users from lxdm to lightdm - we only obsolete up to version 0.5. Obsoletes: lxdm < 0.5 +%if 0%{?suse_version} >= 1500 +BuildRequires: pkgconfig(audit) +%endif %description LightDM is a lightweight, cross-desktop display manager. Its main @@ -103,7 +104,7 @@ %package -n %{gobject_lib} Summary: LightDM GObject-based Client Library -License: LGPL-2.0 OR LGPL-3.0 +License: LGPL-2.0-only OR LGPL-3.0-only Group: System/Libraries Recommends: accountsservice @@ -113,7 +114,7 @@ %package gobject-devel Summary: Development Files for %{gobject_lib} -License: LGPL-2.0 OR LGPL-3.0 +License: LGPL-2.0-only OR LGPL-3.0-only Group: Development/Libraries/C and C++ Requires: %{gobject_lib} = %{version} @@ -123,7 +124,7 @@ %package -n %{typelibname} Summary: GObject Introspection Bindings for the LightDM Client Library -License: LGPL-2.0 OR LGPL-3.0 +License: LGPL-2.0-only OR LGPL-3.0-only Group: System/Libraries %description -n %{typelibname} @@ -132,7 +133,7 @@ %package -n %{qt4_lib} Summary: LightDM Qt4-based Client Library -License: LGPL-2.0 OR LGPL-3.0 +License: LGPL-2.0-only OR LGPL-3.0-only Group: System/Libraries %description -n %{qt4_lib} @@ -141,7 +142,7 @@ %package qt-devel Summary: Development Files for %{qt4_lib} -License: LGPL-2.0 OR LGPL-3.0 +License: LGPL-2.0-only OR LGPL-3.0-only Group: Development/Libraries/C and C++ Requires: %{qt4_lib} = %{version} @@ -151,7 +152,7 @@ %package -n %{qt5_lib} Summary: LightDM Qt5-based Client Library -License: LGPL-2.0 OR LGPL-3.0 +License: LGPL-2.0-only OR LGPL-3.0-only Group: System/Libraries %description -n %{qt5_lib} @@ -160,7 +161,7 @@ %package qt5-devel Summary: Development Files for %{qt5_lib} -License: LGPL-2.0 OR LGPL-3.0 +License: LGPL-2.0-only OR LGPL-3.0-only Group: Development/Libraries/C and C++ Requires: %{qt5_lib} = %{version} @@ -227,16 +228,16 @@ install -d %{buildroot}%{_localstatedir}/log/lightdm install -d %{buildroot}%{rundir}/lightdm -install -Dpm 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/pam.d/lightdm-greeter -install -Dpm 0644 %{SOURCE4} %{buildroot}%{_libexecdir}/X11/displaymanagers/lightdm +install -Dpm 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/pam.d/lightdm-greeter +install -Dpm 0644 %{SOURCE2} %{buildroot}%{_libexecdir}/X11/displaymanagers/lightdm mkdir -p %{buildroot}%{_sysconfdir}/alternatives touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager ln -s %{_sysconfdir}/alternatives/default-displaymanager %{buildroot}%{_libexecdir}/X11/displaymanagers/default-displaymanager -install -Dpm 0755 %{SOURCE5} %{buildroot}%{_libexecdir}/lightdm/gdmflexiserver +install -Dpm 0755 %{SOURCE3} %{buildroot}%{_libexecdir}/lightdm/gdmflexiserver -install -Dpm 0644 %{SOURCE6} %{buildroot}%{_datadir}/lightdm/lightdm.conf.d/50-suse-defaults.conf -install -Dpm 0644 %{SOURCE7} %{buildroot}%{_sysconfdir}/lightdm/users.conf +install -Dpm 0644 %{SOURCE4} %{buildroot}%{_datadir}/lightdm/lightdm.conf.d/50-suse-defaults.conf +install -Dpm 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/lightdm/users.conf %find_lang %{name} %{?no_lang_C} @@ -265,7 +266,6 @@ [ -f %{_libexecdir}/X11/displaymanagers/lightdm ] || %{_sbindir}/update-alternatives \ --remove default-displaymanager %{_libexecdir}/X11/displaymanagers/lightdm - %post -n %{gobject_lib} -p /sbin/ldconfig %postun -n %{gobject_lib} -p /sbin/ldconfig @@ -279,7 +279,12 @@ %postun -n %{qt5_lib} -p /sbin/ldconfig %files -%doc COPYING.GPL3 NEWS data/lightdm.conf.example +%if 0%{?suse_version} >= 1500 +%license COPYING.GPL3 +%else +%doc COPYING.GPL3 +%endif +%doc NEWS data/lightdm.conf.example %{_bindir}/dm-tool %{_sbindir}/lightdm %dir %{_libexecdir}/lightdm/ @@ -308,13 +313,17 @@ %attr(750,lightdm,lightdm) %dir %{_localstatedir}/lib/lightdm/ %attr(750,lightdm,lightdm) %dir %{_localstatedir}/lib/lightdm-data/ %ghost %attr(711,root,root) %dir %{_localstatedir}/cache/lightdm/ -%{_mandir}/man1/lightdm.1* -%{_mandir}/man1/dm-tool.1* +%{_mandir}/man1/lightdm.1%{?ext_man} +%{_mandir}/man1/dm-tool.1%{?ext_man} %files lang -f %{name}.lang %files -n %{gobject_lib} +%if 0%{?suse_version} >= 1500 +%license COPYING.LGPL2 COPYING.LGPL3 +%else %doc COPYING.LGPL2 COPYING.LGPL3 +%endif %{_libdir}/lib%{gobject_libname}.so.* %files gobject-devel @@ -330,7 +339,11 @@ %{_libdir}/girepository-1.0/LightDM-1.typelib %files -n %{qt4_lib} +%if 0%{?suse_version} >= 1500 +%license COPYING.LGPL2 COPYING.LGPL3 +%else %doc COPYING.LGPL2 COPYING.LGPL3 +%endif %{_libdir}/lib%{qt4_libname}.so.* %files qt-devel @@ -339,7 +352,11 @@ %{_includedir}/%{qt4_libname}/ %files -n %{qt5_lib} +%if 0%{?suse_version} >= 1500 +%license COPYING.LGPL2 COPYING.LGPL3 +%else %doc COPYING.LGPL2 COPYING.LGPL3 +%endif %{_libdir}/lib%{qt5_libname}.so.* %files qt5-devel ++++++ lightdm-1.24.0.tar.xz -> lightdm-1.24.1.tar.xz ++++++ ++++ 2498 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/NEWS new/lightdm-1.24.1/NEWS --- old/lightdm-1.24.0/NEWS 2017-09-05 00:29:28.000000000 +0200 +++ new/lightdm-1.24.1/NEWS 2018-01-17 22:19:32.000000000 +0100 @@ -1,3 +1,10 @@ +Overview of changes in lightdm 1.24.1 + + * Fixes for VNC and XDMCP connections + * Set names for XDMCP and VNC seats + * Expose autologin-session as a hint to the greeter + * Fix timed autologins not using autologin-session when no session specified + Overview of changes in lightdm 1.24.0 * No changes from 1.22 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/TODO new/lightdm-1.24.1/TODO --- old/lightdm-1.24.0/TODO 2016-09-02 00:39:14.000000000 +0200 +++ new/lightdm-1.24.1/TODO 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -LIGHTDM_SIGNAL_USER_CHANGED -> LIGHTDM_USER_SIGNAL_CHANGED -Signal docstrings not showing \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/configure.ac new/lightdm-1.24.1/configure.ac --- old/lightdm-1.24.0/configure.ac 2017-09-05 00:22:31.000000000 +0200 +++ new/lightdm-1.24.1/configure.ac 2018-01-17 22:19:58.000000000 +0100 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(lightdm, 1.24.0) +AC_INIT(lightdm, 1.24.1) AC_CONFIG_MACRO_DIR(m4) AC_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz foreign]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/doc/html/LightDMGreeter.html new/lightdm-1.24.1/doc/html/LightDMGreeter.html --- old/lightdm-1.24.0/doc/html/LightDMGreeter.html 2017-09-05 00:35:55.000000000 +0200 +++ new/lightdm-1.24.1/doc/html/LightDMGreeter.html 2018-01-17 22:20:24.000000000 +0100 @@ -175,6 +175,13 @@ </td> </tr> <tr> +<td class="function_type">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * +</td> +<td class="function_name"> +<a class="link" href="LightDMGreeter.html#lightdm-greeter-get-autologin-session-hint" title="lightdm_greeter_get_autologin_session_hint ()">lightdm_greeter_get_autologin_session_hint</a> <span class="c_punctuation">()</span> +</td> +</tr> +<tr> <td class="function_type"> <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> </td> @@ -349,6 +356,12 @@ <td class="property_flags">Read</td> </tr> <tr> +<td class="property_type"> +<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="LightDMGreeter.html#LightDMGreeter--autologin-session-hint" title="The “autologin-session-hint” property">autologin-session-hint</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> <td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td> <td class="property_name"><a class="link" href="LightDMGreeter.html#LightDMGreeter--autologin-timeout-hint" title="The “autologin-timeout-hint” property">autologin-timeout-hint</a></td> <td class="property_flags">Read</td> @@ -1078,6 +1091,34 @@ </div> <hr> <div class="refsect2"> +<a name="lightdm-greeter-get-autologin-session-hint"></a><h3>lightdm_greeter_get_autologin_session_hint ()</h3> +<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * +lightdm_greeter_get_autologin_session_hint + (<em class="parameter"><code><a class="link" href="LightDMGreeter.html" title="LightDMGreeter"><span class="type">LightDMGreeter</span></a> *greeter</code></em>);</pre> +<p>Get the session used to automatically log into when the timer expires.</p> +<div class="refsect3"> +<a name="lightdm-greeter-get-autologin-session-hint.parameters"></a><h4>Parameters</h4> +<div class="informaltable"><table class="informaltable" width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody><tr> +<td class="parameter_name"><p>greeter</p></td> +<td class="parameter_description"><p>A <a class="link" href="LightDMGreeter.html" title="LightDMGreeter"><span class="type">LightDMGreeter</span></a></p></td> +<td class="parameter_annotations"> </td> +</tr></tbody> +</table></div> +</div> +<div class="refsect3"> +<a name="lightdm-greeter-get-autologin-session-hint.returns"></a><h4>Returns</h4> +<p> The session name or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if configured to use the default. </p> +<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p> +</div> +</div> +<hr> +<div class="refsect2"> <a name="lightdm-greeter-get-autologin-timeout-hint"></a><h3>lightdm_greeter_get_autologin_timeout_hint ()</h3> <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> lightdm_greeter_get_autologin_timeout_hint @@ -1929,6 +1970,14 @@ </div> <hr> <div class="refsect2"> +<a name="LightDMGreeter--autologin-session-hint"></a><h3>The <code class="literal">“autologin-session-hint”</code> property</h3> +<pre class="programlisting"> “autologin-session-hint” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>Autologin session hint.</p> +<p>Flags: Read</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> <a name="LightDMGreeter--autologin-timeout-hint"></a><h3>The <code class="literal">“autologin-timeout-hint”</code> property</h3> <pre class="programlisting"> “autologin-timeout-hint” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Autologin timeout hint.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/doc/html/api-index-full.html new/lightdm-1.24.1/doc/html/api-index-full.html --- old/lightdm-1.24.0/doc/html/api-index-full.html 2017-09-05 00:35:55.000000000 +0200 +++ new/lightdm-1.24.1/doc/html/api-index-full.html 2018-01-17 22:20:24.000000000 +0100 @@ -138,6 +138,10 @@ </dt> <dd></dd> <dt> +<a class="link" href="LightDMGreeter.html#LightDMGreeter--autologin-session-hint" title="The “autologin-session-hint” property">LightDMGreeter:autologin-session-hint</a>, object property in <a class="link" href="LightDMGreeter.html" title="LightDMGreeter">LightDMGreeter</a> +</dt> +<dd></dd> +<dt> <a class="link" href="LightDMGreeter.html#LightDMGreeter--autologin-timeout-hint" title="The “autologin-timeout-hint” property">LightDMGreeter:autologin-timeout-hint</a>, object property in <a class="link" href="LightDMGreeter.html" title="LightDMGreeter">LightDMGreeter</a> </dt> <dd></dd> @@ -254,6 +258,10 @@ </dt> <dd></dd> <dt> +<a class="link" href="LightDMGreeter.html#lightdm-greeter-get-autologin-session-hint" title="lightdm_greeter_get_autologin_session_hint ()">lightdm_greeter_get_autologin_session_hint</a>, function in <a class="link" href="LightDMGreeter.html" title="LightDMGreeter">LightDMGreeter</a> +</dt> +<dd></dd> +<dt> <a class="link" href="LightDMGreeter.html#lightdm-greeter-get-autologin-timeout-hint" title="lightdm_greeter_get_autologin_timeout_hint ()">lightdm_greeter_get_autologin_timeout_hint</a>, function in <a class="link" href="LightDMGreeter.html" title="LightDMGreeter">LightDMGreeter</a> </dt> <dd></dd> Binary files old/lightdm-1.24.0/doc/html/home.png and new/lightdm-1.24.1/doc/html/home.png differ Binary files old/lightdm-1.24.0/doc/html/left-insensitive.png and new/lightdm-1.24.1/doc/html/left-insensitive.png differ Binary files old/lightdm-1.24.0/doc/html/left.png and new/lightdm-1.24.1/doc/html/left.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/doc/html/lightdm-gobject-1.devhelp2 new/lightdm-1.24.1/doc/html/lightdm-gobject-1.devhelp2 --- old/lightdm-1.24.0/doc/html/lightdm-gobject-1.devhelp2 2017-09-05 00:35:55.000000000 +0200 +++ new/lightdm-1.24.1/doc/html/lightdm-gobject-1.devhelp2 2018-01-17 22:20:24.000000000 +0100 @@ -34,6 +34,7 @@ <keyword type="function" name="lightdm_greeter_get_select_guest_hint ()" link="LightDMGreeter.html#lightdm-greeter-get-select-guest-hint"/> <keyword type="function" name="lightdm_greeter_get_autologin_user_hint ()" link="LightDMGreeter.html#lightdm-greeter-get-autologin-user-hint"/> <keyword type="function" name="lightdm_greeter_get_autologin_guest_hint ()" link="LightDMGreeter.html#lightdm-greeter-get-autologin-guest-hint"/> + <keyword type="function" name="lightdm_greeter_get_autologin_session_hint ()" link="LightDMGreeter.html#lightdm-greeter-get-autologin-session-hint"/> <keyword type="function" name="lightdm_greeter_get_autologin_timeout_hint ()" link="LightDMGreeter.html#lightdm-greeter-get-autologin-timeout-hint"/> <keyword type="function" name="lightdm_greeter_cancel_autologin ()" link="LightDMGreeter.html#lightdm-greeter-cancel-autologin"/> <keyword type="function" name="lightdm_greeter_authenticate ()" link="LightDMGreeter.html#lightdm-greeter-authenticate"/> @@ -58,6 +59,7 @@ <keyword type="enum" name="enum LightDMGreeterError" link="LightDMGreeter.html#LightDMGreeterError"/> <keyword type="property" name="The “authentication-user” property" link="LightDMGreeter.html#LightDMGreeter--authentication-user"/> <keyword type="property" name="The “autologin-guest-hint” property" link="LightDMGreeter.html#LightDMGreeter--autologin-guest-hint"/> + <keyword type="property" name="The “autologin-session-hint” property" link="LightDMGreeter.html#LightDMGreeter--autologin-session-hint"/> <keyword type="property" name="The “autologin-timeout-hint” property" link="LightDMGreeter.html#LightDMGreeter--autologin-timeout-hint"/> <keyword type="property" name="The “autologin-user-hint” property" link="LightDMGreeter.html#LightDMGreeter--autologin-user-hint"/> <keyword type="property" name="The “default-session-hint” property" link="LightDMGreeter.html#LightDMGreeter--default-session-hint"/> Binary files old/lightdm-1.24.0/doc/html/right-insensitive.png and new/lightdm-1.24.1/doc/html/right-insensitive.png differ Binary files old/lightdm-1.24.0/doc/html/right.png and new/lightdm-1.24.1/doc/html/right.png differ Binary files old/lightdm-1.24.0/doc/html/up-insensitive.png and new/lightdm-1.24.1/doc/html/up-insensitive.png differ Binary files old/lightdm-1.24.0/doc/html/up.png and new/lightdm-1.24.1/doc/html/up.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/doc/lightdm-gobject-1-sections.txt new/lightdm-1.24.1/doc/lightdm-gobject-1-sections.txt --- old/lightdm-1.24.0/doc/lightdm-gobject-1-sections.txt 2017-09-05 00:35:55.000000000 +0200 +++ new/lightdm-1.24.1/doc/lightdm-gobject-1-sections.txt 2018-01-17 22:20:24.000000000 +0100 @@ -21,6 +21,7 @@ lightdm_greeter_get_select_guest_hint lightdm_greeter_get_autologin_user_hint lightdm_greeter_get_autologin_guest_hint +lightdm_greeter_get_autologin_session_hint lightdm_greeter_get_autologin_timeout_hint lightdm_greeter_cancel_autologin lightdm_greeter_authenticate diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/liblightdm-gobject/greeter.c new/lightdm-1.24.1/liblightdm-gobject/greeter.c --- old/lightdm-1.24.0/liblightdm-gobject/greeter.c 2016-11-22 02:20:57.000000000 +0100 +++ new/lightdm-1.24.1/liblightdm-gobject/greeter.c 2018-01-17 22:18:02.000000000 +0100 @@ -102,6 +102,7 @@ PROP_AUTHENTICATION_USER, PROP_IN_AUTHENTICATION, PROP_IS_AUTHENTICATED, + PROP_AUTOLOGIN_SESSION_HINT, }; enum { @@ -1326,6 +1327,21 @@ } /** + * lightdm_greeter_get_autologin_session_hint: + * @greeter: A #LightDMGreeter + * + * Get the session used to automatically log into when the timer expires. + * + * Return value: (nullable): The session name or %NULL if configured to use the default. + */ +const gchar * +lightdm_greeter_get_autologin_session_hint (LightDMGreeter *greeter) +{ + g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL); + return lightdm_greeter_get_hint (greeter, "autologin-session"); +} + +/** * lightdm_greeter_get_autologin_guest_hint: * @greeter: A #LightDMGreeter * @@ -1955,6 +1971,9 @@ case PROP_AUTOLOGIN_USER_HINT: g_value_set_string (value, lightdm_greeter_get_autologin_user_hint (self)); break; + case PROP_AUTOLOGIN_SESSION_HINT: + g_value_set_string (value, lightdm_greeter_get_autologin_session_hint (self)); + break; case PROP_AUTOLOGIN_GUEST_HINT: g_value_set_boolean (value, lightdm_greeter_get_autologin_guest_hint (self)); break; @@ -2089,6 +2108,14 @@ NULL, G_PARAM_READABLE)); + g_object_class_install_property (object_class, + PROP_AUTOLOGIN_SESSION_HINT, + g_param_spec_string ("autologin-session-hint", + "autologin-session-hint", + "Autologin session hint", + NULL, + G_PARAM_READABLE)); + g_object_class_install_property (object_class, PROP_AUTOLOGIN_GUEST_HINT, g_param_spec_boolean ("autologin-guest-hint", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/liblightdm-gobject/lightdm/greeter.h new/lightdm-1.24.1/liblightdm-gobject/lightdm/greeter.h --- old/lightdm-1.24.0/liblightdm-gobject/lightdm/greeter.h 2016-11-02 04:53:28.000000000 +0100 +++ new/lightdm-1.24.1/liblightdm-gobject/lightdm/greeter.h 2018-01-15 03:28:54.000000000 +0100 @@ -150,6 +150,8 @@ const gchar *lightdm_greeter_get_autologin_user_hint (LightDMGreeter *greeter); +const gchar *lightdm_greeter_get_autologin_session_hint (LightDMGreeter *greeter); + gboolean lightdm_greeter_get_autologin_guest_hint (LightDMGreeter *greeter); gint lightdm_greeter_get_autologin_timeout_hint (LightDMGreeter *greeter); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/liblightdm-qt/QLightDM/greeter.h new/lightdm-1.24.1/liblightdm-qt/QLightDM/greeter.h --- old/lightdm-1.24.0/liblightdm-qt/QLightDM/greeter.h 2016-11-02 10:07:28.000000000 +0100 +++ new/lightdm-1.24.1/liblightdm-qt/QLightDM/greeter.h 2018-01-15 03:28:54.000000000 +0100 @@ -66,6 +66,7 @@ QString selectUserHint() const; bool selectGuestHint() const; QString autologinUserHint() const; + QString autologinSessionHint() const; bool autologinGuestHint() const; int autologinTimeoutHint() const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/liblightdm-qt/greeter.cpp new/lightdm-1.24.1/liblightdm-qt/greeter.cpp --- old/lightdm-1.24.0/liblightdm-qt/greeter.cpp 2016-11-03 03:37:27.000000000 +0100 +++ new/lightdm-1.24.1/liblightdm-qt/greeter.cpp 2018-01-15 03:28:54.000000000 +0100 @@ -275,6 +275,12 @@ return QString::fromUtf8(lightdm_greeter_get_autologin_user_hint(d->ldmGreeter)); } +QString Greeter::autologinSessionHint() const +{ + Q_D(const Greeter); + return QString::fromUtf8(lightdm_greeter_get_autologin_session_hint(d->ldmGreeter)); +} + bool Greeter::autologinGuestHint() const { Q_D(const Greeter); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/src/lightdm.c new/lightdm-1.24.1/src/lightdm.c --- old/lightdm-1.24.0/src/lightdm.c 2017-07-20 01:40:54.000000000 +0200 +++ new/lightdm-1.24.1/src/lightdm.c 2018-01-17 22:18:02.000000000 +0100 @@ -45,7 +45,9 @@ static DisplayManager *display_manager = NULL; static DisplayManagerService *display_manager_service = NULL; static XDMCPServer *xdmcp_server = NULL; +static guint xdmcp_client_count = 0; static VNCServer *vnc_server = NULL; +static guint vnc_client_count = 0; static gint exit_code = EXIT_SUCCESS; static gboolean update_login1_seat (Login1Seat *login1_seat); @@ -200,12 +202,19 @@ static Seat * create_seat (const gchar *module_name, const gchar *name) { + Seat *seat; + if (strcmp (module_name, "xlocal") == 0) { g_warning ("Seat type 'xlocal' is deprecated, use 'type=local' instead"); - return seat_new ("local", name); + module_name = "local"; } - else - return seat_new (module_name, name); + + seat = seat_new (module_name); + if (!seat) + return NULL; + + seat_set_name (seat, name); + return seat; } static Seat * @@ -293,8 +302,14 @@ { SeatXDMCPSession *seat; gboolean result; + gchar *name; + + name = g_strdup_printf ("xdmcp%d", xdmcp_client_count); + xdmcp_client_count++; seat = seat_xdmcp_session_new (session); + seat_set_name (SEAT (seat), name); + g_free (name); set_seat_properties (SEAT (seat), NULL); result = display_manager_add_seat (display_manager, SEAT (seat)); g_object_unref (seat); @@ -306,8 +321,14 @@ vnc_connection_cb (VNCServer *server, GSocket *connection) { SeatXVNC *seat; + gchar *name; + + name = g_strdup_printf ("vnc%d", vnc_client_count); + vnc_client_count++; seat = seat_xvnc_new (connection); + seat_set_name (SEAT (seat), name); + g_free (name); set_seat_properties (SEAT (seat), NULL); display_manager_add_seat (display_manager, SEAT (seat)); g_object_unref (seat); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/src/seat-xdmcp-session.c new/lightdm-1.24.1/src/seat-xdmcp-session.c --- old/lightdm-1.24.0/src/seat-xdmcp-session.c 2016-09-02 04:26:13.000000000 +0200 +++ new/lightdm-1.24.1/src/seat-xdmcp-session.c 2018-01-17 22:18:02.000000000 +0100 @@ -18,6 +18,9 @@ { /* Session being serviced */ XDMCPSession *session; + + /* X server using XDMCP connection */ + XServerRemote *x_server; }; G_DEFINE_TYPE (SeatXDMCPSession, seat_xdmcp_session, SEAT_TYPE); @@ -38,17 +41,21 @@ { XAuthority *authority; gchar *host; - XServerRemote *x_server; if (strcmp (session_get_session_type (session), "x") != 0) return NULL; + /* Only create one server for the lifetime of this seat (XDMCP clients reconnect on logout) */ + if (SEAT_XDMCP_SESSION (seat)->priv->x_server) + return NULL; + authority = xdmcp_session_get_authority (SEAT_XDMCP_SESSION (seat)->priv->session); host = g_inet_address_to_string (xdmcp_session_get_address (SEAT_XDMCP_SESSION (seat)->priv->session)); - x_server = x_server_remote_new (host, xdmcp_session_get_display_number (SEAT_XDMCP_SESSION (seat)->priv->session), authority); + + SEAT_XDMCP_SESSION (seat)->priv->x_server = x_server_remote_new (host, xdmcp_session_get_display_number (SEAT_XDMCP_SESSION (seat)->priv->session), authority); g_free (host); - return DISPLAY_SERVER (x_server); + return g_object_ref (DISPLAY_SERVER (SEAT_XDMCP_SESSION (seat)->priv->x_server)); } static void @@ -63,6 +70,7 @@ SeatXDMCPSession *self = SEAT_XDMCP_SESSION (object); g_clear_object (&self->priv->session); + g_clear_object (&self->priv->x_server); G_OBJECT_CLASS (seat_xdmcp_session_parent_class)->finalize (object); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/src/seat-xvnc.c new/lightdm-1.24.1/src/seat-xvnc.c --- old/lightdm-1.24.0/src/seat-xvnc.c 2016-09-02 04:26:13.000000000 +0200 +++ new/lightdm-1.24.1/src/seat-xvnc.c 2018-01-17 22:18:02.000000000 +0100 @@ -21,6 +21,9 @@ { /* VNC connection */ GSocket *connection; + + /* X server using VNC connection */ + XServerXVNC *x_server; }; SeatXVNC *seat_xvnc_new (GSocket *connection) @@ -33,6 +36,13 @@ return seat; } +static void +seat_xvnc_setup (Seat *seat) +{ + seat_set_supports_multi_session (seat, FALSE); + SEAT_CLASS (seat_xvnc_parent_class)->setup (seat); +} + static DisplayServer * seat_xvnc_create_display_server (Seat *seat, Session *session) { @@ -44,7 +54,11 @@ if (strcmp (session_get_session_type (session), "x") != 0) return NULL; - x_server = x_server_xvnc_new (); + /* Can only create one server for the lifetime of this seat (can't re-use VNC connection) */ + if (SEAT_XVNC (seat)->priv->x_server) + return NULL; + + SEAT_XVNC (seat)->priv->x_server = x_server = x_server_xvnc_new (); number = g_strdup_printf ("%d", x_server_get_display_number (X_SERVER (x_server))); cookie = x_authority_new_local_cookie (number); x_server_set_authority (X_SERVER (x_server), cookie); @@ -73,7 +87,7 @@ x_server_xvnc_set_depth (x_server, depth); } - return DISPLAY_SERVER (x_server); + return g_object_ref (DISPLAY_SERVER (x_server)); } static void @@ -111,6 +125,7 @@ SeatXVNC *self = SEAT_XVNC (object); g_clear_object (&self->priv->connection); + g_clear_object (&self->priv->x_server); G_OBJECT_CLASS (seat_xvnc_parent_class)->finalize (object); } @@ -121,6 +136,7 @@ SeatClass *seat_class = SEAT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass); + seat_class->setup = seat_xvnc_setup; seat_class->create_display_server = seat_xvnc_create_display_server; seat_class->run_script = seat_xvnc_run_script; object_class->finalize = seat_xvnc_session_finalize; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/src/seat.c new/lightdm-1.24.1/src/seat.c --- old/lightdm-1.24.0/src/seat.c 2017-02-21 04:44:12.000000000 +0100 +++ new/lightdm-1.24.1/src/seat.c 2018-01-17 22:18:12.000000000 +0100 @@ -114,9 +114,8 @@ } Seat * -seat_new (const gchar *module_name, const gchar *name) +seat_new (const gchar *module_name) { - Seat *seat; SeatModule *m = NULL; g_return_val_if_fail (module_name != NULL, NULL); @@ -126,10 +125,15 @@ if (!m) return NULL; - seat = g_object_new (m->type, NULL); - seat->priv->name = g_strdup (name); + return g_object_new (m->type, NULL); +} - return seat; +void +seat_set_name (Seat *seat, const gchar *name) +{ + g_return_if_fail (seat != NULL); + g_free (seat->priv->name); + seat->priv->name = g_strdup (name); } void @@ -774,11 +778,6 @@ g_clear_object (&seat->priv->session_to_activate); display_server = session_get_display_server (session); - if (!display_server) - { - g_object_unref (session); - return; - } /* Cleanup */ if (!IS_GREETER_SESSION (session)) @@ -868,6 +867,9 @@ } } + g_signal_emit (seat, signals[SESSION_REMOVED], 0, session); + g_object_unref (session); + /* Stop the display server if no-longer required */ if (display_server && !display_server_get_is_stopping (display_server) && !SEAT_GET_CLASS (seat)->display_server_is_used (seat, display_server)) @@ -875,9 +877,6 @@ l_debug (seat, "Stopping display server, no sessions require it"); display_server_stop (display_server); } - - g_signal_emit (seat, signals[SESSION_REMOVED], 0, session); - g_object_unref (session); } static void @@ -1206,6 +1205,13 @@ user = session_get_user (session); if (user) { + const gchar *autologin_username; + + /* Override session for autologin if configured */ + autologin_username = seat_get_string_property (seat, "autologin-user"); + if (!session_name && g_strcmp0 (user_get_name (user), autologin_username) == 0) + session_name = seat_get_string_property (seat, "autologin-session"); + if (!session_name) session_name = user_get_xsession (user); language = user_get_language (user); @@ -1290,6 +1296,7 @@ Greeter *greeter; const gchar *greeter_wrapper; const gchar *autologin_username; + const gchar *autologin_session; int autologin_timeout; gboolean autologin_guest; @@ -1352,6 +1359,9 @@ autologin_username = seat_get_string_property (seat, "autologin-user"); if (g_strcmp0 (autologin_username, "") == 0) autologin_username = NULL; + autologin_session = seat_get_string_property (seat, "autologin-session"); + if (g_strcmp0 (autologin_session, "") == 0) + autologin_session = NULL; autologin_timeout = seat_get_integer_property (seat, "autologin-user-timeout"); autologin_guest = seat_get_boolean_property (seat, "autologin-guest"); if (autologin_timeout > 0) @@ -1363,6 +1373,8 @@ g_free (value); if (autologin_username) greeter_set_hint (greeter, "autologin-user", autologin_username); + if (autologin_session) + greeter_set_hint (greeter, "autologin-session", autologin_session); if (autologin_guest) greeter_set_hint (greeter, "autologin-guest", "true"); } @@ -1471,7 +1483,7 @@ g_return_val_if_fail (seat != NULL, FALSE); - if (!seat_get_can_switch (seat)) + if (!seat_get_can_switch (seat) && seat->priv->sessions != NULL) return FALSE; /* Switch to greeter if one open */ @@ -1491,6 +1503,10 @@ seat->priv->session_to_activate = g_object_ref (greeter_session); display_server = create_display_server (seat, SESSION (greeter_session)); + if (!display_server) { + g_clear_object (&seat->priv->session_to_activate); + return FALSE; + } session_set_display_server (SESSION (greeter_session), display_server); return start_display_server (seat, display_server); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/src/seat.h new/lightdm-1.24.1/src/seat.h --- old/lightdm-1.24.0/src/seat.h 2016-06-20 00:27:05.000000000 +0200 +++ new/lightdm-1.24.1/src/seat.h 2018-01-17 22:18:02.000000000 +0100 @@ -65,7 +65,9 @@ void seat_register_module (const gchar *name, GType type); -Seat *seat_new (const gchar *module_name, const gchar *name); +Seat *seat_new (const gchar *module_name); + +void seat_set_name (Seat *seat, const gchar *name); void seat_set_property (Seat *seat, const gchar *name, const gchar *value); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/src/vnc-server.c new/lightdm-1.24.1/src/vnc-server.c --- old/lightdm-1.24.0/src/vnc-server.c 2015-10-16 11:57:43.000000000 +0200 +++ new/lightdm-1.24.1/src/vnc-server.c 2018-01-17 22:18:02.000000000 +0100 @@ -91,6 +91,7 @@ g_free (hostname); g_signal_emit (server, signals[NEW_CONNECTION], 0, client_socket); + g_object_unref (client_socket); } return TRUE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/Makefile.am new/lightdm-1.24.1/tests/Makefile.am --- old/lightdm-1.24.0/tests/Makefile.am 2017-07-20 01:40:54.000000000 +0200 +++ new/lightdm-1.24.1/tests/Makefile.am 2018-01-17 22:18:02.000000000 +0100 @@ -53,6 +53,7 @@ test-autologin-session-error \ test-autologin-logout \ test-autologin-session \ + test-autologin-session-timeout-gobject \ test-autologin-timeout-logout \ test-autologin-previous-session \ test-autologin-guest \ @@ -193,10 +194,12 @@ test-vnc-guest \ test-xremote-autologin \ test-xremote-login \ + test-xremote-login-logout \ test-xdmcp-client \ test-xdmcp-client-xorg-1.16 \ test-xdmcp-server-autologin \ test-xdmcp-server-login \ + test-xdmcp-server-login-logout \ test-xdmcp-server-double-login \ test-xdmcp-server-guest \ test-xdmcp-server-keep-alive \ @@ -287,6 +290,9 @@ # test-autologin-create-directory TESTS += \ + test-autologin-timeout-python \ + test-autologin-guest-timeout-python \ + test-autologin-session-timeout-python \ test-cancel-authentication-python \ test-sessions-python \ test-users-python \ @@ -315,14 +321,13 @@ test-login-guest-fail-setup-script-python \ test-login-guest-logout-python \ test-login-remote-session-python \ - test-autologin-timeout-python \ - test-autologin-guest-timeout-python \ test-power-python if COMPILE_LIBLIGHTDM_QT4 TESTS += \ test-autologin-timeout-qt4 \ test-autologin-guest-timeout-qt4 \ + test-autologin-session-timeout-qt5 \ test-cancel-authentication-qt4 \ test-login-qt4 \ test-login-manual-qt4 \ @@ -358,6 +363,7 @@ TESTS += \ test-autologin-timeout-qt5 \ test-autologin-guest-timeout-qt5 \ + test-autologin-session-timeout-qt5 \ test-cancel-authentication-qt5 \ test-login-qt5 \ test-login-manual-qt5 \ @@ -438,6 +444,7 @@ scripts/autologin-session.conf \ scripts/autologin-session-crash.conf \ scripts/autologin-session-error.conf \ + scripts/autologin-session-timeout.conf \ scripts/autologin-timeout.conf \ scripts/autologin-timeout-in-background.conf \ scripts/autologin-timeout-logout.conf \ @@ -666,6 +673,7 @@ scripts/xdmcp-server-invalid-authentication.conf \ scripts/xdmcp-server-keep-alive.conf \ scripts/xdmcp-server-login.conf \ + scripts/xdmcp-server-login-logout.conf \ scripts/xdmcp-server-open-file-descriptors.conf \ scripts/xdmcp-server-request-invalid-authentication.conf \ scripts/xdmcp-server-request-invalid-authorization.conf \ @@ -685,6 +693,7 @@ scripts/xmir-switch.conf \ scripts/xremote-autologin.conf \ scripts/xremote-login.conf \ + scripts/xremote-login-logout.conf \ scripts/xserver-config.conf \ scripts/xserver-fail-start.conf \ scripts/xserver-no-share.conf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/autologin-guest-timeout.conf new/lightdm-1.24.1/tests/scripts/autologin-guest-timeout.conf --- old/lightdm-1.24.0/tests/scripts/autologin-guest-timeout.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/autologin-guest-timeout.conf 2018-01-15 03:28:54.000000000 +0100 @@ -27,7 +27,8 @@ #?GREETER-X-0 CONNECTED-TO-DAEMON # Greeter is requested to timeout -#?GREETER-X-0 AUTOLOGIN-GUEST TIMEOUT=99 +#?GREETER-X-0 AUTOLOGIN-GUEST-HINT +#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99 # Trigger autologin #?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/autologin-session-timeout.conf new/lightdm-1.24.1/tests/scripts/autologin-session-timeout.conf --- old/lightdm-1.24.0/tests/scripts/autologin-session-timeout.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/lightdm-1.24.1/tests/scripts/autologin-session-timeout.conf 2018-01-15 03:28:54.000000000 +0100 @@ -0,0 +1,51 @@ +# +# Check autologin session is passed to greeter +# + +[Seat:*] +autologin-user=have-password1 +autologin-user-timeout=99 +user-session=default +autologin-session=alternative + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON + +# Greeter is requested to timeout +#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1 +#?GREETER-X-0 AUTOLOGIN-SESSION-HINT=alternative +#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99 + +# Trigger autologin +#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN +#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*GREETER-X-0 START-SESSION +#?GREETER-X-0 TERMINATE SIGNAL=15 + +# Session starts +#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=alternative NAME=alternative USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-0 ACCEPT-CONNECT +#?SESSION-X-0 CONNECT-XSERVER + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/autologin-timeout-in-background.conf new/lightdm-1.24.1/tests/scripts/autologin-timeout-in-background.conf --- old/lightdm-1.24.0/tests/scripts/autologin-timeout-in-background.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/autologin-timeout-in-background.conf 2018-01-15 03:28:54.000000000 +0100 @@ -34,7 +34,8 @@ #?SESSION-X-1 CONNECT-XSERVER # Greeter is requested to timeout -#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99 +#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1 +#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99 # Trigger autologin #?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/autologin-timeout-logout.conf new/lightdm-1.24.1/tests/scripts/autologin-timeout-logout.conf --- old/lightdm-1.24.0/tests/scripts/autologin-timeout-logout.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/autologin-timeout-logout.conf 2018-01-15 03:28:54.000000000 +0100 @@ -27,7 +27,8 @@ #?GREETER-X-0 CONNECTED-TO-DAEMON # Greeter is requested to timeout -#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99 +#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1 +#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99 # Trigger autologin #?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN @@ -64,7 +65,8 @@ #?GREETER-X-0 CONNECTED-TO-DAEMON # Greeter is requested to timeout -#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99 +#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1 +#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99 # Cleanup #?*STOP-DAEMON diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/autologin-timeout.conf new/lightdm-1.24.1/tests/scripts/autologin-timeout.conf --- old/lightdm-1.24.0/tests/scripts/autologin-timeout.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/autologin-timeout.conf 2018-01-15 03:28:54.000000000 +0100 @@ -27,7 +27,8 @@ #?GREETER-X-0 CONNECTED-TO-DAEMON # Greeter is requested to timeout -#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99 +#?GREETER-X-0 AUTOLOGIN-USER-HINT=have-password1 +#?GREETER-X-0 AUTOLOGIN-TIMEOUT-HINT=99 # Trigger autologin #?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/multi-seat-globbing-config-sections.conf new/lightdm-1.24.1/tests/scripts/multi-seat-globbing-config-sections.conf --- old/lightdm-1.24.0/tests/scripts/multi-seat-globbing-config-sections.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/multi-seat-globbing-config-sections.conf 2018-01-15 03:28:54.000000000 +0100 @@ -48,7 +48,8 @@ #?GREETER-X-1 CONNECTED-TO-DAEMON # Greeter is requested to timeout -#?GREETER-X-1 AUTOLOGIN-USER USERNAME=have-password2 TIMEOUT=99 +#?GREETER-X-1 AUTOLOGIN-USER-HINT=have-password2 +#?GREETER-X-1 AUTOLOGIN-TIMEOUT-HINT=99 # Trigger autologin #?*GREETER-X-1 AUTHENTICATE-AUTOLOGIN @@ -80,7 +81,8 @@ #?GREETER-X-2 CONNECTED-TO-DAEMON # Greeter is requested to timeout -#?GREETER-X-2 AUTOLOGIN-USER USERNAME=have-password3 TIMEOUT=99 +#?GREETER-X-2 AUTOLOGIN-USER-HINT=have-password3 +#?GREETER-X-2 AUTOLOGIN-TIMEOUT-HINT=99 # Trigger autologin #?*GREETER-X-2 AUTHENTICATE-AUTOLOGIN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/vnc-command.conf new/lightdm-1.24.1/tests/scripts/vnc-command.conf --- old/lightdm-1.24.0/tests/scripts/vnc-command.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/vnc-command.conf 2018-01-15 03:28:54.000000000 +0100 @@ -43,4 +43,5 @@ #?*STOP-DAEMON #?GREETER-X-0 TERMINATE SIGNAL=15 #?XVNC-0 TERMINATE SIGNAL=15 +#?VNC-CLIENT DISCONNECTED #?RUNNER DAEMON-EXIT STATUS=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/vnc-dimensions.conf new/lightdm-1.24.1/tests/scripts/vnc-dimensions.conf --- old/lightdm-1.24.0/tests/scripts/vnc-dimensions.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/vnc-dimensions.conf 2018-01-15 03:28:54.000000000 +0100 @@ -45,4 +45,5 @@ #?*STOP-DAEMON #?GREETER-X-0 TERMINATE SIGNAL=15 #?XVNC-0 TERMINATE SIGNAL=15 +#?VNC-CLIENT DISCONNECTED #?RUNNER DAEMON-EXIT STATUS=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/vnc-guest.conf new/lightdm-1.24.1/tests/scripts/vnc-guest.conf --- old/lightdm-1.24.0/tests/scripts/vnc-guest.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/vnc-guest.conf 2018-01-15 03:28:54.000000000 +0100 @@ -63,4 +63,5 @@ #?SESSION-X-0 TERMINATE SIGNAL=15 #?XVNC-0 TERMINATE SIGNAL=15 #?GUEST-ACCOUNT REMOVE USERNAME=guest-.* +#?VNC-CLIENT DISCONNECTED #?RUNNER DAEMON-EXIT STATUS=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/vnc-login.conf new/lightdm-1.24.1/tests/scripts/vnc-login.conf --- old/lightdm-1.24.0/tests/scripts/vnc-login.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/vnc-login.conf 2018-01-15 03:28:54.000000000 +0100 @@ -57,8 +57,15 @@ #?XVNC-0 ACCEPT-CONNECT #?SESSION-X-0 CONNECT-XSERVER +# Logout session +#?*SESSION-X-0 LOGOUT + +# X server stops +#?XVNC-0 TERMINATE SIGNAL=15 + +# VNC connection ends +#?VNC-CLIENT DISCONNECTED + # Clean up #?*STOP-DAEMON -#?SESSION-X-0 TERMINATE SIGNAL=15 -#?XVNC-0 TERMINATE SIGNAL=15 #?RUNNER DAEMON-EXIT STATUS=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/vnc-open-file-descriptors.conf new/lightdm-1.24.1/tests/scripts/vnc-open-file-descriptors.conf --- old/lightdm-1.24.0/tests/scripts/vnc-open-file-descriptors.conf 2016-06-20 01:06:46.000000000 +0200 +++ new/lightdm-1.24.1/tests/scripts/vnc-open-file-descriptors.conf 2018-01-15 03:28:54.000000000 +0100 @@ -64,4 +64,5 @@ #?*STOP-DAEMON #?SESSION-X-0 TERMINATE SIGNAL=15 #?XVNC-0 TERMINATE SIGNAL=15 +#?VNC-CLIENT DISCONNECTED #?RUNNER DAEMON-EXIT STATUS=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/xdmcp-server-login-logout.conf new/lightdm-1.24.1/tests/scripts/xdmcp-server-login-logout.conf --- old/lightdm-1.24.0/tests/scripts/xdmcp-server-login-logout.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/lightdm-1.24.1/tests/scripts/xdmcp-server-login-logout.conf 2018-01-15 03:28:54.000000000 +0100 @@ -0,0 +1,64 @@ +# +# Check that a remote X server can login via XDMCP +# + +[LightDM] +start-default-seat=false + +[XDMCPServer] +enabled=true + +[Seat:*] +user-session=default + +#?*START-DAEMON +#?RUNNER DAEMON-START +#?*WAIT + +# Start a remote X server to log in with XDMCP +#?*START-XSERVER ARGS=":98 -query 127.0.0.1 -nolisten unix -terminate" +#?XSERVER-98 START LISTEN-TCP NO-LISTEN-UNIX + +# Request to connect - daemon says OK +#?*XSERVER-98 SEND-QUERY +#?XSERVER-98 GOT-WILLING AUTHENTICATION-NAME="" HOSTNAME="lightdm-test" STATUS="" + +# Connect - daemon says OK +#?*XSERVER-98 SEND-REQUEST ADDRESSES="127.0.0.1" AUTHORIZATION-NAMES="MIT-MAGIC-COOKIE-1" +#?XSERVER-98 GOT-ACCEPT SESSION-ID=[0-9]+ AUTHENTICATION-NAME="" AUTHENTICATION-DATA= AUTHORIZATION-NAME="MIT-MAGIC-COOKIE-1" AUTHORIZATION-DATA=[0-9A-F]{32} +#?*XSERVER-98 SEND-MANAGE + +# LightDM connects to X server +#?XSERVER-98 ACCEPT-CONNECT + +# Greeter starts and connects to remote X server +#?GREETER-X-127.0.0.1:98 START XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-98 ACCEPT-CONNECT +#?GREETER-X-127.0.0.1:98 CONNECT-XSERVER +#?GREETER-X-127.0.0.1:98 CONNECT-TO-DAEMON +#?GREETER-X-127.0.0.1:98 CONNECTED-TO-DAEMON + +# Log in +#?*GREETER-X-127.0.0.1:98 AUTHENTICATE USERNAME=have-password1 +#?GREETER-X-127.0.0.1:98 SHOW-PROMPT TEXT="Password:" +#?*GREETER-X-127.0.0.1:98 RESPOND TEXT="password" +#?GREETER-X-127.0.0.1:98 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*GREETER-X-127.0.0.1:98 START-SESSION +#?GREETER-X-127.0.0.1:98 TERMINATE SIGNAL=15 + +# Session starts +#?SESSION-X-127.0.0.1:98 START XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-98 ACCEPT-CONNECT +#?SESSION-X-127.0.0.1:98 CONNECT-XSERVER + +# Logout session +#?*SESSION-X-127.0.0.1:98 LOGOUT + +# X server stops +#?XSERVER-98 TERMINATE + +# Clean up +#?*STOP-DAEMON +#?RUNNER DAEMON-EXIT STATUS=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/scripts/xremote-login-logout.conf new/lightdm-1.24.1/tests/scripts/xremote-login-logout.conf --- old/lightdm-1.24.0/tests/scripts/xremote-login-logout.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/lightdm-1.24.1/tests/scripts/xremote-login-logout.conf 2018-01-15 03:28:54.000000000 +0100 @@ -0,0 +1,60 @@ +# +# Check logging out with a remote X server switches back to a greeter +# + +[Seat:*] +type=xremote +user-session=default +xserver-hostname=127.0.0.1 +xserver-display-number=98 + +# Start a remote X server to use +#?*START-XSERVER ARGS=":98 -listen tcp" +#?XSERVER-98 START LISTEN-TCP + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# LightDM connects to X server +#?XSERVER-98 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-127.0.0.1:98 START XDG_SEAT=seat0 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-98 ACCEPT-CONNECT +#?GREETER-X-127.0.0.1:98 CONNECT-XSERVER +#?GREETER-X-127.0.0.1:98 CONNECT-TO-DAEMON +#?GREETER-X-127.0.0.1:98 CONNECTED-TO-DAEMON + +# Log into account with a password +#?*GREETER-X-127.0.0.1:98 AUTHENTICATE USERNAME=have-password1 +#?GREETER-X-127.0.0.1:98 SHOW-PROMPT TEXT="Password:" +#?*GREETER-X-127.0.0.1:98 RESPOND TEXT="password" +#?GREETER-X-127.0.0.1:98 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*GREETER-X-127.0.0.1:98 START-SESSION +#?GREETER-X-127.0.0.1:98 TERMINATE SIGNAL=15 + +# Session starts +#?SESSION-X-127.0.0.1:98 START XDG_SEAT=seat0 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=have-password1 +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?XSERVER-98 ACCEPT-CONNECT +#?SESSION-X-127.0.0.1:98 CONNECT-XSERVER + +# Logout session +#?*SESSION-X-127.0.0.1:98 LOGOUT + +# LightDM connects to X server +#?XSERVER-98 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-127.0.0.1:98 START XDG_SEAT=seat0 XDG_SESSION_CLASS=greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c2 +#?XSERVER-98 ACCEPT-CONNECT +#?GREETER-X-127.0.0.1:98 CONNECT-XSERVER +#?GREETER-X-127.0.0.1:98 CONNECT-TO-DAEMON +#?GREETER-X-127.0.0.1:98 CONNECTED-TO-DAEMON + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-127.0.0.1:98 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/src/X.c new/lightdm-1.24.1/tests/src/X.c --- old/lightdm-1.24.0/tests/src/X.c 2017-07-20 01:40:54.000000000 +0200 +++ new/lightdm-1.24.1/tests/src/X.c 2018-01-17 22:18:02.000000000 +0100 @@ -62,6 +62,9 @@ static guint16 xdmcp_cookie_length = 0; static guint8 *xdmcp_cookie = NULL; +/* Terminate on server reset */ +static gboolean terminate_on_reset = FALSE; + static void cleanup (void) { @@ -188,6 +191,16 @@ g_signal_handlers_disconnect_matched (client, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, NULL); } +static void +reset_cb (XServer *server) +{ + if (terminate_on_reset) + { + status_notify ("%s TERMINATE", id); + quit (EXIT_SUCCESS); + } +} + static guint8 get_nibble (char c) { @@ -466,6 +479,10 @@ seat = argv[i+1]; i++; } + else if (strcmp (arg, "-terminate") == 0) + { + terminate_on_reset = TRUE; + } else if (strcmp (arg, "-mir") == 0) { mir_id = argv[i+1]; @@ -512,6 +529,7 @@ xserver = x_server_new (display_number); g_signal_connect (xserver, X_SERVER_SIGNAL_CLIENT_CONNECTED, G_CALLBACK (client_connected_cb), NULL); g_signal_connect (xserver, X_SERVER_SIGNAL_CLIENT_DISCONNECTED, G_CALLBACK (client_disconnected_cb), NULL); + g_signal_connect (xserver, X_SERVER_SIGNAL_RESET, G_CALLBACK (reset_cb), NULL); status_text = g_string_new (""); g_string_printf (status_text, "%s START", id); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/src/libsystem.c new/lightdm-1.24.1/tests/src/libsystem.c --- old/lightdm-1.24.0/tests/src/libsystem.c 2016-11-13 23:45:48.000000000 +0100 +++ new/lightdm-1.24.1/tests/src/libsystem.c 2018-01-17 22:18:02.000000000 +0100 @@ -1944,7 +1944,10 @@ { free (c->display); if (c->socket) + { + g_socket_close (c->socket, NULL); g_object_unref (c->socket); + } free (c); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/src/test-gobject-greeter.c new/lightdm-1.24.1/tests/src/test-gobject-greeter.c --- old/lightdm-1.24.0/tests/src/test-gobject-greeter.c 2017-07-20 01:40:54.000000000 +0200 +++ new/lightdm-1.24.1/tests/src/test-gobject-greeter.c 2018-01-17 22:18:02.000000000 +0100 @@ -67,8 +67,6 @@ static void notify_hints (LightDMGreeter *greeter) { - int timeout = lightdm_greeter_get_autologin_timeout_hint (greeter); - if (lightdm_greeter_get_select_user_hint (greeter)) status_notify ("%s SELECT-USER-HINT USERNAME=%s", greeter_id, lightdm_greeter_get_select_user_hint (greeter)); if (lightdm_greeter_get_select_guest_hint (greeter)) @@ -84,19 +82,13 @@ if (!lightdm_greeter_get_show_remote_login_hint (greeter)) status_notify ("%s SHOW-REMOTE-LOGIN-HINT=FALSE", greeter_id); if (lightdm_greeter_get_autologin_user_hint (greeter)) - { - if (timeout != 0) - status_notify ("%s AUTOLOGIN-USER USERNAME=%s TIMEOUT=%d", greeter_id, lightdm_greeter_get_autologin_user_hint (greeter), timeout); - else - status_notify ("%s AUTOLOGIN-USER USERNAME=%s", greeter_id, lightdm_greeter_get_autologin_user_hint (greeter)); - } - else if (lightdm_greeter_get_autologin_guest_hint (greeter)) - { - if (timeout != 0) - status_notify ("%s AUTOLOGIN-GUEST TIMEOUT=%d", greeter_id, timeout); - else - status_notify ("%s AUTOLOGIN-GUEST", greeter_id); - } + status_notify ("%s AUTOLOGIN-USER-HINT=%s", greeter_id, lightdm_greeter_get_autologin_user_hint (greeter)); + if (lightdm_greeter_get_autologin_guest_hint (greeter)) + status_notify ("%s AUTOLOGIN-GUEST-HINT", greeter_id); + if (lightdm_greeter_get_autologin_session_hint (greeter)) + status_notify ("%s AUTOLOGIN-SESSION-HINT=%s", greeter_id, lightdm_greeter_get_autologin_session_hint (greeter)); + if (lightdm_greeter_get_autologin_timeout_hint (greeter) != 0) + status_notify ("%s AUTOLOGIN-TIMEOUT-HINT=%d", greeter_id, lightdm_greeter_get_autologin_timeout_hint (greeter)); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/src/test-python-greeter new/lightdm-1.24.1/tests/src/test-python-greeter --- old/lightdm-1.24.0/tests/src/test-python-greeter 2016-11-22 05:05:25.000000000 +0100 +++ new/lightdm-1.24.1/tests/src/test-python-greeter 2018-01-15 03:28:54.000000000 +0100 @@ -210,17 +210,14 @@ status_notify ('%s SHOW-MANUAL-LOGIN-HINT' % greeter_id) if not greeter.get_show_remote_login_hint (): status_notify ('%s SHOW-REMOTE-LOGIN-HINT=FALSE' % greeter_id) - timeout = greeter.get_autologin_timeout_hint () if greeter.get_autologin_user_hint () is not None: - if timeout != 0: - status_notify ('%s AUTOLOGIN-USER USERNAME=%s TIMEOUT=%d' % (greeter_id, greeter.get_autologin_user_hint (), timeout)) - else: - status_notify ('%s AUTOLOGIN-USER USERNAME=%s' % (greeter_id, greeter.get_autologin_user_hint ())) - elif greeter.get_autologin_guest_hint (): - if timeout != 0: - status_notify ('%s AUTOLOGIN-GUEST TIMEOUT=%d' % (greeter_id, timeout)) - else: - status_notify ('%s AUTOLOGIN-GUEST' % greeter_id) + status_notify ('%s AUTOLOGIN-USER-HINT=%s' % (greeter_id, greeter.get_autologin_user_hint ())) + if greeter.get_autologin_session_hint () is not None: + status_notify ('%s AUTOLOGIN-SESSION-HINT=%s' % (greeter_id, greeter.get_autologin_session_hint ())) + if greeter.get_autologin_guest_hint (): + status_notify ('%s AUTOLOGIN-GUEST-HINT' % greeter_id) + if greeter.get_autologin_timeout_hint () != 0: + status_notify ('%s AUTOLOGIN-TIMEOUT-HINT=%s' % (greeter_id, greeter.get_autologin_timeout_hint ())) path = os.getenv ('LIGHTDM_TEST_ROOT') + '/.s' status_socket = socket.socket (socket.AF_UNIX, socket.SOCK_STREAM) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/src/test-qt-greeter.cpp new/lightdm-1.24.1/tests/src/test-qt-greeter.cpp --- old/lightdm-1.24.0/tests/src/test-qt-greeter.cpp 2016-11-22 04:55:42.000000000 +0100 +++ new/lightdm-1.24.1/tests/src/test-qt-greeter.cpp 2018-01-17 22:18:02.000000000 +0100 @@ -71,21 +71,14 @@ status_notify ("%s SHOW-MANUAL-LOGIN-HINT", greeter_id); if (!showRemoteLoginHint ()) status_notify ("%s SHOW-REMOTE-LOGIN-HINT=FALSE", greeter_id); - int timeout = autologinTimeoutHint (); if (autologinUserHint () != "") - { - if (timeout != 0) - status_notify ("%s AUTOLOGIN-USER USERNAME=%s TIMEOUT=%d", greeter_id, greeter->autologinUserHint ().toAscii ().constData (), timeout); - else - status_notify ("%s AUTOLOGIN-USER USERNAME=%s", greeter_id, greeter->autologinUserHint ().toAscii ().constData ()); - } - else if (autologinGuestHint ()) - { - if (timeout != 0) - status_notify ("%s AUTOLOGIN-GUEST TIMEOUT=%d", greeter_id, timeout); - else - status_notify ("%s AUTOLOGIN-GUEST", greeter_id); - } + status_notify ("%s AUTOLOGIN-USER-HINT=%s", greeter_id, autologinUserHint ().toAscii ().constData ()); + if (autologinGuestHint ()) + status_notify ("%s AUTOLOGIN-GUEST-HINT", greeter_id); + if (autologinSessionHint () != "") + status_notify ("%s AUTOLOGIN-SESSION-HINT=%s", greeter_id, autologinSessionHint ().toAscii ().constData ()); + if (autologinTimeoutHint () != 0) + status_notify ("%s AUTOLOGIN-TIMEOUT-HINT=%d", greeter_id, autologinTimeoutHint ()); } void TestGreeter::idle () diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/src/vnc-client.c new/lightdm-1.24.1/tests/src/vnc-client.c --- old/lightdm-1.24.0/tests/src/vnc-client.c 2015-08-10 01:30:00.000000000 +0200 +++ new/lightdm-1.24.1/tests/src/vnc-client.c 2018-01-17 22:18:02.000000000 +0100 @@ -68,5 +68,20 @@ if (n_sent != strlen (buffer)) return EXIT_FAILURE; - return EXIT_SUCCESS; + while (TRUE) + { + n_read = g_socket_receive (socket, buffer, 1023, NULL, &error); + if (n_read < 0) + { + g_warning ("Unable to receive on VNC socket: %s", error->message); + return EXIT_FAILURE; + } + + if (n_read == 0) + { + status_notify ("VNC-CLIENT DISCONNECTED"); + return EXIT_SUCCESS; + } + } + } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/src/x-server.c new/lightdm-1.24.1/tests/src/x-server.c --- old/lightdm-1.24.0/tests/src/x-server.c 2015-08-10 01:30:00.000000000 +0200 +++ new/lightdm-1.24.1/tests/src/x-server.c 2018-01-17 22:18:02.000000000 +0100 @@ -20,6 +20,7 @@ enum { X_SERVER_CLIENT_CONNECTED, X_SERVER_CLIENT_DISCONNECTED, + X_SERVER_RESET, X_SERVER_LAST_SIGNAL }; static guint x_server_signals[X_SERVER_LAST_SIGNAL] = { 0 }; @@ -107,12 +108,31 @@ return server; } -static void -x_client_disconnected_cb (XClient *client, XServer *server) +static gboolean +client_read_cb (GIOChannel *channel, GIOCondition condition, gpointer data) { - g_signal_handlers_disconnect_matched (client, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, server); - g_hash_table_remove (server->priv->clients, client->priv->channel); - g_signal_emit (server, x_server_signals[X_SERVER_CLIENT_DISCONNECTED], 0, client); + XClient *client = data; + gchar *d; + gsize d_length; + + if (g_io_channel_read_to_end (channel, &d, &d_length, NULL) == G_IO_STATUS_NORMAL && d_length == 0) + { + XServer *server = client->priv->server; + + g_signal_emit (client, x_client_signals[X_CLIENT_DISCONNECTED], 0); + g_signal_emit (server, x_server_signals[X_SERVER_CLIENT_DISCONNECTED], 0, client); + + g_hash_table_remove (server->priv->clients, client->priv->channel); + + if (g_hash_table_size (server->priv->clients) == 0) + g_signal_emit (server, x_server_signals[X_SERVER_RESET], 0); + + g_free (d); + + return G_SOURCE_REMOVE; + } + + return G_SOURCE_CONTINUE; } static gboolean @@ -132,9 +152,9 @@ client = g_object_new (x_client_get_type (), NULL); client->priv->server = server; - g_signal_connect (client, X_CLIENT_SIGNAL_DISCONNECTED, G_CALLBACK (x_client_disconnected_cb), server); client->priv->socket = data_socket; client->priv->channel = g_io_channel_unix_new (g_socket_get_fd (data_socket)); + g_io_add_watch (client->priv->channel, G_IO_IN | G_IO_HUP, client_read_cb, client); g_hash_table_insert (server->priv->clients, client->priv->channel, client); g_signal_emit (server, x_server_signals[X_SERVER_CLIENT_CONNECTED], 0, client); @@ -210,4 +230,12 @@ NULL, NULL, NULL, G_TYPE_NONE, 1, x_client_get_type ()); + x_server_signals[X_SERVER_RESET] = + g_signal_new (X_SERVER_SIGNAL_RESET, + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (XServerClass, reset), + NULL, NULL, + NULL, + G_TYPE_NONE, 0); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/src/x-server.h new/lightdm-1.24.1/tests/src/x-server.h --- old/lightdm-1.24.0/tests/src/x-server.h 2015-08-10 01:30:00.000000000 +0200 +++ new/lightdm-1.24.1/tests/src/x-server.h 2018-01-15 02:22:58.000000000 +0100 @@ -10,6 +10,7 @@ #define X_SERVER_SIGNAL_CLIENT_CONNECTED "client-connected" #define X_SERVER_SIGNAL_CLIENT_DISCONNECTED "client-disconnected" +#define X_SERVER_SIGNAL_RESET "reset" typedef struct XClientPrivate XClientPrivate; @@ -38,6 +39,7 @@ GObjectClass parent_class; void (*client_connected)(XServer *server, XClient *client); void (*client_disconnected)(XServer *server, XClient *client); + void (*reset)(XServer *server); } XServerClass; GType x_server_get_type (void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/test-autologin-session-timeout-gobject new/lightdm-1.24.1/tests/test-autologin-session-timeout-gobject --- old/lightdm-1.24.0/tests/test-autologin-session-timeout-gobject 1970-01-01 01:00:00.000000000 +0100 +++ new/lightdm-1.24.1/tests/test-autologin-session-timeout-gobject 2018-01-15 03:28:54.000000000 +0100 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner autologin-session-timeout test-gobject-greeter diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/test-autologin-session-timeout-python new/lightdm-1.24.1/tests/test-autologin-session-timeout-python --- old/lightdm-1.24.0/tests/test-autologin-session-timeout-python 1970-01-01 01:00:00.000000000 +0100 +++ new/lightdm-1.24.1/tests/test-autologin-session-timeout-python 2018-01-15 03:28:54.000000000 +0100 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner autologin-session-timeout test-python-greeter diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/test-autologin-session-timeout-qt5 new/lightdm-1.24.1/tests/test-autologin-session-timeout-qt5 --- old/lightdm-1.24.0/tests/test-autologin-session-timeout-qt5 1970-01-01 01:00:00.000000000 +0100 +++ new/lightdm-1.24.1/tests/test-autologin-session-timeout-qt5 2018-01-15 03:28:54.000000000 +0100 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner autologin-session-timeout test-qt5-greeter diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/test-xdmcp-server-login-logout new/lightdm-1.24.1/tests/test-xdmcp-server-login-logout --- old/lightdm-1.24.0/tests/test-xdmcp-server-login-logout 1970-01-01 01:00:00.000000000 +0100 +++ new/lightdm-1.24.1/tests/test-xdmcp-server-login-logout 2018-01-15 02:22:58.000000000 +0100 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner xdmcp-server-login-logout test-gobject-greeter diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lightdm-1.24.0/tests/test-xremote-login-logout new/lightdm-1.24.1/tests/test-xremote-login-logout --- old/lightdm-1.24.0/tests/test-xremote-login-logout 1970-01-01 01:00:00.000000000 +0100 +++ new/lightdm-1.24.1/tests/test-xremote-login-logout 2018-01-15 02:09:58.000000000 +0100 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner xremote-login-logout test-gobject-greeter