diff options
166 files changed, 1092 insertions, 533 deletions
diff --git a/common/configuration.c b/common/configuration.c index 895085e3..dc7831a8 100644 --- a/common/configuration.c +++ b/common/configuration.c @@ -331,9 +331,7 @@ config_init (Configuration *config) static void config_finalize (GObject *object) { - Configuration *self; - - self = CONFIGURATION (object); + Configuration *self = CONFIGURATION (object); g_free (self->priv->dir); g_key_file_free (self->priv->key_file); diff --git a/common/user-list.c b/common/user-list.c index 792c6d3a..1b198d1a 100644 --- a/common/user-list.c +++ b/common/user-list.c @@ -186,9 +186,7 @@ common_user_list_get_instance (void) void common_user_list_cleanup (void) { - if (singleton) - g_object_unref (singleton); - singleton = NULL; + g_clear_object (&singleton); } static CommonUser * @@ -1059,8 +1057,7 @@ common_user_list_finalize (GObject *object) if (priv->session_removed_signal) g_dbus_connection_signal_unsubscribe (priv->bus, priv->session_removed_signal); g_object_unref (priv->bus); - if (priv->passwd_monitor) - g_object_unref (priv->passwd_monitor); + g_clear_object (&priv->passwd_monitor); G_OBJECT_CLASS (common_user_list_parent_class)->finalize (object); } diff --git a/data/apparmor/abstractions/lightdm b/data/apparmor/abstractions/lightdm index 17e32e22..656381f0 100644 --- a/data/apparmor/abstractions/lightdm +++ b/data/apparmor/abstractions/lightdm @@ -45,6 +45,8 @@ /opt/** rmixk, @{PROC}/ r, @{PROC}/* rm, + @{PROC}/[0-9]*/net/ r, + @{PROC}/[0-9]*/net/dev r, @{PROC}/asound rm, @{PROC}/asound/** rm, @{PROC}/ati rm, @@ -73,6 +75,7 @@ /{,var/}run/ r, # necessary for writing to sockets, etc. /{,var/}run/** rmkix, + /{,var/}run/screen/** wl, /{,var/}run/shm/** wl, /{,var/}run/uuidd/request w, # libpam-xdg-support/logind diff --git a/data/apparmor/abstractions/lightdm_chromium-browser b/data/apparmor/abstractions/lightdm_chromium-browser index 99089693..930c87e7 100644 --- a/data/apparmor/abstractions/lightdm_chromium-browser +++ b/data/apparmor/abstractions/lightdm_chromium-browser @@ -51,7 +51,7 @@ # Allow us to receive and send signals from processes in the # lightdm-guest-session - signal (receive, send) set=("exists") peer=/usr/lib/lightdm/lightdm-guest-session, + signal (receive, send) set=("exists", "term") peer=/usr/lib/lightdm/lightdm-guest-session, # Allow us to receive and send on unix sockets from processes in the # lightdm-guest-session @@ -62,6 +62,10 @@ @{PROC}/[0-9]*/statm r, # sandbox wants these @{PROC}/[0-9]*/task/[0-9]*/stat r, # sandbox wants these + owner @{PROC}/@{pid}/setgroups w, + owner @{PROC}/@{pid}/uid_map w, + owner @{PROC}/@{pid}/gid_map w, + /selinux/ r, /usr/lib/chromium-browser/chromium-browser-sandbox ix, diff --git a/data/lightdm.conf b/data/lightdm.conf index 03381d68..8284081b 100644 --- a/data/lightdm.conf +++ b/data/lightdm.conf @@ -40,14 +40,14 @@ # [Seat:seat0] matches the seat named "seat0". # [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client". # -# type = Seat type (xlocal, xremote) +# type = Seat type (xlocal, xremote, unity) # 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) # xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option) -# xserver-layout = Layout to pass to X server # xserver-config = Config file to pass to X server +# xserver-layout = Layout to pass to X server # xserver-allow-tcp = True if TCP/IP connections are allowed to this X server # xserver-share = True if the X server is shared for both greeter and session # xserver-hostname = Hostname of X server (only for type=xremote) @@ -88,8 +88,8 @@ #pam-greeter-service=lightdm-greeter #xserver-command=X #xmir-command=Xmir -#xserver-layout= #xserver-config= +#xserver-layout= #xserver-allow-tcp=false #xserver-share=true #xserver-hostname= diff --git a/debian/changelog b/debian/changelog index 640b9b21..36f20f84 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +lightdm (1.17.0-0ubuntu1) UNRELEASED; urgency=medium + + * New upstream release: + - ... + * Build with multi-arch + * debian/patches/xorg-1.17.patch: + - Fix xserver-allow-tcp=true option not working with X.org 1.17 + * data/apparmor/abstractions/lightdm_chromium-browser: cgroups support for + guest sessions. (LP: #1504049, LP: #1464958) + + -- Robert Ancell <robert.ancell@canonical.com> Mon, 12 Oct 2015 14:57:47 +0100 + lightdm (1.16.0-0ubuntu1) wily; urgency=medium * New upstream release: diff --git a/debian/control b/debian/control index d12b24c0..7698de17 100644 --- a/debian/control +++ b/debian/control @@ -47,6 +47,7 @@ Depends: ${misc:Depends}, bash (>= 4.3), Recommends: xserver-xorg, unity-greeter | lightdm-greeter | lightdm-kde-greeter, +Suggests: bindfs Conflicts: liblightdm-gobject-0-0, liblightdm-qt-0-0, Provides: x-display-manager diff --git a/debian/guest-account.sh b/debian/guest-account.sh index 6da56878..ffc44eb5 100644 --- a/debian/guest-account.sh +++ b/debian/guest-account.sh @@ -20,159 +20,166 @@ fi add_account () { - HOME=`mktemp -td guest-XXXXXX` - USER=`echo $HOME | sed 's/\(.*\)guest/guest/'` + HOME=$(mktemp -td guest-XXXXXX) + USER=$(echo ${HOME} | sed 's/\(.*\)guest/guest/') - # if $USER already exists, it must be a locked system account with no existing + # if ${USER} already exists, it must be a locked system account with no existing # home directory - if PWSTAT=`passwd -S "$USER"` 2>/dev/null; then - if [ "`echo \"$PWSTAT\" | cut -f2 -d\ `" != "L" ]; then - echo "User account $USER already exists and is not locked" + if PWSTAT=$(passwd -S ${USER}) 2>/dev/null; then + if [ $(echo ${PWSTAT} | cut -f2 -d' ') != L ]; then + echo "User account ${USER} already exists and is not locked" exit 1 fi - PWENT=`getent passwd "$USER"` || { - echo "getent passwd $USER failed" + PWENT=$(getent passwd ${USER}) || { + echo "getent passwd ${USER} failed" exit 1 } - GUEST_UID=`echo "$PWENT" | cut -f3 -d:` - if [ "$GUEST_UID" -ge 500 ]; then - echo "Account $USER is not a system user" + GUEST_UID=$(echo ${PWENT} | cut -f3 -d:) + if [ ${GUEST_UID} -ge 500 ]; then + echo "Account ${USER} is not a system user" exit 1 fi - HOME=`echo "$PWENT" | cut -f6 -d:` - if [ "$HOME" != / ] && [ "${HOME#/tmp}" = "$HOME" ] && [ -d "$HOME" ]; then - echo "Home directory of $USER already exists" + HOME=$(echo ${PWENT} | cut -f6 -d:) + if [ ${HOME} != / ] && [ ${HOME#/tmp} = ${HOME} ] && [ -d ${HOME} ]; then + echo "Home directory of ${USER} already exists" exit 1 fi else # does not exist, so create it - adduser --system --no-create-home --home / --gecos $(gettext "Guest") --group --shell /bin/bash $USER || { - umount "$HOME" - rm -rf "$HOME" - exit 1 + adduser --system --no-create-home --home / --gecos $(gettext "Guest") --group --shell /bin/bash ${USER} || { + umount ${HOME} + rm -rf ${HOME} + exit 1 } fi + dist_gs=/usr/share/lightdm/guest-session + site_gs=/etc/guest-session + # create temporary home directory - mount -t tmpfs -o mode=700 none "$HOME" || { rm -rf "$HOME"; exit 1; } - chown $USER:$USER "$HOME" - gs_skel=/etc/guest-session/skel/ - if [ -d "$gs_skel" ] && [ -n "`find $gs_skel -type f`" ]; then - cp -rT $gs_skel "$HOME" - else - cp -rT /etc/skel/ "$HOME" - fi - chown -R $USER:$USER "$HOME" - usermod -d "$HOME" "$USER" + mount -t tmpfs -o mode=700,uid=${USER} none ${HOME} || { + rm -rf ${HOME} + exit 1 + } - # - # setup session - # - - # disable some services that are unnecessary for the guest session - mkdir --parents "$HOME"/.config/autostart - cd /etc/xdg/autostart/ - services="jockey-kde.desktop jockey-gtk.desktop update-notifier.desktop user-dirs-update-gtk.desktop" - for service in $services - do - if [ -e /etc/xdg/autostart/"$service" ] ; then - cp "$service" "$HOME"/.config/autostart - echo "X-GNOME-Autostart-enabled=false" >> "$HOME"/.config/autostart/"$service" + if [ -d ${site_gs}/skel ] && [ -n $(find ${site_gs}/skel -type f) ]; then + # Only perform union-mounting if BindFS is available + if [ -x /usr/bin/bindfs ]; then + bindfs_mount=true + + # Try OverlayFS first + if modinfo -n overlay >/dev/null 2>&1; then + mkdir ${HOME}/upper ${HOME}/work + chown ${USER}:${USER} ${HOME}/upper ${HOME}/work + mount -t overlay -o lowerdir=${dist_gs}/skel:${site_gs}/skel,upperdir=${HOME}/upper,workdir=${HOME}/work overlay ${HOME} || { + umount ${HOME} + rm -rf ${HOME} + exit 1 + } + # If OverlayFS is not available, try AuFS + elif [ -x /sbin/mount.aufs ]; then + mount -t aufs -o br=${HOME}:${dist_gs}/skel:${site_gs}/skel none ${HOME} || { + umount ${HOME} + rm -rf ${HOME} + exit 1 + } + # If none of them is available, fall back to copy over + else + cp -rT ${site_gs}/skel/ ${HOME} + cp -rT ${dist_gs}/skel/ ${HOME} + chown -R ${USER}:${USER} ${HOME} + bindfs_mount=false + fi + + if ${bindfs_mount}; then + # Wrap ${HOME} in a BindFS mount, so that + # ${USER} will be seen as the owner of ${HOME}'s contents. + bindfs -u ${USER} -g ${USER} ${HOME} ${HOME} || { + umount ${HOME} # union mount + umount ${HOME} # tmpfs mount + rm -rf ${HOME} + exit 1 + } + fi + # If BindFS is not available, just fall back to copy over + else + cp -rT ${site_gs}/skel/ ${HOME} + cp -rT ${dist_gs}/skel/ ${HOME} + chown -R ${USER}:${USER} ${HOME} fi - done - - # disable Unity shortcut hint - mkdir -p "$HOME"/.cache/unity - touch "$HOME"/.cache/unity/first_run.stamp - - STARTUP="$HOME"/.config/autostart/startup-commands.desktop - echo "[Desktop Entry]" > $STARTUP - echo "Name=Startup commands" >> $STARTUP - echo "Type=Application" >> $STARTUP - echo "NoDisplay=true" >> $STARTUP - echo "Exec=/usr/lib/lightdm/guest-session-auto.sh" >> $STARTUP - - echo "export DIALOG_SLEEP=4" >> "$HOME"/.profile - - mkdir -p "$HOME"/.kde/share/config - echo "[Basic Settings]" >> "$HOME"/.kde/share/config/nepomukserverrc - echo "Start Nepomuk=false" >> "$HOME"/.kde/share/config/nepomukserverrc - - echo "[Event]" >> "$HOME"/.kde/share/config/notificationhelper - echo "hideHookNotifier=true" >> "$HOME"/.kde/share/config/notificationhelper - echo "hideInstallNotifier=true" >> "$HOME"/.kde/share/config/notificationhelper - echo "hideRestartNotifier=true" >> "$HOME"/.kde/share/config/notificationhelper - - # Load restricted session - #dmrc='[Desktop]\nSession=guest-restricted' - #/bin/echo -e "$dmrc" > "$HOME"/.dmrc - - # set possible local guest session preferences - if [ -f /etc/guest-session/prefs.sh ]; then - . /etc/guest-session/prefs.sh + else + cp -rT /etc/skel/ ${HOME} + cp -rT ${dist_gs}/skel/ ${HOME} + chown -R ${USER}:${USER} ${HOME} fi - chown -R $USER:$USER "$HOME" + usermod -d ${HOME} ${USER} + + # setup session + su ${USER} -c "env HOME=${HOME} site_gs=${site_gs} ${dist_gs}/setup.sh" - echo $USER + echo ${USER} } remove_account () { - GUEST_USER=$1 + GUEST_USER=${1} - PWENT=`getent passwd "$GUEST_USER"` || { - echo "Error: invalid user $GUEST_USER" + PWENT=$(getent passwd ${GUEST_USER}) || { + echo "Error: invalid user ${GUEST_USER}" exit 1 } - GUEST_UID=`echo "$PWENT" | cut -f3 -d:` - GUEST_HOME=`echo "$PWENT" | cut -f6 -d:` + GUEST_UID=$(echo ${PWENT} | cut -f3 -d:) + GUEST_HOME=$(echo ${PWENT} | cut -f6 -d:) - if [ "$GUEST_UID" -ge 500 ]; then - echo "Error: user $GUEST_USER is not a system user." + if [ ${GUEST_UID} -ge 500 ]; then + echo "Error: user ${GUEST_USER} is not a system user." exit 1 fi - if [ "${GUEST_HOME}" = "${GUEST_HOME#/tmp/}" ]; then - echo "Error: home directory $GUEST_HOME is not in /tmp/." + if [ ${GUEST_HOME} = ${GUEST_HOME#/tmp/} ]; then + echo "Error: home directory ${GUEST_HOME} is not in /tmp/." exit 1 fi # kill all remaining processes - while ps h -u "$GUEST_USER" >/dev/null; do - killall -9 -u "$GUEST_USER" || true + while ps h -u ${GUEST_USER} >/dev/null; do + killall -9 -u ${GUEST_USER} || true sleep 0.2; done - umount "$GUEST_HOME" || umount -l "$GUEST_HOME" || true - rm -rf "$GUEST_HOME" + umount ${GUEST_HOME} || umount -l ${GUEST_HOME} || true # BindFS mount + umount ${GUEST_HOME} || umount -l ${GUEST_HOME} || true # union mount + umount ${GUEST_HOME} || umount -l ${GUEST_HOME} || true # tmpfs mount + rm -rf ${GUEST_HOME} # remove leftovers in /tmp - find /tmp -mindepth 1 -maxdepth 1 -uid "$GUEST_UID" -print0 | xargs -0 rm -rf || true + find /tmp -mindepth 1 -maxdepth 1 -uid ${GUEST_UID} -print0 | xargs -0 rm -rf || true # remove possible /media/guest-XXXXXX folder - if [ -d /media/"$GUEST_USER" ]; then - for dir in $( find /media/"$GUEST_USER" -mindepth 1 -maxdepth 1 ); do - umount "$dir" || true + if [ -d /media/${GUEST_USER} ]; then + for dir in $(find /media/${GUEST_USER} -mindepth 1 -maxdepth 1); do + umount ${dir} || true done - rmdir /media/"$GUEST_USER" || true + + rmdir /media/${GUEST_USER} || true fi - deluser --system "$GUEST_USER" + deluser --system ${GUEST_USER} } -case "$1" in +case ${1} in add) add_account ;; remove) - if [ -z $2 ] ; then - echo "Usage: $0 remove [account]" + if [ -z ${2} ] ; then + echo "Usage: ${0} remove [account]" exit 1 fi - remove_account $2 + remove_account ${2} ;; *) - echo "Usage: $0 add|remove" + echo "Usage: ${0} add|remove" exit 1 esac diff --git a/debian/guest-session-setup.sh b/debian/guest-session-setup.sh new file mode 100644 index 00000000..9e1300db --- /dev/null +++ b/debian/guest-session-setup.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +HOME=${HOME:-$(getent passwd $(whoami) | cut -f6 -d:)} +site_gs=${site_gs:-/etc/guest-session} + +# disable some services that are unnecessary for the guest session +services="jockey-kde.desktop jockey-gtk.desktop update-notifier.desktop user-dirs-update-gtk.desktop" + +for service in ${services}; do + if [ -e /etc/xdg/autostart/${service} ]; then + [ -f ${HOME}/.config/autostart/${service} ] || cp /etc/xdg/autostart/${service} ${HOME}/.config/autostart + echo "X-GNOME-Autostart-enabled=false" >> ${HOME}/.config/autostart/${service} + fi +done + +# disable Unity shortcut hint +[ -d ${HOME}/.cache/unity ] || mkdir -p ${HOME}/.cache/unity +touch ${HOME}/.cache/unity/first_run.stamp + +[ -d ${HOME}/.kde/share/config ] || mkdir -p ${HOME}/.kde/share/config +echo "[Basic Settings]" >> ${HOME}/.kde/share/config/nepomukserverrc +echo "Start Nepomuk=false" >> ${HOME}/.kde/share/config/nepomukserverrc + +echo "[Event]" >> ${HOME}/.kde/share/config/notificationhelper +echo "hideHookNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper +echo "hideInstallNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper +echo "hideRestartNotifier=true" >> ${HOME}/.kde/share/config/notificationhelper + +# Load restricted session +#dmrc='[Desktop]\nSession=guest-restricted' +#/bin/echo -e ${dmrc} > ${HOME}/.dmrc + +# set possible local guest session preferences +[ -f ${site_gs}/prefs.sh ] && . ${site_gs}/prefs.sh diff --git a/debian/guest-session-startup.desktop b/debian/guest-session-startup.desktop new file mode 100644 index 00000000..676d72e6 --- /dev/null +++ b/debian/guest-session-startup.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Name=Custom startup commands for LightDM guest session +Type=Application +NoDisplay=true +Exec=/usr/lib/lightdm/guest-session-auto.sh diff --git a/debian/guest-session.profile b/debian/guest-session.profile new file mode 100644 index 00000000..38d441c9 --- /dev/null +++ b/debian/guest-session.profile @@ -0,0 +1 @@ +DIALOG_SLEEP=4 diff --git a/debian/lightdm.install b/debian/lightdm.install index 53becd25..01ce61ac 100644 --- a/debian/lightdm.install +++ b/debian/lightdm.install @@ -12,6 +12,7 @@ etc/apparmor.d debian/lightdm-session usr/sbin debian/config-error-dialog.sh usr/lib/lightdm debian/guest-session-auto.sh usr/lib/lightdm +debian/guest-session-startup.desktop usr/share/lightdm/guest-session/skel/.config/autostart debian/lightdm-greeter-session usr/lib/lightdm debian/source_lightdm.py usr/share/apport/package-hooks debian/50-xserver-command.conf usr/share/lightdm/lightdm.conf.d diff --git a/debian/patches/series b/debian/patches/series index d3ba2550..7f14c0ad 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 04_language_handling.patch 05_translate_debian_files.patch autologin-session-workaround.patch +xorg-1.17.patch diff --git a/debian/patches/xorg-1.17.patch b/debian/patches/xorg-1.17.patch new file mode 100644 index 00000000..9f7ecfd2 --- /dev/null +++ b/debian/patches/xorg-1.17.patch @@ -0,0 +1,26 @@ +Description: The X.org X server 1.17 doesn't listen on TCP by default, we need to pass -listen to enable it +Author: Robert Ancell <robert.ancell@canonical.com> +Bug: https://bugs.launchpad.net/bugs/1449282 + +=== modified file 'src/x-server-local.c' +Index: 1.16/src/x-server-local.c +=================================================================== +--- 1.16.orig/src/x-server-local.c ++++ 1.16/src/x-server-local.c +@@ -477,6 +477,7 @@ x_server_local_start (DisplayServer *dis + /* Connect to a remote server using XDMCP */ + if (server->priv->xdmcp_server != NULL) + { ++ g_string_append (command, " -listen tcp"); + if (server->priv->xdmcp_port != 0) + g_string_append_printf (command, " -port %d", server->priv->xdmcp_port); + g_string_append_printf (command, " -query %s", server->priv->xdmcp_server); +@@ -485,6 +486,8 @@ x_server_local_start (DisplayServer *dis + } + else if (!server->priv->allow_tcp) + g_string_append (command, " -nolisten tcp"); ++ else ++ g_string_append (command, " -listen tcp"); + + if (server->priv->vt >= 0) + g_string_append_printf (command, " vt%d -novtswitch", server->priv->vt); diff --git a/debian/po/af.po b/debian/po/af.po index 322ba5e6..4b4383a6 100644 --- a/debian/po/af.po +++ b/debian/po/af.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/am.po b/debian/po/am.po index 28f38a1f..c7f4a3a5 100644 --- a/debian/po/am.po +++ b/debian/po/am.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/an.po b/debian/po/an.po index 8e161b74..37324a82 100644 --- a/debian/po/an.po +++ b/debian/po/an.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ar.po b/debian/po/ar.po index fbebcbdb..13ff227c 100644 --- a/debian/po/ar.po +++ b/debian/po/ar.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ast.po b/debian/po/ast.po index af51fd73..15d94659 100644 --- a/debian/po/ast.po +++ b/debian/po/ast.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/az.po b/debian/po/az.po index 6e42a4f4..978c9a29 100644 --- a/debian/po/az.po +++ b/debian/po/az.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/be.po b/debian/po/be.po index bc349981..a698d7df 100644 --- a/debian/po/be.po +++ b/debian/po/be.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/bg.po b/debian/po/bg.po index e1b4d536..7032f784 100644 --- a/debian/po/bg.po +++ b/debian/po/bg.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/bn.po b/debian/po/bn.po index 6df0aa99..c2483039 100644 --- a/debian/po/bn.po +++ b/debian/po/bn.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/bo.po b/debian/po/bo.po index 8c361d57..eaf0ef52 100644 --- a/debian/po/bo.po +++ b/debian/po/bo.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/br.po b/debian/po/br.po index c0aa2c1a..8ecdbc08 100644 --- a/debian/po/br.po +++ b/debian/po/br.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/bs.po b/debian/po/bs.po index b6a648f3..3abde833 100644 --- a/debian/po/bs.po +++ b/debian/po/bs.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ca.po b/debian/po/ca.po index c9caae15..fe55a727 100644 --- a/debian/po/ca.po +++ b/debian/po/ca.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ca@valencia.po b/debian/po/ca@valencia.po index e2c3d711..b7416f8f 100644 --- a/debian/po/ca@valencia.po +++ b/debian/po/ca@valencia.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ce.po b/debian/po/ce.po index 26f7be6f..036f291f 100644 --- a/debian/po/ce.po +++ b/debian/po/ce.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ckb.po b/debian/po/ckb.po index 51ce6680..ddbea225 100644 --- a/debian/po/ckb.po +++ b/debian/po/ckb.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/cs.po b/debian/po/cs.po index 4d40b82f..4f01c06d 100644 --- a/debian/po/cs.po +++ b/debian/po/cs.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/cy.po b/debian/po/cy.po index 8e1aea31..25de143d 100644 --- a/debian/po/cy.po +++ b/debian/po/cy.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/da.po b/debian/po/da.po index 2097ea26..16a02611 100644 --- a/debian/po/da.po +++ b/debian/po/da.po @@ -15,8 +15,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/de.po b/debian/po/de.po index 88b99b47..e52bd4b5 100644 --- a/debian/po/de.po +++ b/debian/po/de.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/el.po b/debian/po/el.po index cdd0cbdb..26e5aa7a 100644 --- a/debian/po/el.po +++ b/debian/po/el.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/en_AU.po b/debian/po/en_AU.po index 246c89ac..678dbf5c 100644 --- a/debian/po/en_AU.po +++ b/debian/po/en_AU.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/en_CA.po b/debian/po/en_CA.po index f7b56336..b3553b26 100644 --- a/debian/po/en_CA.po +++ b/debian/po/en_CA.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/en_GB.po b/debian/po/en_GB.po index c13ff48b..b34ef9fe 100644 --- a/debian/po/en_GB.po +++ b/debian/po/en_GB.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/eo.po b/debian/po/eo.po index ef246bca..632cf1e8 100644 --- a/debian/po/eo.po +++ b/debian/po/eo.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/es.po b/debian/po/es.po index dc509f08..d15d8763 100644 --- a/debian/po/es.po +++ b/debian/po/es.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/et.po b/debian/po/et.po index 0a1a58e6..d3677eb8 100644 --- a/debian/po/et.po +++ b/debian/po/et.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/eu.po b/debian/po/eu.po index 8a3d3900..3fcefd17 100644 --- a/debian/po/eu.po +++ b/debian/po/eu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/fa.po b/debian/po/fa.po index a2aaf59c..b072b22b 100644 --- a/debian/po/fa.po +++ b/debian/po/fa.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/fi.po b/debian/po/fi.po index 4f1c5f14..b7cb7b80 100644 --- a/debian/po/fi.po +++ b/debian/po/fi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/fo.po b/debian/po/fo.po index 46a35762..a3e88228 100644 --- a/debian/po/fo.po +++ b/debian/po/fo.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/fr.po b/debian/po/fr.po index 55c2439c..d3b4b8ac 100644 --- a/debian/po/fr.po +++ b/debian/po/fr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/fr_CA.po b/debian/po/fr_CA.po index 50bf3eff..2c0d0050 100644 --- a/debian/po/fr_CA.po +++ b/debian/po/fr_CA.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/fy.po b/debian/po/fy.po index 75da8a35..fe0ede4c 100644 --- a/debian/po/fy.po +++ b/debian/po/fy.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ga.po b/debian/po/ga.po index 4c50a0f3..b9360263 100644 --- a/debian/po/ga.po +++ b/debian/po/ga.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/gd.po b/debian/po/gd.po index 0439ad15..72873884 100644 --- a/debian/po/gd.po +++ b/debian/po/gd.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/gl.po b/debian/po/gl.po index c5bfe390..f66e76ab 100644 --- a/debian/po/gl.po +++ b/debian/po/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/gu.po b/debian/po/gu.po index 9d5d93e5..9e33a6a2 100644 --- a/debian/po/gu.po +++ b/debian/po/gu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/he.po b/debian/po/he.po index 65e57432..f826c3a4 100644 --- a/debian/po/he.po +++ b/debian/po/he.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/hi.po b/debian/po/hi.po index ee4511ec..68b838d4 100644 --- a/debian/po/hi.po +++ b/debian/po/hi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/hr.po b/debian/po/hr.po index 7e3b58a9..ac067545 100644 --- a/debian/po/hr.po +++ b/debian/po/hr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ht.po b/debian/po/ht.po index e514c77a..e5ab3787 100644 --- a/debian/po/ht.po +++ b/debian/po/ht.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/hu.po b/debian/po/hu.po index f944a654..44ac2025 100644 --- a/debian/po/hu.po +++ b/debian/po/hu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/hy.po b/debian/po/hy.po index 3d45cbd6..9521e9c7 100644 --- a/debian/po/hy.po +++ b/debian/po/hy.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ia.po b/debian/po/ia.po index e296ed4b..f5c74dfd 100644 --- a/debian/po/ia.po +++ b/debian/po/ia.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/id.po b/debian/po/id.po index f3b5c342..be7ca443 100644 --- a/debian/po/id.po +++ b/debian/po/id.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/is.po b/debian/po/is.po index d7dc1e82..201293b2 100644 --- a/debian/po/is.po +++ b/debian/po/is.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/it.po b/debian/po/it.po index 7646b572..3ba671e3 100644 --- a/debian/po/it.po +++ b/debian/po/it.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ja.po b/debian/po/ja.po index 21622dbc..070b4f6d 100644 --- a/debian/po/ja.po +++ b/debian/po/ja.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/kk.po b/debian/po/kk.po index dd4831e7..eed2b214 100644 --- a/debian/po/kk.po +++ b/debian/po/kk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/kl.po b/debian/po/kl.po index f062aae2..8e4b90af 100644 --- a/debian/po/kl.po +++ b/debian/po/kl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/km.po b/debian/po/km.po index 0290f642..aaa87fef 100644 --- a/debian/po/km.po +++ b/debian/po/km.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/kn.po b/debian/po/kn.po index 321f973e..aa4e8aaf 100644 --- a/debian/po/kn.po +++ b/debian/po/kn.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ko.po b/debian/po/ko.po index 1b2b798c..9ecd974a 100644 --- a/debian/po/ko.po +++ b/debian/po/ko.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ku.po b/debian/po/ku.po index a15c8fac..7584b2e0 100644 --- a/debian/po/ku.po +++ b/debian/po/ku.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/lb.po b/debian/po/lb.po index 560b8341..d69962d9 100644 --- a/debian/po/lb.po +++ b/debian/po/lb.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/lt.po b/debian/po/lt.po index b9077850..4faae6d3 100644 --- a/debian/po/lt.po +++ b/debian/po/lt.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/lv.po b/debian/po/lv.po index a5ab06b3..4702ba00 100644 --- a/debian/po/lv.po +++ b/debian/po/lv.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/mhr.po b/debian/po/mhr.po index 9ccca723..7aa0000f 100644 --- a/debian/po/mhr.po +++ b/debian/po/mhr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/mi.po b/debian/po/mi.po index 103d53fe..ca4d7dfd 100644 --- a/debian/po/mi.po +++ b/debian/po/mi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ml.po b/debian/po/ml.po index 010a85b3..1c5b5d6a 100644 --- a/debian/po/ml.po +++ b/debian/po/ml.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/mr.po b/debian/po/mr.po index bf1e0912..f0be3099 100644 --- a/debian/po/mr.po +++ b/debian/po/mr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ms.po b/debian/po/ms.po index 6312dd20..1ac1759f 100644 --- a/debian/po/ms.po +++ b/debian/po/ms.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/my.po b/debian/po/my.po index 944bb7f8..3a3debd2 100644 --- a/debian/po/my.po +++ b/debian/po/my.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/nb.po b/debian/po/nb.po index a73b1203..f47e8a2a 100644 --- a/debian/po/nb.po +++ b/debian/po/nb.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/nl.po b/debian/po/nl.po index d873779d..a8ef677f 100644 --- a/debian/po/nl.po +++ b/debian/po/nl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/nn.po b/debian/po/nn.po index e790bfb9..be820fbe 100644 --- a/debian/po/nn.po +++ b/debian/po/nn.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/oc.po b/debian/po/oc.po index badeaac1..0653e574 100644 --- a/debian/po/oc.po +++ b/debian/po/oc.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/pa.po b/debian/po/pa.po index 13b452b6..9b259d38 100644 --- a/debian/po/pa.po +++ b/debian/po/pa.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/pl.po b/debian/po/pl.po index b8e89a9f..98f58c7e 100644 --- a/debian/po/pl.po +++ b/debian/po/pl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/pt.po b/debian/po/pt.po index d1869fb3..15e21075 100644 --- a/debian/po/pt.po +++ b/debian/po/pt.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po index 0f89bb86..6433cfc8 100644 --- a/debian/po/pt_BR.po +++ b/debian/po/pt_BR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ro.po b/debian/po/ro.po index f7fd8118..4a40f527 100644 --- a/debian/po/ro.po +++ b/debian/po/ro.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ru.po b/debian/po/ru.po index d692b1ea..a9ff6aad 100644 --- a/debian/po/ru.po +++ b/debian/po/ru.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/sc.po b/debian/po/sc.po index 4d3a85b4..853c86c3 100644 --- a/debian/po/sc.po +++ b/debian/po/sc.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/sd.po b/debian/po/sd.po index 8ed94234..9f07fcbe 100644 --- a/debian/po/sd.po +++ b/debian/po/sd.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/shn.po b/debian/po/shn.po index 94d249e9..69e3a9dc 100644 --- a/debian/po/shn.po +++ b/debian/po/shn.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/si.po b/debian/po/si.po index fada85db..8b8fbdb6 100644 --- a/debian/po/si.po +++ b/debian/po/si.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/sk.po b/debian/po/sk.po index 4e16b2be..470a55a5 100644 --- a/debian/po/sk.po +++ b/debian/po/sk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/sl.po b/debian/po/sl.po index bfeeee7c..70860dd0 100644 --- a/debian/po/sl.po +++ b/debian/po/sl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/sq.po b/debian/po/sq.po index 23d3d5f9..86d47a65 100644 --- a/debian/po/sq.po +++ b/debian/po/sq.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/sr.po b/debian/po/sr.po index 5af216fe..adec62d5 100644 --- a/debian/po/sr.po +++ b/debian/po/sr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:24+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" "Language: sr\n" #. Type: select diff --git a/debian/po/sv.po b/debian/po/sv.po index 681878be..9d13accf 100644 --- a/debian/po/sv.po +++ b/debian/po/sv.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ta.po b/debian/po/ta.po index 2d3286d1..9e2a094e 100644 --- a/debian/po/ta.po +++ b/debian/po/ta.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/te.po b/debian/po/te.po index 1829912e..27373db1 100644 --- a/debian/po/te.po +++ b/debian/po/te.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/tg.po b/debian/po/tg.po index b0d497b8..3354ebbc 100644 --- a/debian/po/tg.po +++ b/debian/po/tg.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/th.po b/debian/po/th.po index 065628d7..ca3161ab 100644 --- a/debian/po/th.po +++ b/debian/po/th.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/tl.po b/debian/po/tl.po index 9981de00..3b0fff82 100644 --- a/debian/po/tl.po +++ b/debian/po/tl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/tr.po b/debian/po/tr.po index c8911c70..a7fb9f22 100644 --- a/debian/po/tr.po +++ b/debian/po/tr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ug.po b/debian/po/ug.po index 5224aa2b..3612470c 100644 --- a/debian/po/ug.po +++ b/debian/po/ug.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/uk.po b/debian/po/uk.po index d3be1a4e..7b7ecc34 100644 --- a/debian/po/uk.po +++ b/debian/po/uk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/ur.po b/debian/po/ur.po index 5208615d..cf3c941f 100644 --- a/debian/po/ur.po +++ b/debian/po/ur.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/uz.po b/debian/po/uz.po index 9ce04ba8..08b71f8a 100644 --- a/debian/po/uz.po +++ b/debian/po/uz.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/vi.po b/debian/po/vi.po index 2fdfed6c..84cabd29 100644 --- a/debian/po/vi.po +++ b/debian/po/vi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/wae.po b/debian/po/wae.po index 7d238654..4a53215a 100644 --- a/debian/po/wae.po +++ b/debian/po/wae.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/zh_CN.po b/debian/po/zh_CN.po index 2502d1a7..7a10fa26 100644 --- a/debian/po/zh_CN.po +++ b/debian/po/zh_CN.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/zh_HK.po b/debian/po/zh_HK.po index c7757aa2..1ad69526 100644 --- a/debian/po/zh_HK.po +++ b/debian/po/zh_HK.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/po/zh_TW.po b/debian/po/zh_TW.po index 4dcb12e1..026f0904 100644 --- a/debian/po/zh_TW.po +++ b/debian/po/zh_TW.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2015-10-05 05:25+0000\n" -"X-Generator: Launchpad (build 17783)\n" +"X-Launchpad-Export-Date: 2015-10-18 05:17+0000\n" +"X-Generator: Launchpad (build 17812)\n" #. Type: select #. Description diff --git a/debian/rules b/debian/rules index d4ee0c17..921ca716 100755 --- a/debian/rules +++ b/debian/rules @@ -27,6 +27,8 @@ override_dh_install: # 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 + install -D -m 755 debian/guest-session-setup.sh debian/lightdm/usr/share/lightdm/guest-session/setup.sh + install -D debian/guest-session.profile debian/lightdm/usr/share/lightdm/guest-session/skel/.profile chmod +x debian/lightdm/usr/lib/lightdm/lightdm-greeter-session chmod +x debian/lightdm/usr/lib/lightdm/guest-session-auto.sh diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c index bcddf154..e507b654 100644 --- a/liblightdm-gobject/greeter.c +++ b/liblightdm-gobject/greeter.c @@ -1952,8 +1952,7 @@ request_finalize (GObject *object) Request *request = REQUEST (object); g_free (request->dir); - if (request->cancellable) - g_object_unref (request->cancellable); + g_clear_object (&request->cancellable); G_OBJECT_CLASS (request_parent_class)->finalize (object); } diff --git a/src/accounts.c b/src/accounts.c index d4d54a2e..77cfdf5e 100644 --- a/src/accounts.c +++ b/src/accounts.c @@ -122,17 +122,13 @@ user_init (User *user) } static void -user_dispose (GObject *object) +user_finalize (GObject *object) { - User *self; + User *self = USER (object); - self = USER (object); + g_clear_object (&self->priv->common_user); - if (self->priv->common_user) - g_object_unref (self->priv->common_user); - self->priv->common_user = NULL; - - G_OBJECT_CLASS (user_parent_class)->dispose (object); + G_OBJECT_CLASS (user_parent_class)->finalize (object); } static void @@ -140,7 +136,7 @@ user_class_init (UserClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - object_class->dispose = user_dispose; + object_class->finalize = user_finalize; g_type_class_add_private (klass, sizeof (UserPrivate)); } diff --git a/src/display-manager.c b/src/display-manager.c index b683fdaa..af9f43a4 100644 --- a/src/display-manager.c +++ b/src/display-manager.c @@ -170,11 +170,9 @@ display_manager_init (DisplayManager *manager) static void display_manager_finalize (GObject *object) { - DisplayManager *self; + DisplayManager *self = DISPLAY_MANAGER (object); GList *link; - self = DISPLAY_MANAGER (object); - for (link = self->priv->seats; link; link = link->next) { Seat *seat = link->data; diff --git a/src/display-server.c b/src/display-server.c index 336a6eed..7821b6ab 100644 --- a/src/display-server.c +++ b/src/display-server.c @@ -154,9 +154,7 @@ display_server_init (DisplayServer *server) static void display_server_finalize (GObject *object) { - DisplayServer *self; - - self = DISPLAY_SERVER (object); + DisplayServer *self = DISPLAY_SERVER (object); g_free (self->priv->name); diff --git a/src/greeter.c b/src/greeter.c index b9f4f55a..db52a43d 100644 --- a/src/greeter.c +++ b/src/greeter.c @@ -412,8 +412,7 @@ reset_session (Greeter *greeter) { g_signal_handlers_disconnect_matched (greeter->priv->authentication_session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, greeter); session_stop (greeter->priv->authentication_session); - g_object_unref (greeter->priv->authentication_session); - greeter->priv->authentication_session = NULL; + g_clear_object (&greeter->priv->authentication_session); } greeter->priv->guest_account_authenticated = FALSE; @@ -1043,9 +1042,7 @@ greeter_init (Greeter *greeter) static void greeter_finalize (GObject *object) { - Greeter *self; - - self = GREETER (object); + Greeter *self = GREETER (object); g_free (self->priv->pam_service); g_free (self->priv->autologin_pam_service); diff --git a/src/lightdm.c b/src/lightdm.c index 72f7eb0c..d9ec9aff 100644 --- a/src/lightdm.c +++ b/src/lightdm.c @@ -1539,8 +1539,7 @@ main (int argc, char **argv) common_user_list_cleanup (); /* Clean up display manager */ - g_object_unref (display_manager); - display_manager = NULL; + g_clear_object (&display_manager); /* Remove D-Bus interface */ g_dbus_connection_unregister_object (bus, reg_id); diff --git a/src/login1.c b/src/login1.c index af8e8a8e..dc60a492 100644 --- a/src/login1.c +++ b/src/login1.c @@ -450,7 +450,7 @@ login1_service_finalize (GObject *object) g_list_free_full (self->priv->seats, g_object_unref); g_dbus_connection_signal_unsubscribe (self->priv->connection, self->priv->signal_id); - g_object_unref (self->priv->connection); + g_clear_object (&self->priv->connection); G_OBJECT_CLASS (login1_service_parent_class)->finalize (object); } diff --git a/src/mir-server.c b/src/mir-server.c index 36e0e770..303f3d56 100644 --- a/src/mir-server.c +++ b/src/mir-server.c @@ -99,13 +99,11 @@ mir_server_init (MirServer *server) static void mir_server_finalize (GObject *object) { - MirServer *server; - - server = MIR_SERVER (object); + MirServer *self = MIR_SERVER (object); - if (server->priv->vt > 0) - vt_unref (server->priv->vt); - g_free (server->priv->parent_socket); + if (self->priv->vt > 0) + vt_unref (self->priv->vt); + g_free (self->priv->parent_socket); G_OBJECT_CLASS (mir_server_parent_class)->finalize (object); } diff --git a/src/process.c b/src/process.c index 50c0a9b0..ebd12743 100644 --- a/src/process.c +++ b/src/process.c @@ -359,9 +359,7 @@ process_stopped (Process *process) static void process_finalize (GObject *object) { - Process *self; - - self = PROCESS (object); + Process *self = PROCESS (object); if (self->priv->pid > 0) g_hash_table_remove (processes, GINT_TO_POINTER (self->priv->pid)); diff --git a/src/seat-unity.c b/src/seat-unity.c index 642be0aa..409c0a46 100644 --- a/src/seat-unity.c +++ b/src/seat-unity.c @@ -140,8 +140,7 @@ compositor_stopped_cb (UnitySystemCompositor *compositor, SeatUnity *seat) { l_debug (seat, "Compositor stopped"); - g_object_unref (seat->priv->compositor); - seat->priv->compositor = NULL; + g_clear_object (&seat->priv->compositor); if (seat_get_is_stopping (SEAT (seat))) check_stopped (seat); @@ -421,17 +420,14 @@ seat_unity_finalize (GObject *object) { SeatUnity *seat = SEAT_UNITY (object); - if (seat->priv->compositor) - g_object_unref (seat->priv->compositor); + g_clear_object (&seat->priv->compositor); if (seat->priv->xdmcp_x_server) { g_signal_handlers_disconnect_matched (seat->priv->xdmcp_x_server, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, seat); g_object_unref (seat->priv->xdmcp_x_server); } - if (seat->priv->active_session) - g_object_unref (seat->priv->active_session); - if (seat->priv->active_display_server) - g_object_unref (seat->priv->active_display_server); + g_clear_object (&seat->priv->active_session); + g_clear_object (&seat->priv->active_display_server); G_OBJECT_CLASS (seat_unity_parent_class)->finalize (object); } diff --git a/src/seat-xdmcp-session.c b/src/seat-xdmcp-session.c index 7621a97b..41998279 100644 --- a/src/seat-xdmcp-session.c +++ b/src/seat-xdmcp-session.c @@ -60,11 +60,9 @@ seat_xdmcp_session_init (SeatXDMCPSession *seat) static void seat_xdmcp_session_finalize (GObject *object) { - SeatXDMCPSession *self; + SeatXDMCPSession *self = SEAT_XDMCP_SESSION (object); - self = SEAT_XDMCP_SESSION (object); - - g_object_unref (self->priv->session); + g_clear_object (&self->priv->session); G_OBJECT_CLASS (seat_xdmcp_session_parent_class)->finalize (object); } diff --git a/src/seat-xvnc.c b/src/seat-xvnc.c index 00f5f693..93e0e13f 100644 --- a/src/seat-xvnc.c +++ b/src/seat-xvnc.c @@ -101,11 +101,9 @@ seat_xvnc_init (SeatXVNC *seat) static void seat_xdmcp_session_finalize (GObject *object) { - SeatXVNC *self; + SeatXVNC *self = SEAT_XVNC (object); - self = SEAT_XVNC (object); - - g_object_unref (self->priv->connection); + g_clear_object (&self->priv->connection); G_OBJECT_CLASS (seat_xvnc_parent_class)->finalize (object); } @@ -65,6 +65,9 @@ struct SeatPrivate /* TRUE if stopped */ gboolean stopped; + + /* The greeter to be started to replace the current one */ + Greeter *replacement_greeter; }; static void seat_logger_iface_init (LoggerInterface *iface); @@ -244,14 +247,11 @@ seat_set_active_session (Seat *seat, Session *session) } /* Lock previous sessions */ - if (seat->priv->active_session) - { - if (session != seat->priv->active_session && !IS_GREETER (seat->priv->active_session)) - session_lock (seat->priv->active_session); - g_object_unref (seat->priv->active_session); - } + if (seat->priv->active_session && session != seat->priv->active_session && !IS_GREETER (seat->priv->active_session)) + session_lock (seat->priv->active_session); session_activate (session); + g_clear_object (&seat->priv->active_session); seat->priv->active_session = g_object_ref (session); } @@ -297,8 +297,7 @@ void seat_set_externally_activated_session (Seat *seat, Session *session) { g_return_if_fail (seat != NULL); - if (seat->priv->active_session) - g_object_unref (seat->priv->active_session); + g_clear_object (&seat->priv->active_session); seat->priv->active_session = g_object_ref (session); } @@ -565,8 +564,7 @@ switch_to_greeter_from_failed_session (Seat *seat, Session *session) } else { - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (greeter_session); if (can_share_display_server (seat, session_get_display_server (session))) @@ -651,8 +649,7 @@ run_session (Seat *seat, Session *session) if (session == seat->priv->session_to_activate) { seat_set_active_session (seat, session); - g_object_unref (seat->priv->session_to_activate); - seat->priv->session_to_activate = NULL; + g_clear_object (&seat->priv->session_to_activate); } else if (seat->priv->active_session) { @@ -696,8 +693,7 @@ greeter_active_username_changed_cb (Greeter *greeter, GParamSpec *pspec, Seat *s session = find_user_session (seat, greeter_get_active_username (greeter), seat->priv->active_session); - if (seat->priv->next_session) - g_object_unref (seat->priv->next_session); + g_clear_object (&seat->priv->next_session); seat->priv->next_session = session ? g_object_ref (session) : NULL; SEAT_GET_CLASS (seat)->set_next_session (seat, session); @@ -745,20 +741,11 @@ session_stopped_cb (Session *session, Seat *seat) g_signal_handlers_disconnect_matched (session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, seat); seat->priv->sessions = g_list_remove (seat->priv->sessions, session); if (session == seat->priv->active_session) - { - g_object_unref (seat->priv->active_session); - seat->priv->active_session = NULL; - } + g_clear_object (&seat->priv->active_session); if (session == seat->priv->next_session) - { - g_object_unref (seat->priv->next_session); - seat->priv->next_session = NULL; - } + g_clear_object (&seat->priv->next_session); if (session == seat->priv->session_to_activate) - { - g_object_unref (seat->priv->session_to_activate); - seat->priv->session_to_activate = NULL; - } + g_clear_object (&seat->priv->session_to_activate); display_server = session_get_display_server (session); if (!display_server) @@ -779,10 +766,7 @@ session_stopped_cb (Session *session, Seat *seat) /* We were waiting for this session, but it didn't start :( */ // FIXME: Start a greeter on this? if (session == seat->priv->session_to_activate) - { - g_object_unref (seat->priv->session_to_activate); - seat->priv->session_to_activate = NULL; - } + g_clear_object (&seat->priv->session_to_activate); if (seat->priv->stopping) { @@ -790,9 +774,28 @@ session_stopped_cb (Session *session, Seat *seat) g_object_unref (session); return; } + + /* If there is a pending replacement greeter, start it */ + if (IS_GREETER (session) && seat->priv->replacement_greeter) + { + Greeter *replacement_greeter = seat->priv->replacement_greeter; + seat->priv->replacement_greeter = NULL; + + if (session_get_is_authenticated (SESSION (replacement_greeter))) + { + l_debug (seat, "Greeter stopped, running session"); + run_session (seat, SESSION (replacement_greeter)); + } + else + { + l_debug (seat, "Greeter stopped, starting session authentication"); + start_session (seat, SESSION (replacement_greeter)); + } + g_object_unref (replacement_greeter); + } /* If this is the greeter session then re-use this display server */ - if (IS_GREETER (session) && + else if (IS_GREETER (session) && can_share_display_server (seat, display_server) && greeter_get_start_session (GREETER (session))) { @@ -1200,8 +1203,7 @@ greeter_start_session_cb (Greeter *greeter, SessionType type, const gchar *sessi } /* Switch to this session when it is ready */ - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (session); /* Return to existing session if it is open */ @@ -1432,8 +1434,7 @@ seat_switch_to_greeter (Seat *seat) if (!greeter_session) return FALSE; - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (greeter_session); display_server = create_display_server (seat, SESSION (greeter_session)); @@ -1465,8 +1466,7 @@ switch_authentication_complete_cb (Session *session, Seat *seat) else { l_debug (seat, "Session authenticated, starting display server"); - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (session); display_server = create_display_server (seat, session); session_set_display_server (session, display_server); @@ -1504,8 +1504,7 @@ switch_authentication_complete_cb (Session *session, Seat *seat) } else { - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (greeter_session); display_server = create_display_server (seat, SESSION (greeter_session)); @@ -1581,8 +1580,7 @@ seat_switch_to_guest (Seat *seat, const gchar *session_name) display_server = create_display_server (seat, session); - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (session); session_set_pam_service (session, seat_get_string_property (seat, "pam-autologin-service")); session_set_display_server (session, display_server); @@ -1594,14 +1592,17 @@ gboolean seat_lock (Seat *seat, const gchar *username) { Greeter *greeter_session; - DisplayServer *display_server; - gboolean existing = FALSE; + DisplayServer *display_server = NULL; + gboolean reset_existing = FALSE; + gboolean reuse_xserver = FALSE; g_return_val_if_fail (seat != NULL, FALSE); if (!seat_get_can_switch (seat)) return FALSE; + // FIXME: If already locked then don't bother... + l_debug (seat, "Locking"); /* Switch to greeter we can reuse */ @@ -1610,10 +1611,23 @@ seat_lock (Seat *seat, const gchar *username) { l_debug (seat, "Switching to existing greeter"); set_greeter_hints (seat, greeter_session); - existing = TRUE; + reset_existing = TRUE; } else { + /* If the existing greeter can't be reused, stop it and reuse its display server */ + greeter_session = find_greeter_session (seat); + if (greeter_session) + { + display_server = session_get_display_server (SESSION (greeter_session)); + if (!session_get_is_stopping (SESSION (greeter_session))) + { + l_debug (seat, "Stopping session"); + session_stop (SESSION (greeter_session)); + } + reuse_xserver = TRUE; + } + greeter_session = create_greeter_session (seat); if (!greeter_session) return FALSE; @@ -1623,7 +1637,7 @@ seat_lock (Seat *seat, const gchar *username) if (username) greeter_set_hint (greeter_session, "select-user", username); - if (existing) + if (reset_existing) { greeter_reset (greeter_session); seat_set_active_session (seat, SESSION (greeter_session)); @@ -1631,14 +1645,21 @@ seat_lock (Seat *seat, const gchar *username) } else { - display_server = create_display_server (seat, SESSION (greeter_session)); + if (!reuse_xserver) + display_server = create_display_server (seat, SESSION (greeter_session)); + session_set_display_server (SESSION (greeter_session), display_server); - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (greeter_session); - session_set_display_server (SESSION (greeter_session), display_server); - return display_server_start (display_server); + if (reuse_xserver) + { + g_clear_object (&seat->priv->replacement_greeter); + seat->priv->replacement_greeter = g_object_ref (greeter_session); + return TRUE; + } + else + return display_server_start (display_server); } } @@ -1706,8 +1727,7 @@ seat_real_start (Seat *seat) { DisplayServer *display_server; - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (session); display_server = create_display_server (seat, session); @@ -1736,8 +1756,7 @@ seat_real_start (Seat *seat) return FALSE; } - if (seat->priv->session_to_activate) - g_object_unref (seat->priv->session_to_activate); + g_clear_object (&seat->priv->session_to_activate); seat->priv->session_to_activate = g_object_ref (greeter_session); session = SESSION (greeter_session); @@ -1852,11 +1871,9 @@ seat_init (Seat *seat) static void seat_finalize (GObject *object) { - Seat *self; + Seat *self = SEAT (object); GList *link; - self = SEAT (object); - g_free (self->priv->name); g_hash_table_unref (self->priv->properties); for (link = self->priv->display_servers; link; link = link->next) @@ -1871,12 +1888,10 @@ seat_finalize (GObject *object) g_signal_handlers_disconnect_matched (session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, self); } g_list_free_full (self->priv->sessions, g_object_unref); - if (self->priv->active_session) - g_object_unref (self->priv->active_session); - if (self->priv->next_session) - g_object_unref (self->priv->next_session); - if (self->priv->session_to_activate) - g_object_unref (self->priv->session_to_activate); + g_clear_object (&self->priv->active_session); + g_clear_object (&self->priv->next_session); + g_clear_object (&self->priv->session_to_activate); + g_clear_object (&self->priv->replacement_greeter); G_OBJECT_CLASS (seat_parent_class)->finalize (object); } diff --git a/src/session.c b/src/session.c index e25a69a5..f7f4ac09 100644 --- a/src/session.c +++ b/src/session.c @@ -135,8 +135,7 @@ session_set_config (Session *session, SessionConfig *config) { g_return_if_fail (session != NULL); - if (session->priv->config) - g_object_unref (session->priv->config); + g_clear_object (&session->priv->config); session->priv->config = g_object_ref (config); } @@ -246,11 +245,7 @@ void session_set_x_authority (Session *session, XAuthority *authority, gboolean use_system_location) { g_return_if_fail (session != NULL); - if (session->priv->x_authority) - { - g_object_unref (session->priv->x_authority); - session->priv->x_authority = NULL; - } + g_clear_object (&session->priv->x_authority); if (authority) session->priv->x_authority = g_object_ref (authority); session->priv->x_authority_use_system_location = use_system_location; @@ -484,9 +479,7 @@ from_child_cb (GIOChannel *source, GIOCondition condition, gpointer data) { g_free (session->priv->username); session->priv->username = username; - if (session->priv->user) - g_object_unref (session->priv->user); - session->priv->user = NULL; + g_clear_object (&session->priv->user); } else g_free (username); @@ -920,10 +913,8 @@ session_finalize (GObject *object) Session *self = SESSION (object); int i; - if (self->priv->config) - g_object_unref (self->priv->config); - if (self->priv->display_server) - g_object_unref (self->priv->display_server); + g_clear_object (&self->priv->config); + g_clear_object (&self->priv->display_server); if (self->priv->pid) kill (self->priv->pid, SIGKILL); close (self->priv->to_child_input); @@ -935,8 +926,7 @@ session_finalize (GObject *object) if (self->priv->child_watch) g_source_remove (self->priv->child_watch); g_free (self->priv->username); - if (self->priv->user) - g_object_unref (self->priv->user); + g_clear_object (&self->priv->user); g_free (self->priv->pam_service); for (i = 0; i < self->priv->messages_length; i++) g_free ((char *) self->priv->messages[i].msg); @@ -945,8 +935,7 @@ session_finalize (GObject *object) g_free (self->priv->log_filename); g_free (self->priv->tty); g_free (self->priv->xdisplay); - if (self->priv->x_authority) - g_object_unref (self->priv->x_authority); + g_clear_object (&self->priv->x_authority); g_free (self->priv->remote_host_name); g_free (self->priv->login1_session_id); g_free (self->priv->console_kit_cookie); diff --git a/src/shared-data-manager.c b/src/shared-data-manager.c index 47f1c10d..fd7427e3 100644 --- a/src/shared-data-manager.c +++ b/src/shared-data-manager.c @@ -49,11 +49,7 @@ shared_data_manager_get_instance (void) void shared_data_manager_cleanup (void) { - if (singleton) - { - g_object_unref (singleton); - singleton = NULL; - } + g_clear_object (&singleton); } static void @@ -245,22 +241,14 @@ shared_data_manager_init (SharedDataManager *manager) } static void -shared_data_manager_dispose (GObject *object) +shared_data_manager_finalize (GObject *object) { SharedDataManager *self = SHARED_DATA_MANAGER (object); - + /* Should also cancel outstanding GIO operations, but whatever, let them do their thing. */ g_signal_handlers_disconnect_by_data (common_user_list_get_instance (), self); - G_OBJECT_CLASS (shared_data_manager_parent_class)->dispose (object); -} - -static void -shared_data_manager_finalize (GObject *object) -{ - SharedDataManager *self = SHARED_DATA_MANAGER (object); - if (self->priv->starting_dirs) g_hash_table_destroy (self->priv->starting_dirs); @@ -274,7 +262,6 @@ shared_data_manager_class_init (SharedDataManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - object_class->dispose = shared_data_manager_dispose; object_class->finalize = shared_data_manager_finalize; g_type_class_add_private (klass, sizeof (SharedDataManagerPrivate)); diff --git a/src/unity-system-compositor.c b/src/unity-system-compositor.c index f4b74eb1..0b89d2c2 100644 --- a/src/unity-system-compositor.c +++ b/src/unity-system-compositor.c @@ -482,9 +482,7 @@ unity_system_compositor_init (UnitySystemCompositor *compositor) static void unity_system_compositor_finalize (GObject *object) { - UnitySystemCompositor *self; - - self = UNITY_SYSTEM_COMPOSITOR (object); + UnitySystemCompositor *self = UNITY_SYSTEM_COMPOSITOR (object); if (self->priv->process) { diff --git a/src/vnc-server.c b/src/vnc-server.c index d4e6e9d9..914a5ebd 100644 --- a/src/vnc-server.c +++ b/src/vnc-server.c @@ -179,15 +179,11 @@ vnc_server_init (VNCServer *server) static void vnc_server_finalize (GObject *object) { - VNCServer *self; - - self = VNC_SERVER (object); + VNCServer *self = VNC_SERVER (object); g_free (self->priv->listen_address); - if (self->priv->socket) - g_object_unref (self->priv->socket); - if (self->priv->socket6) - g_object_unref (self->priv->socket6); + g_clear_object (&self->priv->socket); + g_clear_object (&self->priv->socket6); G_OBJECT_CLASS (vnc_server_parent_class)->finalize (object); } diff --git a/src/wayland-session.c b/src/wayland-session.c index 19a50aa5..639893ea 100644 --- a/src/wayland-session.c +++ b/src/wayland-session.c @@ -81,9 +81,7 @@ wayland_session_init (WaylandSession *session) static void wayland_session_finalize (GObject *object) { - WaylandSession *self; - - self = WAYLAND_SESSION (object); + WaylandSession *self = WAYLAND_SESSION (object); if (self->priv->have_vt_ref) vt_unref (self->priv->vt); diff --git a/src/x-authority.c b/src/x-authority.c index 25f66438..6e08d12e 100644 --- a/src/x-authority.c +++ b/src/x-authority.c @@ -372,9 +372,7 @@ x_authority_init (XAuthority *auth) static void x_authority_finalize (GObject *object) { - XAuthority *self; - - self = X_AUTHORITY (object); + XAuthority *self = X_AUTHORITY (object); g_free (self->priv->address); g_free (self->priv->number); diff --git a/src/x-server-local.c b/src/x-server-local.c index caff9b46..dcbfbc0a 100644 --- a/src/x-server-local.c +++ b/src/x-server-local.c @@ -74,8 +74,65 @@ struct XServerLocalPrivate G_DEFINE_TYPE (XServerLocal, x_server_local, X_SERVER_TYPE); +static gchar *version = NULL; +static guint version_major = 0, version_minor = 0; static GList *display_numbers = NULL; +#define XORG_VERSION_PREFIX "X.Org X Server " + +static gchar * +find_version (const gchar *line) +{ + if (!g_str_has_prefix (line, XORG_VERSION_PREFIX)) + return NULL; + + return g_strdup (line + strlen (XORG_VERSION_PREFIX)); +} + +const gchar * +x_server_local_get_version (void) +{ + gchar *stderr_text; + gint exit_status; + gchar **tokens; + guint n_tokens; + + if (version) + return version; + + if (!g_spawn_command_line_sync ("X -version", NULL, &stderr_text, &exit_status, NULL)) + return NULL; + if (exit_status == EXIT_SUCCESS) + { + gchar **lines; + int i; + + lines = g_strsplit (stderr_text, "\n", -1); + for (i = 0; lines[i] && !version; i++) + version = find_version (lines[i]); + g_strfreev (lines); + } + g_free (stderr_text); + + tokens = g_strsplit (version, ".", 3); + n_tokens = g_strv_length (tokens); + version_major = n_tokens > 0 ? atoi (tokens[0]) : 0; + version_minor = n_tokens > 1 ? atoi (tokens[1]) : 0; + g_strfreev (tokens); + + return version; +} + +gint +x_server_local_version_compare (guint major, guint minor) +{ + x_server_local_get_version (); + if (major == version_major) + return version_minor - minor; + else + return version_major - major; +} + static gboolean display_number_in_use (guint display_number) { @@ -483,7 +540,12 @@ x_server_local_start (DisplayServer *display_server) if (server->priv->xdmcp_key) g_string_append_printf (command, " -cookie %s", server->priv->xdmcp_key); } - else if (!server->priv->allow_tcp) + else if (server->priv->allow_tcp) + { + if (x_server_local_version_compare (1, 17) >= 0) + g_string_append (command, " -listen tcp"); + } + else g_string_append (command, " -nolisten tcp"); if (server->priv->vt >= 0) @@ -548,9 +610,7 @@ x_server_local_init (XServerLocal *server) static void x_server_local_finalize (GObject *object) { - XServerLocal *self; - - self = X_SERVER_LOCAL (object); + XServerLocal *self = X_SERVER_LOCAL (object); if (self->priv->x_server_process) { diff --git a/src/x-server-local.h b/src/x-server-local.h index 7ed5732c..e20a86cd 100644 --- a/src/x-server-local.h +++ b/src/x-server-local.h @@ -33,6 +33,10 @@ typedef struct XServerClass parent_class; } XServerLocalClass; +const gchar *x_server_local_get_version (void); + +gint x_server_local_version_compare (guint major, guint minor); + guint x_server_local_get_unused_display_number (void); void x_server_local_release_display_number (guint display_number); diff --git a/src/x-server-xvnc.c b/src/x-server-xvnc.c index a48290e5..aea28177 100644 --- a/src/x-server-xvnc.c +++ b/src/x-server-xvnc.c @@ -158,8 +158,7 @@ stopped_cb (Process *process, XServerXVNC *server) { l_debug (server, "Xvnc server stopped"); - g_object_unref (server->priv->x_server_process); - server->priv->x_server_process = NULL; + g_clear_object (&server->priv->x_server_process); x_server_local_release_display_number (x_server_get_display_number (X_SERVER (server))); @@ -291,12 +290,9 @@ x_server_xvnc_init (XServerXVNC *server) static void x_server_xvnc_finalize (GObject *object) { - XServerXVNC *self; + XServerXVNC *self = X_SERVER_XVNC (object); - self = X_SERVER_XVNC (object); - - if (self->priv->x_server_process) - g_object_unref (self->priv->x_server_process); + g_clear_object (&self->priv->x_server_process); g_free (self->priv->command); g_free (self->priv->authority_file); diff --git a/src/x-server.c b/src/x-server.c index 10ba903a..d0260bef 100644 --- a/src/x-server.c +++ b/src/x-server.c @@ -90,12 +90,9 @@ x_server_set_authority (XServer *server, XAuthority *authority) { g_return_if_fail (server != NULL); - if (server->priv->authority) - g_object_unref (server->priv->authority); + g_clear_object (&server->priv->authority); if (authority) server->priv->authority = g_object_ref (authority); - else - server->priv->authority = NULL; } XAuthority * @@ -204,14 +201,11 @@ x_server_init (XServer *server) static void x_server_finalize (GObject *object) { - XServer *self; - - self = X_SERVER (object); + XServer *self = X_SERVER (object); g_free (self->priv->hostname); g_free (self->priv->address); - if (self->priv->authority) - g_object_unref (self->priv->authority); + g_clear_object (&self->priv->authority); if (self->priv->connection) xcb_disconnect (self->priv->connection); diff --git a/src/xdmcp-server.c b/src/xdmcp-server.c index 197dbc11..4761b7b0 100644 --- a/src/xdmcp-server.c +++ b/src/xdmcp-server.c @@ -743,14 +743,10 @@ xdmcp_server_init (XDMCPServer *server) static void xdmcp_server_finalize (GObject *object) { - XDMCPServer *self; + XDMCPServer *self = XDMCP_SERVER (object); - self = XDMCP_SERVER (object); - - if (self->priv->socket) - g_object_unref (self->priv->socket); - if (self->priv->socket6) - g_object_unref (self->priv->socket6); + g_clear_object (&self->priv->socket); + g_clear_object (&self->priv->socket6); g_free (self->priv->listen_address); g_free (self->priv->hostname); g_free (self->priv->status); diff --git a/src/xdmcp-session.c b/src/xdmcp-session.c index 71c5704d..bb78ac66 100644 --- a/src/xdmcp-session.c +++ b/src/xdmcp-session.c @@ -77,15 +77,11 @@ xdmcp_session_init (XDMCPSession *session) static void xdmcp_session_finalize (GObject *object) { - XDMCPSession *self; - - self = XDMCP_SESSION (object); + XDMCPSession *self = XDMCP_SESSION (object); g_free (self->priv->manufacturer_display_id); - if (self->priv->address) - g_object_unref (self->priv->address); - if (self->priv->authority) - g_object_unref (self->priv->authority); + g_clear_object (&self->priv->address); + g_clear_object (&self->priv->authority); g_free (self->priv->display_class); G_OBJECT_CLASS (xdmcp_session_parent_class)->finalize (object); diff --git a/tests/Makefile.am b/tests/Makefile.am index 11c97287..27b6b538 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -34,6 +34,9 @@ TESTS = \ test-autologin-new-authtok \ test-autologin-timeout-gobject \ test-autologin-guest-timeout-gobject \ + test-xserver-config \ + test-allow-tcp-xorg-1.16 \ + test-allow-tcp-xorg-1.17 \ test-change-authentication \ test-restart-authentication \ test-cancel-authentication-gobject \ @@ -131,9 +134,11 @@ TESTS = \ test-dbus \ test-lock-seat \ test-lock-seat-after-vt-switch \ + test-lock-seat-twice \ test-lock-seat-resettable \ test-lock-seat-return-session \ test-lock-session \ + test-lock-session-twice \ test-lock-session-no-password \ test-lock-session-resettable \ test-lock-session-return-session \ @@ -166,7 +171,10 @@ TESTS = \ test-vnc-dimensions \ test-vnc-open-file-descriptors \ test-vnc-guest \ - test-xdmcp-client \ + test-xremote-autologin \ + test-xremote-login \ + test-xdmcp-client-xorg-1.16 \ + test-xdmcp-client-xorg-1.17 \ test-xdmcp-server-autologin \ test-xdmcp-server-login \ test-xdmcp-server-double-login \ @@ -367,6 +375,8 @@ EXTRA_DIST = \ scripts/additional-config-priority.conf \ scripts/additional-system-config.conf \ scripts/additional-system-config-priority.conf \ + scripts/allow-tcp-xorg-1.16.conf \ + scripts/allow-tcp-xorg-1.17.conf \ scripts/audit-autologin.conf \ scripts/autologin.conf \ scripts/autologin-guest.conf \ @@ -427,10 +437,12 @@ EXTRA_DIST = \ scripts/lock-seat-resettable.conf \ scripts/lock-seat-return-session.conf \ scripts/lock-seat-return-session-console-kit.conf \ + scripts/lock-seat-twice.conf \ scripts/lock-session.conf \ scripts/lock-session-no-password.conf \ scripts/lock-session-resettable.conf \ scripts/lock-session-return-session.conf \ + scripts/lock-session-twice.conf \ scripts/login.conf \ scripts/login-crash-authenticate.conf \ scripts/login-guest.conf \ @@ -580,12 +592,16 @@ EXTRA_DIST = \ scripts/xauthority.conf \ scripts/xdg-current-desktop.conf \ scripts/xdg-current-desktop-legacy.conf \ - scripts/xdmcp-client.conf \ + scripts/xdmcp-client-xorg-1.16.conf \ + scripts/xdmcp-client-xorg-1.17.conf \ scripts/xdmcp-server-autologin.conf \ scripts/xdmcp-server-double-login.conf \ scripts/xdmcp-server-guest.conf \ scripts/xdmcp-server-login.conf \ scripts/xdmcp-server-open-file-descriptors.conf \ + scripts/xremote-autologin.conf \ + scripts/xremote-login.conf \ + scripts/xserver-config.conf \ scripts/xserver-fail-start.conf \ scripts/xserver-no-share.conf \ scripts/seatdefaults-still-supported.conf diff --git a/tests/scripts/allow-tcp-xorg-1.16.conf b/tests/scripts/allow-tcp-xorg-1.16.conf new file mode 100644 index 00000000..bd6341ae --- /dev/null +++ b/tests/scripts/allow-tcp-xorg-1.16.conf @@ -0,0 +1,34 @@ +# +# Check can enable TCP listening in X.Org < 1.17 (default is listening enabled) +# + +[test-xserver-config] +version=1.16.0 + +[Seat:*] +autologin-user=have-password1 +user-session=default +xserver-allow-tcp=true + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER-0 START VT=7 LISTEN-TCP 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 + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/allow-tcp-xorg-1.17.conf b/tests/scripts/allow-tcp-xorg-1.17.conf new file mode 100644 index 00000000..14b59151 --- /dev/null +++ b/tests/scripts/allow-tcp-xorg-1.17.conf @@ -0,0 +1,34 @@ +# +# Check can enable TCP listening in X.Org >= 1.17 (default is listening disabled) +# + +[test-xserver-config] +version=1.17.0 + +[Seat:*] +autologin-user=have-password1 +user-session=default +xserver-allow-tcp=true + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER-0 START VT=7 LISTEN-TCP 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 + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/lock-seat-after-vt-switch.conf b/tests/scripts/lock-seat-after-vt-switch.conf index 4a20ea19..d9cb9ccb 100644 --- a/tests/scripts/lock-seat-after-vt-switch.conf +++ b/tests/scripts/lock-seat-after-vt-switch.conf @@ -61,21 +61,19 @@ user-session=default # Lock the seat again #?*SESSION-X-0 LOCK-SEAT #?SESSION-X-0 LOCK-SEAT - -# New X server starts (this is a "bug") -#?XSERVER-2 START VT=9 SEAT=seat0 -#?*XSERVER-2 INDICATE-READY -#?XSERVER-2 INDICATE-READY -#?XSERVER-2 ACCEPT-CONNECT - -# Session is locked #?LOGIN1 LOCK-SESSION SESSION=c0 -# Session is switched to greeter -#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +# Old greeter is stopped +#?GREETER-X-1 TERMINATE SIGNAL=15 -# The unnecessary X server is killed -#?XSERVER-2 TERMINATE SIGNAL=15 +# A new greeter is started and activated on the same X server +#?LOGIN1 ACTIVATE-SESSION SESSION=c2 +#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter +#?XSERVER-1 ACCEPT-CONNECT +#?GREETER-X-1 CONNECT-XSERVER +#?GREETER-X-1 CONNECT-TO-DAEMON +#?GREETER-X-1 CONNECTED-TO-DAEMON +#?GREETER-X-1 LOCK-HINT # Cleanup #?*STOP-DAEMON diff --git a/tests/scripts/lock-seat-twice.conf b/tests/scripts/lock-seat-twice.conf new file mode 100644 index 00000000..c8d6dc8e --- /dev/null +++ b/tests/scripts/lock-seat-twice.conf @@ -0,0 +1,75 @@ +# +# Check locking a seat twice doesn't spawn two greeters +# + +[SeatDefaults] +autologin-user=have-password1 +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 + +# 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 + +# Lock the seat +#?*SESSION-X-0 LOCK-SEAT +#?SESSION-X-0 LOCK-SEAT + +# New X server starts +#?XSERVER-1 START VT=8 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT + +# Session is locked +#?LOGIN1 LOCK-SESSION SESSION=c0 + +# Greeter starts +#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter +#?XSERVER-1 ACCEPT-CONNECT +#?GREETER-X-1 CONNECT-XSERVER +#?GREETER-X-1 CONNECT-TO-DAEMON +#?GREETER-X-1 CONNECTED-TO-DAEMON +#?GREETER-X-1 LOCK-HINT + +# Switch to greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?VT ACTIVATE VT=8 + +# Lock the seat again +#?*SESSION-X-0 LOCK-SEAT +#?SESSION-X-0 LOCK-SEAT + +# Old greeter is stopped +#?GREETER-X-1 TERMINATE SIGNAL=15 + +# A new greeter is started and activated on the same X server +#?LOGIN1 ACTIVATE-SESSION SESSION=c2 +#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter +#?XSERVER-1 ACCEPT-CONNECT +#?GREETER-X-1 CONNECT-XSERVER +#?GREETER-X-1 CONNECT-TO-DAEMON +#?GREETER-X-1 CONNECTED-TO-DAEMON +#?GREETER-X-1 LOCK-HINT + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?GREETER-X-1 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/lock-session-twice.conf b/tests/scripts/lock-session-twice.conf new file mode 100644 index 00000000..e7f20c3d --- /dev/null +++ b/tests/scripts/lock-session-twice.conf @@ -0,0 +1,77 @@ +# +# Check locking a session twice doesn't spawn two greeters +# + +[SeatDefaults] +autologin-user=have-password1 +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 + +# 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 + +# Lock the session +#?*SESSION-X-0 LOCK-SESSION +#?SESSION-X-0 LOCK-SESSION + +# New X server starts +#?XSERVER-1 START VT=8 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-1 INDICATE-READY +#?XSERVER-1 INDICATE-READY +#?XSERVER-1 ACCEPT-CONNECT + +# Session is locked +#?LOGIN1 LOCK-SESSION SESSION=c0 + +# Greeter starts with session user selected +#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter +#?XSERVER-1 ACCEPT-CONNECT +#?GREETER-X-1 CONNECT-XSERVER +#?GREETER-X-1 CONNECT-TO-DAEMON +#?GREETER-X-1 CONNECTED-TO-DAEMON +#?GREETER-X-1 SELECT-USER-HINT USERNAME=have-password1 +#?GREETER-X-1 LOCK-HINT + +# Switch to greeter +#?LOGIN1 ACTIVATE-SESSION SESSION=c1 +#?VT ACTIVATE VT=8 + +# Lock the session again +#?*SESSION-X-0 LOCK-SESSION +#?SESSION-X-0 LOCK-SESSION + +# Old greeter is stopped +#?GREETER-X-1 TERMINATE SIGNAL=15 +#?LOGIN1 ACTIVATE-SESSION SESSION=c2 + +# A new greeter is started and activated on the same X server +#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_CLASS=greeter +#?XSERVER-1 ACCEPT-CONNECT +#?GREETER-X-1 CONNECT-XSERVER +#?GREETER-X-1 CONNECT-TO-DAEMON +#?GREETER-X-1 CONNECTED-TO-DAEMON +#?GREETER-X-1 SELECT-USER-HINT USERNAME=have-password1 +#?GREETER-X-1 LOCK-HINT + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?GREETER-X-1 TERMINATE SIGNAL=15 +#?XSERVER-1 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/login-remote-session.conf b/tests/scripts/login-remote-session.conf index d1e248b1..303eb6db 100644 --- a/tests/scripts/login-remote-session.conf +++ b/tests/scripts/login-remote-session.conf @@ -1,5 +1,5 @@ # -# Check can login without a username, and is prompted for one +# Check can remotely authenticate for a session # #?*START-DAEMON diff --git a/tests/scripts/xdmcp-client.conf b/tests/scripts/xdmcp-client-xorg-1.16.conf index b24860a9..c41cb13e 100644 --- a/tests/scripts/xdmcp-client.conf +++ b/tests/scripts/xdmcp-client-xorg-1.16.conf @@ -1,7 +1,10 @@ # -# Check can run a local XDMCP client +# Check can run a local XDMCP client in X.Org < 1.17 (default is listening enabled) # +[test-xserver-config] +version=1.16.0 + [Seat:*] xdmcp-manager=127.0.0.1 @@ -9,7 +12,7 @@ xdmcp-manager=127.0.0.1 #?RUNNER DAEMON-START # X server starts -#?XSERVER-0 START VT=7 SEAT=seat0 +#?XSERVER-0 START VT=7 LISTEN-TCP SEAT=seat0 #?*XSERVER-0 INDICATE-READY #?XSERVER-0 INDICATE-READY #?XSERVER-0 ACCEPT-CONNECT diff --git a/tests/scripts/xdmcp-client-xorg-1.17.conf b/tests/scripts/xdmcp-client-xorg-1.17.conf new file mode 100644 index 00000000..584004e6 --- /dev/null +++ b/tests/scripts/xdmcp-client-xorg-1.17.conf @@ -0,0 +1,30 @@ +# +# Check can run a local XDMCP client in X.Org >= 1.17 (default is listening disabled) +# + +[test-xserver-config] +version=1.17.0 + +[Seat:*] +xdmcp-manager=127.0.0.1 + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER-0 START VT=7 LISTEN-TCP SEAT=seat0 +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Starts sending XDMCP queries +#?*XSERVER-0 START-XDMCP +#?XSERVER-0 SEND-QUERY + +# Wait to check a greeter is not started +#?*WAIT + +# Cleanup +#?*STOP-DAEMON +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/xdmcp-server-autologin.conf b/tests/scripts/xdmcp-server-autologin.conf index dd7a9502..92a45f1d 100644 --- a/tests/scripts/xdmcp-server-autologin.conf +++ b/tests/scripts/xdmcp-server-autologin.conf @@ -18,7 +18,7 @@ autologin-user=have-password1 # Start a remote X server to log in with XDMCP #?*START-XSERVER ARGS=":98 -query 127.0.0.1 -nolisten unix" -#?XSERVER-98 START +#?XSERVER-98 START LISTEN-TCP NO-LISTEN-UNIX # Start sending XDMCP queries #?*XSERVER-98 START-XDMCP diff --git a/tests/scripts/xdmcp-server-double-login.conf b/tests/scripts/xdmcp-server-double-login.conf index 552f4be7..bc3acdbe 100644 --- a/tests/scripts/xdmcp-server-double-login.conf +++ b/tests/scripts/xdmcp-server-double-login.conf @@ -17,7 +17,7 @@ user-session=default # Start a remote X server to log in with XDMCP #?*START-XSERVER ARGS=":98 -query 127.0.0.1 -nolisten unix" -#?XSERVER-98 START +#?XSERVER-98 START LISTEN-TCP NO-LISTEN-UNIX # Start sending XDMCP queries #?*XSERVER-98 START-XDMCP @@ -56,7 +56,7 @@ user-session=default # Start a second remote X server to log in with XDMCP #?*START-XSERVER ARGS=":99 -query 127.0.0.1 -nolisten unix" -#?XSERVER-99 START +#?XSERVER-99 START LISTEN-TCP NO-LISTEN-UNIX # Start sending XDMCP queries #?*XSERVER-99 START-XDMCP diff --git a/tests/scripts/xdmcp-server-guest.conf b/tests/scripts/xdmcp-server-guest.conf index 1fb8869f..6f5301de 100644 --- a/tests/scripts/xdmcp-server-guest.conf +++ b/tests/scripts/xdmcp-server-guest.conf @@ -17,7 +17,7 @@ user-session=default # Start a remote X server to log in with XDMCP #?*START-XSERVER ARGS=":98 -query 127.0.0.1 -nolisten unix" -#?XSERVER-98 START +#?XSERVER-98 START LISTEN-TCP NO-LISTEN-UNIX # Start sending XDMCP queries #?*XSERVER-98 START-XDMCP diff --git a/tests/scripts/xdmcp-server-login.conf b/tests/scripts/xdmcp-server-login.conf index c73f855d..fb3f8090 100644 --- a/tests/scripts/xdmcp-server-login.conf +++ b/tests/scripts/xdmcp-server-login.conf @@ -17,7 +17,7 @@ user-session=default # Start a remote X server to log in with XDMCP #?*START-XSERVER ARGS=":98 -query 127.0.0.1 -nolisten unix" -#?XSERVER-98 START +#?XSERVER-98 START LISTEN-TCP NO-LISTEN-UNIX # Start sending XDMCP queries #?*XSERVER-98 START-XDMCP diff --git a/tests/scripts/xdmcp-server-open-file-descriptors.conf b/tests/scripts/xdmcp-server-open-file-descriptors.conf index 28719e7c..c0c89f4a 100644 --- a/tests/scripts/xdmcp-server-open-file-descriptors.conf +++ b/tests/scripts/xdmcp-server-open-file-descriptors.conf @@ -17,7 +17,7 @@ user-session=default # Start a remote X server to log in with XDMCP #?*START-XSERVER ARGS=":98 -query 127.0.0.1 -nolisten unix" -#?XSERVER-98 START +#?XSERVER-98 START LISTEN-TCP NO-LISTEN-UNIX # Start sending XDMCP queries #?*XSERVER-98 START-XDMCP diff --git a/tests/scripts/xremote-autologin.conf b/tests/scripts/xremote-autologin.conf new file mode 100644 index 00000000..251a418c --- /dev/null +++ b/tests/scripts/xremote-autologin.conf @@ -0,0 +1,30 @@ +# +# Check can automatically log into a remote X server +# + +[Seat:*] +type=xremote +autologin-user=have-password1 +user-session=default +xserver-display-number=98 + +# Start a remote X server to use +#?*START-XSERVER ARGS=":98" +#?XSERVER-98 START LISTEN-TCP + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# LightDM connects to X server +#?XSERVER-98 ACCEPT-CONNECT + +# 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=c0 +#?XSERVER-98 ACCEPT-CONNECT +#?SESSION-X-127.0.0.1:98 CONNECT-XSERVER + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-127.0.0.1:98 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/xremote-login.conf b/tests/scripts/xremote-login.conf new file mode 100644 index 00000000..bdc81a91 --- /dev/null +++ b/tests/scripts/xremote-login.conf @@ -0,0 +1,45 @@ +# +# Check can log into a remote X server +# + +[Seat:*] +type=xremote +user-session=default +xserver-display-number=98 + +# Start a remote X server to use +#?*START-XSERVER ARGS=":98" +#?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 + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-127.0.0.1:98 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/xserver-config.conf b/tests/scripts/xserver-config.conf new file mode 100644 index 00000000..673a011f --- /dev/null +++ b/tests/scripts/xserver-config.conf @@ -0,0 +1,32 @@ +# +# Check can set X server configuration +# + +[Seat:*] +autologin-user=have-password1 +user-session=default +xserver-config=custom.conf +xserver-layout=custom + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER-0 START CONFIG=custom.conf LAYOUT=custom 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 + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/src/X.c b/tests/src/X.c index c8865af9..cd4511b8 100644 --- a/tests/src/X.c +++ b/tests/src/X.c @@ -18,9 +18,25 @@ static int exit_status = EXIT_SUCCESS; static GKeyFile *config; +/* Version to pretend to be */ +static gchar *xorg_version; +static gint xorg_version_major, xorg_version_minor; + /* Path to lock file */ static gchar *lock_path = NULL; +/* TRUE if we allow TCP connections */ +static gboolean listen_tcp = TRUE; + +/* TRUE if we allow Unix connections */ +static gboolean listen_unix = TRUE; + +/* Configuration to use */ +static gchar *config_file = NULL; + +/* Configuration layout to use */ +static gchar *layout = NULL; + /* Path to authority database to use */ static gchar *auth_path = NULL; @@ -194,10 +210,20 @@ request_cb (const gchar *name, GHashTable *params) } } +static int +version_compare (int major, int minor) +{ + if (major == xorg_version_major) + return xorg_version_minor - minor; + else + return xorg_version_major - major; +} + int main (int argc, char **argv) { int i; + gchar **tokens; char *pid_string; gboolean do_xdmcp = FALSE; guint xdmcp_port = 0; @@ -218,6 +244,20 @@ main (int argc, char **argv) g_unix_signal_add (SIGTERM, sigterm_cb, NULL); g_unix_signal_add (SIGHUP, sighup_cb, NULL); + config = g_key_file_new (); + g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL); + + xorg_version = g_key_file_get_string (config, "test-xserver-config", "version", NULL); + if (!xorg_version) + xorg_version = g_strdup ("1.16.0"); + tokens = g_strsplit (xorg_version, ".", -1); + xorg_version_major = g_strv_length (tokens) > 0 ? atoi (tokens[0]) : 0; + xorg_version_minor = g_strv_length (tokens) > 1 ? atoi (tokens[1]) : 0; + g_strfreev (tokens); + + /* TCP listening default changed in 1.17.0 */ + listen_tcp = version_compare (1, 17) < 0; + for (i = 1; i < argc; i++) { char *arg = argv[i]; @@ -226,19 +266,38 @@ main (int argc, char **argv) { display_number = atoi (arg + 1); } + else if (strcmp (arg, "-config") == 0) + { + config_file = argv[i+1]; + i++; + } + else if (strcmp (arg, "-layout") == 0) + { + layout = argv[i+1]; + i++; + } else if (strcmp (arg, "-auth") == 0) { auth_path = argv[i+1]; i++; } + else if (strcmp (arg, "-listen") == 0 && version_compare (1, 17) >= 0) + { + char *protocol = argv[i+1]; + i++; + if (strcmp (protocol, "tcp") == 0) + listen_tcp = TRUE; + else if (strcmp (protocol, "unix") == 0) + listen_unix = TRUE; + } else if (strcmp (arg, "-nolisten") == 0) { char *protocol = argv[i+1]; i++; if (strcmp (protocol, "tcp") == 0) - ;//listen_tcp = FALSE; + listen_tcp = FALSE; else if (strcmp (protocol, "unix") == 0) - ;//listen_unix = FALSE; + listen_unix = FALSE; } else if (strcmp (arg, "-nr") == 0) { @@ -257,11 +316,13 @@ main (int argc, char **argv) { do_xdmcp = TRUE; xdmcp_host = argv[i+1]; + listen_tcp = TRUE; i++; } else if (strcmp (arg, "-broadcast") == 0) { do_xdmcp = TRUE; + listen_tcp = TRUE; } else if (g_str_has_prefix (arg, "vt")) { @@ -286,12 +347,20 @@ main (int argc, char **argv) /* FIXME */ i++; } + else if (strcmp (arg, "-version") == 0) + { + fprintf (stderr, "\nX.Org X Server %s\nBlah blah blah\n", xorg_version); + return EXIT_SUCCESS; + } else { g_printerr ("Unrecognized option: %s\n" "Use: %s [:<display>] [option]\n" + "-config file Specify a configuration file\n" + "-layout name Specify the ServerLayout section name\n" "-auth file Select authorization file\n" "-nolisten protocol Don't listen on protocol\n" + "-listen protocol Listen on protocol\n" "-background [none] Create root window with no background\n" "-nr (Ubuntu-specific) Synonym for -background none\n" "-query host-name Contact named host for XDMCP\n" @@ -300,6 +369,7 @@ main (int argc, char **argv) "-seat string seat to run on\n" "-mir id Mir ID to use\n" "-mirSocket name Mir socket to use\n" + "-version show the server version\n" "vtxx Use virtual terminal xx instead of the next available\n", arg, argv[0]); return EXIT_FAILURE; @@ -316,8 +386,16 @@ main (int argc, char **argv) status_text = g_string_new (""); g_string_printf (status_text, "%s START", id); + if (config_file) + g_string_append_printf (status_text, " CONFIG=%s", config_file); + if (layout) + g_string_append_printf (status_text, " LAYOUT=%s", layout); if (vt_number >= 0) g_string_append_printf (status_text, " VT=%d", vt_number); + if (listen_tcp) + g_string_append (status_text, " LISTEN-TCP"); + if (!listen_unix) + g_string_append (status_text, " NO-LISTEN-UNIX"); if (seat != NULL) g_string_append_printf (status_text, " SEAT=%s", seat); if (mir_id != NULL) @@ -325,9 +403,6 @@ main (int argc, char **argv) status_notify ("%s", status_text->str); g_string_free (status_text, TRUE); - config = g_key_file_new (); - g_key_file_load_from_file (config, g_build_filename (g_getenv ("LIGHTDM_TEST_ROOT"), "script", NULL), G_KEY_FILE_NONE, NULL); - if (g_key_file_has_key (config, "test-xserver-config", "return-value", NULL)) { int return_value = g_key_file_get_integer (config, "test-xserver-config", "return-value", NULL); diff --git a/tests/test-allow-tcp-xorg-1.16 b/tests/test-allow-tcp-xorg-1.16 new file mode 100755 index 00000000..08c07744 --- /dev/null +++ b/tests/test-allow-tcp-xorg-1.16 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner allow-tcp-xorg-1.16 test-gobject-greeter diff --git a/tests/test-allow-tcp-xorg-1.17 b/tests/test-allow-tcp-xorg-1.17 new file mode 100755 index 00000000..db2a80b1 --- /dev/null +++ b/tests/test-allow-tcp-xorg-1.17 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner allow-tcp-xorg-1.17 test-gobject-greeter diff --git a/tests/test-lock-seat-twice b/tests/test-lock-seat-twice new file mode 100755 index 00000000..d39c9855 --- /dev/null +++ b/tests/test-lock-seat-twice @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner lock-seat-twice test-gobject-greeter diff --git a/tests/test-lock-session-twice b/tests/test-lock-session-twice new file mode 100755 index 00000000..61b09d1f --- /dev/null +++ b/tests/test-lock-session-twice @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner lock-session-twice test-gobject-greeter diff --git a/tests/test-xdmcp-client b/tests/test-xdmcp-client deleted file mode 100755 index fe34787e..00000000 --- a/tests/test-xdmcp-client +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./src/dbus-env ./src/test-runner xdmcp-client test-gobject-greeter diff --git a/tests/test-xdmcp-client-xorg-1.16 b/tests/test-xdmcp-client-xorg-1.16 new file mode 100755 index 00000000..d6e2f56e --- /dev/null +++ b/tests/test-xdmcp-client-xorg-1.16 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner xdmcp-client-xorg-1.16 test-gobject-greeter diff --git a/tests/test-xdmcp-client-xorg-1.17 b/tests/test-xdmcp-client-xorg-1.17 new file mode 100755 index 00000000..b3d41fc7 --- /dev/null +++ b/tests/test-xdmcp-client-xorg-1.17 @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner xdmcp-client-xorg-1.17 test-gobject-greeter diff --git a/tests/test-xremote-autologin b/tests/test-xremote-autologin new file mode 100755 index 00000000..4cf9f4cf --- /dev/null +++ b/tests/test-xremote-autologin @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner xremote-autologin test-gobject-greeter diff --git a/tests/test-xremote-login b/tests/test-xremote-login new file mode 100755 index 00000000..cab0b5bd --- /dev/null +++ b/tests/test-xremote-login @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner xremote-login test-gobject-greeter diff --git a/tests/test-xserver-config b/tests/test-xserver-config new file mode 100755 index 00000000..9b531dd2 --- /dev/null +++ b/tests/test-xserver-config @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner xserver-config test-gobject-greeter |