SHA256
1
0
forked from pool/gdm
OBS User unknown 2009-02-06 22:36:06 +00:00 committed by Git OBS Bridge
parent adc7f6d78a
commit 746b392acc
22 changed files with 967 additions and 1250 deletions

View File

@ -1,39 +0,0 @@
--- gdm/gui/simple-greeter/gdm-languages.c (revision 6468)
+++ gdm/gui/simple-greeter/gdm-languages.c (working copy)
@@ -216,6 +216,25 @@ construct_language_name (const char *lan
return name;
}
+static void
+make_codeset_canonical_for_locale (const *name,
+ const char **codeset)
+{
+ char *old_locale;
+ char *canonical_codeset;
+
+ old_locale = setlocale (LC_CTYPE, name);
+
+ if (old_locale == NULL) {
+ return;
+ }
+
+ g_free (*codeset);
+ *codeset = g_strdup (nl_langinfo (CODESET));
+
+ setlocale (LC_CTYPE, old_locale);
+}
+
char *
gdm_normalize_language_name (const char *name)
{
@@ -234,6 +253,10 @@ gdm_normalize_language_name (const char
&territory_code,
&codeset, &modifier);
+ if (codeset != NULL) {
+ make_codeset_canonical_for_locale (name, &codeset);
+ }
+
normalized_name = construct_language_name (language_code,
territory_code,
codeset, modifier);

View File

@ -1,138 +0,0 @@
diff -up gdm-2.23.92/gui/simple-greeter/gdm-language-option-widget.c.filter-dupes-from-lang-list gdm-2.23.92/gui/simple-greeter/gdm-language-option-widget.c
--- gdm-2.23.92/gui/simple-greeter/gdm-language-option-widget.c.filter-dupes-from-lang-list 2008-08-26 15:04:00.000000000 -0400
+++ gdm-2.23.92/gui/simple-greeter/gdm-language-option-widget.c 2008-09-17 11:07:51.000000000 -0400
@@ -173,7 +173,7 @@ gdm_language_option_widget_class_init (G
g_type_class_add_private (klass, sizeof (GdmLanguageOptionWidgetPrivate));
}
-static gboolean
+static char *
gdm_language_option_widget_lookup_item (GdmRecentOptionWidget *widget,
const char *locale,
char **name,
@@ -182,11 +182,15 @@ gdm_language_option_widget_lookup_item (
char *language;
char *readable_language;
char *lang_tag;
+ char *normalized_locale;
- language = gdm_get_language_from_name (locale, locale);
+ normalized_locale = gdm_normalize_language_name (locale);
+
+ language = gdm_get_language_from_name (locale, normalized_locale);
if (language == NULL) {
- return FALSE;
+ g_free (normalized_locale);
+ return NULL;
}
readable_language = gdm_get_language_from_name (locale, NULL);
@@ -197,7 +201,7 @@ gdm_language_option_widget_lookup_item (
g_free (language);
g_free (lang_tag);
- return TRUE;
+ return normalized_locale;
}
static void
@@ -294,7 +298,7 @@ gdm_language_option_widget_set_current_l
if (normalized_language_name != NULL &&
!gdm_option_widget_lookup_item (GDM_OPTION_WIDGET (widget),
- normalized_language_name, NULL, NULL, NULL)) {
+ &normalized_language_name, NULL, NULL, NULL)) {
gdm_recent_option_widget_add_item (GDM_RECENT_OPTION_WIDGET (widget),
normalized_language_name);
}
diff -up gdm-2.23.92/gui/simple-greeter/gdm-layout-option-widget.c.filter-dupes-from-lang-list gdm-2.23.92/gui/simple-greeter/gdm-layout-option-widget.c
--- gdm-2.23.92/gui/simple-greeter/gdm-layout-option-widget.c.filter-dupes-from-lang-list 2008-09-17 10:55:20.000000000 -0400
+++ gdm-2.23.92/gui/simple-greeter/gdm-layout-option-widget.c 2008-09-17 11:08:07.000000000 -0400
@@ -176,24 +176,24 @@ gdm_layout_option_widget_class_init (Gdm
g_type_class_add_private (klass, sizeof (GdmLayoutOptionWidgetPrivate));
}
-static gboolean
+static char *
gdm_layout_option_widget_lookup_item (GdmRecentOptionWidget *widget,
- const char *id,
+ const char *key,
char **name,
char **comment)
{
char *layout;
- layout = gdm_get_layout_from_name (id);
+ layout = gdm_get_layout_from_name (key);
if (layout == NULL) {
- return FALSE;
+ return NULL;
}
*name = layout;
*comment = NULL;
- return TRUE;
+ return g_strdup (key);
}
static void
diff -up gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.c.filter-dupes-from-lang-list gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.c
--- gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.c.filter-dupes-from-lang-list 2008-08-26 15:04:00.000000000 -0400
+++ gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.c 2008-09-17 11:06:34.000000000 -0400
@@ -159,13 +159,24 @@ gdm_recent_option_widget_sync_items_from
default_is_set = FALSE;
for (tmp = list; tmp != NULL; tmp = tmp->next) {
- const char *id;
+ const char *key;
+ char *id;
char *name;
char *comment;
- id = (char *) tmp->data;
+ key = (char *) tmp->data;
+
+ id = widget->priv->lookup_item_func (widget, key, &name, &comment);
+
+ if (id != NULL) {
+ gboolean item_exists;
+
+ item_exists = gdm_option_widget_lookup_item (GDM_OPTION_WIDGET (widget), id, NULL, NULL, NULL);
+
+ if (item_exists) {
+ continue;
+ }
- if (widget->priv->lookup_item_func (widget, id, &name, &comment)) {
gdm_option_widget_add_item (GDM_OPTION_WIDGET (widget),
id, name, comment,
GDM_OPTION_WIDGET_POSITION_MIDDLE);
@@ -177,6 +188,7 @@ gdm_recent_option_widget_sync_items_from
g_free (name);
g_free (comment);
+ g_free (id);
}
}
diff -up gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.h.filter-dupes-from-lang-list gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.h
--- gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.h.filter-dupes-from-lang-list 2008-08-26 15:04:00.000000000 -0400
+++ gdm-2.23.92/gui/simple-greeter/gdm-recent-option-widget.h 2008-09-17 11:07:40.000000000 -0400
@@ -48,10 +48,10 @@ typedef struct
GdmOptionWidgetClass parent_class;
} GdmRecentOptionWidgetClass;
-typedef gboolean (* GdmRecentOptionLookupItemFunc) (GdmRecentOptionWidget *widget,
- const char *id,
- char **name,
- char **comment);
+typedef char * (* GdmRecentOptionLookupItemFunc) (GdmRecentOptionWidget *widget,
+ const char *key,
+ char **name,
+ char **comment);
GType gdm_recent_option_widget_get_type (void);

View File

@ -1,12 +0,0 @@
--- gdm-2.23.92/gui/simple-greeter/gdm-option-widget.c 2008-08-26 15:03:59.000000000 -0400
+++ foo/gui/simple-greeter/gdm-option-widget.c 2008-09-19 09:57:30.000000000 -0400
@@ -148,7 +148,8 @@
model = GTK_TREE_MODEL (widget->priv->list_store);
item_id = NULL;
- if (widget->priv->active_row == NULL) {
+ if (widget->priv->active_row == NULL ||
+ !gtk_tree_row_reference_valid (widget->priv->active_row)) {
return NULL;
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f47553b89ff6ba5c03e53d82a64a63b97fcb2d751cbd4e1591c6499ac9a694f7
size 2559374

3
gdm-2.25.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d2ee2c552282aa56b4e2c0797052b33a44b5d7bba6f203f44b2c9eaa17e1ba19
size 2616227

View File

@ -0,0 +1,55 @@
Index: gdm-2.24.0/daemon/gdm-session-direct.c
===================================================================
--- gdm-2.24.0.orig/daemon/gdm-session-direct.c
+++ gdm-2.24.0/daemon/gdm-session-direct.c
@@ -442,6 +442,7 @@ gdm_session_direct_handle_accreditation_
DBusError error;
const char *text;
+ text = NULL;
dbus_error_init (&error);
if (! dbus_message_get_args (message, &error,
DBUS_TYPE_STRING, &text,
@@ -455,7 +456,7 @@ gdm_session_direct_handle_accreditation_
g_debug ("GdmSessionDirect: Emitting 'accreditation-failed' signal");
- _gdm_session_accreditation_failed (GDM_SESSION (session), NULL);
+ _gdm_session_accreditation_failed (GDM_SESSION (session), text);
return DBUS_HANDLER_RESULT_HANDLED;
}
Index: gdm-2.24.0/daemon/gdm-simple-slave.c
===================================================================
--- gdm-2.24.0.orig/daemon/gdm-simple-slave.c
+++ gdm-2.24.0/daemon/gdm-simple-slave.c
@@ -422,8 +422,15 @@ on_session_accreditation_failed (GdmSess
accreditation fails */
if (! migrated) {
if (slave->priv->greeter_server != NULL) {
+ char *problem;
+ if (message) {
+ problem = g_strdup_printf (_("Unable to establish credentials: %s"), message);
+ } else {
+ problem = g_strdup (_("Unable to establish credentials"));
+ }
gdm_greeter_server_problem (slave->priv->greeter_server,
- _("Unable establish credentials"));
+ problem);
+ g_free (problem);
}
}
Index: gdm-2.24.0/daemon/gdm-session-worker.c
===================================================================
--- gdm-2.24.0.orig/daemon/gdm-session-worker.c
+++ gdm-2.24.0/daemon/gdm-session-worker.c
@@ -2414,7 +2414,7 @@ on_setup (GdmSessionWorker *worker,
worker->priv->hostname = g_strdup (hostname);
worker->priv->username = NULL;
- g_debug ("GdmSessionWorker: queing setup: %s %s", service, console);
+ g_debug ("GdmSessionWorker: queuing setup: %s %s", service, console);
queue_state_change (worker);
} else {
g_warning ("Unable to get arguments: %s", error.message);

View File

@ -1,748 +0,0 @@
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

@ -0,0 +1,105 @@
Index: gdm-2.24.0/data/gdm.conf.in
===================================================================
--- gdm-2.24.0.orig/data/gdm.conf.in
+++ gdm-2.24.0/data/gdm.conf.in
@@ -7,52 +7,76 @@
<policy user="root">
<allow own="org.gnome.DisplayManager"/>
- <allow send_interface="org.gnome.DisplayManager.Manager"/>
- <allow send_interface="org.gnome.DisplayManager.Display"/>
- <allow send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
- <allow send_interface="org.gnome.DisplayManager.Settings"/>
- <allow send_interface="org.gnome.DisplayManager.Slave"/>
- <allow send_interface="org.gnome.DisplayManager.Session"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Manager"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Settings"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Slave"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Session"/>
<allow send_destination="org.gnome.DisplayManager"
send_interface="org.gnome.DBus.Properties" />
</policy>
<policy context="default">
- <deny send_interface="org.gnome.DisplayManager.Manager"/>
- <deny send_interface="org.gnome.DisplayManager.Display"/>
- <deny send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
- <deny send_interface="org.gnome.DisplayManager.Settings"/>
- <deny send_interface="org.gnome.DisplayManager.Slave"/>
- <deny send_interface="org.gnome.DisplayManager.Session"/>
+ <deny send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Manager"/>
+ <deny send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"/>
+ <deny send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
+ <deny send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Settings"/>
+ <deny send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Slave"/>
+ <deny send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Session"/>
<deny send_destination="org.gnome.DisplayManager"
send_interface="org.gnome.DBus.Properties" />
- <allow send_interface="org.gnome.DisplayManager.Display"
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"
send_member="GetId"/>
- <allow send_interface="org.gnome.DisplayManager.Display"
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"
send_member="GetRemoteHostname"/>
- <allow send_interface="org.gnome.DisplayManager.Display"
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"
send_member="GetSeatId"/>
- <allow send_interface="org.gnome.DisplayManager.Display"
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"
send_member="GetX11DisplayName"/>
- <allow send_interface="org.gnome.DisplayManager.Display"
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"
send_member="GetX11DisplayNumber"/>
- <allow send_interface="org.gnome.DisplayManager.Display"
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"
send_member="IsLocal"/>
- <allow send_interface="org.gnome.DisplayManager.LocalDisplayFactory"
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.LocalDisplayFactory"
send_member="CreateTransientDisplay"/>
- <allow send_interface="org.gnome.DisplayManager.Manager"
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Manager"
send_member="GetDisplays"/>
</policy>
<policy user="@GDM_USERNAME@">
- <allow send_interface="org.gnome.DisplayManager.Manager"/>
- <allow send_interface="org.gnome.DisplayManager.Display"/>
- <allow send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
- <allow send_interface="org.gnome.DisplayManager.Settings"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Manager"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Display"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
+ <allow send_destination="org.gnome.DisplayManager"
+ send_interface="org.gnome.DisplayManager.Settings"/>
<allow send_destination="org.gnome.DisplayManager"
send_interface="org.gnome.DBus.Properties" />
</policy>

View File

@ -1727,9 +1727,9 @@ index 50478c5..825f0c5 100644
--- a/gui/simple-greeter/gdm-greeter-panel.c --- a/gui/simple-greeter/gdm-greeter-panel.c
+++ b/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-layout-option-widget.h" #include "gdm-layout-option-widget.h"
#include "gdm-session-option-widget.h" #include "gdm-session-option-widget.h"
#include "gdm-timer.h"
+#include "gdm-domain-option-widget.h" +#include "gdm-domain-option-widget.h"
#include "gdm-profile.h" #include "gdm-profile.h"
@ -1740,8 +1740,8 @@ index 50478c5..825f0c5 100644
GtkWidget *session_option_widget; GtkWidget *session_option_widget;
+ GtkWidget *domain_option_widget; + GtkWidget *domain_option_widget;
char *default_session_name; GdmTimer *animation_timer;
char *default_language_name; double progress;
@@ -72,6 +74,7 @@ enum { @@ -72,6 +74,7 @@ enum {
LANGUAGE_SELECTED, LANGUAGE_SELECTED,
LAYOUT_SELECTED, LAYOUT_SELECTED,

View File

@ -1,105 +0,0 @@
diff -up gdm-2.24.0/gui/simple-greeter/gdm-user-chooser-widget.c.fix-icon-scale gdm-2.24.0/gui/simple-greeter/gdm-user-chooser-widget.c
--- gdm-2.24.0/gui/simple-greeter/gdm-user-chooser-widget.c.fix-icon-scale 2008-09-22 13:01:21.000000000 -0400
+++ gdm-2.24.0/gui/simple-greeter/gdm-user-chooser-widget.c 2008-09-30 17:31:00.000000000 -0400
@@ -51,7 +51,7 @@ enum {
#define GDM_USER_CHOOSER_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_USER_CHOOSER_WIDGET, GdmUserChooserWidgetPrivate))
-#define ICON_SIZE 96
+#define MAX_ICON_SIZE 128
struct GdmUserChooserWidgetPrivate
{
@@ -83,6 +83,45 @@ static void gdm_user_chooser_widget_
G_DEFINE_TYPE (GdmUserChooserWidget, gdm_user_chooser_widget, GDM_TYPE_CHOOSER_WIDGET)
+static int
+get_font_height_for_widget (GtkWidget *widget)
+{
+ PangoFontMetrics *metrics;
+ PangoContext *context;
+ int ascent;
+ int descent;
+ int height;
+
+ gtk_widget_ensure_style (widget);
+ context = gtk_widget_get_pango_context (widget);
+ metrics = pango_context_get_metrics (context,
+ widget->style->font_desc,
+ pango_context_get_language (context));
+
+ ascent = pango_font_metrics_get_ascent (metrics);
+ descent = pango_font_metrics_get_descent (metrics);
+ height = PANGO_PIXELS (ascent + descent);
+ pango_font_metrics_unref (metrics);
+ return height;
+}
+
+static int
+get_icon_height_for_widget (GtkWidget *widget)
+{
+ int font_height;
+ int height;
+
+ font_height = get_font_height_for_widget (widget);
+ height = 3 * font_height;
+ if (height > MAX_ICON_SIZE) {
+ height = MAX_ICON_SIZE;
+ }
+
+ g_debug ("GdmUserChooserWidget: font height %d; using icon size %d", font_height, height);
+
+ return height;
+}
+
static void
add_user_other (GdmUserChooserWidget *widget)
{
@@ -295,12 +334,14 @@ add_user (GdmUserChooserWidget *widget,
GdkPixbuf *pixbuf;
char *tooltip;
gboolean is_logged_in;
+ int size;
if (!widget->priv->show_normal_users) {
return;
}
- pixbuf = gdm_user_render_icon (user, ICON_SIZE);
+ size = get_icon_height_for_widget (widget);
+ pixbuf = gdm_user_render_icon (user, size);
if (pixbuf == NULL && widget->priv->stock_person_pixbuf != NULL) {
pixbuf = g_object_ref (widget->priv->stock_person_pixbuf);
}
@@ -537,10 +578,13 @@ static GdkPixbuf *
get_stock_person_pixbuf (GdmUserChooserWidget *widget)
{
GdkPixbuf *pixbuf;
+ int size;
+
+ size = get_icon_height_for_widget (widget);
pixbuf = gtk_icon_theme_load_icon (widget->priv->icon_theme,
DEFAULT_USER_ICON,
- ICON_SIZE,
+ size,
0,
NULL);
@@ -551,10 +595,13 @@ static GdkPixbuf *
get_logged_in_pixbuf (GdmUserChooserWidget *widget)
{
GdkPixbuf *pixbuf;
+ int size;
+
+ size = get_icon_height_for_widget (widget);
pixbuf = gtk_icon_theme_load_icon (widget->priv->icon_theme,
"emblem-default",
- ICON_SIZE / 3,
+ size / 3,
0,
NULL);

View File

@ -0,0 +1,22 @@
Index: gdm-2.24.0/gui/simple-greeter/gdm-languages.c
===================================================================
--- gdm-2.24.0.orig/gui/simple-greeter/gdm-languages.c
+++ gdm-2.24.0/gui/simple-greeter/gdm-languages.c
@@ -482,7 +482,7 @@ select_dirs (const struct dirent *dirent
struct stat st;
char *path;
- path = g_build_filename (GNOMELOCALEDIR, dirent->d_name, NULL);
+ path = g_build_filename (LIBLOCALEDIR, dirent->d_name, NULL);
if (g_stat (path, &st) == 0) {
mode = st.st_mode;
}
@@ -502,7 +502,7 @@ collect_locales_from_directory (void)
int ndirents;
int cnt;
- ndirents = scandir (GNOMELOCALEDIR, &dirents, select_dirs, alphasort);
+ ndirents = scandir (LIBLOCALEDIR, &dirents, select_dirs, alphasort);
for (cnt = 0; cnt < ndirents; ++cnt) {
add_locale (dirents[cnt]->d_name);

View File

@ -1,93 +0,0 @@
Index: daemon/gdm-session-linux-auditor.c
===================================================================
--- daemon/gdm-session-linux-auditor.c (revision 6589)
+++ daemon/gdm-session-linux-auditor.c (revision 6593)
@@ -45,8 +45,9 @@ static void gdm_session_linux_auditor_fi
G_DEFINE_TYPE (GdmSessionLinuxAuditor, gdm_session_linux_auditor, GDM_TYPE_SESSION_AUDITOR)
static void
-gdm_session_linux_auditor_report_login_attempt (GdmSessionAuditor *auditor,
- gboolean was_successful)
+log_user_message (GdmSessionAuditor *auditor,
+ gint type,
+ gint result)
{
GdmSessionLinuxAuditor *linux_auditor;
char buf[512];
@@ -70,14 +71,14 @@ gdm_session_linux_auditor_report_login_a
if (pw != NULL) {
g_snprintf (buf, sizeof (buf), "uid=%d", pw->pw_uid);
- audit_log_user_message (linux_auditor->priv->audit_fd, AUDIT_USER_LOGIN,
+ audit_log_user_message (linux_auditor->priv->audit_fd, type,
buf, hostname, NULL, display_device,
- was_successful != FALSE);
+ result);
} else {
g_snprintf (buf, sizeof (buf), "acct=%s", username);
- audit_log_user_message (linux_auditor->priv->audit_fd, AUDIT_USER_LOGIN,
+ audit_log_user_message (linux_auditor->priv->audit_fd, type,
buf, hostname, NULL, display_device,
- was_successful != FALSE);
+ result);
}
g_free (username);
@@ -88,7 +89,7 @@ gdm_session_linux_auditor_report_login_a
static void
gdm_session_linux_auditor_report_login (GdmSessionAuditor *auditor)
{
- gdm_session_linux_auditor_report_login_attempt (auditor, TRUE);
+ log_user_message (auditor, AUDIT_USER_LOGIN, 1);
}
static void
@@ -96,8 +97,13 @@ gdm_session_linux_auditor_report_login_f
int pam_error_code,
const char *pam_error_string)
{
+ log_user_message (auditor, AUDIT_USER_LOGIN, 0);
+}
- gdm_session_linux_auditor_report_login_attempt (auditor, FALSE);
+static void
+gdm_session_linux_auditor_report_logout (GdmSessionAuditor *auditor)
+{
+ log_user_message (auditor, AUDIT_USER_LOGOUT, 1);
}
static void
@@ -113,6 +119,7 @@ gdm_session_linux_auditor_class_init (Gd
auditor_class->report_login = gdm_session_linux_auditor_report_login;
auditor_class->report_login_failure = gdm_session_linux_auditor_report_login_failure;
+ auditor_class->report_logout = gdm_session_linux_auditor_report_logout;
g_type_class_add_private (auditor_class, sizeof (GdmSessionLinuxAuditorPrivate));
}
Index: daemon/gdm-session-worker.c
===================================================================
--- daemon/gdm-session-worker.c (revision 6589)
+++ daemon/gdm-session-worker.c (revision 6593)
@@ -974,10 +974,6 @@ gdm_session_worker_uninitialize_pam (Gdm
if (worker->priv->pam_handle == NULL)
return;
- if (worker->priv->state >= GDM_SESSION_WORKER_STATE_ACCREDITED) {
- pam_setcred (worker->priv->pam_handle, PAM_DELETE_CRED);
- }
-
if (worker->priv->state >= GDM_SESSION_WORKER_STATE_SESSION_OPENED) {
pam_close_session (worker->priv->pam_handle, 0);
gdm_session_auditor_report_logout (worker->priv->auditor);
@@ -987,6 +983,10 @@ gdm_session_worker_uninitialize_pam (Gdm
pam_strerror (worker->priv->pam_handle, status));
}
+ if (worker->priv->state >= GDM_SESSION_WORKER_STATE_ACCREDITED) {
+ pam_setcred (worker->priv->pam_handle, PAM_DELETE_CRED);
+ }
+
pam_end (worker->priv->pam_handle, status);
worker->priv->pam_handle = NULL;

View File

@ -1,28 +0,0 @@
diff -upr gdm-2.24.0-org/daemon/gdm-manager.c gdm-2.24.0/daemon/gdm-manager.c
--- gdm-2.24.0-org/daemon/gdm-manager.c 2008-07-29 11:40:42.000000000 +0900
+++ gdm-2.24.0/daemon/gdm-manager.c 2008-11-19 02:11:55.000000000 +0900
@@ -328,9 +328,7 @@ gdm_manager_constructor (GType
manager->priv->local_factory = gdm_local_display_factory_new (manager->priv->display_store);
#ifdef HAVE_LIBXDMCP
- if (manager->priv->xdmcp_enabled) {
- manager->priv->xdmcp_factory = gdm_xdmcp_display_factory_new (manager->priv->display_store);
- }
+ manager->priv->xdmcp_factory = gdm_xdmcp_display_factory_new (manager->priv->display_store);
#endif
return G_OBJECT (manager);
diff -upr gdm-2.24.0-org/daemon/gdm-xdmcp-display-factory.c gdm-2.24.0/daemon/gdm-xdmcp-display-factory.c
--- gdm-2.24.0-org/daemon/gdm-xdmcp-display-factory.c 2008-11-15 22:43:39.000000000 +0900
+++ gdm-2.24.0/daemon/gdm-xdmcp-display-factory.c 2008-11-16 10:47:32.000000000 +0900
@@ -2044,6 +2052,10 @@ gdm_xdmcp_display_create (GdmXdmcpDispla
store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory));
gdm_display_store_add (store, display);
+ if (! gdm_display_manage (display)) {
+ gdm_display_unmanage (display);
+ }
+
factory->priv->num_pending_sessions++;
out:

398
gdm-hide-lonely-other.patch Normal file
View File

@ -0,0 +1,398 @@
Index: gui/simple-greeter/gdm-user-chooser-widget.c
===================================================================
--- gui/simple-greeter/gdm-user-chooser-widget.c (révision 6670)
+++ gui/simple-greeter/gdm-user-chooser-widget.c (copie de travail)
@@ -67,6 +67,8 @@ struct GdmUserChooserWidgetPrivate
guint show_user_auto : 1;
guint show_normal_users : 1;
+ guint real_show_user_other : 1;
+
guint load_idle_id;
};
@@ -83,6 +85,9 @@ static void gdm_user_chooser_widget_
G_DEFINE_TYPE (GdmUserChooserWidget, gdm_user_chooser_widget, GDM_TYPE_CHOOSER_WIDGET)
+static void add_user_other (GdmUserChooserWidget *widget);
+static void remove_user_other (GdmUserChooserWidget *widget);
+
static int
get_font_height_for_widget (GtkWidget *widget)
{
@@ -123,8 +128,31 @@ get_icon_height_for_widget (GtkWidget *w
}
static void
+update_other_user_visibility (GdmUserChooserWidget *widget)
+{
+ if (!widget->priv->show_user_other) {
+ if (widget->priv->real_show_user_other) {
+ remove_user_other (widget);
+ }
+
+ return;
+ }
+
+ if (gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (widget)) == 1) {
+ /* we hide the Other user if it's the last one, and we show it
+ * if there's another user */
+ if (widget->priv->real_show_user_other) {
+ remove_user_other (widget);
+ } else {
+ add_user_other (widget);
+ }
+ }
+}
+
+static void
add_user_other (GdmUserChooserWidget *widget)
{
+ widget->priv->real_show_user_other = TRUE;
gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget),
GDM_USER_CHOOSER_USER_OTHER,
NULL,
@@ -146,6 +174,7 @@ add_user_guest (GdmUserChooserWidget *wi
0,
FALSE,
TRUE);
+ update_other_user_visibility (widget);
}
static void
@@ -159,11 +188,13 @@ add_user_auto (GdmUserChooserWidget *wid
0,
FALSE,
TRUE);
+ update_other_user_visibility (widget);
}
static void
remove_user_other (GdmUserChooserWidget *widget)
{
+ widget->priv->real_show_user_other = FALSE;
gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget),
GDM_USER_CHOOSER_USER_OTHER);
}
@@ -173,6 +204,7 @@ remove_user_guest (GdmUserChooserWidget
{
gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget),
GDM_USER_CHOOSER_USER_GUEST);
+ update_other_user_visibility (widget);
}
static void
@@ -180,6 +212,7 @@ remove_user_auto (GdmUserChooserWidget *
{
gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget),
GDM_USER_CHOOSER_USER_AUTO);
+ update_other_user_visibility (widget);
}
void
@@ -190,11 +223,7 @@ gdm_user_chooser_widget_set_show_user_ot
if (widget->priv->show_user_other != show_user) {
widget->priv->show_user_other = show_user;
- if (show_user) {
- add_user_other (widget);
- } else {
- remove_user_other (widget);
- }
+ update_other_user_visibility (widget);
}
}
@@ -369,6 +398,8 @@ add_user (GdmUserChooserWidget *widget,
if (pixbuf != NULL) {
g_object_unref (pixbuf);
}
+
+ update_other_user_visibility (widget);
}
static void
@@ -400,6 +431,8 @@ on_user_removed (GdmUserManager *m
gdm_chooser_widget_remove_item (GDM_CHOOSER_WIDGET (widget),
user_name);
+
+ update_other_user_visibility (widget);
}
static void
@@ -444,8 +477,6 @@ on_users_loaded (GdmUserManager *m
{
GSList *users;
- widget->priv->loaded = TRUE;
-
g_debug ("GdmUserChooserWidget: Users loaded");
users = gdm_user_manager_list_users (manager);
@@ -454,7 +485,7 @@ on_users_loaded (GdmUserManager *m
users = g_slist_delete_link (users, users);
}
- gtk_widget_grab_focus (GTK_WIDGET (widget));
+ widget->priv->loaded = TRUE;
gdm_chooser_widget_loaded (GDM_CHOOSER_WIDGET (widget));
}
@@ -505,6 +536,7 @@ gdm_user_chooser_widget_constructor (GTy
n_construct_properties,
construct_properties));
+ widget->priv->real_show_user_other = FALSE;
widget->priv->show_normal_users = !is_user_list_disabled (widget);
widget->priv->load_idle_id = g_idle_add ((GSourceFunc)load_users, widget);
Index: gui/simple-greeter/gdm-greeter-login-window.c
===================================================================
--- gui/simple-greeter/gdm-greeter-login-window.c (révision 6670)
+++ gui/simple-greeter/gdm-greeter-login-window.c (copie de travail)
@@ -114,6 +114,7 @@ struct GdmGreeterLoginWindowPrivate
GtkWidget *auth_banner_label;
guint display_is_local : 1;
guint is_interactive : 1;
+ guint user_chooser_loaded : 1;
GConfClient *client;
gboolean banner_message_enabled;
@@ -528,9 +529,13 @@ switch_mode (GdmGreeterLoginWindow *logi
GtkWidget *box;
gboolean show_restart_buttons;
gboolean show_suspend_button;
+ gboolean only_other_user;
+ gboolean show_buttons;
- show_restart_buttons = get_show_restart_buttons (login_window);
- show_suspend_button = can_suspend (login_window);
+ only_other_user = (gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)) == 0);
+ show_buttons = (number == MODE_SELECTION) || only_other_user;
+ show_restart_buttons = show_buttons && get_show_restart_buttons (login_window);
+ show_suspend_button = show_buttons && can_suspend (login_window);
/* we want to run this even if we're supposed to
be in the mode already so that we reset everything
@@ -539,7 +544,14 @@ switch_mode (GdmGreeterLoginWindow *logi
default_name = NULL;
- remove_sensitize_power_buttons_timeout (login_window);
+ show_widget (login_window, "shutdown-button",
+ login_window->priv->display_is_local && show_restart_buttons);
+ show_widget (login_window, "restart-button",
+ login_window->priv->display_is_local && show_restart_buttons);
+ show_widget (login_window, "suspend-button",
+ login_window->priv->display_is_local && show_restart_buttons && show_suspend_button);
+ show_widget (login_window, "disconnect-button",
+ !login_window->priv->display_is_local && show_buttons);
switch (number) {
case MODE_SELECTION:
@@ -547,15 +559,6 @@ switch_mode (GdmGreeterLoginWindow *logi
show_widget (login_window, "cancel-button", FALSE);
- show_widget (login_window, "shutdown-button",
- login_window->priv->display_is_local && show_restart_buttons);
- show_widget (login_window, "restart-button",
- login_window->priv->display_is_local && show_restart_buttons);
- show_widget (login_window, "suspend-button",
- login_window->priv->display_is_local && show_restart_buttons && show_suspend_button);
- show_widget (login_window, "disconnect-button",
- ! login_window->priv->display_is_local);
-
show_widget (login_window, "auth-input-box", FALSE);
add_sensitize_power_buttons_timeout (login_window);
@@ -568,10 +571,12 @@ switch_mode (GdmGreeterLoginWindow *logi
break;
case MODE_AUTHENTICATION:
show_widget (login_window, "cancel-button", TRUE);
- show_widget (login_window, "shutdown-button", FALSE);
- show_widget (login_window, "restart-button", FALSE);
- show_widget (login_window, "suspend-button", FALSE);
- show_widget (login_window, "disconnect-button", FALSE);
+
+ sensitize_widget (login_window, "shutdown-button", TRUE);
+ sensitize_widget (login_window, "restart-button", TRUE);
+ sensitize_widget (login_window, "suspend-button", TRUE);
+ sensitize_widget (login_window, "disconnect-button", TRUE);
+
default_name = "log-in-button";
break;
default:
@@ -665,10 +670,40 @@ delete_entry_text (GtkWidget *entry)
}
static void
+select_user (GdmGreeterLoginWindow *login_window,
+ const char *user_name)
+{
+ g_signal_emit (G_OBJECT (login_window), signals[USER_SELECTED],
+ 0, user_name);
+
+ if (strcmp (user_name, GDM_USER_CHOOSER_USER_OTHER) == 0) {
+ g_signal_emit (login_window, signals[BEGIN_VERIFICATION], 0);
+ } else if (strcmp (user_name, GDM_USER_CHOOSER_USER_GUEST) == 0) {
+ /* FIXME: handle guest account stuff */
+ } else if (strcmp (user_name, GDM_USER_CHOOSER_USER_AUTO) == 0) {
+ g_signal_emit (login_window, signals[BEGIN_AUTO_LOGIN], 0,
+ login_window->priv->timed_login_username);
+
+ login_window->priv->timed_login_enabled = TRUE;
+ restart_timed_login_timeout (login_window);
+
+ /* just wait for the user to select language and stuff */
+ set_log_in_button_mode (login_window, LOGIN_BUTTON_TIMED_LOGIN);
+ set_message (login_window, _("Select language and click Log In"));
+ } else {
+ g_signal_emit (login_window, signals[BEGIN_VERIFICATION_FOR_USER], 0, user_name);
+ }
+
+ switch_mode (login_window, MODE_AUTHENTICATION);
+}
+
+
+static void
reset_dialog (GdmGreeterLoginWindow *login_window)
{
GtkWidget *entry;
GtkWidget *label;
+ gboolean use_selection;
g_debug ("GdmGreeterLoginWindow: Resetting dialog");
set_busy (login_window);
@@ -703,12 +738,21 @@ reset_dialog (GdmGreeterLoginWindow *log
label = glade_xml_get_widget (GDM_GREETER_LOGIN_WINDOW (login_window)->priv->xml, "auth-prompt-label");
gtk_label_set_text (GTK_LABEL (label), "");
- switch_mode (login_window, MODE_SELECTION);
+ use_selection = !login_window->priv->user_chooser_loaded || (gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)) >= 1);
+
+ if (use_selection) {
+ switch_mode (login_window, MODE_SELECTION);
+ } else {
+ select_user (login_window, GDM_USER_CHOOSER_USER_OTHER);
+ }
set_sensitive (login_window, TRUE);
set_ready (login_window);
set_focus (GDM_GREETER_LOGIN_WINDOW (login_window));
- gdm_chooser_widget_propagate_pending_key_events (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser));
+
+ if (use_selection) {
+ gdm_chooser_widget_propagate_pending_key_events (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser));
+ }
}
static void
@@ -1323,7 +1367,19 @@ static void
on_users_loaded (GdmUserChooserWidget *user_chooser,
GdmGreeterLoginWindow *login_window)
{
- gdm_chooser_widget_activate_if_one_item (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser));
+ int number_users;
+
+ login_window->priv->user_chooser_loaded = TRUE;
+
+ number_users = gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (user_chooser));
+
+ if (number_users == 1) {
+ gdm_chooser_widget_activate_if_one_item (GDM_CHOOSER_WIDGET (user_chooser));
+ } else if (number_users == 0) {
+ select_user (login_window, GDM_USER_CHOOSER_USER_OTHER);
+ }
+
+ set_focus (GDM_GREETER_LOGIN_WINDOW (login_window));
}
static void
@@ -1339,28 +1395,7 @@ on_user_chosen (GdmUserChooserWidget *u
return;
}
- g_signal_emit (G_OBJECT (login_window), signals[USER_SELECTED],
- 0, user_name);
-
- if (strcmp (user_name, GDM_USER_CHOOSER_USER_OTHER) == 0) {
- g_signal_emit (login_window, signals[BEGIN_VERIFICATION], 0);
- } else if (strcmp (user_name, GDM_USER_CHOOSER_USER_GUEST) == 0) {
- /* FIXME: handle guest account stuff */
- } else if (strcmp (user_name, GDM_USER_CHOOSER_USER_AUTO) == 0) {
- g_signal_emit (login_window, signals[BEGIN_AUTO_LOGIN], 0,
- login_window->priv->timed_login_username);
-
- login_window->priv->timed_login_enabled = TRUE;
- restart_timed_login_timeout (login_window);
-
- /* just wait for the user to select language and stuff */
- set_log_in_button_mode (login_window, LOGIN_BUTTON_TIMED_LOGIN);
- set_message (login_window, _("Select language and click Log In"));
- } else {
- g_signal_emit (login_window, signals[BEGIN_VERIFICATION_FOR_USER], 0, user_name);
- }
-
- switch_mode (login_window, MODE_AUTHENTICATION);
+ select_user (login_window, user_name);
g_free (user_name);
}
@@ -1914,6 +1949,7 @@ gdm_greeter_login_window_init (GdmGreete
login_window->priv = GDM_GREETER_LOGIN_WINDOW_GET_PRIVATE (login_window);
+ login_window->priv->user_chooser_loaded = FALSE;
login_window->priv->timed_login_enabled = FALSE;
login_window->priv->dialog_mode = MODE_SELECTION;
Index: gui/simple-greeter/gdm-chooser-widget.c
===================================================================
--- gui/simple-greeter/gdm-chooser-widget.c (révision 6670)
+++ gui/simple-greeter/gdm-chooser-widget.c (copie de travail)
@@ -593,6 +593,16 @@ update_separator_visibility (GdmChooserW
}
static void
+update_chooser_visibility (GdmChooserWidget *widget)
+{
+ if (gdm_chooser_widget_get_number_of_items (widget) > 0) {
+ gtk_widget_show (widget->priv->scrollable_widget);
+ } else {
+ gtk_widget_hide (widget->priv->scrollable_widget);
+ }
+}
+
+static void
set_inactive_items_visible (GdmChooserWidget *widget,
gboolean should_show)
{
@@ -1771,7 +1781,6 @@ gdm_chooser_widget_init (GdmChooserWidge
add_frame (widget);
widget->priv->scrollable_widget = gdm_scrollable_widget_new ();
- gtk_widget_show (widget->priv->scrollable_widget);
gtk_container_add (GTK_CONTAINER (widget->priv->frame_alignment),
widget->priv->scrollable_widget);
@@ -2055,6 +2064,8 @@ gdm_chooser_widget_add_item (GdmChooserW
-1);
move_cursor_to_top (widget);
+
+ update_chooser_visibility (widget);
}
void
@@ -2103,6 +2114,8 @@ gdm_chooser_widget_remove_item (GdmChoos
gtk_list_store_remove (widget->priv->list_store, &iter);
move_cursor_to_top (widget);
+
+ update_chooser_visibility (widget);
}
gboolean

View File

@ -0,0 +1,63 @@
--- trunk/gui/simple-greeter/gdm-greeter-login-window.c 2008/11/18 22:18:29 6599
+++ trunk/gui/simple-greeter/gdm-greeter-login-window.c 2009/01/14 22:59:37 6662
@@ -543,7 +543,6 @@
switch (number) {
case MODE_SELECTION:
- gtk_widget_set_size_request (GTK_WIDGET (login_window), -1, -1);
set_log_in_button_mode (login_window, LOGIN_BUTTON_HIDDEN);
show_widget (login_window, "cancel-button", FALSE);
@@ -568,9 +567,6 @@
default_name = NULL;
break;
case MODE_AUTHENTICATION:
- gtk_widget_set_size_request (GTK_WIDGET (login_window),
- GTK_WIDGET (login_window)->allocation.width,
- -1);
show_widget (login_window, "cancel-button", TRUE);
show_widget (login_window, "shutdown-button", FALSE);
show_widget (login_window, "restart-button", FALSE);
@@ -1656,16 +1652,22 @@
gdm_greeter_login_window_size_request (GtkWidget *widget,
GtkRequisition *requisition)
{
- int screen_w;
- int screen_h;
- GtkRequisition child_requisition;
+ int monitor;
+ GdkScreen *screen;
+ GtkRequisition child_requisition;
+ GdkRectangle area;
if (GTK_WIDGET_CLASS (gdm_greeter_login_window_parent_class)->size_request) {
GTK_WIDGET_CLASS (gdm_greeter_login_window_parent_class)->size_request (widget, requisition);
}
- screen_w = gdk_screen_get_width (gtk_widget_get_screen (widget));
- screen_h = gdk_screen_get_height (gtk_widget_get_screen (widget));
+ if (!GTK_WIDGET_REALIZED (widget)) {
+ return;
+ }
+
+ screen = gtk_widget_get_screen (widget);
+ monitor = gdk_screen_get_monitor_at_window (screen, widget->window);
+ gdk_screen_get_monitor_geometry (screen, monitor, &area);
gtk_widget_get_child_requisition (GTK_BIN (widget)->child, &child_requisition);
*requisition = child_requisition;
@@ -1676,8 +1678,12 @@
/* Make width be at least 33% screen width
* and height be at most 80% of screen height
*/
- requisition->width = MAX (requisition->width, .33 * screen_w);
- requisition->height = MIN (requisition->height, .80 * screen_h);
+ requisition->width = MAX (requisition->width, .33 * area.width);
+ requisition->height = MIN (requisition->height, .80 * area.height);
+
+ /* Don't ever shrink window width
+ */
+ requisition->width = MAX (requisition->width, widget->allocation.width);
}
static void

View File

@ -0,0 +1,49 @@
Index: gdm-2.24.0/daemon/gdm-session-worker-job.c
===================================================================
--- gdm-2.24.0.orig/daemon/gdm-session-worker-job.c
+++ gdm-2.24.0/daemon/gdm-session-worker-job.c
@@ -119,10 +119,36 @@ listify_hash (const char *key,
GPtrArray *env)
{
char *str;
+
+ if (value == NULL)
+ value = "";
+
str = g_strdup_printf ("%s=%s", key, value);
g_ptr_array_add (env, str);
}
+static void
+copy_environment_to_hash (GHashTable *hash)
+{
+ gchar **env_strv;
+ gint i;
+
+ env_strv = g_listenv ();
+
+ for (i = 0; env_strv [i]; i++) {
+ gchar *key = env_strv [i];
+ const gchar *value;
+
+ value = g_getenv (key);
+ if (!value)
+ continue;
+
+ g_hash_table_insert (hash, g_strdup (key), g_strdup (value));
+ }
+
+ g_strfreev (env_strv);
+}
+
static GPtrArray *
get_job_environment (GdmSessionWorkerJob *job)
{
@@ -133,6 +159,7 @@ get_job_environment (GdmSessionWorkerJob
/* create a hash table of current environment, then update keys has necessary */
hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ copy_environment_to_hash (hash);
g_hash_table_insert (hash, g_strdup ("GDM_SESSION_DBUS_ADDRESS"), g_strdup (job->priv->server_address));

View File

@ -0,0 +1,36 @@
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
index c1ac7cf..a5de412 100644
--- a/daemon/gdm-session-worker.c
+++ b/daemon/gdm-session-worker.c
@@ -149,6 +149,9 @@ typedef int (* GdmSessionWorkerPamNewMessagesFunc) (int,
const struct pam_message **,
struct pam_response **,
gpointer);
+static void on_saved_session_name_read (GdmSessionWorker *worker);
+static void on_saved_language_name_read (GdmSessionWorker *worker);
+static void on_saved_layout_name_read (GdmSessionWorker *worker);
G_DEFINE_TYPE (GdmSessionWorker, gdm_session_worker, G_TYPE_OBJECT)
@@ -617,6 +620,21 @@ attempt_to_load_user_settings (GdmSessionWorker *worker,
passwd_entry->pw_dir,
NULL);
+ /* These singal handlers should be disconnected after the loading,
+ * so that gdm_session_settings_set_* APIs don't cause the emitting
+ * of Saved*NameRead D-Bus signals any more.
+ */
+ g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
+ G_CALLBACK (on_saved_session_name_read),
+ worker);
+
+ g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
+ G_CALLBACK (on_saved_language_name_read),
+ worker);
+
+ g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
+ G_CALLBACK (on_saved_layout_name_read),
+ worker);
seteuid (old_uid);
setegid (old_gid);
}

View File

@ -1,6 +1,6 @@
--- configure --- configure.org 2008-12-29 09:24:05.000000000 +1100
+++ configure +++ configure 2008-12-29 09:24:19.000000000 +1100
@@ -32703,7 +32703,7 @@ @@ -35527,7 +35527,7 @@ cat >>confdefs.h <<\_ACEOF
#define HAVE_SELINUX 1 #define HAVE_SELINUX 1
_ACEOF _ACEOF
@ -8,15 +8,15 @@
+ EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux" + EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux"
fi fi
#
--- configure.ac --- configure.ac.org 2008-12-29 09:25:17.000000000 +1100
+++ configure.ac +++ configure.ac 2008-12-29 09:25:22.000000000 +1100
@@ -820,7 +820,7 @@ @@ -873,7 +873,7 @@ if test "x$with_selinux" = "xyes" ; then
AC_CHECK_LIB(selinux,setexeccon,/bin/true) AC_CHECK_LIB(selinux,setexeccon,/bin/true)
AC_CHECK_LIB(selinux,is_selinux_enabled,/bin/true) AC_CHECK_LIB(selinux,is_selinux_enabled,/bin/true)
AC_DEFINE(HAVE_SELINUX) AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux])
- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr" - EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr"
+ EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux" + EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux"
fi fi
# dnl ---------------------------------------------------------------------------

