This commit is contained in:
parent
adc7f6d78a
commit
746b392acc
@ -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);
|
@ -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);
|
@ -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;
|
||||
}
|
||||
|
@ -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
3
gdm-2.25.2.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d2ee2c552282aa56b4e2c0797052b33a44b5d7bba6f203f44b2c9eaa17e1ba19
|
||||
size 2616227
|
55
gdm-accreditation-failed-log.patch
Normal file
55
gdm-accreditation-failed-log.patch
Normal 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);
|
@ -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) {
|
105
gdm-bnc468374-dbus-send-dest.patch
Normal file
105
gdm-bnc468374-dbus-send-dest.patch
Normal 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>
|
@ -1727,9 +1727,9 @@ index 50478c5..825f0c5 100644
|
||||
--- a/gui/simple-greeter/gdm-greeter-panel.c
|
||||
+++ b/gui/simple-greeter/gdm-greeter-panel.c
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "gdm-language-option-widget.h"
|
||||
#include "gdm-layout-option-widget.h"
|
||||
#include "gdm-session-option-widget.h"
|
||||
#include "gdm-timer.h"
|
||||
+#include "gdm-domain-option-widget.h"
|
||||
#include "gdm-profile.h"
|
||||
|
||||
@ -1740,8 +1740,8 @@ index 50478c5..825f0c5 100644
|
||||
GtkWidget *session_option_widget;
|
||||
+ GtkWidget *domain_option_widget;
|
||||
|
||||
char *default_session_name;
|
||||
char *default_language_name;
|
||||
GdmTimer *animation_timer;
|
||||
double progress;
|
||||
@@ -72,6 +74,7 @@ enum {
|
||||
LANGUAGE_SELECTED,
|
||||
LAYOUT_SELECTED,
|
||||
|
@ -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);
|
||||
|
||||
|
22
gdm-fix-locale-listing.patch
Normal file
22
gdm-fix-locale-listing.patch
Normal 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);
|
@ -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;
|
||||
|
@ -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
398
gdm-hide-lonely-other.patch
Normal 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
|
63
gdm-login-window-size.patch
Normal file
63
gdm-login-window-size.patch
Normal 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
|
49
gdm-propagate-env-to-jobs.patch
Normal file
49
gdm-propagate-env-to-jobs.patch
Normal 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));
|
||||
|
36
gdm-selecting-desktop-environment.patch
Normal file
36
gdm-selecting-desktop-environment.patch
Normal 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);
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
--- configure
|
||||
+++ configure
|
||||
@@ -32703,7 +32703,7 @@
|
||||
--- configure.org 2008-12-29 09:24:05.000000000 +1100
|
||||
+++ configure 2008-12-29 09:24:19.000000000 +1100
|
||||
@@ -35527,7 +35527,7 @@ cat >>confdefs.h <<\_ACEOF
|
||||
#define HAVE_SELINUX 1
|
||||
_ACEOF
|
||||
|
||||
@ -8,15 +8,15 @@
|
||||
+ EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux"
|
||||
fi
|
||||
|
||||
#
|
||||
--- configure.ac
|
||||
+++ configure.ac
|
||||
@@ -820,7 +820,7 @@
|
||||
|
||||
--- configure.ac.org 2008-12-29 09:25:17.000000000 +1100
|
||||
+++ configure.ac 2008-12-29 09:25:22.000000000 +1100
|
||||
@@ -873,7 +873,7 @@ if test "x$with_selinux" = "xyes" ; then
|
||||
AC_CHECK_LIB(selinux,setexeccon,/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"
|
||||
fi
|
||||
|
||||
#
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
28
gdm-session-worker-check-states.patch
Normal file
28
gdm-session-worker-check-states.patch
Normal 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,
|
@ -16,16 +16,14 @@ Index: gdm-2.24.0/data/PostSession.in
|
||||
===================================================================
|
||||
--- gdm-2.24.0.orig/data/PostSession.in
|
||||
+++ gdm-2.24.0/data/PostSession.in
|
||||
@@ -1,5 +1,9 @@
|
||||
@@ -1,3 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
+if test -x /etc/X11/xdm/Xreset; then
|
||||
+ exec /etc/X11/xdm/Xreset
|
||||
+ exec /etc/X11/xdm/Xreset
|
||||
+fi
|
||||
+
|
||||
PATH="@X_PATH@:$PATH:/bin:/usr/bin"
|
||||
OLD_IFS=$IFS
|
||||
|
||||
exit 0
|
||||
Index: gdm-2.24.0/data/Xsession.in
|
||||
===================================================================
|
||||
--- gdm-2.24.0.orig/data/Xsession.in
|
||||
|
82
gdm.changes
82
gdm.changes
@ -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
|
||||
|
||||
|
178
gdm.spec
178
gdm.spec
@ -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
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -21,7 +21,6 @@
|
||||
Name: gdm
|
||||
BuildRequires: PolicyKit-gnome-devel
|
||||
BuildRequires: check-devel
|
||||
BuildRequires: docbook_4
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gconf2-devel
|
||||
BuildRequires: gnome-common
|
||||
@ -31,15 +30,9 @@ BuildRequires: gnome-patch-translation
|
||||
BuildRequires: intltool
|
||||
BuildRequires: iso-codes-devel
|
||||
BuildRequires: libglade2-devel
|
||||
BuildRequires: libgnomeprintui-devel
|
||||
BuildRequires: libgnomeui-devel
|
||||
BuildRequires: libgnutls-devel
|
||||
BuildRequires: librsvg-devel
|
||||
BuildRequires: libselinux-devel
|
||||
BuildRequires: libwnck-devel
|
||||
BuildRequires: libxklavier-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: perl-XML-Parser
|
||||
BuildRequires: pwdutils
|
||||
BuildRequires: scrollkeeper
|
||||
BuildRequires: tcpd-devel
|
||||
@ -50,14 +43,11 @@ BuildRequires: zenity
|
||||
PreReq: /usr/sbin/groupadd
|
||||
PreReq: /usr/sbin/useradd
|
||||
PreReq: /usr/sbin/usermod
|
||||
%if %suse_version < 1010
|
||||
PreReq: %fillup_prereq
|
||||
%endif
|
||||
PreReq: %insserv_prereq
|
||||
License: GPL v2 or later
|
||||
Group: System/GUI/GNOME
|
||||
Version: 2.24.0
|
||||
Release: 15
|
||||
Version: 2.25.2
|
||||
Release: 1
|
||||
Summary: The GNOME 2.x Display Manager
|
||||
Source: %{name}-%{version}.tar.bz2
|
||||
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
|
||||
Patch7: gdm-suse-xsession.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
|
||||
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
|
||||
# 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)
|
||||
# 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)
|
||||
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.
|
||||
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.
|
||||
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
|
||||
# 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
|
||||
Patch60: gdm-selinux.patch
|
||||
Url: http://www.gnome.org/
|
||||
@ -167,18 +159,19 @@ Authors:
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p0
|
||||
#%patch15 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p0
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
%patch28
|
||||
%patch29 -p1
|
||||
%patch60
|
||||
|
||||
%build
|
||||
@ -191,8 +184,7 @@ export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
|
||||
--with-at-spi-registryd-directory=%{_prefix}/lib/at-spi \
|
||||
--with-selinux \
|
||||
--enable-ipv6\
|
||||
--disable-scrollkeeper\
|
||||
--enable-secureremote
|
||||
--disable-scrollkeeper
|
||||
%__make %{?jobs:-j%jobs}
|
||||
|
||||
%install
|
||||
@ -286,7 +278,59 @@ fi
|
||||
%files lang -f %{name}.lang
|
||||
|
||||
%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
|
||||
(bnc#450143).
|
||||
* Wed Dec 03 2008 hpj@novell.com
|
||||
@ -294,14 +338,14 @@ fi
|
||||
gdm-vt-allocation-hack.patch. The new patch doesn't hardcode gdm
|
||||
to VT7, but instead scans for a free VT starting with VT7
|
||||
(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
|
||||
configured system keymap into something libxklavier can
|
||||
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
|
||||
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).
|
||||
* Fri Nov 21 2008 hpj@novell.com
|
||||
- Add gdm-always-reflect-keyboard-layout.patch (bnc#438159).
|
||||
@ -354,7 +398,7 @@ fi
|
||||
family to FamilyWild.
|
||||
* Mon Oct 06 2008 sbrabec@suse.cz
|
||||
- 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:
|
||||
+ Allow the build to succeed without a gdm user
|
||||
+ Use Bourne shell syntax in Xsession.solaris
|
||||
@ -533,7 +577,7 @@ fi
|
||||
displays.
|
||||
+ Build/configure fixes for Solaris.
|
||||
+ Translation updates.
|
||||
* Tue Nov 13 2007 hpj@suse.de
|
||||
* Wed Nov 14 2007 hpj@suse.de
|
||||
- Removed second --with-atspi-dir from configure.
|
||||
- Added gdm-tab-triggers-enter.patch, which fixes Novell bug
|
||||
[#334446].
|
||||
@ -542,7 +586,7 @@ fi
|
||||
(#337428)
|
||||
- Updated gdm-xdm-sessions.patch to run again the /etc/X11/xdm
|
||||
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
|
||||
at-spi-registryd is started correctly. Fixes Novell bug #337428.
|
||||
* Thu Oct 18 2007 maw@suse.de
|
||||
@ -550,7 +594,7 @@ fi
|
||||
- Add abuild.patch.
|
||||
* Thu Oct 11 2007 sbrabec@suse.cz
|
||||
- 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
|
||||
[#326281].
|
||||
* Thu Sep 20 2007 banderso@suse.de
|
||||
@ -606,7 +650,7 @@ fi
|
||||
* Wed Sep 05 2007 sbrabec@suse.cz
|
||||
- Apply DISPLAYMANAGER_PASSWORD_LESS_LOGIN only for standard login,
|
||||
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
|
||||
bug where the user's password was being shown on screen (part of
|
||||
BNC #302282).
|
||||
@ -657,10 +701,10 @@ fi
|
||||
- Split off a -lang subpackag
|
||||
- Fix variable expansion in gdm-conf.patch (#255685)
|
||||
- Remove earlygdm, replaced by earlyxdm (#285813)
|
||||
* Fri Aug 03 2007 maw@suse.de
|
||||
* Sat Aug 04 2007 maw@suse.de
|
||||
- Use %%fdupes
|
||||
- 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.
|
||||
- Fix up gdm-conf.patch.
|
||||
- Fix up gdm-2.19.3-reset-pam.patch.
|
||||
@ -740,7 +784,7 @@ fi
|
||||
* Wed Mar 21 2007 hpj@suse.de
|
||||
- Add gdm-2.17.7-vt-fallback.patch. This is a port of the fix for
|
||||
https://bugzilla.novell.com/show_bug.cgi?id=206804
|
||||
* Tue Mar 13 2007 maw@suse.de
|
||||
* Wed Mar 14 2007 maw@suse.de
|
||||
- Update to version 2.17.7
|
||||
- Removeupstreamed gdm-autobuild-warning.patch,
|
||||
gdm-bufferoverrun.patch
|
||||
@ -748,10 +792,10 @@ fi
|
||||
[#400698], #399486, #352263, #395790, #394421.
|
||||
* Fri Mar 02 2007 sbrabec@suse.cz
|
||||
- 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
|
||||
[#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.
|
||||
* Mon Feb 12 2007 sbrabec@suse.cz
|
||||
- Fixed reversed interpretation of
|
||||
@ -918,7 +962,7 @@ fi
|
||||
- Update domain entry patch to default to the currently joined
|
||||
Active Directory domain if there was no stored preference. Fixes
|
||||
Novell bug #167344.
|
||||
* 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
|
||||
theme with user list is in effect. Fixes Novell bug #180219.
|
||||
* Wed May 31 2006 dreveman@suse.de
|
||||
@ -928,7 +972,7 @@ fi
|
||||
- Do not display Japanese string in terminal, which doesn't support
|
||||
it (#168736).
|
||||
- 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,
|
||||
gdmgreeter for remote logins. Fixes Novell bug #176661.
|
||||
* Tue May 16 2006 sbrabec@suse.cz
|
||||
@ -938,7 +982,7 @@ fi
|
||||
* Fri May 12 2006 sbrabec@suse.cz
|
||||
- Store value of PERMISSION_SECURITY by SuSEconfig in
|
||||
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
|
||||
[#119651].
|
||||
- Made use of the tab key work like pressing enter if there is no
|
||||
@ -966,7 +1010,7 @@ fi
|
||||
service, bug #158786.
|
||||
* Sat Mar 11 2006 coolo@suse.de
|
||||
- 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
|
||||
fillup_and_insserv with "displaymanager" for the configuration
|
||||
filename.
|
||||
@ -975,7 +1019,7 @@ fi
|
||||
in PLUS (148468#c17).
|
||||
* Tue Feb 28 2006 sbrabec@suse.cz
|
||||
- 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.
|
||||
* Fri Feb 17 2006 sreeves@suse.de
|
||||
- Update .desktop file (Name, GenericName, Comment, DocPath)
|
||||
@ -1003,10 +1047,10 @@ fi
|
||||
- Added patch to require root auth to halt or reboot.
|
||||
* Wed Jan 25 2006 mls@suse.de
|
||||
- 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
|
||||
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
|
||||
working. Updated domain logon patch.
|
||||
* Fri Jan 13 2006 schwab@suse.de
|
||||
@ -1026,7 +1070,7 @@ fi
|
||||
- Patch from upstream b.g.o (#152906)
|
||||
* Mon Oct 17 2005 gekker@suse.de
|
||||
- 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
|
||||
XAUTHLOCALHOSTNAME environment variable.
|
||||
* Thu Oct 13 2005 gekker@suse.de
|
||||
@ -1045,7 +1089,7 @@ fi
|
||||
- Update to version 2.8.0.3
|
||||
- Remove upstreamed autologin patch
|
||||
- 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.
|
||||
* Tue Aug 16 2005 sbrabec@suse.cz
|
||||
- Use gnome-screensaver instead of xscreensaver.
|
||||
@ -1056,7 +1100,7 @@ fi
|
||||
* Thu Aug 11 2005 gekker@suse.de
|
||||
- Update to version 2.8.0.2
|
||||
- Make 64bit clean
|
||||
* Sat Jul 30 2005 jpr@suse.de
|
||||
* Sun Jul 31 2005 jpr@suse.de
|
||||
- turn on compatibility symlink for all products
|
||||
* Tue Jul 05 2005 gekker@suse.de
|
||||
- Update to version 2.8.0.1
|
||||
@ -1116,13 +1160,13 @@ fi
|
||||
- Cache gdm help and show gdm in khelpcenter.
|
||||
* Mon Aug 16 2004 ro@suse.de
|
||||
- fixed specfile
|
||||
* Sun Aug 15 2004 shprasad@suse.de
|
||||
* Mon Aug 16 2004 shprasad@suse.de
|
||||
- Fixes bug #60020
|
||||
Invalid username/passwd input doen't bring the password dialog
|
||||
for timed login user.
|
||||
* Fri Jul 30 2004 ro@suse.de
|
||||
- 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.
|
||||
Shows the 'KDE' option when the user clicks on 'Session' at the
|
||||
time of login.
|
||||
@ -1181,7 +1225,7 @@ fi
|
||||
- updated to version 2.4.1.6
|
||||
* Mon Jul 28 2003 kukuk@suse.de
|
||||
- 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
|
||||
- fix build
|
||||
* Wed Jul 16 2003 sbrabec@suse.cz
|
||||
@ -1218,7 +1262,7 @@ fi
|
||||
- updated to 2.4.1.3 [GNOME 2.2.0]
|
||||
* Fri Feb 07 2003 kukuk@suse.de
|
||||
- Use pam_unix2.so instead of pam_unix.so
|
||||
* Wed Jan 15 2003 ro@suse.de
|
||||
* Thu Jan 16 2003 ro@suse.de
|
||||
- use gtk2-devel-packages and libjpeg in neededforbuild
|
||||
* Tue Jan 07 2003 sbrabec@suse.cz
|
||||
- Update to version 2.4.1.0.
|
||||
|
Loading…
x
Reference in New Issue
Block a user