diff -Nru lightdm-1.1.6/configure lightdm-1.1.7/configure --- lightdm-1.1.6/configure 2012-03-06 00:59:34.000000000 +0000 +++ lightdm-1.1.7/configure 2012-03-09 04:23:29.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for lightdm 1.1.6. +# Generated by GNU Autoconf 2.68 for lightdm 1.1.7. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -567,8 +567,8 @@ # Identity of this package. PACKAGE_NAME='lightdm' PACKAGE_TARNAME='lightdm' -PACKAGE_VERSION='1.1.6' -PACKAGE_STRING='lightdm 1.1.6' +PACKAGE_VERSION='1.1.7' +PACKAGE_STRING='lightdm 1.1.7' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1433,7 +1433,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures lightdm 1.1.6 to adapt to many kinds of systems. +\`configure' configures lightdm 1.1.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1503,7 +1503,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of lightdm 1.1.6:";; + short | recursive ) echo "Configuration of lightdm 1.1.7:";; esac cat <<\_ACEOF @@ -1667,7 +1667,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -lightdm configure 1.1.6 +lightdm configure 1.1.7 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2153,7 +2153,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by lightdm $as_me 1.1.6, which was +It was created by lightdm $as_me 1.1.7, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2971,7 +2971,7 @@ # Define the identity of the package. PACKAGE='lightdm' - VERSION='1.1.6' + VERSION='1.1.7' cat >>confdefs.h <<_ACEOF @@ -18766,7 +18766,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by lightdm $as_me 1.1.6, which was +This file was extended by lightdm $as_me 1.1.7, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18832,7 +18832,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -lightdm config.status 1.1.6 +lightdm config.status 1.1.7 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -Nru lightdm-1.1.6/configure.ac lightdm-1.1.7/configure.ac --- lightdm-1.1.6/configure.ac 2012-03-06 00:59:20.000000000 +0000 +++ lightdm-1.1.7/configure.ac 2012-03-09 04:23:24.000000000 +0000 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(lightdm, 1.1.6) +AC_INIT(lightdm, 1.1.7) AC_CONFIG_MACRO_DIR(m4) AC_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE diff -Nru lightdm-1.1.6/data/lightdm.conf lightdm-1.1.7/data/lightdm.conf --- lightdm-1.1.6/data/lightdm.conf 2012-03-05 22:11:10.000000000 +0000 +++ lightdm-1.1.7/data/lightdm.conf 2012-03-08 04:53:30.000000000 +0000 @@ -38,6 +38,8 @@ # xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf) # greeter-session = Session to load for greeter # greeter-hide-users = True to hide the user list +# greeter-show-guest = True if the greeter should show a guest login option +# greeter-show-manual-login = True if the greeter should offer a manual login option # user-session = Session to load for users # allow-guest = True if guest login is allowed # guest-session = Session to load for guests (overrides user-session) @@ -62,6 +64,8 @@ #xdmcp-key= #greeter-session=example-gtk-gnome #greeter-hide-users=false +#greeter-show-guest=true +#greeter-show-manual-login=false #user-session=default #allow-guest=true #guest-session=UNIMPLEMENTED diff -Nru lightdm-1.1.6/debian/changelog lightdm-1.1.7/debian/changelog --- lightdm-1.1.6/debian/changelog 2012-03-09 04:49:02.000000000 +0000 +++ lightdm-1.1.7/debian/changelog 2012-03-09 04:49:02.000000000 +0000 @@ -1,3 +1,9 @@ +lightdm (1.1.7-0ubuntu1) precise; urgency=low + + * New upstream release. + + -- Robert Ancell Fri, 09 Mar 2012 15:28:40 +1100 + lightdm (1.1.6-0ubuntu1) precise; urgency=low * Upload the new version to Ubuntu diff -Nru lightdm-1.1.6/debian/liblightdm-gobject-1-0.symbols lightdm-1.1.7/debian/liblightdm-gobject-1-0.symbols --- lightdm-1.1.6/debian/liblightdm-gobject-1-0.symbols 2012-03-09 04:49:02.000000000 +0000 +++ lightdm-1.1.7/debian/liblightdm-gobject-1-0.symbols 2012-03-09 04:49:02.000000000 +0000 @@ -27,6 +27,7 @@ lightdm_greeter_get_lock_hint@Base 1.1.3 lightdm_greeter_get_select_guest_hint@Base 0.9.2 lightdm_greeter_get_select_user_hint@Base 0.9.2 + lightdm_greeter_get_show_manual_login_hint@Base 1.1.7 lightdm_greeter_get_type@Base 0.9.2 lightdm_greeter_new@Base 0.9.2 lightdm_greeter_respond@Base 0.9.2 @@ -57,7 +58,7 @@ lightdm_user_get_image@Base 0.9.2 lightdm_user_get_language@Base 0.9.2 lightdm_user_get_layout@Base 0.9.2 - lightdm_user_get_layouts@Base 1.1.2-0ubuntu3 + lightdm_user_get_layouts@Base 1.1.3 lightdm_user_get_logged_in@Base 0.9.2 lightdm_user_get_name@Base 0.9.2 lightdm_user_get_real_name@Base 0.9.2 diff -Nru lightdm-1.1.6/liblightdm-gobject/greeter.c lightdm-1.1.7/liblightdm-gobject/greeter.c --- lightdm-1.1.6/liblightdm-gobject/greeter.c 2012-02-26 03:45:35.000000000 +0000 +++ lightdm-1.1.7/liblightdm-gobject/greeter.c 2012-03-08 05:17:13.000000000 +0000 @@ -21,6 +21,7 @@ PROP_0, PROP_DEFAULT_SESSION_HINT, PROP_HIDE_USERS_HINT, + PROP_SHOW_MANUAL_LOGIN_HINT, PROP_LOCK_HINT, PROP_HAS_GUEST_ACCOUNT_HINT, PROP_SELECT_USER_HINT, @@ -546,7 +547,13 @@ * lightdm_greeter_get_hide_users_hint: * @greeter: A #LightDMGreeter * - * Check if user accounts should be shown. + * Check if user accounts should be shown. If this is TRUE then the list of + * accounts should be taken from #LightDMUserList and displayed in the greeter + * for the user to choose from. Note that this list can be empty and it is + * recommended you show a method for the user to enter a username manually. + * + * If this option is shown the greeter should only allow these users to be + * chosen for login unless the manual login hint is set. * * Return value: #TRUE if the available users should not be shown. */ @@ -562,6 +569,28 @@ } /** + * lightdm_greeter_get_show_manual_login_hint: + * @greeter: A #LightDMGreeter + * + * Check if a manual login option should be shown. If set the GUI + * should provide a way for a username to be entered manually. + * Without this hint a greeter which is showing a user list can + * limit logins to only those users. + * + * Return value: #TRUE if a manual login option should be shown. + */ +gboolean +lightdm_greeter_get_show_manual_login_hint (LightDMGreeter *greeter) +{ + const gchar *value; + + g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); + value = lightdm_greeter_get_hint (greeter, "show-manual-login"); + + return g_strcmp0 (value, "true") == 0; +} + +/** * lightdm_greeter_get_lock_hint: * @greeter: A #LightDMGreeter * @@ -990,6 +1019,9 @@ case PROP_HIDE_USERS_HINT: g_value_set_boolean (value, lightdm_greeter_get_hide_users_hint (self)); break; + case PROP_SHOW_MANUAL_LOGIN_HINT: + g_value_set_boolean (value, lightdm_greeter_get_show_manual_login_hint (self)); + break; case PROP_LOCK_HINT: g_value_set_boolean (value, lightdm_greeter_get_lock_hint (self)); break; @@ -1106,6 +1138,14 @@ G_PARAM_READABLE)); g_object_class_install_property (object_class, + PROP_SHOW_MANUAL_LOGIN_HINT, + g_param_spec_boolean ("show-manual-login-hint", + "show-manual-login-hint", + "Show manual login hint", + FALSE, + G_PARAM_READABLE)); + + g_object_class_install_property (object_class, PROP_LOCK_HINT, g_param_spec_boolean ("lock-hint", "lock-hint", diff -Nru lightdm-1.1.6/liblightdm-gobject/liblightdm-gobject-1.vapi lightdm-1.1.7/liblightdm-gobject/liblightdm-gobject-1.vapi --- lightdm-1.1.6/liblightdm-gobject/liblightdm-gobject-1.vapi 2012-02-14 23:47:46.000000000 +0000 +++ lightdm-1.1.7/liblightdm-gobject/liblightdm-gobject-1.vapi 2012-03-08 04:54:46.000000000 +0000 @@ -27,6 +27,7 @@ public unowned string get_hint (string name); public unowned string default_session_hint { get; } public bool hide_users_hint { get; } + public bool show_manual_login_hint { get; } public bool lock_hint { get; } public bool has_guest_account_hint { get; } public unowned string select_user_hint { get; } diff -Nru lightdm-1.1.6/liblightdm-gobject/lightdm/greeter.h lightdm-1.1.7/liblightdm-gobject/lightdm/greeter.h --- lightdm-1.1.6/liblightdm-gobject/lightdm/greeter.h 2012-02-26 03:47:13.000000000 +0000 +++ lightdm-1.1.7/liblightdm-gobject/lightdm/greeter.h 2012-03-08 04:54:12.000000000 +0000 @@ -80,6 +80,8 @@ gboolean lightdm_greeter_get_hide_users_hint (LightDMGreeter *greeter); +gboolean lightdm_greeter_get_show_manual_login_hint (LightDMGreeter *greeter); + gboolean lightdm_greeter_get_lock_hint (LightDMGreeter *greeter); gboolean lightdm_greeter_get_has_guest_account_hint (LightDMGreeter *greeter); diff -Nru lightdm-1.1.6/liblightdm-qt/greeter.cpp lightdm-1.1.7/liblightdm-qt/greeter.cpp --- lightdm-1.1.6/liblightdm-qt/greeter.cpp 2012-02-09 05:10:16.000000000 +0000 +++ lightdm-1.1.7/liblightdm-qt/greeter.cpp 2012-03-08 05:13:14.000000000 +0000 @@ -181,6 +181,12 @@ return lightdm_greeter_get_hide_users_hint(d->ldmGreeter); } +bool Greeter::showManualLoginHint() const +{ + Q_D(const Greeter); + return lightdm_greeter_get_show_manual_login_hint(d->ldmGreeter); +} + bool Greeter::lockHint() const { Q_D(const Greeter); diff -Nru lightdm-1.1.6/liblightdm-qt/QLightDM/greeter.h lightdm-1.1.7/liblightdm-qt/QLightDM/greeter.h --- lightdm-1.1.6/liblightdm-qt/QLightDM/greeter.h 2012-02-09 04:18:29.000000000 +0000 +++ lightdm-1.1.7/liblightdm-qt/QLightDM/greeter.h 2012-03-08 05:12:21.000000000 +0000 @@ -46,6 +46,7 @@ QString getHint(const QString &name) const; QString defaultSessionHint() const; bool hideUsersHint() const; + bool showManualLoginHint() const; bool lockHint () const; bool hasGuestAccountHint() const; QString selectUserHint() const; diff -Nru lightdm-1.1.6/NEWS lightdm-1.1.7/NEWS --- lightdm-1.1.6/NEWS 2012-03-06 01:08:01.000000000 +0000 +++ lightdm-1.1.7/NEWS 2012-03-08 04:57:45.000000000 +0000 @@ -1,3 +1,10 @@ +Overview of changes in lightdm 1.1.7 + + * Add a seat option greeter-allow-guest which controls if the greeter should + provide an option to access the guest account. + * Add a seat option greeter-show-manual-login which hints to a greeter if it + should show a manual username entry if a user list is already present. + Overview of changes in lightdm 1.1.6 * Fix session wrapper working the same as it did in 1.1.3 diff -Nru lightdm-1.1.6/src/display.c lightdm-1.1.7/src/display.c --- lightdm-1.1.6/src/display.c 2012-03-06 00:51:09.000000000 +0000 +++ lightdm-1.1.7/src/display.c 2012-03-08 04:53:01.000000000 +0000 @@ -55,6 +55,9 @@ /* TRUE if the user list should be shown */ gboolean greeter_hide_users; + /* TRUE if a manual login option should be shown */ + gboolean greeter_show_manual_login; + /* TRUE if the greeter is a lock screen */ gboolean greeter_is_lock; @@ -97,6 +100,9 @@ /* TRUE if allowed to log into guest account */ gboolean allow_guest; + /* TRUE if greeter is to show the guest account */ + gboolean greeter_allow_guest; + /* TRUE if stopping the display (waiting for dispaly server, greeter and session to stop) */ gboolean stopping; @@ -168,6 +174,13 @@ } void +display_set_greeter_allow_guest (Display *display, gboolean greeter_allow_guest) +{ + g_return_if_fail (display != NULL); + display->priv->greeter_allow_guest = greeter_allow_guest; +} + +void display_set_autologin_user (Display *display, const gchar *username, gboolean is_guest, gint timeout) { g_return_if_fail (display != NULL); @@ -194,6 +207,13 @@ } void +display_set_show_manual_login_hint (Display *display, gboolean show_manual_login) +{ + g_return_if_fail (display != NULL); + display->priv->greeter_show_manual_login = show_manual_login; +} + +void display_set_lock_hint (Display *display, gboolean is_lock) { g_return_if_fail (display != NULL); @@ -405,8 +425,9 @@ greeter_set_hint (display->priv->greeter, "select-guest", "true"); greeter_set_hint (display->priv->greeter, "default-session", display->priv->user_session); greeter_set_allow_guest (display->priv->greeter, display->priv->allow_guest); - greeter_set_hint (display->priv->greeter, "has-guest-account", display->priv->allow_guest ? "true" : "false"); + greeter_set_hint (display->priv->greeter, "has-guest-account", (display->priv->allow_guest && display->priv->greeter_allow_guest) ? "true" : "false"); greeter_set_hint (display->priv->greeter, "hide-users", display->priv->greeter_hide_users ? "true" : "false"); + greeter_set_hint (display->priv->greeter, "show-manual-login", display->priv->greeter_show_manual_login ? "true" : "false"); if (display->priv->greeter_is_lock) greeter_set_hint (display->priv->greeter, "lock-screen", "true"); diff -Nru lightdm-1.1.6/src/display.h lightdm-1.1.7/src/display.h --- lightdm-1.1.6/src/display.h 2012-02-10 07:10:51.000000000 +0000 +++ lightdm-1.1.7/src/display.h 2012-03-08 04:52:46.000000000 +0000 @@ -64,12 +64,16 @@ void display_set_allow_guest (Display *display, gboolean allow_guest); +void display_set_greeter_allow_guest (Display *display, gboolean greeter_allow_guest); + void display_set_autologin_user (Display *display, const gchar *username, gboolean is_guest, gint timeout); void display_set_select_user_hint (Display *display, const gchar *username, gboolean is_guest); void display_set_hide_users_hint (Display *display, gboolean hide_users); +void display_set_show_manual_login_hint (Display *display, gboolean show_manual); + void display_set_lock_hint (Display *display, gboolean is_lock); void display_set_user_session (Display *display, const gchar *session_name); diff -Nru lightdm-1.1.6/src/lightdm.c lightdm-1.1.7/src/lightdm.c --- lightdm-1.1.6/src/lightdm.c 2012-03-02 05:44:49.000000000 +0000 +++ lightdm-1.1.7/src/lightdm.c 2012-03-08 04:22:39.000000000 +0000 @@ -997,6 +997,8 @@ config_set_boolean (config_get_instance (), "SeatDefaults", "start-session", TRUE); if (!config_has_key (config_get_instance (), "SeatDefaults", "allow-guest")) config_set_boolean (config_get_instance (), "SeatDefaults", "allow-guest", TRUE); + if (!config_has_key (config_get_instance (), "SeatDefaults", "greeter-allow-guest")) + config_set_boolean (config_get_instance (), "SeatDefaults", "greeter-allow-guest", TRUE); if (!config_has_key (config_get_instance (), "SeatDefaults", "greeter-session")) config_set_string (config_get_instance (), "SeatDefaults", "greeter-session", GREETER_SESSION); if (!config_has_key (config_get_instance (), "SeatDefaults", "user-session")) diff -Nru lightdm-1.1.6/src/seat.c lightdm-1.1.7/src/seat.c --- lightdm-1.1.6/src/seat.c 2012-03-02 05:42:15.000000000 +0000 +++ lightdm-1.1.7/src/seat.c 2012-03-08 04:53:15.000000000 +0000 @@ -179,6 +179,13 @@ return seat_get_boolean_property (seat, "allow-guest") && guest_account_is_installed (); } +gboolean +seat_get_greeter_allow_guest (Seat *seat) +{ + g_return_val_if_fail (seat != NULL, FALSE); + return seat_get_allow_guest (seat) && seat_get_boolean_property (seat, "greeter-allow-guest"); +} + static gboolean switch_to_user (Seat *seat, const gchar *username, gboolean unlock) { @@ -480,9 +487,11 @@ display_set_greeter_session (display, seat_get_string_property (seat, "greeter-session")); display_set_session_wrapper (display, seat_get_string_property (seat, "session-wrapper")); display_set_hide_users_hint (display, seat_get_boolean_property (seat, "greeter-hide-users")); + display_set_show_manual_login_hint (display, seat_get_boolean_property (seat, "greeter-show-manual-login")); if (is_lock) display_set_lock_hint (display, TRUE); display_set_allow_guest (display, seat_get_allow_guest (seat)); + display_set_greeter_allow_guest (display, seat_get_greeter_allow_guest (seat)); if (autologin) display_set_autologin_user (display, username, is_guest, 0); else diff -Nru lightdm-1.1.6/src/seat.h lightdm-1.1.7/src/seat.h --- lightdm-1.1.6/src/seat.h 2012-03-01 03:07:20.000000000 +0000 +++ lightdm-1.1.7/src/seat.h 2012-03-08 04:22:39.000000000 +0000 @@ -78,6 +78,8 @@ gboolean seat_get_allow_guest (Seat *seat); +gboolean seat_get_greeter_allow_guest (Seat *seat); + gboolean seat_switch_to_greeter (Seat *seat); gboolean seat_switch_to_user (Seat *seat, const gchar *username, const gchar *session_name); diff -Nru lightdm-1.1.6/tests/src/lightdm-session lightdm-1.1.7/tests/src/lightdm-session --- lightdm-1.1.6/tests/src/lightdm-session 2011-12-09 01:51:23.000000000 +0000 +++ lightdm-1.1.7/tests/src/lightdm-session 2012-03-07 02:11:40.000000000 +0000 @@ -1,2 +1,5 @@ #!/bin/sh -exec $@ + +# Run the session expecting the full command to be the first argument. It has +# to be like this for backwards compatibility instead of having a normal argument list +exec $1