diff options
122 files changed, 445 insertions, 788 deletions
@@ -51,12 +51,7 @@ m4/* po/*.gmo po/POTFILES po/stamp-it -src/display-glue.h -src/display-manager-glue.h -src/session-manager-glue.h -src/user-manager-glue.h -src/ldm-marshal.c -src/ldm-marshal.h +src/dm-tool src/lightdm src/lightdm-guest-session tests/*.log @@ -69,6 +64,7 @@ tests/src/initctl tests/src/plymouth tests/src/test-gobject-greeter tests/src/test-greeter-wrapper +tests/src/test-guest-wrapper tests/src/test-mir-greeter tests/src/test-qt4-greeter tests/src/test-qt5-greeter @@ -79,5 +75,3 @@ tests/src/unity-system-compositor tests/src/vnc-client tests/src/X tests/src/Xvnc -utils/lightdm-set-defaults -utils/dm-tool diff --git a/Makefile.am b/Makefile.am index 467d5c6f..73c6788e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,7 +6,7 @@ SUBDIRS += liblightdm-qt if COMPILE_TESTS SUBDIRS += tests endif -SUBDIRS += data po src doc help utils +SUBDIRS += data po src doc help DISTCHECK_CONFIGURE_FLAGS = --enable-introspection --enable-gtk-doc diff --git a/configure.ac b/configure.ac index a87fb93e..a57e1668 100644 --- a/configure.ac +++ b/configure.ac @@ -217,7 +217,6 @@ po/Makefile.in src/Makefile tests/Makefile tests/src/Makefile -utils/Makefile ]) AC_OUTPUT diff --git a/data/Makefile.am b/data/Makefile.am index d4aead2f..b5601b94 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -25,8 +25,7 @@ dist_apparmor_profile_abstractions_DATA = \ apparmor/abstractions/lightdm_chromium-browser dist_man1_MANS = dm-tool.1 \ - lightdm.1 \ - lightdm-set-defaults.1 + lightdm.1 EXTRA_DIST = apparmor/lightdm-guest-session.in CLEANFILES = lightdm-guest-session diff --git a/data/dm-tool.1 b/data/dm-tool.1 index f4ceae23..1637f313 100644 --- a/data/dm-tool.1 +++ b/data/dm-tool.1 @@ -59,5 +59,4 @@ Connect an existing X server to the display manager. .B add-seat TYPE [NAME=VALUE...] Add a dynamic seat. .SH SEE ALSO -.BR lightdm (1), -.BR lightdm-set-defaults (1) +.BR lightdm (1) diff --git a/data/lightdm-set-defaults.1 b/data/lightdm-set-defaults.1 deleted file mode 100644 index 1cc68dcb..00000000 --- a/data/lightdm-set-defaults.1 +++ /dev/null @@ -1,52 +0,0 @@ -.TH LIGHTDM-SET-DEFAULTS 1 "7 November 2013" -.SH NAME -lightdm-set-defaults \- sets configuration options for lightdm -.SH SYNOPSIS -.B lightdm-set-defaults -[ -.I OPTION -] -.SH DESCRIPTION -.B lightdm-set-defaults -sets configuration options for lightdm. Requires root permissions to run. -.SH OPTIONS -.TP -.B \-h, \-\-help -Show help options -.TP -.B \-k, \-\-keep\-old -Only update if no default already set -.TP -.B \-d, \-\-debug -Enable debugging messages -.TP -.B \-r, \-\-remove -Remove default value if it's the current one -.TP -.B \-s, \-\-session=SESSION_NAME -Set the default session to SESSION_NAME -.TP -.B \-g, \-\-greeter=GREETER_NAME -Set the default greeter to GREETER_NAME -.TP -.B \-a, \-\-autologin=USERNAME -Set the autologin user to USERNAME -.TP -.B \-i, \-\-hide\-users=<true|false> -Set greeter-hide-users to true or false. -.TP -.B \-m, \-\-show\-manual\-login=<true|false> -Set show-manual-login to true or false. -.TP -.B \-R, \-\-show\-remote\-login=<true|false> -Set show-manual-login to true or false. -.TP -.B \-l, \-\-allow\-guest=<true|false> -Set allow-guest to true or false. -.SH FILES -.TP -.B /etc/lightdm/lightdm.conf -Configuration -.SH SEE ALSO -.BR lightdm (1), -.BR dm-tool (1) diff --git a/data/lightdm.1 b/data/lightdm.1 index 27f80912..a6c90b2b 100644 --- a/data/lightdm.1 +++ b/data/lightdm.1 @@ -54,5 +54,4 @@ User list configuration (if not using Accounts Service) .B /etc/lightdm/keys.conf XDMCP keys .SH SEE ALSO -.BR dm-tool (1), -.BR lightdm-set-defaults (1) +.BR dm-tool (1) diff --git a/debian/lightdm.postinst b/debian/lightdm.postinst index c61da082..5c104883 100644 --- a/debian/lightdm.postinst +++ b/debian/lightdm.postinst @@ -69,16 +69,6 @@ fi # stdout, which can confuse debconf. db_stop -# migrate gdm configuration on first-time installation -if [ -z "$2" ]; then - if grep -q '^AutomaticLoginEnable *= *true$' /etc/gdm/custom.conf 2>/dev/null; then - user=`sed -n '/^AutomaticLogin *=/ { s/^.*= *//; p }' /etc/gdm/custom.conf` - if [ -n "$user" ]; then - /usr/lib/lightdm/lightdm-set-defaults --keep-old --autologin="$user" - fi - fi -fi - case "$1" in configure) # LP: #1189948 diff --git a/debian/po/af.po b/debian/po/af.po index fd7f37ee..6ec35719 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/an.po b/debian/po/an.po index 8bc369bb..de3c38b0 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ar.po b/debian/po/ar.po index 1bc61de8..e5aae87c 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ast.po b/debian/po/ast.po index f74ee7ab..e2a5a289 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/az.po b/debian/po/az.po index 91ae7af2..23105e55 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/be.po b/debian/po/be.po index d22edd9d..420ca4c9 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/bg.po b/debian/po/bg.po index fa1f6b92..7f68cf2b 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/bn.po b/debian/po/bn.po index ca29c00b..b8a00195 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/bo.po b/debian/po/bo.po index 470124e6..b06d3a34 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/br.po b/debian/po/br.po index e411af1f..1dab9110 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/bs.po b/debian/po/bs.po index b255fd4c..121af8e0 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ca.po b/debian/po/ca.po index 5fb2a1e4..94eb9f8b 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ca@valencia.po b/debian/po/ca@valencia.po index 56b8dc15..acb42bd4 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ckb.po b/debian/po/ckb.po index b864667f..10926516 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/cs.po b/debian/po/cs.po index b573801a..737713c6 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/da.po b/debian/po/da.po index 6f209a4b..3cadf700 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/de.po b/debian/po/de.po index b34089de..70f589d3 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/el.po b/debian/po/el.po index ddbbc161..170e4d1c 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/en_AU.po b/debian/po/en_AU.po index 38ba71a9..a6470529 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/en_CA.po b/debian/po/en_CA.po index e34541a7..280ac1c4 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/en_GB.po b/debian/po/en_GB.po index 9a558788..e7a8a2eb 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/eo.po b/debian/po/eo.po index 971450d0..dafd385f 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/es.po b/debian/po/es.po index 5fb414b4..1cbaf1ce 100644 --- a/debian/po/es.po +++ b/debian/po/es.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: lightdm\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2007-05-31 08:04+0200\n" -"PO-Revision-Date: 2010-12-31 05:34+0000\n" +"PO-Revision-Date: 2013-11-17 12:32+0000\n" "Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n" "Language-Team: Spanish <es@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-18 05:39+0000\n" +"X-Generator: Launchpad (build 16831)\n" #. Type: select #. Description #: ../lightdm.templates:2001 msgid "Default display manager:" -msgstr "" +msgstr "Gestor de sesiones predeterminado:" #. Type: select #. Description @@ -30,6 +30,8 @@ msgid "" "A display manager is a program that provides graphical login capabilities " "for the X Window System." msgstr "" +"Un gestor de sesiones es un programa que provee al Sistema de ventanas X de " +"una forma gráfica de iniciar una sesión." #. Type: select #. Description @@ -39,6 +41,9 @@ msgid "" "manager packages are installed. Please select which display manager should " "run by default." msgstr "" +"Solo un gestor de sesiones puede gestionar un servidor X dado, pero hay " +"varios gestores instalados. Elija cuál quiere ejecutar de manera " +"predeterminada." #. Type: select #. Description diff --git a/debian/po/et.po b/debian/po/et.po index 8b1a7dd6..e3344267 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/eu.po b/debian/po/eu.po index fe32445d..8801c041 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/fa.po b/debian/po/fa.po index 62bde30a..87e9a149 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/fi.po b/debian/po/fi.po index 2330d725..19daa83d 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/fo.po b/debian/po/fo.po index f9d0d7bc..0de52680 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/fr.po b/debian/po/fr.po index 7515d3c8..c9b85421 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/fy.po b/debian/po/fy.po index 465fb688..fddef2ac 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/gd.po b/debian/po/gd.po index bdeae710..4daadc13 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/gl.po b/debian/po/gl.po index 2b270011..aa6b518e 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/gu.po b/debian/po/gu.po index b47a4d82..f0fdd89e 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/he.po b/debian/po/he.po index 7c622e9a..d7295a2a 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/hi.po b/debian/po/hi.po index 3f22e589..38cd4843 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/hr.po b/debian/po/hr.po index fb955dae..5127f508 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/hu.po b/debian/po/hu.po index e3fdad32..701d9c9b 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ia.po b/debian/po/ia.po index 1087fd48..e0fbb7c7 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/id.po b/debian/po/id.po index 73786339..cd9ef51e 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/is.po b/debian/po/is.po index 61d91bc5..be67ce76 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/it.po b/debian/po/it.po index 5f8303e9..4f0e26d6 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ja.po b/debian/po/ja.po index 6b3e01ce..35a21cab 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/kk.po b/debian/po/kk.po index 1e1fb70b..86b603b8 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/kl.po b/debian/po/kl.po index 5e9c6197..e75a412f 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/km.po b/debian/po/km.po index c960b5b8..585aea6a 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/kn.po b/debian/po/kn.po index f2973178..5e06fbeb 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ko.po b/debian/po/ko.po index c28c5df0..1cec67d9 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ku.po b/debian/po/ku.po index 7727a0c0..430a1f3a 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/lb.po b/debian/po/lb.po index 1f250b61..4e9b7233 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/lt.po b/debian/po/lt.po index d75c34ff..a477d9a0 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/lv.po b/debian/po/lv.po index d387e5b5..c4722801 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/mhr.po b/debian/po/mhr.po index 9649a6ae..e8eb9fb8 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/mi.po b/debian/po/mi.po index 89cf253f..01eb77d4 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ml.po b/debian/po/ml.po index 1d134501..2bd842d6 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/mr.po b/debian/po/mr.po index 68df5bdd..2990ff90 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ms.po b/debian/po/ms.po index 62ef3358..82757a39 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/my.po b/debian/po/my.po index 24972577..2ef0225a 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/nb.po b/debian/po/nb.po index aa174a17..22e45420 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/nl.po b/debian/po/nl.po index d91df0e8..036bf741 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/nn.po b/debian/po/nn.po index 7f91b51c..a7c13709 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/oc.po b/debian/po/oc.po index e318326a..1b5de2aa 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/pa.po b/debian/po/pa.po index 487ad793..3fb6ff97 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/pl.po b/debian/po/pl.po index 72c35d66..489b418c 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/pt.po b/debian/po/pt.po index e20846c2..59c506ce 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po index f0c5a251..ea3d09a3 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ro.po b/debian/po/ro.po index c343b48b..6333c229 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ru.po b/debian/po/ru.po index 1216c1b0..f5778f1d 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/sc.po b/debian/po/sc.po index a538e9b4..b03a4576 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/sd.po b/debian/po/sd.po index 7ef45b8c..fcb19ee6 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/shn.po b/debian/po/shn.po index 94d1e2a2..e214e0bd 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/si.po b/debian/po/si.po index 599e65b0..102f753e 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/sk.po b/debian/po/sk.po index 5929c164..aad26783 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/sl.po b/debian/po/sl.po index 8ac590d4..9f1abdf8 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/sq.po b/debian/po/sq.po index 17ac1ab1..f5a0877e 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: 2013-10-23 04:42+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/sr.po b/debian/po/sr.po index 918e971e..be866120 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" "Language: sr\n" #. Type: select diff --git a/debian/po/sv.po b/debian/po/sv.po index 9b1cb046..35acecbe 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/ta.po b/debian/po/ta.po index 0f63666c..0fc7bf26 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/te.po b/debian/po/te.po index b6e25d17..6686e034 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/tg.po b/debian/po/tg.po index f1f5dd13..92825903 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/th.po b/debian/po/th.po index 3e5c617b..1017aae9 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/tl.po b/debian/po/tl.po index 9af181ad..6de145ed 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/tr.po b/debian/po/tr.po index 88b56ac3..4bd5af1e 100644 --- a/debian/po/tr.po +++ b/debian/po/tr.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-11-02 06:07+0000\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" "X-Generator: Launchpad (build 16820)\n" #. Type: select diff --git a/debian/po/ug.po b/debian/po/ug.po index 5d6b627b..015017e2 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/uk.po b/debian/po/uk.po index 110307cf..5ba7a244 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/uz.po b/debian/po/uz.po index 5aa8f740..c8cef244 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/vi.po b/debian/po/vi.po index c4229b18..8130fd12 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/wae.po b/debian/po/wae.po index 3d64d171..ea461946 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/zh_CN.po b/debian/po/zh_CN.po index 977c4bd5..bf63fd4f 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/zh_HK.po b/debian/po/zh_HK.po index e6f60ef1..287a5c22 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/po/zh_TW.po b/debian/po/zh_TW.po index 477ccb09..c6b845f3 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: 2013-10-23 04:43+0000\n" -"X-Generator: Launchpad (build 16810)\n" +"X-Launchpad-Export-Date: 2013-11-14 05:54+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. Type: select #. Description diff --git a/debian/rules b/debian/rules index 6135377b..3c262e6a 100755 --- a/debian/rules +++ b/debian/rules @@ -21,7 +21,6 @@ override_dh_install: rm -r debian/tmp/usr/share/help/C/ # we do install pam through installpam and init through installinit dh_install -X.a -X.la -Xpam.d -X'etc/init/lightdm.conf' --fail-missing - mv debian/lightdm/usr/lib/lightdm/lightdm/lightdm-set-defaults debian/lightdm/usr/lib/lightdm chmod +x debian/lightdm/usr/lib/lightdm/lightdm-greeter-session override_dh_installinit: diff --git a/po/POTFILES.in b/po/POTFILES.in index 792db4fe..fcd65f67 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -2,5 +2,4 @@ # Please keep this file sorted alphabetically. [encoding: UTF-8] src/lightdm.c -utils/lightdm-set-defaults.c utils/dm-tool.c diff --git a/src/Makefile.am b/src/Makefile.am index 95230ab4..0ff571fb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,5 @@ sbin_PROGRAMS = lightdm +bin_PROGRAMS = dm-tool lightdm_SOURCES = \ accounts.c \ @@ -77,7 +78,6 @@ lightdm_SOURCES = \ lightdm_CFLAGS = \ $(LIGHTDM_CFLAGS) \ $(WARN_CFLAGS) \ - -DPKGLIBEXEC_DIR=\"$(pkglibexecdir)\" \ -DSBIN_DIR=\"$(sbindir)\" \ -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \ -DLOG_DIR=\"$(localstatedir)/log/lightdm\" \ @@ -93,6 +93,17 @@ lightdm_LDADD = \ -lgcrypt \ -lpam +dm_tool_SOURCES = \ + dm-tool.c + +dm_tool_CFLAGS = \ + $(LIGHTDM_CFLAGS) \ + -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \ + -DLOCALE_DIR=\"$(datadir)/locale\" + +dm_tool_LDADD = \ + $(LIGHTDM_LIBS) + libexec_PROGRAMS = lightdm-guest-session lightdm_guest_session_SOURCES = lightdm-guest-session.c diff --git a/src/configuration.c b/src/configuration.c index e3b15df8..5268c8d9 100644 --- a/src/configuration.c +++ b/src/configuration.c @@ -90,6 +90,18 @@ config_get_string (Configuration *config, const gchar *section, const gchar *key } void +config_set_string_list (Configuration *config, const gchar *section, const gchar *key, const gchar **value, gsize length) +{ + g_key_file_set_string_list (config->priv->key_file, section, key, value, length); +} + +gchar ** +config_get_string_list (Configuration *config, const gchar *section, const gchar *key) +{ + return g_key_file_get_string_list (config->priv->key_file, section, key, NULL, NULL); +} + +void config_set_integer (Configuration *config, const gchar *section, const gchar *key, gint value) { g_key_file_set_integer (config->priv->key_file, section, key, value); diff --git a/src/configuration.h b/src/configuration.h index 6c7b300d..cae56912 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -48,6 +48,10 @@ void config_set_string (Configuration *config, const gchar *section, const gchar gchar *config_get_string (Configuration *config, const gchar *section, const gchar *key); +void config_set_string_list (Configuration *config, const gchar *section, const gchar *key, const gchar **value, gsize length); + +gchar **config_get_string_list (Configuration *config, const gchar *section, const gchar *key); + void config_set_integer (Configuration *config, const gchar *section, const gchar *key, gint value); gint config_get_integer (Configuration *config, const gchar *section, const gchar *key); diff --git a/utils/dm-tool.c b/src/dm-tool.c index 99073569..99073569 100644 --- a/utils/dm-tool.c +++ b/src/dm-tool.c diff --git a/src/lightdm.c b/src/lightdm.c index 3bf5ad77..7d35034d 100644 --- a/src/lightdm.c +++ b/src/lightdm.c @@ -139,6 +139,34 @@ log_init (void) } static void +set_seat_properties (Seat *seat, const gchar *config_section) +{ + gchar **keys; + gint i; + + keys = config_get_keys (config_get_instance (), "SeatDefaults"); + for (i = 0; keys[i]; i++) + { + gchar *value = config_get_string (config_get_instance (), "SeatDefaults", keys[i]); + seat_set_property (seat, keys[i], value); + g_free (value); + } + g_strfreev (keys); + + if (config_section) + { + keys = config_get_keys (config_get_instance (), config_section); + for (i = 0; keys[i]; i++) + { + gchar *value = config_get_string (config_get_instance (), config_section, keys[i]); + seat_set_property (seat, keys[i], value); + g_free (value); + } + g_strfreev (keys); + } +} + +static void signal_cb (Process *process, int signum) { g_debug ("Caught %s signal, shutting down", g_strsignal (signum)); @@ -156,12 +184,62 @@ display_manager_stopped_cb (DisplayManager *display_manager) static void display_manager_seat_removed_cb (DisplayManager *display_manager, Seat *seat) { - if (seat_get_boolean_property (seat, "exit-on-failure")) + gchar **types; + gchar **iter; + Seat *next_seat = NULL; + GString *next_types; + + /* If we have fallback types registered for the seat, let's try them + before giving up. */ + types = seat_get_string_list_property (seat, "type"); + next_types = g_string_new (""); + for (iter = types; iter && *iter; iter++) + { + if (iter == types) + continue; // skip first one, that is our current seat type + + if (!next_seat) + { + next_seat = seat_new (*iter); + g_string_assign (next_types, *iter); + } + else + { + // Build up list of types to try next time + g_string_append_c (next_types, ';'); + g_string_append (next_types, *iter); + } + } + g_strfreev (types); + + if (next_seat) + { + const gchar *seat_name; + gchar *config_section = NULL; + + seat_name = seat_get_string_property (seat, "seat-name"); + if (seat_name) + config_section = g_strdup_printf ("Seat:%s", seat_name); + set_seat_properties (next_seat, config_section); + g_free (config_section); + + // We set this manually on default seat. Let's port it over if needed. + if (seat_get_boolean_property (seat, "exit-on-failure")) + seat_set_property (next_seat, "exit-on-failure", "true"); + + seat_set_property (next_seat, "type", next_types->str); + + display_manager_add_seat (display_manager, next_seat); + g_object_unref (next_seat); + } + else if (seat_get_boolean_property (seat, "exit-on-failure")) { g_debug ("Required seat has stopped"); exit_code = EXIT_FAILURE; display_manager_stop (display_manager); } + + g_string_free (next_types, TRUE); } static GVariant * @@ -212,34 +290,6 @@ handle_display_manager_get_property (GDBusConnection *connection, } static void -set_seat_properties (Seat *seat, const gchar *config_section) -{ - gchar **keys; - gint i; - - keys = config_get_keys (config_get_instance (), "SeatDefaults"); - for (i = 0; keys[i]; i++) - { - gchar *value = config_get_string (config_get_instance (), "SeatDefaults", keys[i]); - seat_set_property (seat, keys[i], value); - g_free (value); - } - g_strfreev (keys); - - if (config_section) - { - keys = config_get_keys (config_get_instance (), config_section); - for (i = 0; keys[i]; i++) - { - gchar *value = config_get_string (config_get_instance (), config_section, keys[i]); - seat_set_property (seat, keys[i], value); - g_free (value); - } - g_strfreev (keys); - } -} - -static void handle_display_manager_call (GDBusConnection *connection, const gchar *sender, const gchar *object_path, @@ -1199,19 +1249,25 @@ main (int argc, char **argv) for (i = groups; *i; i++) { gchar *config_section = *i; - gchar *type; - Seat *seat; + gchar **types; + gchar **type; + Seat *seat = NULL; const gchar *const seatpfx = "Seat:"; if (!g_str_has_prefix (config_section, seatpfx)) continue; g_debug ("Loading seat %s", config_section); - type = config_get_string (config_get_instance (), config_section, "type"); - if (!type) - type = config_get_string (config_get_instance (), "SeatDefaults", "type"); - seat = seat_new (type); - g_free (type); + types = config_get_string_list (config_get_instance (), config_section, "type"); + if (!types) + types = config_get_string_list (config_get_instance (), "SeatDefaults", "type"); + for (type = types; type && *type; type++) + { + seat = seat_new (*type); + if (seat) + break; + } + g_strfreev (types); if (seat) { const gsize seatpfxlen = strlen(seatpfx); @@ -1232,14 +1288,20 @@ main (int argc, char **argv) /* If no seats start a default one */ if (n_seats == 0 && config_get_boolean (config_get_instance (), "LightDM", "start-default-seat")) { - gchar *type; - Seat *seat; + gchar **types; + gchar **type; + Seat *seat = NULL; g_debug ("Adding default seat"); - type = config_get_string (config_get_instance (), "SeatDefaults", "type"); - seat = seat_new (type); - g_free (type); + types = config_get_string_list (config_get_instance (), "SeatDefaults", "type"); + for (type = types; type && *type; type++) + { + seat = seat_new (*type); + if (seat) + break; + } + g_strfreev (types); if (seat) { set_seat_properties (seat, NULL); @@ -1250,7 +1312,7 @@ main (int argc, char **argv) } else { - g_warning ("Failed to create default seat %s", type); + g_warning ("Failed to create default seat"); return EXIT_FAILURE; } } diff --git a/src/seat-surfaceflinger.c b/src/seat-surfaceflinger.c index 02509309..226c5113 100644 --- a/src/seat-surfaceflinger.c +++ b/src/seat-surfaceflinger.c @@ -26,8 +26,10 @@ seat_surfaceflinger_setup (Seat *seat) static DisplayServer * seat_surfaceflinger_create_display_server (Seat *seat, const gchar *session_type) -{ - if (strcmp (session_type, "surfaceflinger") == 0) +{ + /* Allow mir types too, because Mir sessions usually support surfaceflinger + as an alternate mode, since Mir is frequently used on phones. */ + if (strcmp (session_type, "surfaceflinger") == 0 || strcmp (session_type, "mir") == 0) return DISPLAY_SERVER (surfaceflinger_server_new ()); else { diff --git a/src/seat-unity.c b/src/seat-unity.c index 2d2373b0..e9a89e02 100644 --- a/src/seat-unity.c +++ b/src/seat-unity.c @@ -69,9 +69,6 @@ struct SeatUnityPrivate gint next_x_server_id; gint next_greeter_id; - /* TRUE if using VT switching fallback */ - gboolean use_vt_switching; - /* The currently visible session */ Session *active_session; DisplayServer *active_display_server; @@ -109,15 +106,6 @@ compositor_stopped_cb (Process *process, SeatUnity *seat) return; } - /* If stopped before it was ready, then revert to VT mode */ - if (!seat->priv->compositor_ready) - { - l_debug (seat, "Compositor failed to start, switching to VT mode"); - seat->priv->use_vt_switching = TRUE; - SEAT_CLASS (seat_unity_parent_class)->start (SEAT (seat)); - return; - } - l_debug (seat, "Stopping Unity seat, compositor terminated"); seat_stop (SEAT (seat)); @@ -410,6 +398,7 @@ create_x_server (Seat *seat) const gchar *command = NULL, *layout = NULL, *config_file = NULL, *xdmcp_manager = NULL, *key_name = NULL, *xdg_seat = NULL; gboolean allow_tcp; gint port = 0; + gchar *id; l_debug (seat, "Starting X server on Unity compositor"); @@ -419,18 +408,11 @@ create_x_server (Seat *seat) if (command) x_server_local_set_command (x_server, command); - if (SEAT_UNITY (seat)->priv->use_vt_switching) - x_server_local_set_vt (x_server, vt_get_unused ()); - else - { - gchar *id; - - id = g_strdup_printf ("x-%d", SEAT_UNITY (seat)->priv->next_x_server_id); - SEAT_UNITY (seat)->priv->next_x_server_id++; - x_server_local_set_mir_id (x_server, id); - x_server_local_set_mir_socket (x_server, SEAT_UNITY (seat)->priv->mir_socket_filename); - g_free (id); - } + id = g_strdup_printf ("x-%d", SEAT_UNITY (seat)->priv->next_x_server_id); + SEAT_UNITY (seat)->priv->next_x_server_id++; + x_server_local_set_mir_id (x_server, id); + x_server_local_set_mir_socket (x_server, SEAT_UNITY (seat)->priv->mir_socket_filename); + g_free (id); layout = seat_get_string_property (seat, "xserver-layout"); if (layout) @@ -502,9 +484,6 @@ create_mir_server (Seat *seat) mir_server = mir_server_new (); mir_server_set_parent_socket (mir_server, SEAT_UNITY (seat)->priv->mir_socket_filename); - if (SEAT_UNITY (seat)->priv->use_vt_switching) - mir_server_set_vt (mir_server, vt_get_unused ()); - return DISPLAY_SERVER (mir_server); } @@ -528,7 +507,7 @@ seat_unity_create_greeter_session (Seat *seat) Greeter *greeter_session; const gchar *xdg_seat; gchar *id; - gint vt = -1; + gint vt; greeter_session = SEAT_CLASS (seat_unity_parent_class)->create_greeter_session (seat); xdg_seat = seat_get_string_property (seat, "xdg-seat"); @@ -542,9 +521,7 @@ seat_unity_create_greeter_session (Seat *seat) session_set_env (SESSION (greeter_session), "MIR_SERVER_NAME", id); g_free (id); - if (!SEAT_UNITY (seat)->priv->use_vt_switching) - vt = SEAT_UNITY (seat)->priv->vt; - + vt = SEAT_UNITY (seat)->priv->vt; if (vt >= 0) { gchar *value = g_strdup_printf ("%d", vt); @@ -564,7 +541,7 @@ seat_unity_create_session (Seat *seat) Session *session; const gchar *xdg_seat; gchar *id; - gint vt = -1; + gint vt; session = SEAT_CLASS (seat_unity_parent_class)->create_session (seat); xdg_seat = seat_get_string_property (seat, "xdg-seat"); @@ -578,9 +555,7 @@ seat_unity_create_session (Seat *seat) session_set_env (session, "MIR_SERVER_NAME", id); g_free (id); - if (!SEAT_UNITY (seat)->priv->use_vt_switching) - vt = SEAT_UNITY (seat)->priv->vt; - + vt = SEAT_UNITY (seat)->priv->vt; if (vt >= 0) { gchar *value = g_strdup_printf ("%d", vt); @@ -599,17 +574,6 @@ seat_unity_set_active_session (Seat *seat, Session *session) { DisplayServer *display_server; - /* If no compositor, have to use VT switching */ - if (SEAT_UNITY (seat)->priv->use_vt_switching) - { - gint vt = display_server_get_vt (session_get_display_server (session)); - if (vt >= 0) - vt_set_active (vt); - - SEAT_CLASS (seat_unity_parent_class)->set_active_session (seat, session); - return; - } - if (session == SEAT_UNITY (seat)->priv->active_session) return; SEAT_UNITY (seat)->priv->active_session = g_object_ref (session); @@ -641,24 +605,6 @@ seat_unity_set_active_session (Seat *seat, Session *session) static Session * seat_unity_get_active_session (Seat *seat) { - if (SEAT_UNITY (seat)->priv->use_vt_switching) - { - gint vt; - GList *link; - vt = vt_get_active (); - if (vt < 0) - return NULL; - - for (link = seat_get_sessions (seat); link; link = link->next) - { - Session *session = link->data; - if (display_server_get_vt (session_get_display_server (session)) == vt) - return session; - } - - return NULL; - } - return SEAT_UNITY (seat)->priv->active_session; } @@ -671,10 +617,6 @@ seat_unity_set_next_session (Seat *seat, Session *session) if (!session) return; - /* If no compositor, don't worry about it */ - if (SEAT_UNITY (seat)->priv->use_vt_switching) - return; - display_server = session_get_display_server (session); if (IS_X_SERVER_LOCAL (display_server)) @@ -135,6 +135,13 @@ seat_get_string_property (Seat *seat, const gchar *name) return g_hash_table_lookup (seat->priv->properties, name); } +gchar ** +seat_get_string_list_property (Seat *seat, const gchar *name) +{ + g_return_val_if_fail (seat != NULL, NULL); + return g_strsplit (g_hash_table_lookup (seat->priv->properties, name), ";", 0); +} + gboolean seat_get_boolean_property (Seat *seat, const gchar *name) { @@ -430,13 +437,12 @@ switch_to_greeter_from_failed_session (Seat *seat, Session *session) DisplayServer *display_server; display_server = create_display_server (seat, session_get_session_type (session)); + session_set_display_server (session, display_server); if (!display_server_start (display_server)) { l_debug (seat, "Failed to start display server for greeter"); seat_stop (seat); } - - session_set_display_server (session, display_server); } start_session (seat, SESSION (greeter_session)); @@ -1382,8 +1388,6 @@ seat_switch_to_guest (Seat *seat, const gchar *session_name) return FALSE; display_server = create_display_server (seat, session_get_session_type (session)); - if (!display_server_start (display_server)) - return FALSE; if (seat->priv->session_to_activate) g_object_unref (seat->priv->session_to_activate); @@ -1391,7 +1395,7 @@ seat_switch_to_guest (Seat *seat, const gchar *session_name) session_set_pam_service (session, AUTOLOGIN_SERVICE); session_set_display_server (session, display_server); - return TRUE; + return display_server_start (display_server); } gboolean @@ -1421,8 +1425,6 @@ seat_lock (Seat *seat, const gchar *username) return FALSE; display_server = create_display_server (seat, session_get_session_type (SESSION (greeter_session))); - if (!display_server_start (display_server)) - return FALSE; if (seat->priv->session_to_activate) g_object_unref (seat->priv->session_to_activate); @@ -1432,7 +1434,7 @@ seat_lock (Seat *seat, const gchar *username) greeter_set_hint (greeter_session, "select-user", username); session_set_display_server (SESSION (greeter_session), display_server); - return TRUE; + return display_server_start (display_server); } void @@ -67,6 +67,8 @@ void seat_set_property (Seat *seat, const gchar *name, const gchar *value); const gchar *seat_get_string_property (Seat *seat, const gchar *name); +gchar **seat_get_string_list_property (Seat *seat, const gchar *name); + gboolean seat_get_boolean_property (Seat *seat, const gchar *name); gint seat_get_integer_property (Seat *seat, const gchar *name); diff --git a/src/session-child.c b/src/session-child.c index bf70aa7f..f9d0bfb3 100644 --- a/src/session-child.c +++ b/src/session-child.c @@ -530,11 +530,6 @@ session_child_run (int argc, char **argv) g_free (value); } - /* Put our tools directory in the path as a hack so we can use the legacy gdmflexiserver interface */ - path = pam_getenv (pam_handle, "PATH"); - if (path) - pam_putenv (pam_handle, g_strdup_printf ("PATH=%s:%s", PKGLIBEXEC_DIR, path)); - /* Catch terminate signal and pass it to the child */ signal (SIGTERM, signal_cb); diff --git a/tests/Makefile.am b/tests/Makefile.am index 92014235..4b387d4a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -52,7 +52,6 @@ TESTS = \ test-xdg-current-desktop \ test-xdg-seat \ test-language-env \ - test-util-path \ test-session-stdout \ test-session-stderr \ test-session-stderr-multi-write \ @@ -157,6 +156,7 @@ TESTS = \ test-unity-compositor-command \ test-unity-compositor-fail-start \ test-unity-compositor-fail-ready \ + test-unity-compositor-fallback \ test-unity-compositor-next-session \ test-unity-compositor-mir-next-session \ test-unity-autologin \ @@ -166,6 +166,7 @@ TESTS = \ test-unity-mir-autologin \ test-unity-mir-greeter-x-session \ test-unity-mir-greeter-mir-session \ + test-unity-mir-lock-seat \ test-unity-mir-session-x-greeter \ test-unity-xdg-seat \ test-surfaceflinger-autologin @@ -432,11 +433,13 @@ EXTRA_DIST = \ scripts/unity-compositor-command.conf \ scripts/unity-compositor-fail-ready.conf \ scripts/unity-compositor-fail-start.conf \ + scripts/unity-compositor-fallback.conf \ scripts/unity-compositor-mir-next-session.conf \ scripts/unity-compositor-next-session.conf \ scripts/unity-login.conf \ scripts/unity-mir-autologin.conf \ scripts/unity-mir-greeter-mir-session.conf \ + scripts/unity-mir-lock-seat.conf \ scripts/unity-mir-greeter-x-session.conf \ scripts/unity-mir-session-x-greeter.conf \ scripts/unity-plymouth.conf \ @@ -451,7 +454,6 @@ EXTRA_DIST = \ scripts/user-layout.conf \ scripts/user-logged-in.conf \ scripts/user-name.conf \ - scripts/util-path.conf \ scripts/user-renamed.conf \ scripts/user-renamed-invalid.conf \ scripts/user-session.conf \ diff --git a/tests/scripts/unity-compositor-fail-ready.conf b/tests/scripts/unity-compositor-fail-ready.conf index d197d9fc..6b6c454b 100644 --- a/tests/scripts/unity-compositor-fail-ready.conf +++ b/tests/scripts/unity-compositor-fail-ready.conf @@ -1,5 +1,5 @@ # -# Check falls back to VT switching when the compositor fails to indicate it is ready +# Check clean stop when the compositor fails to indicate it is ready # [SeatDefaults] @@ -14,23 +14,5 @@ unity-compositor-timeout=1 # Timeout and compositor is stopped #?UNITY-SYSTEM-COMPOSITOR TERMINATE SIGNAL=15 -# X server starts in VT mode -#?XSERVER-0 START VT=7 - -# Daemon connects when X server is ready -#?*XSERVER-0 INDICATE-READY -#?XSERVER-0 INDICATE-READY -#?XSERVER-0 ACCEPT-CONNECT - -# Greeter starts -#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter -#?XSERVER-0 ACCEPT-CONNECT -#?GREETER-X-0 CONNECT-XSERVER -#?GREETER-X-0 CONNECT-TO-DAEMON -#?GREETER-X-0 CONNECTED-TO-DAEMON - # Cleanup -#?*STOP-DAEMON -#?GREETER-X-0 TERMINATE SIGNAL=15 -#?XSERVER-0 TERMINATE SIGNAL=15 -#?RUNNER DAEMON-EXIT STATUS=0 +#?RUNNER DAEMON-EXIT STATUS=1 diff --git a/tests/scripts/unity-compositor-fail-start.conf b/tests/scripts/unity-compositor-fail-start.conf index 25e6e45a..206e9f86 100644 --- a/tests/scripts/unity-compositor-fail-start.conf +++ b/tests/scripts/unity-compositor-fail-start.conf @@ -1,5 +1,5 @@ # -# Check falls back to VT switching when the compositor fails to start +# Check clean stop when the compositor fails to start # [unity-system-compositor-config] @@ -14,23 +14,5 @@ type=unity #?UNITY-SYSTEM-COMPOSITOR START VT=7 XDG_VTNR=7 #?UNITY-SYSTEM-COMPOSITOR EXIT CODE=1 -# X server starts in VT mode -#?XSERVER-0 START VT=7 - -# Daemon connects when X server is ready -#?*XSERVER-0 INDICATE-READY -#?XSERVER-0 INDICATE-READY -#?XSERVER-0 ACCEPT-CONNECT - -# Greeter starts -#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter -#?XSERVER-0 ACCEPT-CONNECT -#?GREETER-X-0 CONNECT-XSERVER -#?GREETER-X-0 CONNECT-TO-DAEMON -#?GREETER-X-0 CONNECTED-TO-DAEMON - # Cleanup -#?*STOP-DAEMON -#?GREETER-X-0 TERMINATE SIGNAL=15 -#?XSERVER-0 TERMINATE SIGNAL=15 -#?RUNNER DAEMON-EXIT STATUS=0 +#?RUNNER DAEMON-EXIT STATUS=1 diff --git a/tests/scripts/unity-compositor-fallback.conf b/tests/scripts/unity-compositor-fallback.conf new file mode 100644 index 00000000..a8753932 --- /dev/null +++ b/tests/scripts/unity-compositor-fallback.conf @@ -0,0 +1,40 @@ +# +# Check seat type falls back when the compositor fails to start +# + +[unity-system-compositor-config] +return-value=1 + +[SeatDefaults] +type=unity;INVALID;unity;xlocal; + +#?RUNNER DAEMON-START + +# System compositor fails to start +#?UNITY-SYSTEM-COMPOSITOR START VT=7 XDG_VTNR=7 +#?UNITY-SYSTEM-COMPOSITOR EXIT CODE=1 + +# System compositor fails to start a second time +#?UNITY-SYSTEM-COMPOSITOR START VT=7 XDG_VTNR=7 +#?UNITY-SYSTEM-COMPOSITOR EXIT CODE=1 + +# X server starts in VT mode +#?XSERVER-0 START VT=7 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Greeter starts +#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?XSERVER-0 ACCEPT-CONNECT +#?GREETER-X-0 CONNECT-XSERVER +#?GREETER-X-0 CONNECT-TO-DAEMON +#?GREETER-X-0 CONNECTED-TO-DAEMON + +# Cleanup +#?*STOP-DAEMON +#?GREETER-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/unity-mir-lock-seat.conf b/tests/scripts/unity-mir-lock-seat.conf new file mode 100644 index 00000000..e4911cfa --- /dev/null +++ b/tests/scripts/unity-mir-lock-seat.conf @@ -0,0 +1,43 @@ +# +# Check can lock a seat from D-Bus with Mir +# + +[SeatDefaults] +autologin-user=have-password1 +type=unity +user-session=mir + +#?RUNNER DAEMON-START + +# System compositor starts +#?UNITY-SYSTEM-COMPOSITOR START VT=7 XDG_VTNR=7 +#?*UNITY-SYSTEM-COMPOSITOR READY + +# Session starts +#?SESSION-MIR-session-0 START XDG_SEAT=seat0 XDG_VTNR=7 DESKTOP_SESSION=mir USER=have-password1 + +# System compositor switches to session +#?UNITY-SYSTEM-COMPOSITOR SET-ACTIVE-SESSION ID=session-0 + +# Lock the seat +#?*SESSION-MIR-session-0 LOCK-SEAT +#?SESSION-MIR-session-0 LOCK-SEAT + +# Session is locked +#?LOGIN1 LOCK-SESSION + +# Greeter starts +#?GREETER-MIR-greeter-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter +#?GREETER-MIR-greeter-0 CONNECT-TO-DAEMON +#?GREETER-MIR-greeter-0 CONNECTED-TO-DAEMON +#?GREETER-MIR-greeter-0 LOCK-HINT + +# Switch to greeter +#?UNITY-SYSTEM-COMPOSITOR SET-ACTIVE-SESSION ID=greeter-0 + +# Cleanup +#?*STOP-DAEMON +#?GREETER-MIR-greeter-0 TERMINATE SIGNAL=15 +#?SESSION-MIR-session-0 TERMINATE SIGNAL=15 +#?UNITY-SYSTEM-COMPOSITOR TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/scripts/util-path.conf b/tests/scripts/util-path.conf deleted file mode 100644 index fe21ed83..00000000 --- a/tests/scripts/util-path.conf +++ /dev/null @@ -1,33 +0,0 @@ -# -# Check utility path is set in session -# - -[SeatDefaults] -autologin-user=have-password1 -user-session=default - -#?RUNNER DAEMON-START - -# X server starts -#?XSERVER-0 START VT=7 - -# 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 DESKTOP_SESSION=default USER=have-password1 -#?XSERVER-0 ACCEPT-CONNECT -#?SESSION-X-0 CONNECT-XSERVER - -# Check utility path is there -#?*SESSION-X-0 READ-ENV NAME=PATH -# FIXME: This is a really crap regex and the path could be overridden in the configure stage -#?SESSION-X-0 READ-ENV NAME=PATH VALUE=.*/lightdm:.* - -# Cleanup -#?*STOP-DAEMON -#?SESSION-X-0 TERMINATE SIGNAL=15 -#?XSERVER-0 TERMINATE SIGNAL=15 -#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/test-unity-compositor-fallback b/tests/test-unity-compositor-fallback new file mode 100755 index 00000000..c60cc1f0 --- /dev/null +++ b/tests/test-unity-compositor-fallback @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner unity-compositor-fallback test-gobject-greeter diff --git a/tests/test-unity-mir-lock-seat b/tests/test-unity-mir-lock-seat new file mode 100755 index 00000000..b4b4a190 --- /dev/null +++ b/tests/test-unity-mir-lock-seat @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner unity-mir-lock-seat test-mir-greeter diff --git a/tests/test-util-path b/tests/test-util-path deleted file mode 100755 index 05c7cd5d..00000000 --- a/tests/test-util-path +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./src/dbus-env ./src/test-runner util-path test-gobject-greeter diff --git a/utils/Makefile.am b/utils/Makefile.am deleted file mode 100644 index 6c75d6dc..00000000 --- a/utils/Makefile.am +++ /dev/null @@ -1,30 +0,0 @@ -bin_PROGRAMS = dm-tool -pkglibexec_PROGRAMS = lightdm-set-defaults -legacydir = $(libexecdir)/lightdm -dist_legacy_SCRIPTS = gdmflexiserver - -dm_tool_SOURCES = \ - dm-tool.c - -dm_tool_CFLAGS = \ - $(LIGHTDM_CFLAGS) \ - -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \ - -DLOCALE_DIR=\"$(datadir)/locale\" - -dm_tool_LDADD = \ - $(LIGHTDM_LIBS) - -lightdm_set_defaults_SOURCES = \ - lightdm-set-defaults.c - -lightdm_set_defaults_CFLAGS = \ - $(LIGHTDM_CFLAGS) \ - -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \ - -DLOCALE_DIR=\"$(datadir)/locale\" - -lightdm_set_defaults_LDADD = \ - $(LIGHTDM_LIBS) - -DISTCLEANFILES = \ - Makefile.in - diff --git a/utils/gdmflexiserver b/utils/gdmflexiserver deleted file mode 100755 index 0e040302..00000000 --- a/utils/gdmflexiserver +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2011 Canonical Ltd -# Author: Michael Terry <michael.terry@canonical.com> -# -# This program is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation, version 3 of the License. -# -# See http://www.gnu.org/copyleft/gpl.html for the full text of the license. - -if [ -z "$XDG_SEAT_PATH" ]; then - # something went wrong - exit 1 -fi - -dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.DisplayManager $XDG_SEAT_PATH org.freedesktop.DisplayManager.Seat.SwitchToGreeter diff --git a/utils/lightdm-set-defaults.c b/utils/lightdm-set-defaults.c deleted file mode 100644 index 75ea17c0..00000000 --- a/utils/lightdm-set-defaults.c +++ /dev/null @@ -1,277 +0,0 @@ -/* - * Copyright (C) 2011 Didier Roche. - * Author: Didier Roche <didrocks@ubuntu.com> - * - * This program is free software: you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. See http://www.gnu.org/copyleft/gpl.html the full text of the - * license. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <stdlib.h> -#include <unistd.h> - -#include <glib.h> -#include <glib/gi18n.h> - -#define SEATDEFAULT_KEY_GROUP "SeatDefaults" -#define TYPE_KEY_NAME "type" -#define SESSION_KEY_NAME "user-session" -#define GREETER_KEY_NAME "greeter-session" -#define AUTOLOGIN_KEY_NAME "autologin-user" -#define HIDE_USERS_KEY_NAME "greeter-hide-users" -#define MANUAL_LOGIN_KEY_NAME "greeter-show-manual-login" -#define REMOTE_LOGIN_KEY_NAME "greeter-show-remote-login" -#define ALLOW_GUEST_KEY_NAME "allow-guest" - -#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0') - -static gboolean debug = FALSE; -static gboolean keep_old = FALSE; -static gboolean remove = FALSE; -static gboolean hide_users = FALSE; -static gboolean show_manual_login = FALSE; -static gboolean show_remote_login = FALSE; -static gboolean allow_guest = FALSE; - -static char *type = NULL; -static char *session = NULL; -static char *greeter = NULL; -static char *autologin = NULL; -static char *str_hide_users = NULL; -static char *str_show_manual_login = NULL; -static char *str_show_remote_login = NULL; -static char *str_allow_guest = NULL; - -static GOptionEntry entries[] = -{ - { "debug", 'd', 0, G_OPTION_ARG_NONE, &debug, N_("Enable debugging"), NULL }, - { "keep-old", 'k', 0, G_OPTION_ARG_NONE, &keep_old, N_("Only update if no default already set"), NULL }, - { "remove", 'r', 0, G_OPTION_ARG_NONE, &remove, N_("Remove default value if it's the current one"), NULL }, - { "type", 't', 0, G_OPTION_ARG_STRING, &type, N_("Set default seat type"), NULL }, - { "session", 's', 0, G_OPTION_ARG_STRING, &session, N_("Set default session"), NULL }, - { "greeter", 'g', 0, G_OPTION_ARG_STRING, &greeter, N_("Set default greeter"), NULL }, - { "autologin",'a', 0, G_OPTION_ARG_STRING, &autologin, N_("Set autologin user"), NULL }, - { "hide-users",'i', 0, G_OPTION_ARG_STRING, &str_hide_users, N_("Set greeter-hide-users to true or false"), NULL }, - { "show-manual-login",'m', 0, G_OPTION_ARG_STRING, &str_show_manual_login, N_("Set show-manual-login to true or false"), NULL }, - { "show-remote-login",'R', 0, G_OPTION_ARG_STRING, &str_show_remote_login, N_("Set show-remote-login to true or false"), NULL }, - { "allow-guest",'l', 0, G_OPTION_ARG_STRING, &str_allow_guest, N_("Set allow-guest to true or false"), NULL }, - { NULL } -}; - -void -show_nothing(const gchar *log_domain, - GLogLevelFlags log_level, - const gchar *message, - gpointer unused_data) {}; - -int -update_boolean(const gboolean new_value, - gboolean keep_old, - const gchar *key_group, - const gchar *key_name, - GKeyFile *keyfile) -{ - if (keep_old) - g_debug ("keep-old mode: keep previous default value"); - else { - g_debug ("Update to %d for %s", new_value, key_name); - g_key_file_set_boolean (keyfile, key_group, key_name, new_value); - } - return(0); -} - -int -update_string(const gchar *default_value, - const gchar *new_value, - gboolean keep_old, - gboolean remove, - const gchar *key_group, - const gchar *key_name, - GKeyFile *keyfile) -{ - if (!(default_value) || (strlen(default_value) < 1)) { - g_debug ("No existing valid value for %s. Set to %s", key_name, new_value); - g_key_file_set_string (keyfile, key_group, key_name, new_value); - } - else { - if (remove) { - if (g_strcmp0 (default_value, new_value) == 0) { - g_debug ("Remove %s as default value for %s", default_value, key_name); - g_key_file_set_string (keyfile, key_group, key_name, ""); - return(0); - } - g_debug ("Can't remove: %s is not the default value for %s", default_value, key_name); - return(4); - } - else { - g_debug ("Found existing default value(%s) for %s", default_value, key_name); - if (keep_old) - g_debug ("keep-old mode: keep previous default value"); - else { - g_debug ("Update to %s for %s", new_value, key_name); - g_key_file_set_string (keyfile, key_group, key_name, new_value); - } - } - } - return(0); -} - -int -str_to_bool(const gchar *str, gboolean *bool_out) -{ - if (IS_STRING_EMPTY(str)) { - return -1; - } - else if (strncasecmp(str, "true", 4)==0) { - *bool_out = TRUE; - return 0; - } - else if (strncasecmp(str, "false", 5)==0) { - *bool_out = FALSE; - return 0; - } - else { - return -2; - } -} - -int -main (int argc, char *argv[]) -{ - GOptionContext *context = NULL; - GError *error = NULL; - - GKeyFile *keyfile; - GKeyFileFlags flags; - gchar *s_data; - gsize size; - const gchar *gdm_conf_file = CONFIG_DIR "/lightdm.conf"; - - gchar *default_type = NULL; - gchar *default_session = NULL; - gchar *default_greeter = NULL; - gchar *default_autologin = NULL; - gint return_code = 0; - - bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); - -#if !defined(GLIB_VERSION_2_36) - g_type_init (); -#endif - - context = g_option_context_new (N_("- set lightdm default values")); - g_option_context_add_main_entries (context, entries, NULL); - if (!g_option_context_parse (context, &argc, &argv, &error)) { - g_printerr (N_("option parsing failed: %s\n"), error->message); - g_option_context_free (context); - g_error_free (error); - return 1; - } - if (IS_STRING_EMPTY (type) && IS_STRING_EMPTY (session) && IS_STRING_EMPTY (greeter) && IS_STRING_EMPTY (autologin) && IS_STRING_EMPTY(str_hide_users) && IS_STRING_EMPTY(str_show_manual_login) && IS_STRING_EMPTY(str_show_remote_login) && IS_STRING_EMPTY(str_allow_guest)) { - g_printerr (N_("Wrong usage of the command\n%s"), g_option_context_get_help (context, FALSE, NULL)); - g_option_context_free (context); - return 1; - } - if (context) - g_option_context_free (context); - if (!debug) - g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, show_nothing, NULL); - - keyfile = g_key_file_new (); - flags = G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS; - if (!(g_key_file_load_from_file (keyfile, gdm_conf_file, flags, &error))) { - g_debug ("File doesn't seem to exist or can't be read: create one (%s)", error->message); - g_error_free (error); - error = NULL; - } - - // try to get the right keys - default_type = g_key_file_get_string (keyfile, SEATDEFAULT_KEY_GROUP, TYPE_KEY_NAME, NULL); - default_session = g_key_file_get_string (keyfile, SEATDEFAULT_KEY_GROUP, SESSION_KEY_NAME, NULL); - default_greeter = g_key_file_get_string (keyfile, SEATDEFAULT_KEY_GROUP, GREETER_KEY_NAME, NULL); - default_autologin = g_key_file_get_string (keyfile, SEATDEFAULT_KEY_GROUP, AUTOLOGIN_KEY_NAME, NULL); - - if (!(IS_STRING_EMPTY (type))) - return_code = update_string (default_type, type, keep_old, remove, SEATDEFAULT_KEY_GROUP, TYPE_KEY_NAME, keyfile); - if (!(IS_STRING_EMPTY (session))) - return_code = update_string (default_session, session, keep_old, remove, SEATDEFAULT_KEY_GROUP, SESSION_KEY_NAME, keyfile); - if (!(IS_STRING_EMPTY (greeter)) && (return_code == 0)) - return_code = update_string (default_greeter, greeter, keep_old, remove, SEATDEFAULT_KEY_GROUP, GREETER_KEY_NAME, keyfile); - if (!(IS_STRING_EMPTY (autologin)) && (return_code == 0)) - return_code = update_string (default_autologin, autologin, keep_old, remove, SEATDEFAULT_KEY_GROUP, AUTOLOGIN_KEY_NAME, keyfile); - if (!(IS_STRING_EMPTY(str_hide_users)) && (return_code == 0)) { - if (str_to_bool(str_hide_users, &hide_users) == 0) { - return_code = update_boolean (hide_users, keep_old, SEATDEFAULT_KEY_GROUP, HIDE_USERS_KEY_NAME, keyfile); - } - else { - g_printerr (N_("true and false are the only valid choices for hide-users\n")); - return 1; - } - } - if (!(IS_STRING_EMPTY(str_allow_guest)) && (return_code == 0)) { - if (str_to_bool(str_allow_guest, &allow_guest) == 0) { - return_code = update_boolean (allow_guest, keep_old, SEATDEFAULT_KEY_GROUP, ALLOW_GUEST_KEY_NAME, keyfile); - } - else { - g_printerr (N_("true and false are the only valid choices for allow-guest\n")); - return 1; - } - } - if (!(IS_STRING_EMPTY(str_show_manual_login)) && (return_code == 0)) { - if (str_to_bool(str_show_manual_login, &show_manual_login) == 0) { - return_code = update_boolean (show_manual_login, keep_old, SEATDEFAULT_KEY_GROUP, MANUAL_LOGIN_KEY_NAME, keyfile); - } - else { - g_printerr (N_("true and false are the only valid choices for show-manual-login\n")); - return 1; - } - } - if (!(IS_STRING_EMPTY(str_show_remote_login)) && (return_code == 0)) { - if (str_to_bool(str_show_remote_login, &show_remote_login) == 0) { - return_code = update_boolean (show_remote_login, keep_old, SEATDEFAULT_KEY_GROUP, REMOTE_LOGIN_KEY_NAME, keyfile); - } - else { - g_printerr (N_("true and false are the only valid choices for show-remote-login\n")); - return 1; - } - } - - if (return_code == 0) { - s_data = g_key_file_to_data (keyfile, &size, &error); - if (!s_data) { - g_debug ("Can't convert data to string: %s", error->message); - g_error_free (error); - return_code = 1; - } - else { - if(!g_file_set_contents (gdm_conf_file, s_data, size, &error)) { - g_printerr ("Can't update: %s\n", error->message); - g_error_free (error); - return_code = 1; - } - g_free (s_data); - } - } - - g_key_file_free (keyfile); - - if (default_type) - g_free (default_type); - if (default_session) - g_free (default_session); - if (default_greeter) - g_free (default_greeter); - if (default_autologin) - g_free (default_autologin); - - return return_code; - -} |