+Overview of changes in lightdm 1.11.5
+
+ * Make PAM services configurable
+
+Overview of changes in lightdm 1.11.4
+
+ * Do timed autologin each time you are returned to the greeter
+ * Fix tests failing with Qt 5.3 due to it checking getuid/geteuid which we are faking
+ * dm-tool: Warn if trying to switch to user without username
+
Overview of changes in lightdm 1.11.3
* Fix Mir sessions broken with unity-system-compositor 0.3.
autoconf
autoheader
automake --add-missing --copy --foreign
+
+YELP=`which yelp-build`
+if test -z $YELP; then
+ echo "*** The tools to build the documentation are not found,"
+ echo " please install the yelp-tools package ***"
+ exit 1
+fi
+
if [ -z "$NOCONFIGURE" ]; then
./configure $@
fi
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(lightdm, 1.11.3)
+AC_INIT(lightdm, 1.11.5)
AC_CONFIG_MACRO_DIR(m4)
AC_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz foreign])
#
# type = Seat type (xlocal, xremote)
# xdg-seat = Seat name to set pam_systemd XDG_SEAT variable and name to pass to X server
+# pam-service = PAM service to use for login
+# pam-autologin-service = PAM service to use for autologin
+# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xserver-layout = Layout to pass to X server
# xserver-config = Config file to pass to X server
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
+# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
[SeatDefaults]
#type=xlocal
#xdg-seat=seat0
+#pam-service=lightdm
+#pam-autologin-service=lightdm-autologin
+#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xserver-layout=
#xserver-config=
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=default
+#allow-user-switching=true
#allow-guest=true
#guest-session=
#session-wrapper=lightdm-session
+lightdm (1.11.5-0ubuntu1) utopic; urgency=medium
+
+ * New upstream release:
+ - Make PAM services configurable (LP: #1348251)
+ * debian/guest-account:
+ * debian/lightdm.install:
+ * debian/rules:
+ * debian/patches/05_translate_debian_files.patch:
+ - Make the real name of a guest account translatable (LP: #1177713)
+
+ -- Robert Ancell <robert.ancell@canonical.com> Mon, 28 Jul 2014 13:40:46 +1200
+
+lightdm (1.11.4-0ubuntu1) utopic; urgency=medium
+
+ * New upstream release:
+ - Do timed autologin each time you are returned to the greeter
+ - Fix tests failing with Qt 5.3 due to it checking getuid/geteuid which we are faking
+ - dm-tool: Warn if trying to switch to user without username
+ * debian/lightdm.service:
+ - Don't test for specific installation path
+
+ -- Robert Ancell <robert.ancell@canonical.com> Tue, 01 Jul 2014 15:50:16 +1200
+
lightdm (1.11.3-0ubuntu1) utopic; urgency=medium
* New upstream release:
# If this succeeds, this script needs to print the username as the last line to
# stdout.
+export TEXTDOMAINDIR=/usr/share/locale-langpack
+export TEXTDOMAIN=lightdm
+
+# set the system wide locale for gettext calls
+if [ -f /etc/default/locale ]; then
+ . /etc/default/locale
+ LANGUAGE=
+ export LANG LANGUAGE
+fi
+
add_account ()
{
HOME=`mktemp -td guest-XXXXXX`
fi
else
# does not exist, so create it
- adduser --system --no-create-home --home / --gecos "Guest" --group --shell /bin/bash $USER || {
+ adduser --system --no-create-home --home / --gecos $(gettext "Guest") --group --shell /bin/bash $USER || {
umount "$HOME"
rm -rf "$HOME"
exit 1
etc/lightdm/keys.conf usr/share/doc/lightdm/
etc/apparmor.d
debian/lightdm-session usr/sbin
-debian/guest-account usr/sbin
debian/guest-session-auto.sh usr/lib/lightdm
debian/lightdm-greeter-session usr/lib/lightdm
debian/source_lightdm.py usr/share/apport/package-hooks
[Service]
# temporary safety check until all DMs are converted to correct
# display-manager.service symlink handling
-ExecStartPre=/bin/sh -c '[ "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/lightdm" ]'
+ExecStartPre=/bin/sh -c '[ "$(basename $(cat /etc/X11/default-display-manager 2>/dev/null))" = "lightdm" ]'
ExecStart=/usr/sbin/lightdm
Restart=always
BusName=org.freedesktop.DisplayManager
===================================================================
--- trunk.orig/src/seat.c
+++ trunk/src/seat.c
-@@ -955,7 +955,7 @@ configure_session (Session *session, Ses
+@@ -950,7 +950,7 @@ configure_session (Session *session, Ses
session_set_env (session, "XDG_CURRENT_DESKTOP", desktop_name);
if (language && language[0] != '\0')
{
--- /dev/null
+Description: Grab translatable strings from debian/* files
+ This is done as an Ubuntu patch, since debian/* files are not included upstream.
+Forwarded: not-needed
+Author: Gunnar Hjalmarsson <gunnarhj@ubuntu.com>
+
+--- lightdm.orig/po/POTFILES.in 2014-01-23 19:17:23.143894000 +0100
++++ lightdm/po/POTFILES.in 2014-07-24 23:28:19.519106226 +0200
+@@ -1,5 +1,7 @@
+ # List of source files containing translatable strings.
+ # Please keep this file sorted alphabetically.
+ [encoding: UTF-8]
++debian/guest-account.sh
++debian/guest-session-auto.sh
+ src/lightdm.c
+ src/dm-tool.c
+++ /dev/null
-Description: Grab translatable strings from debian/guest-session-auto.sh
- This is done as an Ubuntu patch, since debian/guest-session-auto.sh
- is not an upstream file.
-Forwarded: not-needed
-Author: Gunnar Hjalmarsson <gunnarhj@ubuntu.com>
-
---- lightdm.orig/po/POTFILES.in 2014-01-24 14:44:56.240966000 +0100
-+++ lightdm/po/POTFILES.in 2014-01-24 15:09:58.651191195 +0100
-@@ -1,5 +1,6 @@
- # List of source files containing translatable strings.
- # Please keep this file sorted alphabetically.
- [encoding: UTF-8]
-+debian/guest-session-auto.sh
- src/lightdm.c
- src/dm-tool.c
01_transition_ubuntu2d_ubuntu_desktop.patch
04_language_handling.patch
-05_translate_guest_session_dialog.patch
+05_translate_debian_files.patch
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
--- /dev/null
+# Chechen translation for lightdm
+# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
+# This file is distributed under the same license as the lightdm package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lightdm\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2007-05-31 08:04+0200\n"
+"PO-Revision-Date: 2014-08-11 10:28+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Chechen <ce@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2014-08-12 06:04+0000\n"
+"X-Generator: Launchpad (build 17156)\n"
+
+#. Type: select
+#. Description
+#: ../lightdm.templates:2001
+msgid "Default display manager:"
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../lightdm.templates:2001
+msgid ""
+"A display manager is a program that provides graphical login capabilities "
+"for the X Window System."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../lightdm.templates:2001
+msgid ""
+"Only one display manager can manage a given X server, but multiple display "
+"manager packages are installed. Please select which display manager should "
+"run by default."
+msgstr ""
+
+#. Type: select
+#. Description
+#: ../lightdm.templates:2001
+msgid ""
+"Multiple display managers can run simultaneously if they are configured to "
+"manage different servers; to achieve this, configure the display managers "
+"accordingly, edit each of their init scripts in /etc/init.d, and disable the "
+"check for a default display manager."
+msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"Project-Id-Version: lightdm\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2007-05-31 08:04+0200\n"
-"PO-Revision-Date: 2013-11-17 12:32+0000\n"
+"PO-Revision-Date: 2014-08-05 08:52+0000\n"
"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-06 06:29+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"accordingly, edit each of their init scripts in /etc/init.d, and disable the "
"check for a default display manager."
msgstr ""
+"Se pueden ejecutar varios gestores de sesiones si se configuran para manejar "
+"servidores distintos. Para hacer esto, edite las secuencias de órdenes de "
+"init de cada gestor (en /etc/init.d) y desactive la comprobación de gestor "
+"de sesiones predeterminado."
#~ msgid "Cancel"
#~ msgstr "Cancelar"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2007-05-31 08:04+0200\n"
"PO-Revision-Date: 2013-08-24 08:14+0000\n"
-"Last-Translator: Algimantas Margevičius <Margevicius.Algimantas@gmail.com>\n"
+"Last-Translator: Algimantas Margevičius <algimantas@margevicius.lt>\n"
"Language-Team: Lithuanian <lt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
"Language: sr\n"
#. Type: select
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2014-06-05 05:48+0000\n"
-"X-Generator: Launchpad (build 17031)\n"
+"X-Launchpad-Export-Date: 2014-08-04 06:06+0000\n"
+"X-Generator: Launchpad (build 17147)\n"
#. Type: select
#. Description
rm -r debian/tmp/usr/share/help/C/
# we do install pam through installpam and init through installinit
dh_install -X.a -X.la -Xpam.d -X'etc/init/lightdm.conf' --fail-missing
+ install -D debian/guest-account.sh debian/lightdm/usr/sbin/guest-account
chmod +x debian/lightdm/usr/lib/lightdm/lightdm-greeter-session
chmod +x debian/lightdm/usr/lib/lightdm/guest-session-auto.sh
{
gchar *username, *session = "";
- if (n_options > 2)
+ if (n_options < 1 || n_options > 2)
{
g_printerr ("Usage switch-to-user USERNAME [SESSION]\n");
usage ();
Seat *seat;
if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(sa(ss))")))
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "Invalid arguments");
return;
+ }
g_variant_get (parameters, "(&sa(ss))", &type, &property_iter);
Seat *seat;
if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(i)")))
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "Invalid arguments");
return;
+ }
g_variant_get (parameters, "(i)", &display_number);
g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "Failed to start seat");
g_object_unref (seat);
}
+ else
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Unknown method");
}
static GVariant *
if (g_strcmp0 (method_name, "SwitchToGreeter") == 0)
{
if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("()")))
- return;
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "Invalid arguments");
- seat_switch_to_greeter (seat);
- g_dbus_method_invocation_return_value (invocation, NULL);
+ if (seat_switch_to_greeter (seat))
+ g_dbus_method_invocation_return_value (invocation, NULL);
+ else// FIXME: Need to make proper error
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "Failed to switch to greeter");
}
else if (g_strcmp0 (method_name, "SwitchToUser") == 0)
{
const gchar *username, *session_name;
if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(ss)")))
- return;
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "Invalid arguments");
g_variant_get (parameters, "(&s&s)", &username, &session_name);
if (strcmp (session_name, "") == 0)
session_name = NULL;
- seat_switch_to_user (seat, username, session_name);
- g_dbus_method_invocation_return_value (invocation, NULL);
+ if (seat_switch_to_user (seat, username, session_name))
+ g_dbus_method_invocation_return_value (invocation, NULL);
+ else// FIXME: Need to make proper error
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "Failed to switch to user");
}
else if (g_strcmp0 (method_name, "SwitchToGuest") == 0)
{
const gchar *session_name;
if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(s)")))
- return;
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "Invalid arguments");
g_variant_get (parameters, "(&s)", &session_name);
if (strcmp (session_name, "") == 0)
session_name = NULL;
- seat_switch_to_guest (seat, session_name);
- g_dbus_method_invocation_return_value (invocation, NULL);
+ if (seat_switch_to_guest (seat, session_name))
+ g_dbus_method_invocation_return_value (invocation, NULL);
+ else// FIXME: Need to make proper error
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "Failed to switch to guest");
}
else if (g_strcmp0 (method_name, "Lock") == 0)
{
+ if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("()")))
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "Invalid arguments");
+
/* FIXME: Should only allow locks if have a session on this seat */
- seat_lock (seat, NULL);
- g_dbus_method_invocation_return_value (invocation, NULL);
+ if (seat_lock (seat, NULL))
+ g_dbus_method_invocation_return_value (invocation, NULL);
+ else// FIXME: Need to make proper error
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "Failed to lock seat");
}
+ else
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Unknown method");
}
static Seat *
{
Seat *seat;
+ if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("()")))
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "Invalid arguments");
+
seat = get_seat_for_session (session);
/* FIXME: Should only allow locks if have a session on this seat */
seat_lock (seat, session_get_username (session));
g_dbus_method_invocation_return_value (invocation, NULL);
}
+ else
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Unknown method");
}
static SeatBusEntry *
config_set_boolean (config_get_instance (), "LightDM", "lock-memory", TRUE);
if (!config_has_key (config_get_instance (), "SeatDefaults", "type"))
config_set_string (config_get_instance (), "SeatDefaults", "type", "xlocal");
+ if (!config_has_key (config_get_instance (), "SeatDefaults", "pam-service"))
+ config_set_string (config_get_instance (), "SeatDefaults", "pam-service", "lightdm");
+ if (!config_has_key (config_get_instance (), "SeatDefaults", "pam-autologin-service"))
+ config_set_string (config_get_instance (), "SeatDefaults", "pam-autologin-service", "lightdm-autologin");
+ if (!config_has_key (config_get_instance (), "SeatDefaults", "pam-greeter-service"))
+ config_set_string (config_get_instance (), "SeatDefaults", "pam-greeter-service", "lightdm-greeter");
if (!config_has_key (config_get_instance (), "SeatDefaults", "xserver-command"))
config_set_string (config_get_instance (), "SeatDefaults", "xserver-command", "X");
if (!config_has_key (config_get_instance (), "SeatDefaults", "xserver-share"))
config_set_string (config_get_instance (), "SeatDefaults", "unity-compositor-command", "unity-system-compositor");
if (!config_has_key (config_get_instance (), "SeatDefaults", "start-session"))
config_set_boolean (config_get_instance (), "SeatDefaults", "start-session", TRUE);
+ if (!config_has_key (config_get_instance (), "SeatDefaults", "allow-user-switching"))
+ config_set_boolean (config_get_instance (), "SeatDefaults", "allow-user-switching", TRUE);
if (!config_has_key (config_get_instance (), "SeatDefaults", "allow-guest"))
config_set_boolean (config_get_instance (), "SeatDefaults", "allow-guest", TRUE);
if (!config_has_key (config_get_instance (), "SeatDefaults", "greeter-allow-guest"))
static void
seat_surfaceflinger_setup (Seat *seat)
{
- seat_set_can_switch (seat, FALSE);
+ seat_set_supports_multi_session (seat, FALSE);
SEAT_CLASS (seat_surfaceflinger_parent_class)->setup (seat);
}
static void
seat_unity_setup (Seat *seat)
{
- seat_set_can_switch (seat, TRUE);
+ seat_set_supports_multi_session (seat, TRUE);
SEAT_CLASS (seat_unity_parent_class)->setup (seat);
}
static void
seat_xlocal_setup (Seat *seat)
{
- seat_set_can_switch (seat, TRUE);
+ seat_set_supports_multi_session (seat, TRUE);
seat_set_share_display_server (seat, seat_get_boolean_property (seat, "xserver-share"));
SEAT_CLASS (seat_xlocal_parent_class)->setup (seat);
}
static void
seat_xremote_setup (Seat *seat)
{
- seat_set_can_switch (seat, FALSE);
+ seat_set_supports_multi_session (seat, FALSE);
SEAT_CLASS (seat_xremote_parent_class)->setup (seat);
}
/* Configuration for this seat */
GHashTable *properties;
- /* TRUE if able to switch users */
- gboolean can_switch;
+ /* TRUE if this seat can run multiple sessions at once */
+ gboolean supports_multi_session;
/* TRUE if display server can be shared for sessions */
gboolean share_display_server;
gboolean stopped;
};
-/* PAM services to use */
-#define GREETER_SERVICE "lightdm-greeter"
-#define USER_SERVICE "lightdm"
-#define AUTOLOGIN_SERVICE "lightdm-autologin"
-
static void seat_logger_iface_init (LoggerInterface *iface);
G_DEFINE_TYPE_WITH_CODE (Seat, seat, G_TYPE_OBJECT,
}
void
-seat_set_can_switch (Seat *seat, gboolean can_switch)
+seat_set_supports_multi_session (Seat *seat, gboolean supports_multi_session)
{
g_return_if_fail (seat != NULL);
-
- seat->priv->can_switch = can_switch;
+ seat->priv->supports_multi_session = supports_multi_session;
}
void
seat_set_share_display_server (Seat *seat, gboolean share_display_server)
{
g_return_if_fail (seat != NULL);
-
seat->priv->share_display_server = share_display_server;
}
seat_get_can_switch (Seat *seat)
{
g_return_val_if_fail (seat != NULL, FALSE);
- return seat->priv->can_switch;
+ return seat_get_boolean_property (seat, "allow-user-switching") && seat->priv->supports_multi_session;
}
gboolean
session = create_guest_session (seat, session_name);
if (!session)
return FALSE;
- session_set_pam_service (session, AUTOLOGIN_SERVICE);
+ session_set_pam_service (session, seat_get_string_property (seat, "pam-autologin-service"));
}
else
{
SessionConfig *session_config;
Greeter *greeter_session;
const gchar *greeter_wrapper;
+ const gchar *autologin_username;
+ int autologin_timeout;
+ gboolean autologin_guest;
l_debug (seat, "Creating greeter session");
set_session_env (SESSION (greeter_session));
session_set_env (SESSION (greeter_session), "XDG_SESSION_CLASS", "greeter");
- session_set_pam_service (SESSION (greeter_session), GREETER_SERVICE);
+ session_set_pam_service (SESSION (greeter_session), seat_get_string_property (seat, "pam-greeter-service"));
if (getuid () == 0)
{
gchar *greeter_user;
session_set_argv (SESSION (greeter_session), argv);
g_strfreev (argv);
- greeter_set_pam_services (greeter_session, USER_SERVICE, AUTOLOGIN_SERVICE);
+ greeter_set_pam_services (greeter_session,
+ seat_get_string_property (seat, "pam-service"),
+ seat_get_string_property (seat, "pam-autologin-service"));
g_signal_connect (greeter_session, "create-session", G_CALLBACK (greeter_create_session_cb), seat);
g_signal_connect (greeter_session, "start-session", G_CALLBACK (greeter_start_session_cb), seat);
greeter_set_allow_guest (greeter_session, seat_get_allow_guest (seat));
set_greeter_hints (seat, greeter_session);
+ /* Configure for automatic login */
+ autologin_username = seat_get_string_property (seat, "autologin-user");
+ if (g_strcmp0 (autologin_username, "") == 0)
+ autologin_username = NULL;
+ autologin_timeout = seat_get_integer_property (seat, "autologin-user-timeout");
+ autologin_guest = seat_get_boolean_property (seat, "autologin-guest");
+ if (autologin_timeout > 0)
+ {
+ gchar *value;
+
+ value = g_strdup_printf ("%d", autologin_timeout);
+ greeter_set_hint (greeter_session, "autologin-timeout", value);
+ g_free (value);
+ if (autologin_username)
+ greeter_set_hint (greeter_session, "autologin-user", autologin_username);
+ if (autologin_guest)
+ greeter_set_hint (greeter_session, "autologin-guest", "true");
+ }
+
g_object_unref (session_config);
return greeter_session;
g_return_val_if_fail (seat != NULL, FALSE);
- if (!seat->priv->can_switch)
+ if (!seat_get_can_switch (seat))
return FALSE;
/* Switch to greeter if one open */
display_server = create_display_server (seat, session_get_session_type (SESSION (greeter_session)));
session_set_display_server (SESSION (greeter_session), display_server);
- if (!display_server_start (display_server))
- return FALSE;
- return TRUE;
+ return display_server_start (display_server);
}
static void
g_return_val_if_fail (seat != NULL, FALSE);
g_return_val_if_fail (username != NULL, FALSE);
- if (!seat->priv->can_switch)
+ if (!seat_get_can_switch (seat))
return FALSE;
/* If we're already on this session, then ignore */
/* Attempt to authenticate them */
session = create_user_session (seat, username, FALSE);
g_signal_connect (session, "authentication-complete", G_CALLBACK (switch_authentication_complete_cb), seat);
- session_set_pam_service (session, USER_SERVICE);
- session_start (session);
+ session_set_pam_service (session, seat_get_string_property (seat, "pam-service"));
- return FALSE;
+ return session_start (session);
}
static Session *
g_return_val_if_fail (seat != NULL, FALSE);
- if (!seat->priv->can_switch || !seat_get_allow_guest (seat))
+ if (!seat_get_can_switch (seat) || !seat_get_allow_guest (seat))
return FALSE;
/* Switch to session if one open */
if (seat->priv->session_to_activate)
g_object_unref (seat->priv->session_to_activate);
seat->priv->session_to_activate = g_object_ref (session);
- session_set_pam_service (session, AUTOLOGIN_SERVICE);
+ session_set_pam_service (session, seat_get_string_property (seat, "pam-autologin-service"));
session_set_display_server (session, display_server);
return display_server_start (display_server);
g_return_val_if_fail (seat != NULL, FALSE);
- if (!seat->priv->can_switch)
+ if (!seat_get_can_switch (seat))
return FALSE;
l_debug (seat, "Locking");
session = create_user_session (seat, autologin_username, TRUE);
if (session)
- session_set_pam_service (session, AUTOLOGIN_SERVICE);
+ session_set_pam_service (session, seat_get_string_property (seat, "pam-autologin-service"));
/* Load in background if required */
if (autologin_in_background && session)
seat->priv->session_to_activate = g_object_ref (greeter_session);
session = SESSION (greeter_session);
- if (autologin_timeout)
- {
- gchar *value;
-
- value = g_strdup_printf ("%d", autologin_timeout);
- greeter_set_hint (greeter_session, "autologin-timeout", value);
- g_free (value);
- if (autologin_username)
- greeter_set_hint (greeter_session, "autologin-user", autologin_username);
- if (autologin_guest)
- greeter_set_hint (greeter_session, "autologin-guest", "true");
- }
-
display_server = create_display_server (seat, session_get_session_type (session));
session_set_display_server (session, display_server);
if (!display_server || !display_server_start (display_server))
const gchar *seat_get_name (Seat *seat);
-void seat_set_can_switch (Seat *seat, gboolean can_switch);
+void seat_set_supports_multi_session (Seat *seat, gboolean supports_multi_session);
void seat_set_share_display_server (Seat *seat, gboolean share_display_server);
test-headless \
test-autologin \
test-autologin-pam \
+ test-autologin-pam-config \
test-autologin-in-background \
test-autologin-guest-in-background \
test-autologin-timeout-in-background \
test-restart-authentication \
test-cancel-authentication-gobject \
test-login-pam \
+ test-login-pam-config \
test-denied \
test-expired \
test-cred-error \
test-cred-unavail \
test-autologin-session-error \
test-autologin-logout \
+ test-autologin-timeout-logout \
test-autologin-previous-session \
test-autologin-guest \
test-autologin-guest-session-config \
test-lock-seat-console-kit \
test-lock-seat-return-session-console-kit \
test-switch-to-greeter \
+ test-switch-to-greeter-disabled \
test-switch-to-greeter-new-session \
test-switch-to-greeter-resettable \
test-switch-to-greeter-return-session \
test-switch-to-greeter-return-session-pam \
test-switch-to-greeter-return-session-logout \
test-switch-to-guest \
+ test-switch-to-guest-disabled \
test-switch-to-guest-fail-resettable \
test-switch-to-user \
+ test-switch-to-user-disabled \
test-switch-to-user-no-password \
test-switch-to-user-active \
test-switch-to-user-existing \
scripts/autologin-in-background.conf \
scripts/autologin-invalid-greeter.conf \
scripts/autologin-pam.conf \
- scripts/autologin-timeout-in-background.conf \
+ scripts/autologin-pam-config.conf \
scripts/autologin-invalid-session.conf \
scripts/autologin-invalid-user.conf \
scripts/autologin-logout.conf \
scripts/autologin-session-crash.conf \
scripts/autologin-session-error.conf \
scripts/autologin-timeout.conf \
+ scripts/autologin-timeout-in-background.conf \
+ scripts/autologin-timeout-logout.conf \
scripts/autologin-xserver-crash.conf \
scripts/change-authentication.conf \
scripts/cancel-authentication.conf \
scripts/login-new-authtok.conf \
scripts/login-no-password.conf \
scripts/login-pam.conf \
+ scripts/login-pam-config.conf \
scripts/login-pick-session.conf \
scripts/login-previous-session.conf \
scripts/login-remember-session.conf \
scripts/session-stderr-backup.conf \
scripts/surfaceflinger-autologin.conf \
scripts/switch-to-greeter.conf \
+ scripts/switch-to-greeter-disabled.conf \
scripts/switch-to-greeter-new-session.conf \
scripts/switch-to-greeter-resettable.conf \
scripts/switch-to-greeter-return-session.conf \
scripts/switch-to-greeter-return-session-logout.conf \
scripts/switch-to-greeter-return-session-pam.conf \
scripts/switch-to-guest.conf \
+ scripts/switch-to-guest-disabled.conf \
scripts/switch-to-guest-fail-resettable.conf \
scripts/switch-to-user.conf \
scripts/switch-to-users.conf \
scripts/switch-to-user-active.conf \
+ scripts/switch-to-user-disabled.conf \
scripts/switch-to-user-existing.conf \
scripts/switch-to-user-existing-no-password.conf \
scripts/switch-to-user-existing-resettable.conf \
[SeatDefaults]
autologin-guest=true
-autologin-user-timeout=1
+autologin-user-timeout=99
user-session=default
#?*START-DAEMON
#?GREETER-X-0 CONNECT-TO-DAEMON
#?GREETER-X-0 CONNECTED-TO-DAEMON
-# Autologin timer expires
-#?GREETER-X-0 AUTOLOGIN-TIMER-EXPIRED
+# Greeter is requested to timeout
+#?GREETER-X-0 AUTOLOGIN-GUEST TIMEOUT=99
# Trigger autologin
#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN
--- /dev/null
+#
+# Check we can configure the PAM service for automatic login
+#
+
+[SeatDefaults]
+autologin-user=no-password1
+user-session=default
+pam-autologin-service=lightdm-autologin-alternative
+
+[test-pam]
+log-events=true
+
+#?*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
+
+# Session authenticates
+#?PAM-no-password1 START SERVICE=lightdm-autologin-alternative USER=no-password1
+#?PAM-no-password1 AUTHENTICATE
+#?PAM-no-password1 ACCT-MGMT
+#?PAM-no-password1 SETCRED ESTABLISH_CRED
+#?PAM-no-password1 OPEN-SESSION
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/no-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=no-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?PAM-no-password1 CLOSE-SESSION
+#?PAM-no-password1 SETCRED DELETE_CRED
+#?PAM-no-password1 END
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
[SeatDefaults]
autologin-user=have-password1
-autologin-user-timeout=1
+autologin-user-timeout=99
autologin-in-background=true
user-session=default
#?XSERVER-1 ACCEPT-CONNECT
#?SESSION-X-1 CONNECT-XSERVER
-# Autologin timer expires
-#?GREETER-X-0 AUTOLOGIN-TIMER-EXPIRED
+# Greeter is requested to timeout
+#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99
# Trigger autologin
#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN
--- /dev/null
+#
+# Check logging out after autologin returns to greeter and does timed login again
+#
+
+[SeatDefaults]
+autologin-user=have-password1
+autologin-user-timeout=99
+user-session=default
+
+#?*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 USERNAME=have-password1 TIMEOUT=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=default USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c1
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Logout session
+#?*SESSION-X-0 LOGOUT
+
+# X server stops
+#?XSERVER-0 TERMINATE SIGNAL=15
+
+# 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=c2
+#?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 USERNAME=have-password1 TIMEOUT=99
+
+# Cleanup
+#?*STOP-DAEMON
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
[SeatDefaults]
autologin-user=have-password1
-autologin-user-timeout=1
+autologin-user-timeout=99
user-session=default
#?*START-DAEMON
#?GREETER-X-0 CONNECT-TO-DAEMON
#?GREETER-X-0 CONNECTED-TO-DAEMON
-# Autologin timer expires
-#?GREETER-X-0 AUTOLOGIN-TIMER-EXPIRED
+# Greeter is requested to timeout
+#?GREETER-X-0 AUTOLOGIN-USER USERNAME=have-password1 TIMEOUT=99
# Trigger autologin
#?*GREETER-X-0 AUTHENTICATE-AUTOLOGIN
--- /dev/null
+#
+# Check we can configure the PAM service for login
+#
+
+[SeatDefaults]
+user-session=default
+pam-service=lightdm-alternative
+pam-greeter-service=lightdm-greeter-alternative
+
+[test-pam]
+log-events=true
+
+#?*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
+
+# Create PAM session for greeter
+#?PAM-lightdm START SERVICE=lightdm-greeter-alternative USER=lightdm
+#?PAM-lightdm SETCRED ESTABLISH_CRED
+#?PAM-lightdm OPEN-SESSION
+
+# 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 does authentication via PAM
+#?*GREETER-X-0 AUTHENTICATE USERNAME=have-password1
+#?PAM-have-password1 START SERVICE=lightdm-alternative USER=have-password1
+#?PAM-have-password1 AUTHENTICATE
+#?GREETER-X-0 SHOW-PROMPT TEXT="Password:"
+#?*GREETER-X-0 RESPOND TEXT="password"
+#?PAM-have-password1 ACCT-MGMT
+#?GREETER-X-0 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
+
+# User session starts
+#?*GREETER-X-0 START-SESSION
+#?PAM-have-password1 SETCRED ESTABLISH_CRED
+#?PAM-have-password1 OPEN-SESSION
+
+# Greeter session stops
+#?GREETER-X-0 TERMINATE SIGNAL=15
+#?PAM-lightdm CLOSE-SESSION
+#?PAM-lightdm SETCRED DELETE_CRED
+#?PAM-lightdm END
+
+# 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=default 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
+#?PAM-have-password1 CLOSE-SESSION
+#?PAM-have-password1 SETCRED DELETE_CRED
+#?PAM-have-password1 END
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
--- /dev/null
+#
+# Check can't switch to greeter when disabled
+#
+
+[SeatDefaults]
+autologin-user=have-password1
+user-session=default
+allow-user-switching=false
+
+#?*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
+
+# 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=default USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Check daemon says we can't switch
+#?*SEAT-CAN-SWITCH
+#?RUNNER SEAT-CAN-SWITCH CAN-SWITCH=FALSE
+
+# Attempt to show the greeter
+#?*SWITCH-TO-GREETER
+#?RUNNER SWITCH-TO-GREETER FAILED
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
+# Check daemon says we can switch
+#?*SEAT-CAN-SWITCH
+#?RUNNER SEAT-CAN-SWITCH CAN-SWITCH=TRUE
+
# Show the greeter
#?*SWITCH-TO-GREETER
#?RUNNER SWITCH-TO-GREETER
--- /dev/null
+#
+# Check can't switch to guest when disabled
+#
+
+[SeatDefaults]
+autologin-user=have-password1
+user-session=default
+allow-user-switching=false
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+#?*WAIT
+
+# 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
+
+# Default 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=default USER=have-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Check daemon says we can't switch
+#?*SEAT-CAN-SWITCH
+#?RUNNER SEAT-CAN-SWITCH CAN-SWITCH=FALSE
+
+# Check daemon says we have a guest account
+#?*SEAT-HAS-GUEST-ACCOUNT
+#?RUNNER SEAT-HAS-GUEST-ACCOUNT HAS-GUEST-ACCOUNT=TRUE
+
+# Attempt to switch to guest
+#?*SWITCH-TO-GUEST
+#?RUNNER SWITCH-TO-GUEST FAILED
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
+# Check daemon says we can switch
+#?*SEAT-CAN-SWITCH
+#?RUNNER SEAT-CAN-SWITCH CAN-SWITCH=TRUE
+
+# Check daemon says we have a guest account
+#?*SEAT-HAS-GUEST-ACCOUNT
+#?RUNNER SEAT-HAS-GUEST-ACCOUNT HAS-GUEST-ACCOUNT=TRUE
+
# Switch to guest
#?*SWITCH-TO-GUEST
#?RUNNER SWITCH-TO-GUEST
--- /dev/null
+#
+# Check that can't switch to a user when switching disabled
+#
+
+[SeatDefaults]
+autologin-user=no-password1
+user-session=default
+allow-user-switching=false
+
+#?*START-DAEMON
+#?RUNNER DAEMON-START
+#?*WAIT
+
+# 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
+
+# Session starts
+#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/no-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=default USER=no-password1
+#?LOGIN1 ACTIVATE-SESSION SESSION=c0
+#?XSERVER-0 ACCEPT-CONNECT
+#?SESSION-X-0 CONNECT-XSERVER
+
+# Check daemon says we can't switch
+#?*SEAT-CAN-SWITCH
+#?RUNNER SEAT-CAN-SWITCH CAN-SWITCH=FALSE
+
+# Attempt to switch to an account
+#?*SWITCH-TO-USER USERNAME=have-password1
+#?RUNNER SWITCH-TO-USER USERNAME=have-password1 FAILED
+
+# Cleanup
+#?*STOP-DAEMON
+#?SESSION-X-0 TERMINATE SIGNAL=15
+#?XSERVER-0 TERMINATE SIGNAL=15
+#?RUNNER DAEMON-EXIT STATUS=0
#?XSERVER-0 ACCEPT-CONNECT
#?SESSION-X-0 CONNECT-XSERVER
+# Check daemon says we can switch
+#?*SEAT-CAN-SWITCH
+#?RUNNER SEAT-CAN-SWITCH CAN-SWITCH=TRUE
+
# Switch to an account with a password
#?*SWITCH-TO-USER USERNAME=have-password1
#?RUNNER SWITCH-TO-USER USERNAME=have-password1
static void
autologin_timer_expired_cb (LightDMGreeter *greeter)
{
- status_notify ("%s AUTOLOGIN-TIMER-EXPIRED", greeter_id);
}
static gboolean
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))
status_notify ("%s SHOW-MANUAL-LOGIN-HINT", greeter_id);
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);
+ }
}
static void
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)
path = os.getenv ('LIGHTDM_TEST_ROOT') + '/.s'
status_socket = socket.socket (socket.AF_UNIX, socket.SOCK_STREAM)
status_notify ('%s AUTHENTICATION-COMPLETE AUTHENTICATED=%s' % (greeter_id, is_authenticated))
def autologin_timer_expired_cb (greeter):
- status_notify ('%s AUTOLOGIN-TIMER-EXPIRED' % greeter_id)
+ pass
greeter = LightDM.Greeter ()
greeter.connect ('show-message', show_message_cb)
void TestGreeter::autologinTimerExpired ()
{
- status_notify ("%s AUTOLOGIN-TIMER-EXPIRED", greeter_id);
}
void TestGreeter::printHints ()
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);
+ }
}
void TestGreeter::idle ()
status_connect (request_cb, greeter_id);
+ /* Workaround for Qt being confused by libsystem */
+#if QT_VERSION >= QT_VERSION_CHECK (5, 3, 0)
+ QCoreApplication::setSetuidAllowed (true);
+#endif
+
app = new QCoreApplication (argc, argv);
signal (SIGINT, signal_cb);
g_variant_new ("(ss)", "org.freedesktop.DisplayManager", "Seats"),
G_VARIANT_TYPE ("(v)"),
G_DBUS_CALL_FLAGS_NONE,
- 1000,
+ G_MAXINT,
NULL,
NULL);
g_variant_new ("(ss)", "org.freedesktop.DisplayManager", "Sessions"),
G_VARIANT_TYPE ("(v)"),
G_DBUS_CALL_FLAGS_NONE,
- 1000,
+ G_MAXINT,
NULL,
NULL);
check_status (status->str);
g_string_free (status, TRUE);
}
+ else if (strcmp (name, "SEAT-CAN-SWITCH") == 0)
+ {
+ GVariant *result, *value;
+ gchar *status;
+
+ result = g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
+ "org.freedesktop.DisplayManager",
+ "/org/freedesktop/DisplayManager/Seat0",
+ "org.freedesktop.DBus.Properties",
+ "Get",
+ g_variant_new ("(ss)", "org.freedesktop.DisplayManager.Seat", "CanSwitch"),
+ G_VARIANT_TYPE ("(v)"),
+ G_DBUS_CALL_FLAGS_NONE,
+ G_MAXINT,
+ NULL,
+ NULL);
+
+ g_variant_get (result, "(v)", &value);
+ status = g_strdup_printf ("RUNNER SEAT-CAN-SWITCH CAN-SWITCH=%s", g_variant_get_boolean (value) ? "TRUE" : "FALSE");
+ g_variant_unref (value);
+ g_variant_unref (result);
+ check_status (status);
+ g_free (status);
+ }
+ else if (strcmp (name, "SEAT-HAS-GUEST-ACCOUNT") == 0)
+ {
+ GVariant *result, *value;
+ gchar *status;
+
+ result = g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
+ "org.freedesktop.DisplayManager",
+ "/org/freedesktop/DisplayManager/Seat0",
+ "org.freedesktop.DBus.Properties",
+ "Get",
+ g_variant_new ("(ss)", "org.freedesktop.DisplayManager.Seat", "HasGuestAccount"),
+ G_VARIANT_TYPE ("(v)"),
+ G_DBUS_CALL_FLAGS_NONE,
+ G_MAXINT,
+ NULL,
+ NULL);
+
+ g_variant_get (result, "(v)", &value);
+ status = g_strdup_printf ("RUNNER SEAT-HAS-GUEST-ACCOUNT HAS-GUEST-ACCOUNT=%s", g_variant_get_boolean (value) ? "TRUE" : "FALSE");
+ g_variant_unref (value);
+ g_variant_unref (result);
+ check_status (status);
+ g_free (status);
+ }
else if (strcmp (name, "SWITCH-TO-GREETER") == 0)
{
- g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
- "org.freedesktop.DisplayManager",
- "/org/freedesktop/DisplayManager/Seat0",
- "org.freedesktop.DisplayManager.Seat",
- "SwitchToGreeter",
- g_variant_new ("()"),
- G_VARIANT_TYPE ("()"),
- G_DBUS_CALL_FLAGS_NONE,
- 1000,
- NULL,
- NULL);
- check_status ("RUNNER SWITCH-TO-GREETER");
+ GVariant *result;
+
+ result = g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
+ "org.freedesktop.DisplayManager",
+ "/org/freedesktop/DisplayManager/Seat0",
+ "org.freedesktop.DisplayManager.Seat",
+ "SwitchToGreeter",
+ g_variant_new ("()"),
+ G_VARIANT_TYPE ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ G_MAXINT,
+ NULL,
+ NULL);
+ if (result)
+ {
+ check_status ("RUNNER SWITCH-TO-GREETER");
+ g_variant_unref (result);
+ }
+ else
+ check_status ("RUNNER SWITCH-TO-GREETER FAILED");
}
else if (strcmp (name, "SWITCH-TO-USER") == 0)
{
- gchar *status_text, *username;
+ GVariant *result;
+ const gchar *username;
username = g_hash_table_lookup (params, "USERNAME");
- g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
- "org.freedesktop.DisplayManager",
- "/org/freedesktop/DisplayManager/Seat0",
- "org.freedesktop.DisplayManager.Seat",
- "SwitchToUser",
- g_variant_new ("(ss)", username, ""),
- G_VARIANT_TYPE ("()"),
- G_DBUS_CALL_FLAGS_NONE,
- 1000,
- NULL,
- NULL);
- status_text = g_strdup_printf ("RUNNER SWITCH-TO-USER USERNAME=%s", username);
- check_status (status_text);
- g_free (status_text);
+ result = g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
+ "org.freedesktop.DisplayManager",
+ "/org/freedesktop/DisplayManager/Seat0",
+ "org.freedesktop.DisplayManager.Seat",
+ "SwitchToUser",
+ g_variant_new ("(ss)", username, ""),
+ G_VARIANT_TYPE ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ G_MAXINT,
+ NULL,
+ NULL);
+ if (result)
+ {
+ gchar *status_text;
+ status_text = g_strdup_printf ("RUNNER SWITCH-TO-USER USERNAME=%s", username);
+ check_status (status_text);
+ g_free (status_text);
+ g_variant_unref (result);
+ }
+ else
+ {
+ gchar *status_text;
+ status_text = g_strdup_printf ("RUNNER SWITCH-TO-USER USERNAME=%s FAILED", username);
+ check_status (status_text);
+ g_free (status_text);
+ }
}
else if (strcmp (name, "SWITCH-TO-GUEST") == 0)
{
- g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
- "org.freedesktop.DisplayManager",
- "/org/freedesktop/DisplayManager/Seat0",
- "org.freedesktop.DisplayManager.Seat",
- "SwitchToGuest",
- g_variant_new ("(s)", ""),
- G_VARIANT_TYPE ("()"),
- G_DBUS_CALL_FLAGS_NONE,
- 1000,
- NULL,
- NULL);
- check_status ("RUNNER SWITCH-TO-GUEST");
+ GVariant *result;
+
+ result = g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL),
+ "org.freedesktop.DisplayManager",
+ "/org/freedesktop/DisplayManager/Seat0",
+ "org.freedesktop.DisplayManager.Seat",
+ "SwitchToGuest",
+ g_variant_new ("(s)", ""),
+ G_VARIANT_TYPE ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ G_MAXINT,
+ NULL,
+ NULL);
+ if (result)
+ {
+ check_status ("RUNNER SWITCH-TO-GUEST");
+ g_variant_unref (result);
+ }
+ else
+ check_status ("RUNNER SWITCH-TO-GUEST FAILED");
}
else if (strcmp (name, "STOP-DAEMON") == 0)
stop_process (lightdm_process);
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner autologin-pam-config test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner autologin-timeout-logout test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner login-pam-config test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner switch-to-greeter-disabled test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner switch-to-guest-disabled test-gobject-greeter
--- /dev/null
+#!/bin/sh
+./src/dbus-env ./src/test-runner switch-to-user-disabled test-gobject-greeter