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 diff --git a/gui/simple-greeter/Makefile.am b/gui/simple-greeter/Makefile.am
--- gdm-2.24.0-pre/gui/simple-greeter/gdm-chooser-widget.c 2008-09-22 12:01:21.000000000 -0500 index bba7a4a..d652961 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.c 2008-11-01 21:45:12.000000000 -0600 --- a/gui/simple-greeter/Makefile.am
@@ -2105,6 +2105,20 @@ gdm_chooser_widget_remove_item (GdmChoos +++ 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); 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 gboolean
gdm_chooser_widget_lookup_item (GdmChooserWidget *widget, gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
const char *id, 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 diff --git a/gui/simple-greeter/gdm-chooser-widget.h b/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 index b73d1bb..b70016c 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-chooser-widget.h 2008-11-01 21:45:12.000000000 -0600 --- a/gui/simple-greeter/gdm-chooser-widget.h
@@ -96,6 +96,8 @@ void gdm_chooser_widget_update_i +++ 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, void gdm_chooser_widget_remove_item (GdmChooserWidget *widget,
const char *id); 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, gboolean gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
const char *id, const char *id,
GdkPixbuf **image, 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 diff --git a/gui/simple-greeter/gdm-domain-chooser-dialog.c b/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 new file mode 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.c 2008-11-01 21:45:12.000000000 -0600 index 0000000..f577b65
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-chooser-dialog.c
@@ -0,0 +1,207 @@ @@ -0,0 +1,207 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- 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); + 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 diff --git a/gui/simple-greeter/gdm-domain-chooser-dialog.h b/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 new file mode 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-dialog.h 2008-11-01 21:45:12.000000000 -0600 index 0000000..f11f183
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-chooser-dialog.h
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- 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 +G_END_DECLS
+ +
+#endif /* __GDM_DOMAIN_CHOOSER_DIALOG_H */ +#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 diff --git a/gui/simple-greeter/gdm-domain-chooser-widget.c b/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 new file mode 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.c 2008-11-01 21:45:12.000000000 -0600 index 0000000..1d8b113
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-chooser-widget.c
@@ -0,0 +1,237 @@ @@ -0,0 +1,237 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- 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); + 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 diff --git a/gui/simple-greeter/gdm-domain-chooser-widget.h b/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 new file mode 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-chooser-widget.h 2008-11-01 21:45:12.000000000 -0600 index 0000000..4ba9d18
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-chooser-widget.h
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- 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 +G_END_DECLS
+ +
+#endif /* __GDM_DOMAIN_CHOOSER_WIDGET_H */ +#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 diff --git a/gui/simple-greeter/gdm-domain-option-widget.c b/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 new file mode 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.c 2008-11-01 21:45:12.000000000 -0600 index 0000000..93eb5f5
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-option-widget.c
@@ -0,0 +1,379 @@ @@ -0,0 +1,379 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- 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); + 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 diff --git a/gui/simple-greeter/gdm-domain-option-widget.h b/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 new file mode 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-option-widget.h 2008-11-01 21:45:12.000000000 -0600 index 0000000..4913ede
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-option-widget.h
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- 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); + const char *domain_name);
+ +
+#endif /* __GDM_DOMAIN_OPTION_WIDGET_H */ +#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 diff --git a/gui/simple-greeter/gdm-domain-provider.c b/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 new file mode 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.c 2008-11-01 22:10:58.000000000 -0600 index 0000000..2bd9189
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-provider.c
@@ -0,0 +1,478 @@ @@ -0,0 +1,478 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- 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; + 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 diff --git a/gui/simple-greeter/gdm-domain-provider.h b/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 new file mode 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-domain-provider.h 2008-11-01 21:45:12.000000000 -0600 index 0000000..6a318ff
--- /dev/null
+++ b/gui/simple-greeter/gdm-domain-provider.h
@@ -0,0 +1,61 @@ @@ -0,0 +1,61 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- 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 +G_END_DECLS
+ +
+#endif /* __GDM_DOMAIN_PROVIDER_H */ +#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 diff --git a/gui/simple-greeter/gdm-greeter-panel.c b/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 index 50478c5..e557ba9 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.c 2008-11-01 21:45:12.000000000 -0600 --- a/gui/simple-greeter/gdm-greeter-panel.c
+++ b/gui/simple-greeter/gdm-greeter-panel.c
@@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
#include "gdm-language-option-widget.h" #include "gdm-language-option-widget.h"
#include "gdm-layout-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 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, G_TYPE_NONE,
1, G_TYPE_STRING); 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, g_object_class_install_property (object_class,
PROP_MONITOR, PROP_MONITOR,
g_param_spec_int ("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 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) gdm_greeter_panel_init (GdmGreeterPanel *panel)
{ {
NaTray *tray; 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); G_CALLBACK (on_session_activated), panel);
gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), panel->priv->session_option_widget, FALSE, FALSE, 6); 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 (""); spacer = gtk_label_new ("");
gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), spacer, TRUE, TRUE, 6); gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), spacer, TRUE, TRUE, 6);
gtk_widget_show (spacer); 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->session_option_widget);
gtk_widget_show (panel->priv->language_option_widget); gtk_widget_show (panel->priv->language_option_widget);
gtk_widget_show (panel->priv->layout_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 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->session_option_widget);
gtk_widget_hide (panel->priv->language_option_widget); gtk_widget_hide (panel->priv->language_option_widget);
gtk_widget_hide (panel->priv->layout_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"); g_debug ("GdmGreeterPanel: activating default layout");
gdm_layout_activate (NULL); 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), gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->session_option_widget),
session_name); 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), + gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->domain_option_widget),
+ domain_name); + 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 diff --git a/gui/simple-greeter/gdm-greeter-panel.h b/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 index 07cca3f..5d2e2b2 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-panel.h 2008-11-01 21:45:12.000000000 -0600 --- a/gui/simple-greeter/gdm-greeter-panel.h
+++ b/gui/simple-greeter/gdm-greeter-panel.h
@@ -53,6 +53,9 @@ typedef struct @@ -53,6 +53,9 @@ typedef struct
void (* session_selected) (GdmGreeterPanel *panel, 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; } GdmGreeterPanelClass;
GType gdm_greeter_panel_get_type (void); 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); const char *layout_name);
void gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel, void gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel,
const char *session_name); 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 G_END_DECLS
#endif /* __GDM_GREETER_PANEL_H */ #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 diff --git a/gui/simple-greeter/gdm-greeter-session.c b/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 index 83375b2..50c0e33 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-greeter-session.c 2008-11-01 21:45:12.000000000 -0600 --- a/gui/simple-greeter/gdm-greeter-session.c
+++ b/gui/simple-greeter/gdm-greeter-session.c
@@ -38,6 +38,8 @@ @@ -38,6 +38,8 @@
#include "gdm-greeter-panel.h" #include "gdm-greeter-panel.h"
#include "gdm-greeter-login-window.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 { 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; 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 static void
on_info (GdmGreeterClient *client, on_info (GdmGreeterClient *client,
const char *text, 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, const char *username,
GdmGreeterSession *session) 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 static void
@@ -236,13 +274,46 @@ on_select_layout (GdmGreeterSession @@ -236,13 +274,46 @@ on_select_layout (GdmGreeterSession *session,
} }
static void 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 static void
@@ -300,6 +371,11 @@ toggle_panel (GdmGreeterSession *session @@ -300,6 +371,11 @@ toggle_panel (GdmGreeterSession *session,
G_CALLBACK (on_select_session), G_CALLBACK (on_select_session),
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); gtk_widget_show (session->priv->panel);
} else { } else {
gtk_widget_destroy (session->priv->panel); 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); 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); 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 diff --git a/gui/simple-greeter/gdm-simple-greeter.schemas.in b/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 index 55b441f..450cb22 100644
+++ gdm-2.24.0-post/gui/simple-greeter/gdm-simple-greeter.schemas.in 2008-11-01 21:45:12.000000000 -0600 --- a/gui/simple-greeter/gdm-simple-greeter.schemas.in
+++ b/gui/simple-greeter/gdm-simple-greeter.schemas.in
@@ -92,6 +92,18 @@ @@ -92,6 +92,18 @@
</locale> </locale>
</schema> </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> <key>/schemas/apps/gdm/simple-greeter/wm_use_compiz</key>
<applyto>/apps/gdm/simple-greeter/wm_use_compiz</applyto> <applyto>/apps/gdm/simple-greeter/wm_use_compiz</applyto>
<owner>gdm-simple-greeter</owner> <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 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 License: GPL v2 or later
Group: System/GUI/GNOME Group: System/GUI/GNOME
Version: 2.24.0 Version: 2.24.0
Release: 7 Release: 8
Summary: The GNOME 2.x Display Manager Summary: The GNOME 2.x Display Manager
Source: %{name}-%{version}.tar.bz2 Source: %{name}-%{version}.tar.bz2
Source1: gdm.pamd Source1: gdm.pamd
@ -85,6 +85,8 @@ Patch11: gdm-2.23.92-fix-crash.patch
Patch12: gdm-fix-icon-scale.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 # PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager
Patch13: gdm-sysconfig-settings.patch 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 Patch28: gdm-X_SERVER.patch
# PATCH-SUSE: enable SELinux # PATCH-SUSE: enable SELinux
Patch60: gdm-selinux.patch Patch60: gdm-selinux.patch
@ -160,6 +162,7 @@ Authors:
%patch11 -p1 %patch11 -p1
%patch12 -p1 %patch12 -p1
%patch13 -p1 %patch13 -p1
%patch14
%patch28 %patch28
%patch60 %patch60
@ -268,6 +271,11 @@ fi
%files lang -f %{name}.lang %files lang -f %{name}.lang
%changelog %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 * Fri Nov 07 2008 vuntz@novell.com
- Merge hpj's submission: Add gdm-sysconfig-settings.patch, which - Merge hpj's submission: Add gdm-sysconfig-settings.patch, which
fixes bnc#432360. fixes bnc#432360.
@ -301,7 +309,7 @@ fi
family to FamilyWild. family to FamilyWild.
* Mon Oct 06 2008 sbrabec@suse.cz * Mon Oct 06 2008 sbrabec@suse.cz
- Conflict with other branding providers (FATE#304881). - 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: - Update to version 2.24.0:
+ Allow the build to succeed without a gdm user + Allow the build to succeed without a gdm user
+ Use Bourne shell syntax in Xsession.solaris + Use Bourne shell syntax in Xsession.solaris
@ -480,7 +488,7 @@ fi
displays. displays.
+ Build/configure fixes for Solaris. + Build/configure fixes for Solaris.
+ Translation updates. + Translation updates.
* Wed Nov 14 2007 hpj@suse.de * Tue Nov 13 2007 hpj@suse.de
- Removed second --with-atspi-dir from configure. - Removed second --with-atspi-dir from configure.
- Added gdm-tab-triggers-enter.patch, which fixes Novell bug - Added gdm-tab-triggers-enter.patch, which fixes Novell bug
[#334446]. [#334446].
@ -489,7 +497,7 @@ fi
(#337428) (#337428)
- Updated gdm-xdm-sessions.patch to run again the /etc/X11/xdm - Updated gdm-xdm-sessions.patch to run again the /etc/X11/xdm
scripts (#304399) 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 - Pass the --with-atspi-dir= flag to configure so the
at-spi-registryd is started correctly. Fixes Novell bug #337428. at-spi-registryd is started correctly. Fixes Novell bug #337428.
* Thu Oct 18 2007 maw@suse.de * Thu Oct 18 2007 maw@suse.de
@ -497,7 +505,7 @@ fi
- Add abuild.patch. - Add abuild.patch.
* Thu Oct 11 2007 sbrabec@suse.cz * Thu Oct 11 2007 sbrabec@suse.cz
- Removed bogus dependency on mDNSResponder. - 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 - Added gdm-2.20.0-wait-for-restart.patch, which fixes Novell bug
[#326281]. [#326281].
* Thu Sep 20 2007 banderso@suse.de * Thu Sep 20 2007 banderso@suse.de
@ -553,7 +561,7 @@ fi
* Wed Sep 05 2007 sbrabec@suse.cz * Wed Sep 05 2007 sbrabec@suse.cz
- Apply DISPLAYMANAGER_PASSWORD_LESS_LOGIN only for standard login, - Apply DISPLAYMANAGER_PASSWORD_LESS_LOGIN only for standard login,
not for autologin (#307566). 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 - 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 bug where the user's password was being shown on screen (part of
BNC #302282). BNC #302282).
@ -607,7 +615,7 @@ fi
* Sat Aug 04 2007 maw@suse.de * Sat Aug 04 2007 maw@suse.de
- Use %%fdupes - Use %%fdupes
- Uncomment out the rm in %%clean. - 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. - Update to version 2.19.5.
- Fix up gdm-conf.patch. - Fix up gdm-conf.patch.
- Fix up gdm-2.19.3-reset-pam.patch. - Fix up gdm-2.19.3-reset-pam.patch.
@ -687,7 +695,7 @@ fi
* Wed Mar 21 2007 hpj@suse.de * Wed Mar 21 2007 hpj@suse.de
- Add gdm-2.17.7-vt-fallback.patch. This is a port of the fix for - 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 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 - Update to version 2.17.7
- Removeupstreamed gdm-autobuild-warning.patch, - Removeupstreamed gdm-autobuild-warning.patch,
gdm-bufferoverrun.patch gdm-bufferoverrun.patch
@ -695,10 +703,10 @@ fi
[#400698], #399486, #352263, #395790, #394421. [#400698], #399486, #352263, #395790, #394421.
* Fri Mar 02 2007 sbrabec@suse.cz * Fri Mar 02 2007 sbrabec@suse.cz
- Do not own /usr/share/xsessions (#229172). - 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 - Added gdm-2.13.0.4-audit-login.patch, which fixes Novell bug
[#234133] (GDM cannot log authentication attempts). [#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. - Add gdm-trunk-string-literal-cmp.patch. Fixes #233655.
* Mon Feb 12 2007 sbrabec@suse.cz * Mon Feb 12 2007 sbrabec@suse.cz
- Fixed reversed interpretation of - Fixed reversed interpretation of
@ -865,7 +873,7 @@ fi
- Update domain entry patch to default to the currently joined - Update domain entry patch to default to the currently joined
Active Directory domain if there was no stored preference. Fixes Active Directory domain if there was no stored preference. Fixes
Novell bug #167344. 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 - Don't let any user configure GDM from the login screen if a
theme with user list is in effect. Fixes Novell bug #180219. theme with user list is in effect. Fixes Novell bug #180219.
* Wed May 31 2006 dreveman@suse.de * Wed May 31 2006 dreveman@suse.de
@ -875,7 +883,7 @@ fi
- Do not display Japanese string in terminal, which doesn't support - Do not display Japanese string in terminal, which doesn't support
it (#168736). it (#168736).
- Disabled beep on start (#174786). - 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, - Made GDM use the more graphically intensive, but prettier,
gdmgreeter for remote logins. Fixes Novell bug #176661. gdmgreeter for remote logins. Fixes Novell bug #176661.
* Tue May 16 2006 sbrabec@suse.cz * Tue May 16 2006 sbrabec@suse.cz
@ -885,7 +893,7 @@ fi
* Fri May 12 2006 sbrabec@suse.cz * Fri May 12 2006 sbrabec@suse.cz
- Store value of PERMISSION_SECURITY by SuSEconfig in - Store value of PERMISSION_SECURITY by SuSEconfig in
gdm_sysconfig.conf (169639#c20). 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 - Made GDM use the "gdm" group instead of shadow. Fixes Novell bug
[#119651]. [#119651].
- Made use of the tab key work like pressing enter if there is no - Made use of the tab key work like pressing enter if there is no
@ -913,7 +921,7 @@ fi
service, bug #158786. service, bug #158786.
* Sat Mar 11 2006 coolo@suse.de * Sat Mar 11 2006 coolo@suse.de
- fix the only-show-in-gnome patch to patch the .desktop.in - 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 - Fix installation of the earlygdm service; we were not calling
fillup_and_insserv with "displaymanager" for the configuration fillup_and_insserv with "displaymanager" for the configuration
filename. filename.
@ -922,7 +930,7 @@ fi
in PLUS (148468#c17). in PLUS (148468#c17).
* Tue Feb 28 2006 sbrabec@suse.cz * Tue Feb 28 2006 sbrabec@suse.cz
- Use kdelibs3-doc in BuildRequires for meinproc (#153635#c14). - 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. - Add patch to fix tab keynav.
* Fri Feb 17 2006 sreeves@suse.de * Fri Feb 17 2006 sreeves@suse.de
- Update .desktop file (Name, GenericName, Comment, DocPath) - Update .desktop file (Name, GenericName, Comment, DocPath)
@ -950,10 +958,10 @@ fi
- Added patch to require root auth to halt or reboot. - Added patch to require root auth to halt or reboot.
* Wed Jan 25 2006 mls@suse.de * Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires - 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 - Updated the domain logon patch with numerous new features and
cosmetic fixes. 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 - Fixed a bug in logon code that prevented domain logons from
working. Updated domain logon patch. working. Updated domain logon patch.
* Fri Jan 13 2006 schwab@suse.de * Fri Jan 13 2006 schwab@suse.de
@ -973,7 +981,7 @@ fi
- Patch from upstream b.g.o (#152906) - Patch from upstream b.g.o (#152906)
* Mon Oct 17 2005 gekker@suse.de * Mon Oct 17 2005 gekker@suse.de
- Make gdm.conf %%config(noreplace) - 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 - Updated xauthority-across-hostname-changes patch to use
XAUTHLOCALHOSTNAME environment variable. XAUTHLOCALHOSTNAME environment variable.
* Thu Oct 13 2005 gekker@suse.de * Thu Oct 13 2005 gekker@suse.de
@ -992,7 +1000,7 @@ fi
- Update to version 2.8.0.3 - Update to version 2.8.0.3
- Remove upstreamed autologin patch - Remove upstreamed autologin patch
- Now installs .desktop files in correct location no need to move - 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. - Make the default session option work on autologin; we now get GNOME.
* Tue Aug 16 2005 sbrabec@suse.cz * Tue Aug 16 2005 sbrabec@suse.cz
- Use gnome-screensaver instead of xscreensaver. - Use gnome-screensaver instead of xscreensaver.
@ -1003,7 +1011,7 @@ fi
* Thu Aug 11 2005 gekker@suse.de * Thu Aug 11 2005 gekker@suse.de
- Update to version 2.8.0.2 - Update to version 2.8.0.2
- Make 64bit clean - Make 64bit clean
* Sun Jul 31 2005 jpr@suse.de * Sat Jul 30 2005 jpr@suse.de
- turn on compatibility symlink for all products - turn on compatibility symlink for all products
* Tue Jul 05 2005 gekker@suse.de * Tue Jul 05 2005 gekker@suse.de
- Update to version 2.8.0.1 - Update to version 2.8.0.1
@ -1069,7 +1077,7 @@ fi
for timed login user. for timed login user.
* Fri Jul 30 2004 ro@suse.de * Fri Jul 30 2004 ro@suse.de
- fix spec file, list gdm-session-startkde.diff as patch - 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. - Fixes bug #60867.
Shows the 'KDE' option when the user clicks on 'Session' at the Shows the 'KDE' option when the user clicks on 'Session' at the
time of login. time of login.
@ -1128,7 +1136,7 @@ fi
- updated to version 2.4.1.6 - updated to version 2.4.1.6
* Mon Jul 28 2003 kukuk@suse.de * Mon Jul 28 2003 kukuk@suse.de
- Make sure /var/lib/gdm has correct permissions - 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 - move capplets to correct position
- fix build - fix build
* Wed Jul 16 2003 sbrabec@suse.cz * Wed Jul 16 2003 sbrabec@suse.cz
@ -1165,7 +1173,7 @@ fi
- updated to 2.4.1.3 [GNOME 2.2.0] - updated to 2.4.1.3 [GNOME 2.2.0]
* Fri Feb 07 2003 kukuk@suse.de * Fri Feb 07 2003 kukuk@suse.de
- Use pam_unix2.so instead of pam_unix.so - 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 - use gtk2-devel-packages and libjpeg in neededforbuild
* Tue Jan 07 2003 sbrabec@suse.cz * Tue Jan 07 2003 sbrabec@suse.cz
- Update to version 2.4.1.0. - Update to version 2.4.1.0.