SHA256
1
0
forked from pool/gdm
OBS User unknown 2008-11-09 23:24:59 +00:00 committed by Git OBS Bridge
parent 895a59d356
commit a8433b4ddc
4 changed files with 906 additions and 119 deletions

748
gdm-autologin.patch Normal file
View File

@ -0,0 +1,748 @@
2008-10-23 William Jon McCann <jmccann@redhat.com>
* daemon/gdm-display.c (gdm_display_real_get_timed_login_details),
(gdm_display_get_timed_login_details), (gdm_display_real_unmanage),
(gdm_display_class_init):
* daemon/gdm-display.h:
* daemon/gdm-display.xml:
* daemon/gdm-simple-slave.c (greeter_reset_timeout),
(on_session_setup_failed), (on_session_authentication_failed),
(on_session_authorized), (on_session_authorization_failed),
(stop_greeter), (start_session_timeout), (on_session_accredited),
(on_session_accreditation_failed), (on_session_info),
(on_session_opened), (on_session_selected_user_changed),
(on_default_language_name_changed),
(on_default_layout_name_changed),
(on_default_session_name_changed), (start_greeter),
(idle_connect_to_display), (gdm_simple_slave_stop):
* daemon/gdm-slave.c (gdm_slave_get_timed_login_details):
* daemon/gdm-slave.h:
* daemon/gdm-static-display.c (gdm_static_display_unmanage),
(gdm_static_display_get_timed_login_details),
(gdm_static_display_class_init), (gdm_static_display_init):
* daemon/gdm-transient-display.c
(gdm_transient_display_get_timed_login_details),
(gdm_transient_display_class_init):
* daemon/gdm-xdmcp-display.c
(gdm_xdmcp_display_get_timed_login_details),
(gdm_xdmcp_display_class_init):
Add support for a real automatic login. Make
automatic and timed login only work the first time a display
is managed. Also prevent automatic and timed login
from working on transient and xdmcp displays.
2008-10-22 William Jon McCann <jmccann@redhat.com>
* gui/user-switch-applet/gdm-entry-menu-item.c
Index: daemon/gdm-xdmcp-display.c
===================================================================
--- daemon/gdm-xdmcp-display.c (revision 6581)
+++ daemon/gdm-xdmcp-display.c (revision 6582)
@@ -182,6 +182,17 @@
}
static void
+gdm_xdmcp_display_get_timed_login_details (GdmDisplay *display,
+ gboolean *enabledp,
+ char **usernamep,
+ int *delayp)
+{
+ *enabledp = FALSE;
+ *usernamep = g_strdup ("");
+ *delayp = 0;
+}
+
+static void
gdm_xdmcp_display_class_init (GdmXdmcpDisplayClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -196,6 +207,7 @@
display_class->remove_user_authorization = gdm_xdmcp_display_remove_user_authorization;
display_class->manage = gdm_xdmcp_display_manage;
display_class->unmanage = gdm_xdmcp_display_unmanage;
+ display_class->get_timed_login_details = gdm_xdmcp_display_get_timed_login_details;
g_type_class_add_private (klass, sizeof (GdmXdmcpDisplayPrivate));
Index: daemon/gdm-display.xml
===================================================================
--- daemon/gdm-display.xml (revision 6581)
+++ daemon/gdm-display.xml (revision 6582)
@@ -35,5 +35,10 @@
<method name="SetSlaveBusName">
<arg name="name" direction="in" type="s"/>
</method>
+ <method name="GetTimedLoginDetails">
+ <arg name="enabled" direction="out" type="b"/>
+ <arg name="username" direction="out" type="s"/>
+ <arg name="delay" direction="out" type="i"/>
+ </method>
</interface>
</node>
Index: daemon/gdm-slave.c
===================================================================
--- daemon/gdm-slave.c (revision 6581)
+++ daemon/gdm-slave.c (revision 6582)
@@ -701,6 +701,60 @@
return res;
}
+gboolean
+gdm_slave_get_timed_login_details (GdmSlave *slave,
+ gboolean *enabledp,
+ char **usernamep,
+ int *delayp)
+{
+ GError *error;
+ gboolean res;
+ gboolean enabled;
+ char *username;
+ int delay;
+
+ username = NULL;
+ enabled = FALSE;
+ delay = 0;
+
+ g_debug ("GdmSlave: Requesting timed login details");
+
+ error = NULL;
+ res = dbus_g_proxy_call (slave->priv->display_proxy,
+ "GetTimedLoginDetails",
+ &error,
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &enabled,
+ G_TYPE_STRING, &username,
+ G_TYPE_INT, &delay,
+ G_TYPE_INVALID);
+
+ if (! res) {
+ if (error != NULL) {
+ g_warning ("Failed to get timed login details: %s", error->message);
+ g_error_free (error);
+ } else {
+ g_warning ("Failed to get timed login details");
+ }
+ } else {
+ g_debug ("GdmSlave: Got timed login details: %d %s %d", enabled, username, delay);
+ }
+
+ if (usernamep != NULL) {
+ *usernamep = username;
+ } else {
+ g_free (username);
+ }
+ if (enabledp != NULL) {
+ *enabledp = enabled;
+ }
+ if (delayp != NULL) {
+ *delayp = delay;
+ }
+
+ return res;
+}
+
static gboolean
_get_uid_and_gid_for_user (const char *username,
uid_t *uid,
Index: daemon/gdm-slave.h
===================================================================
--- daemon/gdm-slave.h (revision 6581)
+++ daemon/gdm-slave.h (revision 6582)
@@ -60,6 +60,11 @@
char * gdm_slave_get_primary_session_id_for_user (GdmSlave *slave,
const char *username);
+gboolean gdm_slave_get_timed_login_details (GdmSlave *slave,
+ gboolean *enabled,
+ char **username,
+ int *delay);
+
gboolean gdm_slave_add_user_authorization (GdmSlave *slave,
const char *username,
char **filename);
Index: daemon/gdm-display.c
===================================================================
--- daemon/gdm-display.c (revision 6581)
+++ daemon/gdm-display.c (revision 6582)
@@ -37,6 +37,9 @@
#include "gdm-display-glue.h"
#include "gdm-display-access-file.h"
+#include "gdm-settings-direct.h"
+#include "gdm-settings-keys.h"
+
#include "gdm-slave-proxy.h"
static guint32 display_serial = 1;
@@ -299,6 +302,90 @@
return ret;
}
+static void
+gdm_display_real_get_timed_login_details (GdmDisplay *display,
+ gboolean *enabledp,
+ char **usernamep,
+ int *delayp)
+{
+ gboolean res;
+ gboolean enabled;
+ int delay;
+ char *username;
+
+ enabled = FALSE;
+ username = NULL;
+ delay = 0;
+
+ res = gdm_settings_direct_get_boolean (GDM_KEY_AUTO_LOGIN_ENABLE, &enabled);
+ if (enabled) {
+ res = gdm_settings_direct_get_string (GDM_KEY_AUTO_LOGIN_USER, &username);
+ }
+
+ if (enabled && username != NULL && username[0] != '\0') {
+ goto out;
+ }
+
+ g_free (username);
+ username = NULL;
+ enabled = FALSE;
+
+ res = gdm_settings_direct_get_boolean (GDM_KEY_TIMED_LOGIN_ENABLE, &enabled);
+ if (! enabled) {
+ goto out;
+ }
+
+ res = gdm_settings_direct_get_string (GDM_KEY_TIMED_LOGIN_USER, &username);
+ if (username == NULL || username[0] == '\0') {
+ enabled = FALSE;
+ g_free (username);
+ username = NULL;
+ /* FIXME: check if a valid username? */
+ goto out;
+ }
+
+ delay = 0;
+ res = gdm_settings_direct_get_int (GDM_KEY_TIMED_LOGIN_DELAY, &delay);
+
+ if (delay <= 0) {
+ /* we don't allow the timed login to have a zero delay */
+ delay = 10;
+ }
+
+ out:
+ if (enabledp != NULL) {
+ *enabledp = enabled;
+ }
+ if (usernamep != NULL) {
+ *usernamep = username;
+ } else {
+ g_free (username);
+ }
+ if (delayp != NULL) {
+ *delayp = delay;
+ }
+}
+
+gboolean
+gdm_display_get_timed_login_details (GdmDisplay *display,
+ gboolean *enabled,
+ char **username,
+ int *delay,
+ GError **error)
+{
+ g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE);
+
+ GDM_DISPLAY_GET_CLASS (display)->get_timed_login_details (display, enabled, username, delay);
+
+ g_debug ("GdmSlave: Got timed login details for display %s: %d '%s' %d",
+ display->priv->x11_display_name,
+ *enabled,
+ *username,
+ *delay);
+
+ return TRUE;
+}
+
static gboolean
gdm_display_real_remove_user_authorization (GdmDisplay *display,
const char *username,
@@ -579,7 +666,7 @@
}
elapsed = g_timer_elapsed (display->priv->slave_timer, NULL);
- if (elapsed < 10) {
+ if (elapsed < 3) {
g_warning ("GdmDisplay: display lasted %lf seconds", elapsed);
_gdm_display_set_status (display, GDM_DISPLAY_FAILED);
} else {
@@ -897,6 +984,7 @@
klass->add_user_authorization = gdm_display_real_add_user_authorization;
klass->remove_user_authorization = gdm_display_real_remove_user_authorization;
klass->set_slave_bus_name = gdm_display_real_set_slave_bus_name;
+ klass->get_timed_login_details = gdm_display_real_get_timed_login_details;
klass->manage = gdm_display_real_manage;
klass->finish = gdm_display_real_finish;
klass->unmanage = gdm_display_real_unmanage;
Index: daemon/gdm-transient-display.c
===================================================================
--- daemon/gdm-transient-display.c (revision 6581)
+++ daemon/gdm-transient-display.c (revision 6582)
@@ -145,6 +145,17 @@
}
static void
+gdm_transient_display_get_timed_login_details (GdmDisplay *display,
+ gboolean *enabledp,
+ char **usernamep,
+ int *delayp)
+{
+ *enabledp = FALSE;
+ *usernamep = g_strdup ("");
+ *delayp = 0;
+}
+
+static void
gdm_transient_display_class_init (GdmTransientDisplayClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -160,6 +171,7 @@
display_class->manage = gdm_transient_display_manage;
display_class->finish = gdm_transient_display_finish;
display_class->unmanage = gdm_transient_display_unmanage;
+ display_class->get_timed_login_details = gdm_transient_display_get_timed_login_details;
g_type_class_add_private (klass, sizeof (GdmTransientDisplayPrivate));
Index: daemon/gdm-display.h
===================================================================
--- daemon/gdm-display.h (revision 6581)
+++ daemon/gdm-display.h (revision 6582)
@@ -68,6 +68,10 @@
gboolean (*manage) (GdmDisplay *display);
gboolean (*finish) (GdmDisplay *display);
gboolean (*unmanage) (GdmDisplay *display);
+ void (*get_timed_login_details) (GdmDisplay *display,
+ gboolean *enabled,
+ char **username,
+ int *delay);
} GdmDisplayClass;
typedef enum
@@ -110,6 +114,11 @@
gboolean gdm_display_is_local (GdmDisplay *display,
gboolean *local,
GError **error);
+gboolean gdm_display_get_timed_login_details (GdmDisplay *display,
+ gboolean *enabled,
+ char **username,
+ int *delay,
+ GError **error);
/* exported but protected */
gboolean gdm_display_get_x11_cookie (GdmDisplay *display,
Index: daemon/gdm-static-display.c
===================================================================
--- daemon/gdm-static-display.c (revision 6581)
+++ daemon/gdm-static-display.c (revision 6582)
@@ -45,7 +45,7 @@
struct GdmStaticDisplayPrivate
{
- gpointer dummy;
+ gboolean enable_timed_login;
};
enum {
@@ -121,6 +121,9 @@
{
g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE);
+ /* Only allow timed/automatic login once */
+ GDM_STATIC_DISPLAY (display)->priv->enable_timed_login = FALSE;
+
GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->unmanage (display);
return TRUE;
@@ -153,6 +156,21 @@
}
static void
+gdm_static_display_get_timed_login_details (GdmDisplay *display,
+ gboolean *enabledp,
+ char **usernamep,
+ int *delayp)
+{
+ if (GDM_STATIC_DISPLAY (display)->priv->enable_timed_login) {
+ GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->get_timed_login_details (display, enabledp, usernamep, delayp);
+ } else {
+ *enabledp = FALSE;
+ *usernamep = g_strdup ("");
+ *delayp = 0;
+ }
+}
+
+static void
gdm_static_display_class_init (GdmStaticDisplayClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -168,6 +186,7 @@
display_class->manage = gdm_static_display_manage;
display_class->finish = gdm_static_display_finish;
display_class->unmanage = gdm_static_display_unmanage;
+ display_class->get_timed_login_details = gdm_static_display_get_timed_login_details;
g_type_class_add_private (klass, sizeof (GdmStaticDisplayPrivate));
@@ -179,6 +198,8 @@
{
static_display->priv = GDM_STATIC_DISPLAY_GET_PRIVATE (static_display);
+
+ static_display->priv->enable_timed_login = TRUE;
}
static void
Index: daemon/gdm-simple-slave.c
===================================================================
--- daemon/gdm-simple-slave.c (revision 6581)
+++ daemon/gdm-simple-slave.c (revision 6582)
@@ -74,9 +74,10 @@
guint connection_attempts;
GdmServer *server;
+ GdmSessionDirect *session;
+
GdmGreeterServer *greeter_server;
GdmGreeterSession *greeter;
- GdmSessionDirect *session;
guint start_session_when_ready : 1;
guint waiting_to_start_session : 1;
@@ -93,6 +94,7 @@
G_DEFINE_TYPE (GdmSimpleSlave, gdm_simple_slave, GDM_TYPE_SLAVE)
static void create_new_session (GdmSimpleSlave *slave);
+static void start_greeter (GdmSimpleSlave *slave);
static void
on_session_started (GdmSession *session,
@@ -176,8 +178,14 @@
greeter_reset_timeout (GdmSimpleSlave *slave)
{
g_debug ("GdmSimpleSlave: resetting greeter");
- gdm_greeter_server_reset (slave->priv->greeter_server);
- reset_session (slave);
+
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_reset (slave->priv->greeter_server);
+ reset_session (slave);
+ } else {
+ start_greeter (slave);
+ create_new_session (slave);
+ }
slave->priv->greeter_reset_id = 0;
return FALSE;
}
@@ -204,7 +212,10 @@
const char *message,
GdmSimpleSlave *slave)
{
- gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable to initialize login system"));
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_problem (slave->priv->greeter_server,
+ _("Unable to initialize login system"));
+ }
destroy_session (slave);
queue_greeter_reset (slave);
@@ -237,7 +248,10 @@
const char *message,
GdmSimpleSlave *slave)
{
- gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable to authenticate user"));
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_problem (slave->priv->greeter_server,
+ _("Unable to authenticate user"));
+ }
destroy_session (slave);
queue_greeter_reset (slave);
}
@@ -274,8 +288,13 @@
on_session_authorized (GdmSession *session,
GdmSimpleSlave *slave)
{
- gdm_greeter_server_user_authorized (slave->priv->greeter_server);
- gdm_simple_slave_accredit_when_ready (slave);
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_user_authorized (slave->priv->greeter_server);
+ gdm_simple_slave_accredit_when_ready (slave);
+ } else {
+ slave->priv->start_session_when_ready = TRUE;
+ gdm_simple_slave_accredit_when_ready (slave);
+ }
}
static void
@@ -283,7 +302,10 @@
const char *message,
GdmSimpleSlave *slave)
{
- gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable to authorize user"));
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_problem (slave->priv->greeter_server,
+ _("Unable to authorize user"));
+ }
destroy_session (slave);
queue_greeter_reset (slave);
@@ -306,7 +328,26 @@
return res;
}
+static void
+stop_greeter (GdmSimpleSlave *slave)
+{
+ g_debug ("GdmSimpleSlave: Stopping greeter");
+ if (slave->priv->greeter == NULL) {
+ g_debug ("GdmSimpleSlave: No greeter running");
+ return;
+ }
+
+ /* Run the PostLogin script. gdmslave suspends until script has terminated */
+ gdm_slave_run_script (GDM_SLAVE (slave), GDMCONFDIR "/PostLogin", GDM_USERNAME);
+
+ gdm_welcome_session_stop (GDM_WELCOME_SESSION (slave->priv->greeter));
+ gdm_greeter_server_stop (slave->priv->greeter_server);
+
+ g_object_unref (slave->priv->greeter);
+ slave->priv->greeter = NULL;
+}
+
static gboolean
start_session_timeout (GdmSimpleSlave *slave)
{
@@ -330,8 +371,7 @@
goto out;
}
- gdm_welcome_session_stop (GDM_WELCOME_SESSION (slave->priv->greeter));
- gdm_greeter_server_stop (slave->priv->greeter_server);
+ stop_greeter (slave);
auth_file = NULL;
add_user_authorization (slave, &auth_file);
@@ -365,9 +405,6 @@
GdmSimpleSlave *slave)
{
queue_start_session (slave);
-
- /* Run the PostLogin script. gdmslave suspends until script has terminated */
- gdm_slave_run_script (GDM_SLAVE (slave), GDMCONFDIR "/PostLogin", GDM_USERNAME);
}
static void
@@ -384,7 +421,10 @@
/* If we switched to another session we don't care if
accreditation fails */
if (! migrated) {
- gdm_greeter_server_problem (slave->priv->greeter_server, _("Unable establish credentials"));
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_problem (slave->priv->greeter_server,
+ _("Unable establish credentials"));
+ }
}
/* We don't stop the slave here after migrating because
@@ -402,7 +442,9 @@
GdmSimpleSlave *slave)
{
g_debug ("GdmSimpleSlave: Info: %s", text);
- gdm_greeter_server_info (slave->priv->greeter_server, text);
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_info (slave->priv->greeter_server, text);
+ }
}
static void
@@ -433,64 +475,39 @@
gdm_greeter_server_secret_info_query (slave->priv->greeter_server, text);
}
-static gboolean
-get_timed_login_details (GdmSimpleSlave *slave,
- char **username,
- int *delay)
-{
- gboolean enabled;
- gboolean res;
-
- enabled = FALSE;
- res = gdm_settings_client_get_boolean (GDM_KEY_AUTO_LOGIN_ENABLE, &enabled);
- if (enabled) {
-
- *username = NULL;
- res = gdm_settings_client_get_string (GDM_KEY_AUTO_LOGIN_USER, username);
- }
-
- if (enabled && *username != NULL)
- {
- *delay = 0;
- return TRUE;
- }
-
- *username = NULL;
- enabled = FALSE;
- res = gdm_settings_client_get_boolean (GDM_KEY_TIMED_LOGIN_ENABLE, &enabled);
- if (! enabled) {
- return FALSE;
- }
-
- res = gdm_settings_client_get_string (GDM_KEY_TIMED_LOGIN_USER, username);
-
- if (username == NULL) {
- return FALSE;
- }
-
- res = gdm_settings_client_get_int (GDM_KEY_TIMED_LOGIN_DELAY, delay);
-
- return TRUE;
-}
-
static void
on_session_opened (GdmSession *session,
GdmSimpleSlave *slave)
{
gboolean res;
+ gboolean enabled;
char *username;
int delay;
g_debug ("GdmSimpleSlave: session opened");
- res = gdm_greeter_server_ready (slave->priv->greeter_server);
- if (! res) {
- g_warning ("Unable to send ready");
+ if (slave->priv->greeter_server != NULL) {
+ res = gdm_greeter_server_ready (slave->priv->greeter_server);
+ if (! res) {
+ g_warning ("Unable to send ready");
+ }
}
- if (get_timed_login_details (slave, &username, &delay)) {
+ enabled = FALSE;
+ gdm_slave_get_timed_login_details (GDM_SLAVE (slave), &enabled, &username, &delay);
+ if (! enabled) {
+ return;
+ }
+
+ if (slave->priv->greeter_server != NULL) {
gdm_greeter_server_request_timed_login (slave->priv->greeter_server, username, delay);
- g_free (username);
+ } else {
+ g_debug ("GdmSimpleSlave: begin auto login for user '%s'", username);
+ gdm_session_setup_for_user (GDM_SESSION (slave->priv->session),
+ "gdm-autologin",
+ username);
}
+
+ g_free (username);
}
static void
@@ -500,7 +517,9 @@
{
g_debug ("GdmSimpleSlave: Selected user changed: %s", text);
- gdm_greeter_server_selected_user_changed (slave->priv->greeter_server, text);
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_selected_user_changed (slave->priv->greeter_server, text);
+ }
}
static void
@@ -510,7 +529,9 @@
{
g_debug ("GdmSimpleSlave: Default language name changed: %s", text);
- gdm_greeter_server_default_language_name_changed (slave->priv->greeter_server, text);
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_default_language_name_changed (slave->priv->greeter_server, text);
+ }
}
static void
@@ -520,7 +541,9 @@
{
g_debug ("GdmSimpleSlave: Default layout name changed: %s", text);
- gdm_greeter_server_default_layout_name_changed (slave->priv->greeter_server, text);
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_default_layout_name_changed (slave->priv->greeter_server, text);
+ }
}
static void
@@ -530,7 +553,9 @@
{
g_debug ("GdmSimpleSlave: Default session name changed: %s", text);
- gdm_greeter_server_default_session_name_changed (slave->priv->greeter_server, text);
+ if (slave->priv->greeter_server != NULL) {
+ gdm_greeter_server_default_session_name_changed (slave->priv->greeter_server, text);
+ }
}
static void
@@ -828,7 +853,7 @@
}
static void
-run_greeter (GdmSimpleSlave *slave)
+start_greeter (GdmSimpleSlave *slave)
{
gboolean display_is_local;
char *display_id;
@@ -871,8 +896,6 @@
/* Run the init script. gdmslave suspends until script has terminated */
gdm_slave_run_script (GDM_SLAVE (slave), GDMCONFDIR "/Init", GDM_USERNAME);
- create_new_session (slave);
-
slave->priv->greeter_server = gdm_greeter_server_new (display_id);
g_signal_connect (slave->priv->greeter_server,
"begin-auto-login",
@@ -971,10 +994,22 @@
res = gdm_slave_connect_to_x11_display (GDM_SLAVE (slave));
if (res) {
+ gboolean enabled;
+ int delay;
+
/* FIXME: handle wait-for-go */
setup_server (slave);
- run_greeter (slave);
+
+ delay = 0;
+ enabled = FALSE;
+ gdm_slave_get_timed_login_details (GDM_SLAVE (slave), &enabled, NULL, &delay);
+ if (! enabled || delay > 0) {
+ start_greeter (slave);
+ create_new_session (slave);
+ } else {
+ reset_session (slave);
+ }
} else {
if (slave->priv->connection_attempts >= MAX_CONNECT_ATTEMPTS) {
g_warning ("Unable to connect to display after %d tries - bailing out", slave->priv->connection_attempts);
@@ -1099,9 +1134,7 @@
GDM_SLAVE_CLASS (gdm_simple_slave_parent_class)->stop (slave);
if (GDM_SIMPLE_SLAVE (slave)->priv->greeter != NULL) {
- gdm_welcome_session_stop (GDM_WELCOME_SESSION (GDM_SIMPLE_SLAVE (slave)->priv->greeter));
- g_object_unref (GDM_SIMPLE_SLAVE (slave)->priv->greeter);
- GDM_SIMPLE_SLAVE (slave)->priv->greeter = NULL;
+ stop_greeter (GDM_SIMPLE_SLAVE (slave));
}
if (GDM_SIMPLE_SLAVE (slave)->priv->session != NULL) {

View File

@ -1,7 +1,48 @@
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.c gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.c
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.c 2008-09-22 12:01:21.000000000 -0500
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.c 2008-11-01 21:45:12.000000000 -0600
@@ -2105,6 +2105,20 @@ gdm_chooser_widget_remove_item (GdmChoos
diff --git a/gui/simple-greeter/Makefile.am b/gui/simple-greeter/Makefile.am
index bba7a4a..d652961 100644
--- a/gui/simple-greeter/Makefile.am
+++ b/gui/simple-greeter/Makefile.am
@@ -136,6 +136,14 @@ test_greeter_panel_SOURCES = \
gdm-sessions.c \
gdm-session-option-widget.h \
gdm-session-option-widget.c \
+ gdm-domain-chooser-dialog.h \
+ gdm-domain-chooser-dialog.c \
+ gdm-domain-chooser-widget.h \
+ gdm-domain-chooser-widget.c \
+ gdm-domain-option-widget.h \
+ gdm-domain-option-widget.c \
+ gdm-domain-provider.h \
+ gdm-domain-provider.c \
$(NULL)
test_greeter_panel_LDADD = \
@@ -313,12 +321,20 @@ gdm_simple_greeter_SOURCES = \
gdm-language-chooser-dialog.c \
gdm-language-option-widget.h \
gdm-language-option-widget.c \
+ gdm-domain-chooser-dialog.h \
+ gdm-domain-chooser-dialog.c \
+ gdm-domain-chooser-widget.h \
+ gdm-domain-chooser-widget.c \
+ gdm-domain-option-widget.h \
+ gdm-domain-option-widget.c \
gdm-sessions.h \
gdm-sessions.c \
gdm-session-option-widget.h \
gdm-session-option-widget.c \
gdm-user-chooser-widget.h \
gdm-user-chooser-widget.c \
+ gdm-domain-provider.h \
+ gdm-domain-provider.c \
$(NULL)
gdm_simple_greeter_LDADD = \
diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c
index f0298c6..4894eee 100644
--- a/gui/simple-greeter/gdm-chooser-widget.c
+++ b/gui/simple-greeter/gdm-chooser-widget.c
@@ -2105,6 +2105,20 @@ gdm_chooser_widget_remove_item (GdmChooserWidget *widget,
move_cursor_to_top (widget);
}
@ -22,10 +63,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.c gdm-2.24.0-pos
gboolean
gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
const char *id,
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.h gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.h
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.h 2008-09-22 12:01:21.000000000 -0500
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.h 2008-11-01 21:45:12.000000000 -0600
@@ -96,6 +96,8 @@ void gdm_chooser_widget_update_i
diff --git a/gui/simple-greeter/gdm-chooser-widget.h b/gui/simple-greeter/gdm-chooser-widget.h
index b73d1bb..b70016c 100644
--- a/gui/simple-greeter/gdm-chooser-widget.h
+++ b/gui/simple-greeter/gdm-chooser-widget.h
@@ -96,6 +96,8 @@ void gdm_chooser_widget_update_item (GdmChooserWidget *
void gdm_chooser_widget_remove_item (GdmChooserWidget *widget,
const char *id);
@ -34,9 +76,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.h gdm-2.24.0-pos
gboolean gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
const char *id,
GdkPixbuf **image,
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.c gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.c
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.c 1969-12-31 18:00:00.000000000 -0600
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.c 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-domain-chooser-dialog.c b/gui/simple-greeter/gdm-domain-chooser-dialog.c
new file mode 100644
index 0000000..f577b65
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-chooser-dialog.c
@@ -0,0 +1,207 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -245,9 +289,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.c gdm-2.2
+
+ return GTK_WIDGET (object);
+}
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.h gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.h
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.h 1969-12-31 18:00:00.000000000 -0600
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.h 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-domain-chooser-dialog.h b/gui/simple-greeter/gdm-domain-chooser-dialog.h
new file mode 100644
index 0000000..f11f183
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-chooser-dialog.h
@@ -0,0 +1,60 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -309,9 +355,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-dialog.h gdm-2.2
+G_END_DECLS
+
+#endif /* __GDM_DOMAIN_CHOOSER_DIALOG_H */
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.c gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.c
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.c 1969-12-31 18:00:00.000000000 -0600
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.c 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-domain-chooser-widget.c b/gui/simple-greeter/gdm-domain-chooser-widget.c
new file mode 100644
index 0000000..1d8b113
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-chooser-widget.c
@@ -0,0 +1,237 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -550,9 +598,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.c gdm-2.2
+
+ return GTK_WIDGET (object);
+}
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.h gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.h
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.h 1969-12-31 18:00:00.000000000 -0600
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.h 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-domain-chooser-widget.h b/gui/simple-greeter/gdm-domain-chooser-widget.h
new file mode 100644
index 0000000..4ba9d18
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-chooser-widget.h
@@ -0,0 +1,59 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -613,9 +663,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-chooser-widget.h gdm-2.2
+G_END_DECLS
+
+#endif /* __GDM_DOMAIN_CHOOSER_WIDGET_H */
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.c gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.c
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.c 1969-12-31 18:00:00.000000000 -0600
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.c 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-domain-option-widget.c b/gui/simple-greeter/gdm-domain-option-widget.c
new file mode 100644
index 0000000..93eb5f5
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-option-widget.c
@@ -0,0 +1,379 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -996,9 +1048,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.c gdm-2.24
+
+ gdm_option_widget_set_active_item (GDM_OPTION_WIDGET (widget), domain_name);
+}
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.h gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.h
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.h 1969-12-31 18:00:00.000000000 -0600
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.h 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-domain-option-widget.h b/gui/simple-greeter/gdm-domain-option-widget.h
new file mode 100644
index 0000000..4913ede
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-option-widget.h
@@ -0,0 +1,59 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -1059,9 +1113,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-option-widget.h gdm-2.24
+ const char *domain_name);
+
+#endif /* __GDM_DOMAIN_OPTION_WIDGET_H */
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.c gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.c
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.c 1969-12-31 18:00:00.000000000 -0600
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.c 2008-11-01 22:10:58.000000000 -0600
diff --git a/gui/simple-greeter/gdm-domain-provider.c b/gui/simple-greeter/gdm-domain-provider.c
new file mode 100644
index 0000000..2bd9189
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-provider.c
@@ -0,0 +1,478 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -1541,9 +1597,11 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.c gdm-2.24.0-po
+
+ return priv->domains;
+}
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.h gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.h
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.h 1969-12-31 18:00:00.000000000 -0600
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.h 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-domain-provider.h b/gui/simple-greeter/gdm-domain-provider.h
new file mode 100644
index 0000000..6a318ff
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-provider.h
@@ -0,0 +1,61 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@ -1606,9 +1664,10 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-domain-provider.h gdm-2.24.0-po
+G_END_DECLS
+
+#endif /* __GDM_DOMAIN_PROVIDER_H */
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.c
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c 2008-08-20 23:31:47.000000000 -0500
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.c 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-greeter-panel.c b/gui/simple-greeter/gdm-greeter-panel.c
index 50478c5..e557ba9 100644
--- a/gui/simple-greeter/gdm-greeter-panel.c
+++ b/gui/simple-greeter/gdm-greeter-panel.c
@@ -40,6 +40,7 @@
#include "gdm-language-option-widget.h"
#include "gdm-layout-option-widget.h"
@ -1633,7 +1692,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post
NUMBER_OF_SIGNALS
};
@@ -451,6 +454,17 @@ gdm_greeter_panel_class_init (GdmGreeter
@@ -451,6 +454,17 @@ gdm_greeter_panel_class_init (GdmGreeterPanelClass *klass)
G_TYPE_NONE,
1, G_TYPE_STRING);
@ -1651,7 +1710,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post
g_object_class_install_property (object_class,
PROP_MONITOR,
g_param_spec_int ("monitor",
@@ -521,6 +535,24 @@ on_session_activated (GdmSessionOptionWi
@@ -521,6 +535,24 @@ on_session_activated (GdmSessionOptionWidget *widget,
}
static void
@ -1676,7 +1735,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post
gdm_greeter_panel_init (GdmGreeterPanel *panel)
{
NaTray *tray;
@@ -581,6 +613,12 @@ gdm_greeter_panel_init (GdmGreeterPanel
@@ -581,6 +613,12 @@ gdm_greeter_panel_init (GdmGreeterPanel *panel)
G_CALLBACK (on_session_activated), panel);
gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), panel->priv->session_option_widget, FALSE, FALSE, 6);
@ -1689,15 +1748,15 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post
spacer = gtk_label_new ("");
gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), spacer, TRUE, TRUE, 6);
gtk_widget_show (spacer);
@@ -643,6 +681,7 @@ gdm_greeter_panel_show_user_options (Gdm
@@ -643,6 +681,7 @@ gdm_greeter_panel_show_user_options (GdmGreeterPanel *panel)
gtk_widget_show (panel->priv->session_option_widget);
gtk_widget_show (panel->priv->language_option_widget);
gtk_widget_show (panel->priv->layout_option_widget);
+ gtk_widget_hide (panel->priv->domain_option_widget);
+ gtk_widget_show (panel->priv->domain_option_widget);
}
void
@@ -651,6 +690,7 @@ gdm_greeter_panel_hide_user_options (Gdm
@@ -651,6 +690,7 @@ gdm_greeter_panel_hide_user_options (GdmGreeterPanel *panel)
gtk_widget_hide (panel->priv->session_option_widget);
gtk_widget_hide (panel->priv->language_option_widget);
gtk_widget_hide (panel->priv->layout_option_widget);
@ -1705,7 +1764,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post
g_debug ("GdmGreeterPanel: activating default layout");
gdm_layout_activate (NULL);
@@ -730,3 +770,20 @@ gdm_greeter_panel_set_default_session_na
@@ -730,3 +770,20 @@ gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel,
gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->session_option_widget),
session_name);
}
@ -1726,9 +1785,10 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.c gdm-2.24.0-post
+ gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->domain_option_widget),
+ domain_name);
+}
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.h gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.h
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.h 2008-08-20 23:31:47.000000000 -0500
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.h 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-greeter-panel.h b/gui/simple-greeter/gdm-greeter-panel.h
index 07cca3f..5d2e2b2 100644
--- a/gui/simple-greeter/gdm-greeter-panel.h
+++ b/gui/simple-greeter/gdm-greeter-panel.h
@@ -53,6 +53,9 @@ typedef struct
void (* session_selected) (GdmGreeterPanel *panel,
@ -1739,7 +1799,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.h gdm-2.24.0-post
} GdmGreeterPanelClass;
GType gdm_greeter_panel_get_type (void);
@@ -70,6 +73,8 @@ void gdm_greeter_panel
@@ -70,6 +73,8 @@ void gdm_greeter_panel_set_default_layout_name (GdmGree
const char *layout_name);
void gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel,
const char *session_name);
@ -1748,9 +1808,10 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-panel.h gdm-2.24.0-post
G_END_DECLS
#endif /* __GDM_GREETER_PANEL_H */
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-session.c
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c 2008-08-20 23:31:47.000000000 -0500
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-session.c 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c
index 83375b2..50c0e33 100644
--- a/gui/simple-greeter/gdm-greeter-session.c
+++ b/gui/simple-greeter/gdm-greeter-session.c
@@ -38,6 +38,8 @@
#include "gdm-greeter-panel.h"
#include "gdm-greeter-login-window.h"
@ -1770,7 +1831,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po
};
enum {
@@ -62,6 +67,33 @@ G_DEFINE_TYPE (GdmGreeterSession, gdm_gr
@@ -62,6 +67,33 @@ G_DEFINE_TYPE (GdmGreeterSession, gdm_greeter_session, G_TYPE_OBJECT)
static gpointer session_object = NULL;
@ -1804,7 +1865,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po
static void
on_info (GdmGreeterClient *client,
const char *text,
@@ -198,8 +230,14 @@ on_begin_verification_for_user (GdmGreet
@@ -198,8 +230,14 @@ on_begin_verification_for_user (GdmGreeterLoginWindow *login_window,
const char *username,
GdmGreeterSession *session)
{
@ -1820,7 +1881,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po
}
static void
@@ -236,13 +274,46 @@ on_select_layout (GdmGreeterSession
@@ -236,13 +274,46 @@ on_select_layout (GdmGreeterSession *session,
}
static void
@ -1868,7 +1929,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po
}
static void
@@ -300,6 +371,11 @@ toggle_panel (GdmGreeterSession *session
@@ -300,6 +371,11 @@ toggle_panel (GdmGreeterSession *session,
G_CALLBACK (on_select_session),
session);
@ -1880,7 +1941,7 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po
gtk_widget_show (session->priv->panel);
} else {
gtk_widget_destroy (session->priv->panel);
@@ -563,6 +639,9 @@ gdm_greeter_session_finalize (GObject *o
@@ -563,6 +639,9 @@ gdm_greeter_session_finalize (GObject *object)
g_return_if_fail (greeter_session->priv != NULL);
@ -1890,9 +1951,10 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-greeter-session.c gdm-2.24.0-po
G_OBJECT_CLASS (gdm_greeter_session_parent_class)->finalize (object);
}
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-simple-greeter.schemas.in gdm-2.24.0-post/gui/simple-greeter/gdm-simple-greeter.schemas.in
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-simple-greeter.schemas.in 2008-08-20 23:31:47.000000000 -0500
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-simple-greeter.schemas.in 2008-11-01 21:45:12.000000000 -0600
diff --git a/gui/simple-greeter/gdm-simple-greeter.schemas.in b/gui/simple-greeter/gdm-simple-greeter.schemas.in
index 55b441f..450cb22 100644
--- a/gui/simple-greeter/gdm-simple-greeter.schemas.in
+++ b/gui/simple-greeter/gdm-simple-greeter.schemas.in
@@ -92,6 +92,18 @@
</locale>
</schema>
@ -1912,42 +1974,3 @@ diff -uprN gdm-2.24.0-pre/gui/simple-greeter/gdm-simple-greeter.schemas.in gdm-2
<key>/schemas/apps/gdm/simple-greeter/wm_use_compiz</key>
<applyto>/apps/gdm/simple-greeter/wm_use_compiz</applyto>
<owner>gdm-simple-greeter</owner>
diff -uprN gdm-2.24.0-pre/gui/simple-greeter/Makefile.am gdm-2.24.0-post/gui/simple-greeter/Makefile.am
--- gdm-2.24.0-pre/gui/simple-greeter/Makefile.am 2008-09-22 12:01:21.000000000 -0500
+++ gdm-2.24.0-post/gui/simple-greeter/Makefile.am 2008-11-01 21:45:12.000000000 -0600
@@ -136,6 +136,14 @@ test_greeter_panel_SOURCES = \
gdm-sessions.c \
gdm-session-option-widget.h \
gdm-session-option-widget.c \
+ gdm-domain-chooser-dialog.h \
+ gdm-domain-chooser-dialog.c \
+ gdm-domain-chooser-widget.h \
+ gdm-domain-chooser-widget.c \
+ gdm-domain-option-widget.h \
+ gdm-domain-option-widget.c \
+ gdm-domain-provider.h \
+ gdm-domain-provider.c \
$(NULL)
test_greeter_panel_LDADD = \
@@ -313,12 +321,20 @@ gdm_simple_greeter_SOURCES = \
gdm-language-chooser-dialog.c \
gdm-language-option-widget.h \
gdm-language-option-widget.c \
+ gdm-domain-chooser-dialog.h \
+ gdm-domain-chooser-dialog.c \
+ gdm-domain-chooser-widget.h \
+ gdm-domain-chooser-widget.c \
+ gdm-domain-option-widget.h \
+ gdm-domain-option-widget.c \
gdm-sessions.h \
gdm-sessions.c \
gdm-session-option-widget.h \
gdm-session-option-widget.c \
gdm-user-chooser-widget.h \
gdm-user-chooser-widget.c \
+ gdm-domain-provider.h \
+ gdm-domain-provider.c \
$(NULL)
gdm_simple_greeter_LDADD = \

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Sun Nov 9 13:47:59 EST 2008 - jpr@novell.com
- Add gdm-autologin.patch so the greeter is not created for
autologin and improve startup time (bnc#436524)
- Update gdm-domain-login.patch so the domain box is present
even if the user list is not (bnc#431339)
-------------------------------------------------------------------
Fri Nov 7 14:02:20 CET 2008 - vuntz@novell.com

View File

@ -57,7 +57,7 @@ PreReq: %insserv_prereq
License: GPL v2 or later
Group: System/GUI/GNOME
Version: 2.24.0
Release: 7
Release: 8
Summary: The GNOME 2.x Display Manager
Source: %{name}-%{version}.tar.bz2
Source1: gdm.pamd
@ -85,6 +85,8 @@ Patch11: gdm-2.23.92-fix-crash.patch
Patch12: gdm-fix-icon-scale.patch
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager
Patch13: gdm-sysconfig-settings.patch
# PATCH-FIX-UPSTREAM gdm-autologin.patch bnc436524 mmeeks@novell.com -- From upstream don't create the greeter when autologging it to save startup time
Patch14: gdm-autologin.patch
Patch28: gdm-X_SERVER.patch
# PATCH-SUSE: enable SELinux
Patch60: gdm-selinux.patch
@ -160,6 +162,7 @@ Authors:
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14
%patch28
%patch60
@ -268,6 +271,11 @@ fi
%files lang -f %{name}.lang
%changelog
* Sun Nov 09 2008 jpr@novell.com
- Add gdm-autologin.patch so the greeter is not created for
autologin and improve startup time (bnc#436524)
- Update gdm-domain-login.patch so the domain box is present
even if the user list is not (bnc#431339)
* Fri Nov 07 2008 vuntz@novell.com
- Merge hpj's submission: Add gdm-sysconfig-settings.patch, which
fixes bnc#432360.
@ -301,7 +309,7 @@ fi
family to FamilyWild.
* Mon Oct 06 2008 sbrabec@suse.cz
- Conflict with other branding providers (FATE#304881).
* Fri Oct 03 2008 mboman@suse.de
* Thu Oct 02 2008 mboman@suse.de
- Update to version 2.24.0:
+ Allow the build to succeed without a gdm user
+ Use Bourne shell syntax in Xsession.solaris
@ -480,7 +488,7 @@ fi
displays.
+ Build/configure fixes for Solaris.
+ Translation updates.
* Wed Nov 14 2007 hpj@suse.de
* Tue Nov 13 2007 hpj@suse.de
- Removed second --with-atspi-dir from configure.
- Added gdm-tab-triggers-enter.patch, which fixes Novell bug
[#334446].
@ -489,7 +497,7 @@ fi
(#337428)
- Updated gdm-xdm-sessions.patch to run again the /etc/X11/xdm
scripts (#304399)
* Fri Nov 09 2007 hpj@suse.de
* Thu Nov 08 2007 hpj@suse.de
- Pass the --with-atspi-dir= flag to configure so the
at-spi-registryd is started correctly. Fixes Novell bug #337428.
* Thu Oct 18 2007 maw@suse.de
@ -497,7 +505,7 @@ fi
- Add abuild.patch.
* Thu Oct 11 2007 sbrabec@suse.cz
- Removed bogus dependency on mDNSResponder.
* Mon Sep 24 2007 hpj@suse.de
* Sun Sep 23 2007 hpj@suse.de
- Added gdm-2.20.0-wait-for-restart.patch, which fixes Novell bug
[#326281].
* Thu Sep 20 2007 banderso@suse.de
@ -553,7 +561,7 @@ fi
* Wed Sep 05 2007 sbrabec@suse.cz
- Apply DISPLAYMANAGER_PASSWORD_LESS_LOGIN only for standard login,
not for autologin (#307566).
* Mon Sep 03 2007 hpj@suse.de
* Sun Sep 02 2007 hpj@suse.de
- Add gdm-2.19.7-pam-hide-password.patch, which fixes an upstream
bug where the user's password was being shown on screen (part of
BNC #302282).
@ -607,7 +615,7 @@ fi
* Sat Aug 04 2007 maw@suse.de
- Use %%fdupes
- Uncomment out the rm in %%clean.
* Sat Aug 04 2007 hpj@suse.de
* Fri Aug 03 2007 hpj@suse.de
- Update to version 2.19.5.
- Fix up gdm-conf.patch.
- Fix up gdm-2.19.3-reset-pam.patch.
@ -687,7 +695,7 @@ fi
* Wed Mar 21 2007 hpj@suse.de
- Add gdm-2.17.7-vt-fallback.patch. This is a port of the fix for
https://bugzilla.novell.com/show_bug.cgi?id=206804
* Wed Mar 14 2007 maw@suse.de
* Tue Mar 13 2007 maw@suse.de
- Update to version 2.17.7
- Removeupstreamed gdm-autobuild-warning.patch,
gdm-bufferoverrun.patch
@ -695,10 +703,10 @@ fi
[#400698], #399486, #352263, #395790, #394421.
* Fri Mar 02 2007 sbrabec@suse.cz
- Do not own /usr/share/xsessions (#229172).
* Tue Feb 27 2007 hpj@suse.de
* Mon Feb 26 2007 hpj@suse.de
- Added gdm-2.13.0.4-audit-login.patch, which fixes Novell bug
[#234133] (GDM cannot log authentication attempts).
* Wed Feb 14 2007 hpj@suse.de
* Tue Feb 13 2007 hpj@suse.de
- Add gdm-trunk-string-literal-cmp.patch. Fixes #233655.
* Mon Feb 12 2007 sbrabec@suse.cz
- Fixed reversed interpretation of
@ -865,7 +873,7 @@ fi
- Update domain entry patch to default to the currently joined
Active Directory domain if there was no stored preference. Fixes
Novell bug #167344.
* Thu Jun 01 2006 hpj@suse.de
* Wed May 31 2006 hpj@suse.de
- Don't let any user configure GDM from the login screen if a
theme with user list is in effect. Fixes Novell bug #180219.
* Wed May 31 2006 dreveman@suse.de
@ -875,7 +883,7 @@ fi
- Do not display Japanese string in terminal, which doesn't support
it (#168736).
- Disabled beep on start (#174786).
* Fri May 19 2006 hpj@suse.de
* Thu May 18 2006 hpj@suse.de
- Made GDM use the more graphically intensive, but prettier,
gdmgreeter for remote logins. Fixes Novell bug #176661.
* Tue May 16 2006 sbrabec@suse.cz
@ -885,7 +893,7 @@ fi
* Fri May 12 2006 sbrabec@suse.cz
- Store value of PERMISSION_SECURITY by SuSEconfig in
gdm_sysconfig.conf (169639#c20).
* Tue May 09 2006 hpj@suse.de
* Mon May 08 2006 hpj@suse.de
- Made GDM use the "gdm" group instead of shadow. Fixes Novell bug
[#119651].
- Made use of the tab key work like pressing enter if there is no
@ -913,7 +921,7 @@ fi
service, bug #158786.
* Sat Mar 11 2006 coolo@suse.de
- fix the only-show-in-gnome patch to patch the .desktop.in
* Tue Mar 07 2006 federico@novell.com
* Mon Mar 06 2006 federico@novell.com
- Fix installation of the earlygdm service; we were not calling
fillup_and_insserv with "displaymanager" for the configuration
filename.
@ -922,7 +930,7 @@ fi
in PLUS (148468#c17).
* Tue Feb 28 2006 sbrabec@suse.cz
- Use kdelibs3-doc in BuildRequires for meinproc (#153635#c14).
* Sat Feb 25 2006 hpj@suse.de
* Fri Feb 24 2006 hpj@suse.de
- Add patch to fix tab keynav.
* Fri Feb 17 2006 sreeves@suse.de
- Update .desktop file (Name, GenericName, Comment, DocPath)
@ -950,10 +958,10 @@ fi
- Added patch to require root auth to halt or reboot.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Thu Jan 19 2006 hpj@suse.de
* Wed Jan 18 2006 hpj@suse.de
- Updated the domain logon patch with numerous new features and
cosmetic fixes.
* Tue Jan 17 2006 hpj@suse.de
* Mon Jan 16 2006 hpj@suse.de
- Fixed a bug in logon code that prevented domain logons from
working. Updated domain logon patch.
* Fri Jan 13 2006 schwab@suse.de
@ -973,7 +981,7 @@ fi
- Patch from upstream b.g.o (#152906)
* Mon Oct 17 2005 gekker@suse.de
- Make gdm.conf %%config(noreplace)
* Fri Oct 14 2005 hpj@suse.de
* Thu Oct 13 2005 hpj@suse.de
- Updated xauthority-across-hostname-changes patch to use
XAUTHLOCALHOSTNAME environment variable.
* Thu Oct 13 2005 gekker@suse.de
@ -992,7 +1000,7 @@ fi
- Update to version 2.8.0.3
- Remove upstreamed autologin patch
- Now installs .desktop files in correct location no need to move
* Sat Aug 20 2005 hpj@suse.de
* Fri Aug 19 2005 hpj@suse.de
- Make the default session option work on autologin; we now get GNOME.
* Tue Aug 16 2005 sbrabec@suse.cz
- Use gnome-screensaver instead of xscreensaver.
@ -1003,7 +1011,7 @@ fi
* Thu Aug 11 2005 gekker@suse.de
- Update to version 2.8.0.2
- Make 64bit clean
* Sun Jul 31 2005 jpr@suse.de
* Sat Jul 30 2005 jpr@suse.de
- turn on compatibility symlink for all products
* Tue Jul 05 2005 gekker@suse.de
- Update to version 2.8.0.1
@ -1069,7 +1077,7 @@ fi
for timed login user.
* Fri Jul 30 2004 ro@suse.de
- fix spec file, list gdm-session-startkde.diff as patch
* Fri Jul 30 2004 shprasad@suse.de
* Thu Jul 29 2004 shprasad@suse.de
- Fixes bug #60867.
Shows the 'KDE' option when the user clicks on 'Session' at the
time of login.
@ -1128,7 +1136,7 @@ fi
- updated to version 2.4.1.6
* Mon Jul 28 2003 kukuk@suse.de
- Make sure /var/lib/gdm has correct permissions
* Fri Jul 25 2003 hhetter@suse.de
* Thu Jul 24 2003 hhetter@suse.de
- move capplets to correct position
- fix build
* Wed Jul 16 2003 sbrabec@suse.cz
@ -1165,7 +1173,7 @@ fi
- updated to 2.4.1.3 [GNOME 2.2.0]
* Fri Feb 07 2003 kukuk@suse.de
- Use pam_unix2.so instead of pam_unix.so
* Thu Jan 16 2003 ro@suse.de
* Wed Jan 15 2003 ro@suse.de
- use gtk2-devel-packages and libjpeg in neededforbuild
* Tue Jan 07 2003 sbrabec@suse.cz
- Update to version 2.4.1.0.