View File

@ -0,0 +1,28 @@
Index: gdm-2.24.0/daemon/gdm-session-worker.c
===================================================================
--- gdm-2.24.0.orig/daemon/gdm-session-worker.c
+++ gdm-2.24.0/daemon/gdm-session-worker.c
@@ -2395,7 +2395,10 @@ on_setup (GdmSessionWorker *worker,
const char *hostname;
dbus_bool_t res;
- /* FIXME: return error if not in NONE state */
+ if (worker->priv->state != GDM_SESSION_WORKER_STATE_NONE) {
+ g_debug ("GdmSessionWorker: ignoring spurious setup while in state %s", get_state_name (worker->priv->state));
+ return;
+ }
dbus_error_init (&error);
res = dbus_message_get_args (message,
@@ -2435,7 +2438,10 @@ on_setup_for_user (GdmSessionWorker *wor
const char *username;
dbus_bool_t res;
- /* FIXME: return error if not in NONE state */
+ if (worker->priv->state != GDM_SESSION_WORKER_STATE_NONE) {
+ g_debug ("GdmSessionWorker: ignoring spurious setup for user while in state %s", get_state_name (worker->priv->state));
+ return;
+ }
dbus_error_init (&error);
res = dbus_message_get_args (message,

View File

@ -16,16 +16,14 @@ Index: gdm-2.24.0/data/PostSession.in
=================================================================== ===================================================================
--- gdm-2.24.0.orig/data/PostSession.in --- gdm-2.24.0.orig/data/PostSession.in
+++ gdm-2.24.0/data/PostSession.in +++ gdm-2.24.0/data/PostSession.in
@@ -1,5 +1,9 @@ @@ -1,3 +1,7 @@
#!/bin/sh #!/bin/sh
+if test -x /etc/X11/xdm/Xreset; then +if test -x /etc/X11/xdm/Xreset; then
+ exec /etc/X11/xdm/Xreset + exec /etc/X11/xdm/Xreset
+fi +fi
+ +
PATH="@X_PATH@:$PATH:/bin:/usr/bin" exit 0
OLD_IFS=$IFS
Index: gdm-2.24.0/data/Xsession.in Index: gdm-2.24.0/data/Xsession.in
=================================================================== ===================================================================
--- gdm-2.24.0.orig/data/Xsession.in --- gdm-2.24.0.orig/data/Xsession.in

View File

@ -1,3 +1,85 @@
-------------------------------------------------------------------
Sat Jan 31 18:49:34 CET 2009 - vuntz@novell.com
- Add gdm-fix-locale-listing.patch: correctly list all locales so
that they appear in the language chooser. Fix bnc#446446.
-------------------------------------------------------------------
Sat Jan 31 15:08:24 CET 2009 - vuntz@novell.com
- Add gdm-propagate-env-to-jobs.patch: forward the environment to
gdm-session-worker to have translated PAM messages. Fix
bnc#440860.
-------------------------------------------------------------------
Sat Jan 31 14:52:14 CET 2009 - vuntz@novell.com
- Drop unneeded BuildRequires: docbook_4
- Remove check for old versions of openSUSE
- Don't pass non-existing --enable-secureremote flag to configure
-------------------------------------------------------------------
Fri Jan 30 03:39:57 CET 2009 - vuntz@novell.com
- Add gdm-session-worker-check-states.patch to fix bnc#470714. We
were handling late a setup signal, while we were already doing
something else.
-------------------------------------------------------------------
Thu Jan 29 23:26:08 CET 2009 - vuntz@novell.com
- Add gdm-accreditation-failed-log.patch to improve logging in the
case of accreditation failure.
-------------------------------------------------------------------
Wed Jan 28 01:58:28 CET 2009 - vuntz@novell.com
- Add gdm-login-window-size.patch to fix the login window size: the
width could be too small in various cases (eg, some pam
messages). Also needed for gdm-hide-lonely-other.patch.
- Add gdm-hide-lonely-other.patch to hide the Other item in the
user list in relevant cases, especially when we disable the user
list. Fix bnc#439894.
-------------------------------------------------------------------
Tue Jan 27 02:17:53 CET 2009 - vuntz@novell.com
- Manual merge with GNOME:Factory:Next.
- Drop gdm-fix-xdmcp.patch: fixed another way upstream.
- Add gdm-bnc468374-dbus-send-dest.patch to add send_destination in
the dbus policy. Fix bnc#468374.
-------------------------------------------------------------------
Thu Jan 22 17:25:27 EST 2009 - mxwu@novell.com
- Add gdm-selecting-desktop-environment.patch to select right
desktop environment (bnc#460691)
-------------------------------------------------------------------
Mon Jan 12 15:25:27 EST 2009 - mauro@suse.de
- Translations update.
-------------------------------------------------------------------
Mon Dec 29 08:38:31 EST 2008 - mboman@suse.de
- Update to version 2.25.2:
+ Fix focus issues in applet
+ Use text view instead of entry
+ Add support for a real automatic login
+ Redesign user switch applet
+ Make XDMCP work again
+ Add a bevel around the dialog
+ Remove capslock warning label
- Remove gdm-2.23.92-another-locale-fixup.patch. Fixed upstream
- Remove gdm-2.23.92-filter-dupes-from-lang-list.patch. Fixed upstream
- Remove gdm-2.23.92-fix-crash.patch. Fixed upstream.
- Remove gdm-fix-icon-scale.patch. Fixed upstream
- Remove gdm-autologin.patch. Fixed upstream
- Remove gdm-fix-pam-auditing.patch. Fixed upstream
- Comment out gdm-greeter-greater-ui.patch. Patch does not apply
due to massive changes in glade file. Needs to be redone completly.
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Dec 4 23:47:59 CST 2008 - hpj@novell.com Thu Dec 4 23:47:59 CST 2008 - hpj@novell.com

178
gdm.spec
View File

@ -1,7 +1,7 @@
# #
# spec file for package gdm (Version 2.24.0) # spec file for package gdm (Version 2.25.2)
# #
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -21,7 +21,6 @@
Name: gdm Name: gdm
BuildRequires: PolicyKit-gnome-devel BuildRequires: PolicyKit-gnome-devel
BuildRequires: check-devel BuildRequires: check-devel
BuildRequires: docbook_4
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: gconf2-devel BuildRequires: gconf2-devel
BuildRequires: gnome-common BuildRequires: gnome-common
@ -31,15 +30,9 @@ BuildRequires: gnome-patch-translation
BuildRequires: intltool BuildRequires: intltool
BuildRequires: iso-codes-devel BuildRequires: iso-codes-devel
BuildRequires: libglade2-devel BuildRequires: libglade2-devel
BuildRequires: libgnomeprintui-devel
BuildRequires: libgnomeui-devel
BuildRequires: libgnutls-devel
BuildRequires: librsvg-devel
BuildRequires: libselinux-devel BuildRequires: libselinux-devel
BuildRequires: libwnck-devel
BuildRequires: libxklavier-devel BuildRequires: libxklavier-devel
BuildRequires: pam-devel BuildRequires: pam-devel
BuildRequires: perl-XML-Parser
BuildRequires: pwdutils BuildRequires: pwdutils
BuildRequires: scrollkeeper BuildRequires: scrollkeeper
BuildRequires: tcpd-devel BuildRequires: tcpd-devel
@ -50,14 +43,11 @@ BuildRequires: zenity
PreReq: /usr/sbin/groupadd PreReq: /usr/sbin/groupadd
PreReq: /usr/sbin/useradd PreReq: /usr/sbin/useradd
PreReq: /usr/sbin/usermod PreReq: /usr/sbin/usermod
%if %suse_version < 1010
PreReq: %fillup_prereq
%endif
PreReq: %insserv_prereq 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.25.2
Release: 15 Release: 1
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
@ -75,29 +65,31 @@ Patch6: gdm-desktop-session-env-pam.patch
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts # PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
Patch7: gdm-suse-xsession.patch Patch7: gdm-suse-xsession.patch
Patch8: gdm-domain-logon.patch Patch8: gdm-domain-logon.patch
# PATCH-FIX-UPSTREAM gdm-2.23.92-another-locale-fixup.patch jpr@novell.com -- From upstream/Fedora, canonicalize LANG variable
Patch9: gdm-2.23.92-another-locale-fixup.patch
# PATCH-FIX-UPSTREAM gdm-2.23.92-filter-dupes-from-lang-list.patch jpr@novell.com -- From upstream/Fedora, don't show the same language multiple times
Patch10: gdm-2.23.92-filter-dupes-from-lang-list.patch
# PATCH-FIX-UPSTREAM gdm-2.23.92-fix-crash.patch jpr@novell.com -- From upstream/Fedora, don't crash in the option widgets
Patch11: gdm-2.23.92-fix-crash.patch
# PATCH-FIX-UPSTREAM gdm-fix-icon-scale.patch vuntz@novell.com -- From upstream/Fedora: don't have a huge size for icons in the greeter
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 # PATCH-NEEDS-REBASE gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch) (was PATCH-FIX-UPSTREAM)
Patch14: gdm-autologin.patch
# PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch)
Patch15: gdm-greeter-greater-ui.patch Patch15: gdm-greeter-greater-ui.patch
# PATCH-FIX-UPSTREAM gdm-fix-xdmcp.patch bnc441396 bgo561396 hpj@novell.com -- Make XDMCP work, patch from upstream bugzilla.
Patch16: gdm-fix-xdmcp.patch
# PATCH-FIX-UPSTREAM gdm-fix-pam-auditing.patch bnc436852 bgo557794 hpj@novell.com -- Make PAM auditing work on logout.
Patch17: gdm-fix-pam-auditing.patch
# PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations. # PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations.
Patch18: gdm-always-reflect-keyboard-layout.patch Patch18: gdm-always-reflect-keyboard-layout.patch
# PATCH-FIX-OPENSUSE gdm-save-panel-space-on-low-resolutions.patch bnc449815 hpj@novell.com -- Hide clock and/or selector labels on low resolutions. # PATCH-FIX-OPENSUSE gdm-save-panel-space-on-low-resolutions.patch bnc449815 hpj@novell.com -- Hide clock and/or selector labels on low resolutions.
Patch19: gdm-save-panel-space-on-low-resolutions.patch Patch19: gdm-save-panel-space-on-low-resolutions.patch
# PATCH-FIX-UPSTREAM gdm-selecting-desktop-environment.patch bnc460591 mxwu@novell.com -- Selecting the right desktop environment
Patch20: gdm-selecting-desktop-environment.patch
# PATCH-FIX-UPSTREAM gdm-login-window-size.patch vuntz@novell.com -- Patch taken from upstream svn to fix the login window size in some cases. Needed for gdm-hide-lonely-other.patch
Patch21: gdm-login-window-size.patch
# PATCH-FIX-UPSTREAM gdm-hide-lonely-other.patch bnc439894 bgo568323 vuntz@novell.com -- Hide Other in the user list when there's no user list
Patch22: gdm-hide-lonely-other.patch
# PATCH-FIX-UPSTREAM gdm-accreditation-failed-log.patch vuntz@novell.com -- Better logging for accreditation failed
Patch23: gdm-accreditation-failed-log.patch
# PATCH-FIX-UPSTREAM gdm-session-worker-check-states.patch bnc470714 vuntz@novell.com -- Make sure we have consistent states in gdm-session-worker
Patch24: gdm-session-worker-check-states.patch
# PATCH-FIX-UPSTREAM gdm-propagate-env-to-jobs.patch bnc440860 bgo568590 vuntz@novell.com -- Forward the environment to gdm-session-worker to have translated PAM messages
Patch25: gdm-propagate-env-to-jobs.patch
# PATCH-FIX-UPSTREAM gdm-fix-locale-listing.patch bnc446446 vuntz@novell.com -- Fix locale listing so that all locales are listed in the language chooser
Patch26: gdm-fix-locale-listing.patch
Patch28: gdm-X_SERVER.patch Patch28: gdm-X_SERVER.patch
# PATCH-FIX-UPSTREAM gdm-bnc468374-dbus-send-dest.patch bnc468374 bgo564767 vuntz@novell.com -- Patch taken from upstream to fix the potential dbus security issue with send_interface
Patch29: gdm-bnc468374-dbus-send-dest.patch
# PATCH-SUSE: enable SELinux # PATCH-SUSE: enable SELinux
Patch60: gdm-selinux.patch Patch60: gdm-selinux.patch
Url: http://www.gnome.org/ Url: http://www.gnome.org/
@ -167,18 +159,19 @@ Authors:
%patch6 -p1 %patch6 -p1
%patch7 -p1 %patch7 -p1
%patch8 -p1 %patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1 %patch13 -p1
%patch14 #%patch15 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p0
%patch18 -p1 %patch18 -p1
%patch19 -p1 %patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p0
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch28 %patch28
%patch29 -p1
%patch60 %patch60
%build %build
@ -191,8 +184,7 @@ export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
--with-at-spi-registryd-directory=%{_prefix}/lib/at-spi \ --with-at-spi-registryd-directory=%{_prefix}/lib/at-spi \
--with-selinux \ --with-selinux \
--enable-ipv6\ --enable-ipv6\
--disable-scrollkeeper\ --disable-scrollkeeper
--enable-secureremote
%__make %{?jobs:-j%jobs} %__make %{?jobs:-j%jobs}
%install %install
@ -286,7 +278,59 @@ fi
%files lang -f %{name}.lang %files lang -f %{name}.lang
%changelog %changelog
* Thu Dec 04 2008 hpj@novell.com * Sat Jan 31 2009 vuntz@novell.com
- Add gdm-fix-locale-listing.patch: correctly list all locales so
that they appear in the language chooser. Fix bnc#446446.
* Sat Jan 31 2009 vuntz@novell.com
- Add gdm-propagate-env-to-jobs.patch: forward the environment to
gdm-session-worker to have translated PAM messages. Fix
bnc#440860.
* Sat Jan 31 2009 vuntz@novell.com
- Drop unneeded BuildRequires: docbook_4
- Remove check for old versions of openSUSE
- Don't pass non-existing --enable-secureremote flag to configure
* Fri Jan 30 2009 vuntz@novell.com
- Add gdm-session-worker-check-states.patch to fix bnc#470714. We
were handling late a setup signal, while we were already doing
something else.
* Thu Jan 29 2009 vuntz@novell.com
- Add gdm-accreditation-failed-log.patch to improve logging in the
case of accreditation failure.
* Wed Jan 28 2009 vuntz@novell.com
- Add gdm-login-window-size.patch to fix the login window size: the
width could be too small in various cases (eg, some pam
messages). Also needed for gdm-hide-lonely-other.patch.
- Add gdm-hide-lonely-other.patch to hide the Other item in the
user list in relevant cases, especially when we disable the user
list. Fix bnc#439894.
* Tue Jan 27 2009 vuntz@novell.com
- Manual merge with GNOME:Factory:Next.
- Drop gdm-fix-xdmcp.patch: fixed another way upstream.
- Add gdm-bnc468374-dbus-send-dest.patch to add send_destination in
the dbus policy. Fix bnc#468374.
* Thu Jan 22 2009 mxwu@novell.com
- Add gdm-selecting-desktop-environment.patch to select right
desktop environment (bnc#460691)
* Mon Jan 12 2009 mauro@suse.de
- Translations update.
* Mon Dec 29 2008 mboman@suse.de
- Update to version 2.25.2:
+ Fix focus issues in applet
+ Use text view instead of entry
+ Add support for a real automatic login
+ Redesign user switch applet
+ Make XDMCP work again
+ Add a bevel around the dialog
+ Remove capslock warning label
- Remove gdm-2.23.92-another-locale-fixup.patch. Fixed upstream
- Remove gdm-2.23.92-filter-dupes-from-lang-list.patch. Fixed upstream
- Remove gdm-2.23.92-fix-crash.patch. Fixed upstream.
- Remove gdm-fix-icon-scale.patch. Fixed upstream
- Remove gdm-autologin.patch. Fixed upstream
- Remove gdm-fix-pam-auditing.patch. Fixed upstream
- Comment out gdm-greeter-greater-ui.patch. Patch does not apply
due to massive changes in glade file. Needs to be redone completly.
* Fri Dec 05 2008 hpj@novell.com
- Update gdm-domain-logon.patch to omit undesirable domains - Update gdm-domain-logon.patch to omit undesirable domains
(bnc#450143). (bnc#450143).
* Wed Dec 03 2008 hpj@novell.com * Wed Dec 03 2008 hpj@novell.com
@ -294,14 +338,14 @@ fi
gdm-vt-allocation-hack.patch. The new patch doesn't hardcode gdm gdm-vt-allocation-hack.patch. The new patch doesn't hardcode gdm
to VT7, but instead scans for a free VT starting with VT7 to VT7, but instead scans for a free VT starting with VT7
(bnc#434598). (bnc#434598).
* Sun Nov 30 2008 hpj@novell.com * Mon Dec 01 2008 hpj@novell.com
- Update gdm-sysconfig-settings.patch to translate the name of the - Update gdm-sysconfig-settings.patch to translate the name of the
configured system keymap into something libxklavier can configured system keymap into something libxklavier can
understand (bnc#446958). understand (bnc#446958).
* Sun Nov 30 2008 hpj@novell.com * Mon Dec 01 2008 hpj@novell.com
- Update gdm-domain-logon.patch to make domain prefix logon work - Update gdm-domain-logon.patch to make domain prefix logon work
when entering user names manually (bnc#450146). when entering user names manually (bnc#450146).
* Sat Nov 29 2008 hpj@novell.com * Sun Nov 30 2008 hpj@novell.com
- Add gdm-save-panel-space-on-low-resolutions.patch (bnc#449815). - Add gdm-save-panel-space-on-low-resolutions.patch (bnc#449815).
* Fri Nov 21 2008 hpj@novell.com * Fri Nov 21 2008 hpj@novell.com
- Add gdm-always-reflect-keyboard-layout.patch (bnc#438159). - Add gdm-always-reflect-keyboard-layout.patch (bnc#438159).
@ -354,7 +398,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).
* Thu Oct 02 2008 mboman@suse.de * Fri Oct 03 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
@ -533,7 +577,7 @@ fi
displays. displays.
+ Build/configure fixes for Solaris. + Build/configure fixes for Solaris.
+ Translation updates. + Translation updates.
* Tue Nov 13 2007 hpj@suse.de * Wed Nov 14 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].
@ -542,7 +586,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)
* Thu Nov 08 2007 hpj@suse.de * Fri Nov 09 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
@ -550,7 +594,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.
* Sun Sep 23 2007 hpj@suse.de * Mon Sep 24 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
@ -606,7 +650,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).
* Sun Sep 02 2007 hpj@suse.de * Mon Sep 03 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).
@ -657,10 +701,10 @@ fi
- Split off a -lang subpackag - Split off a -lang subpackag
- Fix variable expansion in gdm-conf.patch (#255685) - Fix variable expansion in gdm-conf.patch (#255685)
- Remove earlygdm, replaced by earlyxdm (#285813) - Remove earlygdm, replaced by earlyxdm (#285813)
* Fri Aug 03 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.
* Fri Aug 03 2007 hpj@suse.de * Sat Aug 04 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.
@ -740,7 +784,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
* Tue Mar 13 2007 maw@suse.de * Wed Mar 14 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
@ -748,10 +792,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).
* Mon Feb 26 2007 hpj@suse.de * Tue Feb 27 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).
* Tue Feb 13 2007 hpj@suse.de * Wed Feb 14 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
@ -918,7 +962,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.
* Wed May 31 2006 hpj@suse.de * Thu Jun 01 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
@ -928,7 +972,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).
* Thu May 18 2006 hpj@suse.de * Fri May 19 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
@ -938,7 +982,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).
* Mon May 08 2006 hpj@suse.de * Tue May 09 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
@ -966,7 +1010,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
* Mon Mar 06 2006 federico@novell.com * Tue Mar 07 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.
@ -975,7 +1019,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).
* Fri Feb 24 2006 hpj@suse.de * Sat Feb 25 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)
@ -1003,10 +1047,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
* Wed Jan 18 2006 hpj@suse.de * Thu Jan 19 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.
* Mon Jan 16 2006 hpj@suse.de * Tue Jan 17 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
@ -1026,7 +1070,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)
* Thu Oct 13 2005 hpj@suse.de * Fri Oct 14 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
@ -1045,7 +1089,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
* Fri Aug 19 2005 hpj@suse.de * Sat Aug 20 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.
@ -1056,7 +1100,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
* Sat Jul 30 2005 jpr@suse.de * Sun Jul 31 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
@ -1116,13 +1160,13 @@ fi
- Cache gdm help and show gdm in khelpcenter. - Cache gdm help and show gdm in khelpcenter.
* Mon Aug 16 2004 ro@suse.de * Mon Aug 16 2004 ro@suse.de
- fixed specfile - fixed specfile
* Sun Aug 15 2004 shprasad@suse.de * Mon Aug 16 2004 shprasad@suse.de
- Fixes bug #60020 - Fixes bug #60020
Invalid username/passwd input doen't bring the password dialog Invalid username/passwd input doen't bring the password dialog
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
* Thu Jul 29 2004 shprasad@suse.de * Fri Jul 30 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.
@ -1181,7 +1225,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
* Thu Jul 24 2003 hhetter@suse.de * Fri Jul 25 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
@ -1218,7 +1262,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
* Wed Jan 15 2003 ro@suse.de * Thu Jan 16 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.