SHA256
1
0
forked from pool/gdm

Accepting request 67370 from GNOME:Next

thanks

OBS-URL: https://build.opensuse.org/request/show/67370
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=156
This commit is contained in:
Vincent Untz 2011-04-25 09:10:54 +00:00 committed by Git OBS Bridge
parent 50c01c7256
commit 172d2fc33f
13 changed files with 501 additions and 764 deletions

View File

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

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

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

View File

@ -1,52 +0,0 @@
diff --git a/daemon/gdm-static-display.c b/daemon/gdm-static-display.c
index a747ee3..9605f5a 100644
--- a/daemon/gdm-static-display.c
+++ b/daemon/gdm-static-display.c
@@ -45,7 +45,7 @@
struct GdmStaticDisplayPrivate
{
- gboolean enable_timed_login;
+ gboolean first_login;
};
enum {
@@ -121,6 +121,8 @@ gdm_static_display_unmanage (GdmDisplay *display)
{
g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE);
+ GDM_STATIC_DISPLAY (display)->priv->first_login = FALSE;
+
GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->unmanage (display);
return TRUE;
@@ -158,12 +160,14 @@ gdm_static_display_get_timed_login_details (GdmDisplay *display,
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;
+ GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->get_timed_login_details (display, enabledp, usernamep, delayp);
+
+ if (!GDM_STATIC_DISPLAY (display)->priv->first_login) {
+ /* if this is autologin but not timed login, then disable
+ * autologin after the first one */
+ if (*enabledp && *delayp == 0) {
+ *enabledp = FALSE;
+ }
}
}
@@ -196,7 +200,7 @@ gdm_static_display_init (GdmStaticDisplay *static_display)
static_display->priv = GDM_STATIC_DISPLAY_GET_PRIVATE (static_display);
- static_display->priv->enable_timed_login = TRUE;
+ static_display->priv->first_login = TRUE;
}
static void

View File

@ -1,8 +1,8 @@
Index: gdm-2.23.92/daemon/gdm-session-worker.c Index: gdm-2.91.6/daemon/gdm-session-worker.c
=================================================================== ===================================================================
--- gdm-2.23.92.orig/daemon/gdm-session-worker.c --- gdm-2.91.6.orig/daemon/gdm-session-worker.c
+++ gdm-2.23.92/daemon/gdm-session-worker.c +++ gdm-2.91.6/daemon/gdm-session-worker.c
@@ -1926,11 +1926,28 @@ static void @@ -2163,11 +2163,28 @@ static void
gdm_session_worker_set_session_name (GdmSessionWorker *worker, gdm_session_worker_set_session_name (GdmSessionWorker *worker,
const char *session_name) const char *session_name)
{ {
@ -31,7 +31,7 @@ Index: gdm-2.23.92/daemon/gdm-session-worker.c
on_set_session_name (GdmSessionWorker *worker, on_set_session_name (GdmSessionWorker *worker,
DBusMessage *message) DBusMessage *message)
{ {
@@ -1953,6 +1970,28 @@ on_set_session_name (GdmSessionWorker *w @@ -2190,6 +2207,28 @@ on_set_session_name (GdmSessionWorker *w
} }
static void static void
@ -60,8 +60,8 @@ Index: gdm-2.23.92/daemon/gdm-session-worker.c
gdm_session_worker_set_language_name (GdmSessionWorker *worker, gdm_session_worker_set_language_name (GdmSessionWorker *worker,
const char *language_name) const char *language_name)
{ {
@@ -2527,6 +2566,8 @@ worker_dbus_handle_message (DBusConnecti @@ -2761,6 +2800,8 @@ worker_dbus_handle_message (DBusConnecti
on_set_layout_name (worker, message); on_set_language_name (worker, message);
} else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetSessionName")) { } else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetSessionName")) {
on_set_session_name (worker, message); on_set_session_name (worker, message);
+ } else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetDefaultSessionName")) { + } else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetDefaultSessionName")) {
@ -69,11 +69,11 @@ Index: gdm-2.23.92/daemon/gdm-session-worker.c
} else { } else {
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
} }
Index: gdm-2.23.92/daemon/gdm-session-direct.c Index: gdm-2.91.6/daemon/gdm-session-direct.c
=================================================================== ===================================================================
--- gdm-2.23.92.orig/daemon/gdm-session-direct.c --- gdm-2.91.6.orig/daemon/gdm-session-direct.c
+++ gdm-2.23.92/daemon/gdm-session-direct.c +++ gdm-2.91.6/daemon/gdm-session-direct.c
@@ -115,6 +115,8 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirec @@ -120,6 +120,8 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirec
G_IMPLEMENT_INTERFACE (GDM_TYPE_SESSION, G_IMPLEMENT_INTERFACE (GDM_TYPE_SESSION,
gdm_session_iface_init)) gdm_session_iface_init))
@ -82,7 +82,7 @@ Index: gdm-2.23.92/daemon/gdm-session-direct.c
static gboolean static gboolean
send_dbus_message (DBusConnection *connection, send_dbus_message (DBusConnection *connection,
DBusMessage *message) DBusMessage *message)
@@ -668,12 +670,16 @@ get_default_session_name (GdmSessionDire @@ -707,10 +709,14 @@ get_default_session_name (GdmSessionDire
static void static void
gdm_session_direct_defaults_changed (GdmSessionDirect *session) gdm_session_direct_defaults_changed (GdmSessionDirect *session)
{ {
@ -90,8 +90,6 @@ Index: gdm-2.23.92/daemon/gdm-session-direct.c
+ +
_gdm_session_default_language_name_changed (GDM_SESSION (session), _gdm_session_default_language_name_changed (GDM_SESSION (session),
get_default_language_name (session)); get_default_language_name (session));
_gdm_session_default_layout_name_changed (GDM_SESSION (session),
get_default_layout_name (session));
_gdm_session_default_session_name_changed (GDM_SESSION (session), _gdm_session_default_session_name_changed (GDM_SESSION (session),
get_default_session_name (session)); get_default_session_name (session));
+ send_dbus_string_signal (impl, "SetDefaultSessionName", + send_dbus_string_signal (impl, "SetDefaultSessionName",
@ -99,7 +97,7 @@ Index: gdm-2.23.92/daemon/gdm-session-direct.c
} }
static void static void
@@ -1111,11 +1117,16 @@ gdm_session_direct_handle_saved_session_ @@ -1164,11 +1170,16 @@ gdm_session_direct_handle_saved_session_
if (strcmp (session_name, if (strcmp (session_name,
get_default_session_name (session)) != 0) { get_default_session_name (session)) != 0) {
@ -116,7 +114,7 @@ Index: gdm-2.23.92/daemon/gdm-session-direct.c
} }
out: out:
return DBUS_HANDLER_RESULT_HANDLED; return DBUS_HANDLER_RESULT_HANDLED;
@@ -1306,6 +1317,9 @@ do_introspect (DBusConnection *connectio @@ -1349,6 +1360,9 @@ do_introspect (DBusConnection *connectio
" <signal name=\"SetSessionName\">\n" " <signal name=\"SetSessionName\">\n"
" <arg name=\"session_name\" type=\"s\"/>\n" " <arg name=\"session_name\" type=\"s\"/>\n"
" </signal>\n" " </signal>\n"

View File

@ -1,42 +0,0 @@
commit b971eb1038cb92ed8211b68a7d2a99a98d86ed7f
Author: Vincent Untz <vuntz@gnome.org>
Date: Wed Jan 12 18:38:46 2011 +0100
Correctly give focus to the user chooser on startup
We manually handle how focus works in the GdmChooserWidget container,
and we try to automatically move the focus to the treeview inside the
chooser. However, it fails the first time because the treeview is not
realized yet and the logic in the code assumes that if focus moved to
the chooser, it moved to the treeview, so later attempt to get the focus
grabbed by the treeview are just ignored.
It works fine when using gtk_widget_child_focus() to give the focus to
the treeview. And this makes more sense since the chooser is a container
anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=629310
diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c
index db2d9b2..ebbfdb9 100644
--- a/gui/simple-greeter/gdm-chooser-widget.c
+++ b/gui/simple-greeter/gdm-chooser-widget.c
@@ -910,17 +910,13 @@ _grab_focus (GtkWidget *widget)
foc_widget = GDM_CHOOSER_WIDGET (widget)->priv->items_view;
g_debug ("GdmChooserWidget: grabbing focus");
- if (! gtk_widget_get_realized (foc_widget)) {
- g_debug ("GdmChooserWidget: not grabbing focus - not realized");
- return;
- }
if (gtk_widget_has_focus (foc_widget)) {
g_debug ("GdmChooserWidget: not grabbing focus - already has it");
return;
}
- gtk_widget_grab_focus (foc_widget);
+ gtk_widget_child_focus (foc_widget, GTK_DIR_TAB_FORWARD);
}
static void

View File

@ -1,8 +1,8 @@
Index: gdm-2.29.4/configure.ac Index: gdm-2.91.6/configure.ac
=================================================================== ===================================================================
--- gdm-2.29.4.orig/configure.ac --- gdm-2.91.6.orig/configure.ac
+++ gdm-2.29.4/configure.ac +++ gdm-2.91.6/configure.ac
@@ -990,6 +990,30 @@ fi @@ -1006,6 +1006,30 @@ fi
AC_SUBST(GDM_CUSTOM_CONF) AC_SUBST(GDM_CUSTOM_CONF)
AC_SUBST(GDM_OLD_CONF, '${gdmconfdir}/gdm.conf') AC_SUBST(GDM_OLD_CONF, '${gdmconfdir}/gdm.conf')
@ -33,7 +33,7 @@ Index: gdm-2.29.4/configure.ac
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
dnl - Check for XEvIE extension support dnl - Check for XEvIE extension support
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
@@ -1417,6 +1441,9 @@ echo " @@ -1449,6 +1473,9 @@ echo "
dmconfdir: ${dmconfdir} dmconfdir: ${dmconfdir}
localstatedir: ${localstatedir} localstatedir: ${localstatedir}
datadir: ${datadir} datadir: ${datadir}
@ -43,11 +43,11 @@ Index: gdm-2.29.4/configure.ac
source code location: ${srcdir} source code location: ${srcdir}
compiler: ${CC} compiler: ${CC}
cflags: ${CFLAGS} cflags: ${CFLAGS}
Index: gdm-2.29.4/daemon/Makefile.am Index: gdm-2.91.6/daemon/Makefile.am
=================================================================== ===================================================================
--- gdm-2.29.4.orig/daemon/Makefile.am --- gdm-2.91.6.orig/daemon/Makefile.am
+++ gdm-2.29.4/daemon/Makefile.am +++ gdm-2.91.6/daemon/Makefile.am
@@ -18,6 +18,7 @@ AM_CPPFLAGS = \ @@ -20,6 +20,7 @@ AM_CPPFLAGS = \
-DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \ -DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \ -DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
-DGDM_SESSION_DEFAULT_PATH=\"$(GDM_SESSION_DEFAULT_PATH)\" \ -DGDM_SESSION_DEFAULT_PATH=\"$(GDM_SESSION_DEFAULT_PATH)\" \
@ -55,11 +55,11 @@ Index: gdm-2.29.4/daemon/Makefile.am
$(DISABLE_DEPRECATED_CFLAGS) \ $(DISABLE_DEPRECATED_CFLAGS) \
$(DAEMON_CFLAGS) \ $(DAEMON_CFLAGS) \
$(XLIB_CFLAGS) \ $(XLIB_CFLAGS) \
Index: gdm-2.29.4/daemon/gdm-server.c Index: gdm-2.91.6/daemon/gdm-server.c
=================================================================== ===================================================================
--- gdm-2.29.4.orig/daemon/gdm-server.c --- gdm-2.91.6.orig/daemon/gdm-server.c
+++ gdm-2.29.4/daemon/gdm-server.c +++ gdm-2.91.6/daemon/gdm-server.c
@@ -127,7 +127,7 @@ _gdm_server_query_ck_for_display_device @@ -134,7 +134,7 @@ _gdm_server_query_ck_for_display_device
g_return_val_if_fail (GDM_IS_SERVER (server), NULL); g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
error = NULL; error = NULL;
@ -68,10 +68,10 @@ Index: gdm-2.29.4/daemon/gdm-server.c
server->priv->display_name); server->priv->display_name);
g_debug ("GdmServer: Running helper %s", command); g_debug ("GdmServer: Running helper %s", command);
Index: gdm-2.29.4/data/greeter-autostart/Makefile.am Index: gdm-2.91.6/data/greeter-autostart/Makefile.am
=================================================================== ===================================================================
--- gdm-2.29.4.orig/data/greeter-autostart/Makefile.am --- gdm-2.91.6.orig/data/greeter-autostart/Makefile.am
+++ gdm-2.29.4/data/greeter-autostart/Makefile.am +++ gdm-2.91.6/data/greeter-autostart/Makefile.am
@@ -5,7 +5,9 @@ edit = sed \ @@ -5,7 +5,9 @@ edit = sed \
-e 's|@SYSCONFDIR[@]|$(sysconfdir)|g' \ -e 's|@SYSCONFDIR[@]|$(sysconfdir)|g' \
-e 's|@LIBDIR[@]|$(libdir)|g' \ -e 's|@LIBDIR[@]|$(libdir)|g' \
@ -83,25 +83,25 @@ Index: gdm-2.29.4/data/greeter-autostart/Makefile.am
%.desktop.in: %.desktop.in.in Makefile %.desktop.in: %.desktop.in.in Makefile
$(edit) $< >$@ $(edit) $< >$@
Index: gdm-2.29.4/data/greeter-autostart/gnome-settings-daemon.desktop.in.in Index: gdm-2.91.6/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
=================================================================== ===================================================================
--- gdm-2.29.4.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in --- gdm-2.91.6.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
+++ gdm-2.29.4/data/greeter-autostart/gnome-settings-daemon.desktop.in.in +++ gdm-2.91.6/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
@@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
_Name=GNOME Settings Daemon _Name=GNOME Settings Daemon
-TryExec=@LIBEXECDIR@/gnome-settings-daemon -TryExec=@LIBEXECDIR@/gnome-settings-daemon
-Exec=@LIBEXECDIR@/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins -Exec=@LIBEXECDIR@/gnome-settings-daemon
+TryExec=@GNOME_SETTINGS_DAEMON_DIR@/gnome-settings-daemon +TryExec=@GNOME_SETTINGS_DAEMON_DIR@/gnome-settings-daemon
+Exec=@GNOME_SETTINGS_DAEMON_DIR@/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins +Exec=@GNOME_SETTINGS_DAEMON_DIR@/gnome-settings-daemon
OnlyShowIn=GNOME; OnlyShowIn=GNOME;
X-GNOME-Autostart-Phase=Initialization X-GNOME-Autostart-Phase=Initialization
X-GNOME-Autostart-Notify=true X-GNOME-Autostart-Notify=true
Index: gdm-2.29.4/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in Index: gdm-2.91.6/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
=================================================================== ===================================================================
--- gdm-2.29.4.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in --- gdm-2.91.6.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
+++ gdm-2.29.4/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in +++ gdm-2.91.6/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application

View File

@ -1,7 +1,7 @@
Index: gdm-2.32.0/common/gdm-settings-system-backend.c Index: gdm-2.91.93/common/gdm-settings-system-backend.c
=================================================================== ===================================================================
--- gdm-2.32.0.orig/common/gdm-settings-system-backend.c --- gdm-2.91.93.orig/common/gdm-settings-system-backend.c
+++ gdm-2.32.0/common/gdm-settings-system-backend.c +++ gdm-2.91.93/common/gdm-settings-system-backend.c
@@ -44,11 +44,11 @@ @@ -44,11 +44,11 @@
#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN" #define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
#define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN" #define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
@ -78,10 +78,10 @@ Index: gdm-2.32.0/common/gdm-settings-system-backend.c
} else { } else {
g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found"); g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
return FALSE; return FALSE;
Index: gdm-2.32.0/common/gdm-settings-keys.h Index: gdm-2.91.93/common/gdm-settings-keys.h
=================================================================== ===================================================================
--- gdm-2.32.0.orig/common/gdm-settings-keys.h --- gdm-2.91.93.orig/common/gdm-settings-keys.h
+++ gdm-2.32.0/common/gdm-settings-keys.h +++ gdm-2.91.93/common/gdm-settings-keys.h
@@ -32,6 +32,7 @@ G_BEGIN_DECLS @@ -32,6 +32,7 @@ G_BEGIN_DECLS
#define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable" #define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable"
#define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin" #define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin"
@ -90,10 +90,10 @@ Index: gdm-2.32.0/common/gdm-settings-keys.h
#define GDM_KEY_DEBUG "debug/Enable" #define GDM_KEY_DEBUG "debug/Enable"
Index: gdm-2.32.0/data/gdm.schemas.in.in Index: gdm-2.91.93/data/gdm.schemas.in.in
=================================================================== ===================================================================
--- gdm-2.32.0.orig/data/gdm.schemas.in.in --- gdm-2.91.93.orig/data/gdm.schemas.in.in
+++ gdm-2.32.0/data/gdm.schemas.in.in +++ gdm-2.91.93/data/gdm.schemas.in.in
@@ -47,6 +47,12 @@ @@ -47,6 +47,12 @@
<signature>i</signature> <signature>i</signature>
<default>30</default> <default>30</default>
@ -107,10 +107,10 @@ Index: gdm-2.32.0/data/gdm.schemas.in.in
<schema> <schema>
<key>debug/Enable</key> <key>debug/Enable</key>
Index: gdm-2.32.0/daemon/gdm-factory-slave.c Index: gdm-2.91.93/daemon/gdm-factory-slave.c
=================================================================== ===================================================================
--- gdm-2.32.0.orig/daemon/gdm-factory-slave.c --- gdm-2.91.93.orig/daemon/gdm-factory-slave.c
+++ gdm-2.32.0/daemon/gdm-factory-slave.c +++ gdm-2.91.93/daemon/gdm-factory-slave.c
@@ -44,6 +44,9 @@ @@ -44,6 +44,9 @@
#include "gdm-common.h" #include "gdm-common.h"
@ -139,13 +139,13 @@ Index: gdm-2.32.0/daemon/gdm-factory-slave.c
username); username);
} }
Index: gdm-2.32.0/daemon/gdm-simple-slave.c Index: gdm-2.91.93/daemon/gdm-simple-slave.c
=================================================================== ===================================================================
--- gdm-2.32.0.orig/daemon/gdm-simple-slave.c --- gdm-2.91.93.orig/daemon/gdm-simple-slave.c
+++ gdm-2.32.0/daemon/gdm-simple-slave.c +++ gdm-2.91.93/daemon/gdm-simple-slave.c
@@ -837,9 +837,16 @@ on_greeter_begin_verification_for_user ( @@ -952,9 +952,15 @@ static void
const char *username, on_greeter_begin_verification (GdmGreeterServer *greeter_server,
GdmSimpleSlave *slave) GdmSimpleSlave *slave)
{ {
+ gboolean passwordless; + gboolean passwordless;
+ +
@ -153,11 +153,10 @@ Index: gdm-2.32.0/daemon/gdm-simple-slave.c
+ &passwordless)) { + &passwordless)) {
+ passwordless = FALSE; + passwordless = FALSE;
+ } + }
+
g_debug ("GdmSimpleSlave: begin verification"); g_debug ("GdmSimpleSlave: begin verification");
gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), gdm_session_setup (GDM_SESSION (slave->priv->session),
- "gdm", - "gdm");
+ passwordless ? "gdm-autologin" : "gdm", + passwordless ? "gdm-autologin" : "gdm");
username);
} }
static void

View File

@ -11,15 +11,105 @@ will give us a nice fade transition when g-s-d starts
daemon/gdm-slave.h | 1 + daemon/gdm-slave.h | 1 +
3 files changed, 82 insertions(+), 0 deletions(-) 3 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c Index: gdm-2.91.94/daemon/gdm-simple-slave.c
index 2cbb568..66d1c77 100644 ===================================================================
--- a/daemon/gdm-simple-slave.c --- gdm-2.91.94.orig/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c +++ gdm-2.91.94/daemon/gdm-simple-slave.c
@@ -863,6 +863,15 @@ setup_server (GdmSimpleSlave *slave) @@ -88,6 +88,7 @@ struct GdmSimpleSlavePrivate
guint start_session_when_ready : 1;
guint waiting_to_start_session : 1;
+ guint plymouth_is_running : 1;
#ifdef HAVE_LOGINDEVPERM
gboolean use_logindevperm;
#endif
@@ -95,6 +96,7 @@ struct GdmSimpleSlavePrivate
enum {
PROP_0,
+ FORCE_ACTIVE_VT
};
static void gdm_simple_slave_class_init (GdmSimpleSlaveClass *klass);
@@ -1098,6 +1100,72 @@ on_start_session_later (GdmGreeterServer
slave->priv->start_session_when_ready = FALSE;
}
+static gboolean
+plymouth_is_running (void)
+{
+ int status;
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = g_spawn_command_line_sync ("/bin/plymouth --ping",
+ NULL, NULL, &status, &error);
+ if (! res) {
+ g_debug ("Could not ping plymouth: %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ return WIFEXITED (status) && WEXITSTATUS (status) == 0;
+}
+
+static void
+plymouth_prepare_for_transition (GdmSimpleSlave *slave)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = g_spawn_command_line_sync ("/bin/plymouth deactivate",
+ NULL, NULL, NULL, &error);
+ if (! res) {
+ g_warning ("Could not deactivate plymouth: %s", error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+plymouth_quit_with_transition (GdmSimpleSlave *slave)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = g_spawn_command_line_sync ("/bin/plymouth quit --retain-splash",
+ NULL, NULL, NULL, &error);
+ if (! res) {
+ g_warning ("Could not quit plymouth: %s", error->message);
+ g_error_free (error);
+ }
+ slave->priv->plymouth_is_running = FALSE;
+}
+
+static void
+plymouth_quit_without_transition (GdmSimpleSlave *slave)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = g_spawn_command_line_sync ("/bin/plymouth quit",
+ NULL, NULL, NULL, &error);
+ if (! res) {
+ g_warning ("Could not quit plymouth: %s", error->message);
+ g_error_free (error);
+ }
+ slave->priv->plymouth_is_running = FALSE;
+}
+
static void
setup_server (GdmSimpleSlave *slave)
{ {
@@ -1106,6 +1174,20 @@ setup_server (GdmSimpleSlave *slave)
/* Set the busy cursor */ /* Set the busy cursor */
gdm_slave_set_busy_cursor (GDM_SLAVE (slave)); gdm_slave_set_busy_cursor (GDM_SLAVE (slave));
+ +
+
+ /* The root window has a background that may be useful + /* The root window has a background that may be useful
+ * to cross fade or transition from when setting the + * to cross fade or transition from when setting the
+ * login screen background. We read it here, and stuff + * login screen background. We read it here, and stuff
@ -28,23 +118,124 @@ index 2cbb568..66d1c77 100644
+ */ + */
+ gdm_slave_save_root_windows (GDM_SLAVE (slave)); + gdm_slave_save_root_windows (GDM_SLAVE (slave));
+ +
+ /* Plymouth is waiting for the go-ahead to exit */
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_with_transition (slave);
+ }
} }
static void static void
diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c @@ -1305,6 +1387,10 @@ on_server_exited (GdmServer *server
index e11e16c..da86f77 100644 g_debug ("GdmSimpleSlave: server exited with code %d\n", exit_code);
--- a/daemon/gdm-slave.c
+++ b/daemon/gdm-slave.c gdm_slave_stopped (GDM_SLAVE (slave));
@@ -42,6 +42,7 @@ +
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_without_transition (slave);
+ }
}
static void
@@ -1317,6 +1403,10 @@ on_server_died (GdmServer *server,
g_strsignal (signal_number));
gdm_slave_stopped (GDM_SLAVE (slave));
+
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_without_transition (slave);
+ }
}
static gboolean
@@ -1325,11 +1415,13 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
char *display_name;
char *auth_file;
gboolean display_is_local;
+ gboolean force_active_vt;
g_object_get (slave,
"display-is-local", &display_is_local,
"display-name", &display_name,
"display-x11-authority-file", &auth_file,
+ "force-active-vt", &force_active_vt,
NULL);
/* if this is local display start a server if one doesn't
@@ -1361,7 +1453,17 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
G_CALLBACK (on_server_ready),
slave);
- res = gdm_server_start (slave->priv->server);
+ slave->priv->plymouth_is_running = plymouth_is_running ();
+
+ if (slave->priv->plymouth_is_running) {
+ plymouth_prepare_for_transition (slave);
+ res = gdm_server_start_on_active_vt (slave->priv->server);
+ } else {
+ if (force_active_vt)
+ res = gdm_server_start_on_active_vt (slave->priv->server);
+ else
+ res = gdm_server_start (slave->priv->server);
+ }
if (! res) {
g_warning (_("Could not start the X "
"server (your graphical environment) "
@@ -1371,6 +1473,9 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
"In the meantime this display will be "
"disabled. Please restart GDM when "
"the problem is corrected."));
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_without_transition (slave);
+ }
exit (1);
}
@@ -1527,12 +1632,14 @@ gdm_simple_slave_finalize (GObject *obje
}
GdmSlave *
-gdm_simple_slave_new (const char *id)
+gdm_simple_slave_new (const char *id,
+ gboolean force_active_vt)
{
GObject *object;
object = g_object_new (GDM_TYPE_SIMPLE_SLAVE,
"display-id", id,
+ "force-active-vt", force_active_vt,
NULL);
return GDM_SLAVE (object);
Index: gdm-2.91.94/daemon/gdm-slave.c
===================================================================
--- gdm-2.91.94.orig/daemon/gdm-slave.c
+++ gdm-2.91.94/daemon/gdm-slave.c
@@ -43,6 +43,7 @@
#include <dbus/dbus-glib-lowlevel.h> #include <dbus/dbus-glib-lowlevel.h>
#include <X11/Xlib.h> /* for Display */ #include <X11/Xlib.h> /* for Display */
+#include <X11/Xatom.h> /* for XA_PIXMAP */ +#include <X11/Xatom.h> /* for XA_PIXMAP */
#include <X11/cursorfont.h> /* for watch cursor */ #include <X11/cursorfont.h> /* for watch cursor */
#include <X11/extensions/Xrandr.h>
#include <X11/Xatom.h> #include <X11/Xatom.h>
@@ -87,6 +88,7 @@ struct GdmSlavePrivate
@@ -351,6 +352,77 @@ gdm_slave_run_script (GdmSlave *slave, char *display_hostname;
return ret; gboolean display_is_local;
gboolean display_is_parented;
+ gboolean force_active_vt;
char *display_seat_id;
char *display_x11_authority_file;
char *parent_display_name;
@@ -106,6 +108,7 @@ enum {
PROP_DISPLAY_NUMBER,
PROP_DISPLAY_HOSTNAME,
PROP_DISPLAY_IS_LOCAL,
+ PROP_FORCE_ACTIVE_VT,
PROP_DISPLAY_SEAT_ID,
PROP_DISPLAY_X11_AUTHORITY_FILE
};
@@ -434,6 +437,77 @@ gdm_slave_set_initial_cursor_position (G
}
} }
+static void +static void
@ -121,39 +312,71 @@ index e11e16c..da86f77 100644
void void
gdm_slave_set_busy_cursor (GdmSlave *slave) gdm_slave_set_busy_cursor (GdmSlave *slave)
{ {
diff --git a/daemon/gdm-slave.h b/daemon/gdm-slave.h @@ -1531,6 +1605,13 @@ _gdm_slave_set_display_is_local (GdmSlav
index af28b00..1652457 100644 }
--- a/daemon/gdm-slave.h
+++ b/daemon/gdm-slave.h static void
@@ -74,6 +74,7 @@ gboolean gdm_slave_switch_to_user_session (GdmSlave *slave, +_gdm_slave_set_force_active_vt (GdmSlave *slave,
+ gboolean force_active_vt)
+{
+ slave->priv->force_active_vt = force_active_vt;
+}
+
+static void
gdm_slave_set_property (GObject *object,
guint prop_id,
const GValue *value,
@@ -1562,6 +1643,9 @@ gdm_slave_set_property (GObject *ob
case PROP_DISPLAY_IS_LOCAL:
_gdm_slave_set_display_is_local (self, g_value_get_boolean (value));
break;
+ case PROP_FORCE_ACTIVE_VT:
+ _gdm_slave_set_force_active_vt (self, g_value_get_boolean (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1600,6 +1684,9 @@ gdm_slave_get_property (GObject *obje
case PROP_DISPLAY_IS_LOCAL:
g_value_set_boolean (value, self->priv->display_is_local);
break;
+ case PROP_FORCE_ACTIVE_VT:
+ g_value_set_boolean (value, self->priv->force_active_vt);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1725,6 +1812,14 @@ gdm_slave_class_init (GdmSlaveClass *kla
TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (object_class,
+ PROP_FORCE_ACTIVE_VT,
+ g_param_spec_boolean ("force-active-vt",
+ "Force Active VT",
+ "Force display to active VT",
+ TRUE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
signals [STOPPED] =
g_signal_new ("stopped",
G_TYPE_FROM_CLASS (object_class),
Index: gdm-2.91.94/daemon/gdm-slave.h
===================================================================
--- gdm-2.91.94.orig/daemon/gdm-slave.h
+++ gdm-2.91.94/daemon/gdm-slave.h
@@ -77,6 +77,7 @@ gboolean gdm_slave_connect_to
void gdm_slave_set_initial_cursor_position (GdmSlave *slave);
gboolean gdm_slave_connect_to_x11_display (GdmSlave *slave);
void gdm_slave_set_busy_cursor (GdmSlave *slave); void gdm_slave_set_busy_cursor (GdmSlave *slave);
+void gdm_slave_save_root_windows (GdmSlave *slave); +void gdm_slave_save_root_windows (GdmSlave *slave);
gboolean gdm_slave_run_script (GdmSlave *slave, gboolean gdm_slave_run_script (GdmSlave *slave,
const char *dir, const char *dir,
const char *username); const char *username);
-- Index: gdm-2.91.94/daemon/gdm-server.c
1.6.5.2 ===================================================================
--- gdm-2.91.94.orig/daemon/gdm-server.c
+++ gdm-2.91.94/daemon/gdm-server.c
From 2343620d464b93cfa46abddf8af14c7268f17df2 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 27 Nov 2009 18:52:54 -0500
Subject: [PATCH 2/2] Enable smooth transition between plymouth and X
This commit checks if plymouth is running, and if so,
turns on the smooth transition between plymouth and X.
---
daemon/gdm-server.c | 56 +++++++++++++++++++++++++++
daemon/gdm-server.h | 1 +
daemon/gdm-simple-slave.c | 91 ++++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 147 insertions(+), 1 deletions(-)
diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
index ba10386..3ec21e9 100644
--- a/daemon/gdm-server.c
+++ b/daemon/gdm-server.c
@@ -32,8 +32,11 @@ @@ -32,8 +32,11 @@
#include <pwd.h> #include <pwd.h>
#include <grp.h> #include <grp.h>
@ -166,7 +389,7 @@ index ba10386..3ec21e9 100644
#ifdef HAVE_SYS_PRCTL_H #ifdef HAVE_SYS_PRCTL_H
#include <sys/prctl.h> #include <sys/prctl.h>
#endif #endif
@@ -663,6 +666,44 @@ gdm_server_spawn (GdmServer *server, @@ -673,6 +676,44 @@ gdm_server_spawn (GdmServer *server,
return ret; return ret;
} }
@ -211,10 +434,11 @@ index ba10386..3ec21e9 100644
/** /**
* gdm_server_start: * gdm_server_start:
* @disp: Pointer to a GdmDisplay structure * @disp: Pointer to a GdmDisplay structure
@@ -681,6 +722,21 @@ gdm_server_start (GdmServer *server) @@ -690,6 +731,21 @@ gdm_server_start (GdmServer *server)
return res; return res;
} }
+
+gboolean +gboolean
+gdm_server_start_on_active_vt (GdmServer *server) +gdm_server_start_on_active_vt (GdmServer *server)
+{ +{
@ -229,15 +453,14 @@ index ba10386..3ec21e9 100644
+ +
+ return res; + return res;
+} +}
+
static void static void
server_died (GdmServer *server) server_died (GdmServer *server)
{ Index: gdm-2.91.94/daemon/gdm-server.h
diff --git a/daemon/gdm-server.h b/daemon/gdm-server.h ===================================================================
index 535a69a..bd6c60a 100644 --- gdm-2.91.94.orig/daemon/gdm-server.h
--- a/daemon/gdm-server.h +++ gdm-2.91.94/daemon/gdm-server.h
+++ b/daemon/gdm-server.h @@ -56,6 +56,7 @@ GType gdm_server_get_type
@@ -56,6 +56,7 @@ GType gdm_server_get_type (void);
GdmServer * gdm_server_new (const char *display_id, GdmServer * gdm_server_new (const char *display_id,
const char *auth_file); const char *auth_file);
gboolean gdm_server_start (GdmServer *server); gboolean gdm_server_start (GdmServer *server);
@ -245,157 +468,11 @@ index 535a69a..bd6c60a 100644
gboolean gdm_server_stop (GdmServer *server); gboolean gdm_server_stop (GdmServer *server);
char * gdm_server_get_display_device (GdmServer *server); char * gdm_server_get_display_device (GdmServer *server);
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c Index: gdm-2.91.94/configure.ac
index 66d1c77..4703537 100644 ===================================================================
--- a/daemon/gdm-simple-slave.c --- gdm-2.91.94.orig/configure.ac
+++ b/daemon/gdm-simple-slave.c +++ gdm-2.91.94/configure.ac
@@ -84,6 +84,7 @@ struct GdmSimpleSlavePrivate @@ -1271,6 +1271,23 @@ AC_SUBST(GDM_SCREENSHOT_DIR)
guint start_session_when_ready : 1;
guint waiting_to_start_session : 1;
+ guint plymouth_is_running : 1;
};
enum {
@@ -858,6 +859,72 @@ on_start_session_later (GdmGreeterServer *session,
slave->priv->start_session_when_ready = FALSE;
}
+static gboolean
+plymouth_is_running (void)
+{
+ int status;
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = g_spawn_command_line_sync ("/bin/plymouth --ping",
+ NULL, NULL, &status, &error);
+ if (! res) {
+ g_debug ("Could not ping plymouth: %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ return WIFEXITED (status) && WEXITSTATUS (status) == 0;
+}
+
+static void
+plymouth_prepare_for_transition (GdmSimpleSlave *slave)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = g_spawn_command_line_sync ("/bin/plymouth deactivate",
+ NULL, NULL, NULL, &error);
+ if (! res) {
+ g_warning ("Could not deactivate plymouth: %s", error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+plymouth_quit_with_transition (GdmSimpleSlave *slave)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = g_spawn_command_line_sync ("/bin/plymouth quit --retain-splash",
+ NULL, NULL, NULL, &error);
+ if (! res) {
+ g_warning ("Could not quit plymouth: %s", error->message);
+ g_error_free (error);
+ }
+ slave->priv->plymouth_is_running = FALSE;
+}
+
+static void
+plymouth_quit_without_transition (GdmSimpleSlave *slave)
+{
+ gboolean res;
+ GError *error;
+
+ error = NULL;
+ res = g_spawn_command_line_sync ("/bin/plymouth quit",
+ NULL, NULL, NULL, &error);
+ if (! res) {
+ g_warning ("Could not quit plymouth: %s", error->message);
+ g_error_free (error);
+ }
+ slave->priv->plymouth_is_running = FALSE;
+}
+
static void
setup_server (GdmSimpleSlave *slave)
{
@@ -872,6 +939,10 @@ setup_server (GdmSimpleSlave *slave)
*/
gdm_slave_save_root_windows (GDM_SLAVE (slave));
+ /* Plymouth is waiting for the go-ahead to exit */
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_with_transition (slave);
+ }
}
static void
@@ -1063,6 +1134,10 @@ on_server_exited (GdmServer *server,
g_debug ("GdmSimpleSlave: server exited with code %d\n", exit_code);
gdm_slave_stopped (GDM_SLAVE (slave));
+
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_without_transition (slave);
+ }
}
static void
@@ -1075,6 +1150,10 @@ on_server_died (GdmServer *server,
g_strsignal (signal_number));
gdm_slave_stopped (GDM_SLAVE (slave));
+
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_without_transition (slave);
+ }
}
static gboolean
@@ -1119,7 +1198,14 @@ gdm_simple_slave_run (GdmSimpleSlave *slave)
G_CALLBACK (on_server_ready),
slave);
- res = gdm_server_start (slave->priv->server);
+ slave->priv->plymouth_is_running = plymouth_is_running ();
+
+ if (slave->priv->plymouth_is_running) {
+ plymouth_prepare_for_transition (slave);
+ res = gdm_server_start_on_active_vt (slave->priv->server);
+ } else {
+ res = gdm_server_start (slave->priv->server);
+ }
if (! res) {
g_warning (_("Could not start the X "
"server (your graphical environment) "
@@ -1129,6 +1215,9 @@ gdm_simple_slave_run (GdmSimpleSlave *slave)
"In the meantime this display will be "
"disabled. Please restart GDM when "
"the problem is corrected."));
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_without_transition (slave);
+ }
exit (1);
}
--
1.6.5.2
diff -up gdm-2.29.92/configure.ac.force-active-vt gdm-2.29.92/configure.ac
--- gdm-2.29.92/configure.ac.force-active-vt 2010-03-08 17:09:47.000000000 -0500
+++ gdm-2.29.92/configure.ac 2010-03-25 19:56:04.160116854 -0400
@@ -1265,6 +1265,23 @@ AC_SUBST(GDM_SCREENSHOT_DIR)
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
@ -419,9 +496,10 @@ diff -up gdm-2.29.92/configure.ac.force-active-vt gdm-2.29.92/configure.ac
dnl - Finish dnl - Finish
dnl --------------------------------------------------------------------------- dnl ---------------------------------------------------------------------------
diff -up gdm-2.29.92/daemon/gdm-display.c.force-active-vt gdm-2.29.92/daemon/gdm-display.c Index: gdm-2.91.94/daemon/gdm-display.c
--- gdm-2.29.92/daemon/gdm-display.c.force-active-vt 2010-03-08 16:53:57.000000000 -0500 ===================================================================
+++ gdm-2.29.92/daemon/gdm-display.c 2010-03-25 19:56:04.161124001 -0400 --- gdm-2.91.94.orig/daemon/gdm-display.c
+++ gdm-2.91.94/daemon/gdm-display.c
@@ -65,7 +65,9 @@ struct GdmDisplayPrivate @@ -65,7 +65,9 @@ struct GdmDisplayPrivate
gsize x11_cookie_size; gsize x11_cookie_size;
GdmDisplayAccessFile *access_file; GdmDisplayAccessFile *access_file;
@ -454,7 +532,7 @@ diff -up gdm-2.29.92/daemon/gdm-display.c.force-active-vt gdm-2.29.92/daemon/gdm
gdm_slave_proxy_set_command (display->priv->slave_proxy, command); gdm_slave_proxy_set_command (display->priv->slave_proxy, command);
g_free (command); g_free (command);
@@ -824,6 +828,13 @@ _gdm_display_set_is_local (GdmDisplay @@ -824,6 +828,13 @@ _gdm_display_set_is_local (GdmDisplay
} }
static void static void
@ -468,7 +546,7 @@ diff -up gdm-2.29.92/daemon/gdm-display.c.force-active-vt gdm-2.29.92/daemon/gdm
_gdm_display_set_slave_command (GdmDisplay *display, _gdm_display_set_slave_command (GdmDisplay *display,
const char *command) const char *command)
{ {
@@ -866,6 +877,9 @@ gdm_display_set_property (GObject @@ -866,6 +877,9 @@ gdm_display_set_property (GObject
case PROP_IS_LOCAL: case PROP_IS_LOCAL:
_gdm_display_set_is_local (self, g_value_get_boolean (value)); _gdm_display_set_is_local (self, g_value_get_boolean (value));
break; break;
@ -478,7 +556,7 @@ diff -up gdm-2.29.92/daemon/gdm-display.c.force-active-vt gdm-2.29.92/daemon/gdm
case PROP_SLAVE_COMMAND: case PROP_SLAVE_COMMAND:
_gdm_display_set_slave_command (self, g_value_get_string (value)); _gdm_display_set_slave_command (self, g_value_get_string (value));
break; break;
@@ -914,6 +928,9 @@ gdm_display_get_property (GObject @@ -914,6 +928,9 @@ gdm_display_get_property (GObject
case PROP_IS_LOCAL: case PROP_IS_LOCAL:
g_value_set_boolean (value, self->priv->is_local); g_value_set_boolean (value, self->priv->is_local);
break; break;
@ -488,7 +566,7 @@ diff -up gdm-2.29.92/daemon/gdm-display.c.force-active-vt gdm-2.29.92/daemon/gdm
case PROP_SLAVE_COMMAND: case PROP_SLAVE_COMMAND:
g_value_set_string (value, self->priv->slave_command); g_value_set_string (value, self->priv->slave_command);
break; break;
@@ -1084,6 +1101,13 @@ gdm_display_class_init (GdmDisplayClass @@ -1084,6 +1101,13 @@ gdm_display_class_init (GdmDisplayClass
NULL, NULL,
TRUE, TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
@ -502,62 +580,10 @@ diff -up gdm-2.29.92/daemon/gdm-display.c.force-active-vt gdm-2.29.92/daemon/gdm
g_object_class_install_property (object_class, g_object_class_install_property (object_class,
PROP_SLAVE_COMMAND, PROP_SLAVE_COMMAND,
diff -up gdm-2.29.92/daemon/gdm-simple-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-simple-slave.c Index: gdm-2.91.94/daemon/gdm-simple-slave.h
--- gdm-2.29.92/daemon/gdm-simple-slave.c.force-active-vt 2010-03-25 19:56:04.156102795 -0400 ===================================================================
+++ gdm-2.29.92/daemon/gdm-simple-slave.c 2010-03-25 19:58:27.983101340 -0400 --- gdm-2.91.94.orig/daemon/gdm-simple-slave.h
@@ -89,6 +89,7 @@ struct GdmSimpleSlavePrivate +++ gdm-2.91.94/daemon/gdm-simple-slave.h
enum {
PROP_0,
+ FORCE_ACTIVE_VT
};
static void gdm_simple_slave_class_init (GdmSimpleSlaveClass *klass);
@@ -1198,11 +1199,13 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
char *display_name;
char *auth_file;
gboolean display_is_local;
+ gboolean force_active_vt;
g_object_get (slave,
"display-is-local", &display_is_local,
"display-name", &display_name,
"display-x11-authority-file", &auth_file,
+ "force-active-vt", &force_active_vt,
NULL);
/* if this is local display start a server if one doesn't
@@ -1240,7 +1243,10 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
plymouth_prepare_for_transition (slave);
res = gdm_server_start_on_active_vt (slave->priv->server);
} else {
- res = gdm_server_start (slave->priv->server);
+ if (force_active_vt)
+ res = gdm_server_start_on_active_vt (slave->priv->server);
+ else
+ res = gdm_server_start (slave->priv->server);
}
if (! res) {
g_warning (_("Could not start the X "
@@ -1392,12 +1398,14 @@ gdm_simple_slave_finalize (GObject *obje
}
GdmSlave *
-gdm_simple_slave_new (const char *id)
+gdm_simple_slave_new (const char *id,
+ gboolean force_active_vt)
{
GObject *object;
object = g_object_new (GDM_TYPE_SIMPLE_SLAVE,
"display-id", id,
+ "force-active-vt", force_active_vt,
NULL);
return GDM_SLAVE (object);
diff -up gdm-2.29.92/daemon/gdm-simple-slave.h.force-active-vt gdm-2.29.92/daemon/gdm-simple-slave.h
--- gdm-2.29.92/daemon/gdm-simple-slave.h.force-active-vt 2010-03-08 16:53:57.000000000 -0500
+++ gdm-2.29.92/daemon/gdm-simple-slave.h 2010-03-25 19:56:04.166103788 -0400
@@ -48,7 +48,8 @@ typedef struct @@ -48,7 +48,8 @@ typedef struct
} GdmSimpleSlaveClass; } GdmSimpleSlaveClass;
@ -568,77 +594,10 @@ diff -up gdm-2.29.92/daemon/gdm-simple-slave.h.force-active-vt gdm-2.29.92/daemo
G_END_DECLS G_END_DECLS
diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-slave.c Index: gdm-2.91.94/daemon/gdm-static-display.c
--- gdm-2.29.92/daemon/gdm-slave.c.force-active-vt 2010-03-25 19:56:04.153102867 -0400 ===================================================================
+++ gdm-2.29.92/daemon/gdm-slave.c 2010-03-25 19:56:04.168101809 -0400 --- gdm-2.91.94.orig/daemon/gdm-static-display.c
@@ -84,6 +84,7 @@ struct GdmSlavePrivate +++ gdm-2.91.94/daemon/gdm-static-display.c
char *display_hostname;
gboolean display_is_local;
gboolean display_is_parented;
+ gboolean force_active_vt;
char *display_seat_id;
char *display_x11_authority_file;
char *parent_display_name;
@@ -102,6 +103,7 @@ enum {
PROP_DISPLAY_NUMBER,
PROP_DISPLAY_HOSTNAME,
PROP_DISPLAY_IS_LOCAL,
+ PROP_FORCE_ACTIVE_VT,
PROP_DISPLAY_SEAT_ID,
PROP_DISPLAY_X11_AUTHORITY_FILE
};
@@ -1402,6 +1404,13 @@ _gdm_slave_set_display_is_local (GdmSlav
}
static void
+_gdm_slave_set_force_active_vt (GdmSlave *slave,
+ gboolean force_active_vt)
+{
+ slave->priv->force_active_vt = force_active_vt;
+}
+
+static void
gdm_slave_set_property (GObject *object,
guint prop_id,
const GValue *value,
@@ -1433,6 +1442,9 @@ gdm_slave_set_property (GObject *ob
case PROP_DISPLAY_IS_LOCAL:
_gdm_slave_set_display_is_local (self, g_value_get_boolean (value));
break;
+ case PROP_FORCE_ACTIVE_VT:
+ _gdm_slave_set_force_active_vt (self, g_value_get_boolean (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1471,6 +1483,9 @@ gdm_slave_get_property (GObject *obje
case PROP_DISPLAY_IS_LOCAL:
g_value_set_boolean (value, self->priv->display_is_local);
break;
+ case PROP_FORCE_ACTIVE_VT:
+ g_value_set_boolean (value, self->priv->force_active_vt);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1596,6 +1611,14 @@ gdm_slave_class_init (GdmSlaveClass *kla
TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (object_class,
+ PROP_FORCE_ACTIVE_VT,
+ g_param_spec_boolean ("force-active-vt",
+ "Force Active VT",
+ "Force display to active VT",
+ TRUE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
signals [STOPPED] =
g_signal_new ("stopped",
G_TYPE_FROM_CLASS (object_class),
diff -up gdm-2.29.92/daemon/gdm-static-display.c.force-active-vt gdm-2.29.92/daemon/gdm-static-display.c
--- gdm-2.29.92/daemon/gdm-static-display.c.force-active-vt 2010-03-08 16:53:57.000000000 -0500
+++ gdm-2.29.92/daemon/gdm-static-display.c 2010-03-25 19:56:04.168101809 -0400
@@ -86,10 +86,27 @@ gdm_static_display_remove_user_authoriza @@ -86,10 +86,27 @@ gdm_static_display_remove_user_authoriza
} }
@ -667,10 +626,11 @@ diff -up gdm-2.29.92/daemon/gdm-static-display.c.force-active-vt gdm-2.29.92/dae
GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->manage (display); GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->manage (display);
return TRUE; return TRUE;
diff -up gdm-2.29.92/daemon/Makefile.am.force-active-vt gdm-2.29.92/daemon/Makefile.am Index: gdm-2.91.94/daemon/Makefile.am
--- gdm-2.29.92/daemon/Makefile.am.force-active-vt 2010-03-08 16:53:57.000000000 -0500 ===================================================================
+++ gdm-2.29.92/daemon/Makefile.am 2010-03-25 19:56:04.169102529 -0400 --- gdm-2.91.94.orig/daemon/Makefile.am
@@ -14,6 +14,7 @@ AM_CPPFLAGS = \ +++ gdm-2.91.94/daemon/Makefile.am
@@ -15,6 +15,7 @@ AM_CPPFLAGS = \
-DLOGDIR=\"$(logdir)\" \ -DLOGDIR=\"$(logdir)\" \
-DSBINDIR=\"$(sbindir)\" \ -DSBINDIR=\"$(sbindir)\" \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
@ -678,10 +638,11 @@ diff -up gdm-2.29.92/daemon/Makefile.am.force-active-vt gdm-2.29.92/daemon/Makef
-DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \ -DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \
-DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \ -DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \ -DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
diff -up gdm-2.29.92/daemon/simple-slave-main.c.force-active-vt gdm-2.29.92/daemon/simple-slave-main.c Index: gdm-2.91.94/daemon/simple-slave-main.c
--- gdm-2.29.92/daemon/simple-slave-main.c.force-active-vt 2010-03-08 16:53:57.000000000 -0500 ===================================================================
+++ gdm-2.29.92/daemon/simple-slave-main.c 2010-03-25 19:56:04.169102529 -0400 --- gdm-2.91.94.orig/daemon/simple-slave-main.c
@@ -178,9 +178,11 @@ main (int argc, +++ gdm-2.91.94/daemon/simple-slave-main.c
@@ -177,9 +177,11 @@ main (int argc,
DBusGConnection *connection; DBusGConnection *connection;
GdmSlave *slave; GdmSlave *slave;
static char *display_id = NULL; static char *display_id = NULL;
@ -702,10 +663,11 @@ diff -up gdm-2.29.92/daemon/simple-slave-main.c.force-active-vt gdm-2.29.92/daem
if (slave == NULL) { if (slave == NULL) {
goto out; goto out;
} }
diff -up gdm-2.29.92/data/Makefile.am.force-active-vt gdm-2.29.92/data/Makefile.am Index: gdm-2.91.94/data/Makefile.am
--- gdm-2.29.92/data/Makefile.am.force-active-vt 2010-03-08 16:53:57.000000000 -0500 ===================================================================
+++ gdm-2.29.92/data/Makefile.am 2010-03-25 19:56:04.170104437 -0400 --- gdm-2.91.94.orig/data/Makefile.am
@@ -13,6 +13,7 @@ predir = $(gdmconfdir)/PreSession +++ gdm-2.91.94/data/Makefile.am
@@ -12,6 +12,7 @@ predir = $(gdmconfdir)/PreSession
postlogindir = $(gdmconfdir)/PostLogin postlogindir = $(gdmconfdir)/PostLogin
workingdir = $(GDM_WORKING_DIR) workingdir = $(GDM_WORKING_DIR)
xauthdir = $(GDM_XAUTH_DIR) xauthdir = $(GDM_XAUTH_DIR)
@ -713,15 +675,15 @@ diff -up gdm-2.29.92/data/Makefile.am.force-active-vt gdm-2.29.92/data/Makefile.
screenshotdir = $(GDM_SCREENSHOT_DIR) screenshotdir = $(GDM_SCREENSHOT_DIR)
cachedir = $(localstatedir)/cache/gdm cachedir = $(localstatedir)/cache/gdm
@@ -129,6 +130,7 @@ uninstall-hook: @@ -144,6 +145,7 @@ uninstall-hook:
$(DESTDIR)$(workingdir)/.gconf.mandatory \ $(DESTDIR)$(workingdir)/.config/dconf \
$(DESTDIR)$(screenshotdir) \ $(DESTDIR)$(screenshotdir) \
$(DESTDIR)$(xauthdir) $(DESTDIR)$(xauthdir)
+ $(DESTDIR)$(spooldir) + $(DESTDIR)$(spooldir)
install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession gconf.path -rmdir \
if test '!' -d $(DESTDIR)$(gdmconfdir); then \ $(DESTDIR)$(sysconfdir)/dconf/db \
@@ -228,6 +230,12 @@ install-data-hook: gdm.conf-custom Xsess @@ -265,6 +267,12 @@ install-data-hook: gdm.conf-custom Xsess
chown root:gdm $(DESTDIR)$(cachedir) || : ; \ chown root:gdm $(DESTDIR)$(cachedir) || : ; \
fi fi
@ -734,4 +696,3 @@ diff -up gdm-2.29.92/data/Makefile.am.force-active-vt gdm-2.29.92/data/Makefile.
$(INSTALL_DATA) $(srcdir)/gconf.path $(DESTDIR)$(workingdir)/.gconf.path $(INSTALL_DATA) $(srcdir)/gconf.path $(DESTDIR)$(workingdir)/.gconf.path
gconftool-2 --direct --config-source=xml:merged:$(DESTDIR)$(workingdir)/.gconf.mandatory --recursive-unset / gconftool-2 --direct --config-source=xml:merged:$(DESTDIR)$(workingdir)/.gconf.mandatory --recursive-unset /
gconftool-2 --direct --config-source=xml:merged:$(DESTDIR)$(workingdir)/.gconf.mandatory --load $(srcdir)/session-setup.entries gconftool-2 --direct --config-source=xml:merged:$(DESTDIR)$(workingdir)/.gconf.mandatory --load $(srcdir)/session-setup.entries

View File

@ -1,21 +1,21 @@
Index: gdm-2.28.0/daemon/gdm-session-worker.c Index: gdm-2.91.93/daemon/gdm-session-worker.c
=================================================================== ===================================================================
--- gdm-2.28.0.orig/daemon/gdm-session-worker.c --- gdm-2.91.93.orig/daemon/gdm-session-worker.c
+++ gdm-2.28.0/daemon/gdm-session-worker.c +++ gdm-2.91.93/daemon/gdm-session-worker.c
@@ -157,6 +157,9 @@ typedef int (* GdmSessionWorkerPamNewMes @@ -153,6 +153,8 @@ typedef int (* GdmSessionWorkerPamNewMes
const struct pam_message **, const struct pam_message **,
struct pam_response **, struct pam_response **,
gpointer); gpointer);
+static void on_saved_session_name_read (GdmSessionWorker *worker); +static void on_saved_session_name_read (GdmSessionWorker *worker);
+static void on_saved_language_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) G_DEFINE_TYPE (GdmSessionWorker, gdm_session_worker, G_TYPE_OBJECT)
@@ -597,6 +600,22 @@ attempt_to_load_user_settings (GdmSessio @@ -595,6 +597,20 @@ attempt_to_load_user_settings (GdmSessio
g_debug ("GdmSessionWorker: attempting to load user settings");
gdm_session_settings_load (worker->priv->user_settings, gdm_session_settings_load (worker->priv->user_settings,
username, username);
NULL); +
+ +
+ /* These singal handlers should be disconnected after the loading, + /* These singal handlers should be disconnected after the loading,
+ * so that gdm_session_settings_set_* APIs don't cause the emitting + * so that gdm_session_settings_set_* APIs don't cause the emitting
@ -29,9 +29,6 @@ Index: gdm-2.28.0/daemon/gdm-session-worker.c
+ G_CALLBACK (on_saved_language_name_read), + G_CALLBACK (on_saved_language_name_read),
+ worker); + worker);
+ +
+ g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
+ G_CALLBACK (on_saved_layout_name_read),
+ worker);
} }
static void static void

View File

@ -1,17 +1,16 @@
Index: gdm-2.32.0/daemon/gdm-server.c Index: gdm-2.91.4/daemon/gdm-server.c
=================================================================== ===================================================================
--- gdm-2.32.0.orig/daemon/gdm-server.c --- gdm-2.91.4.orig/daemon/gdm-server.c
+++ gdm-2.32.0/daemon/gdm-server.c +++ gdm-2.91.4/daemon/gdm-server.c
@@ -27,6 +27,8 @@ @@ -27,6 +27,7 @@
#include <string.h> #include <string.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/wait.h> #include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <sys/vt.h> +#include <sys/vt.h>
#include <errno.h> #include <errno.h>
#include <ctype.h> #include <ctype.h>
#include <pwd.h> #include <pwd.h>
@@ -157,6 +159,92 @@ _gdm_server_query_ck_for_display_device @@ -157,6 +158,92 @@ _gdm_server_query_ck_for_display_device
return out; return out;
} }
@ -104,7 +103,7 @@ Index: gdm-2.32.0/daemon/gdm-server.c
char * char *
gdm_server_get_display_device (GdmServer *server) gdm_server_get_display_device (GdmServer *server)
{ {
@@ -317,6 +405,11 @@ gdm_server_resolve_command_line (GdmServ @@ -317,6 +404,11 @@ gdm_server_resolve_command_line (GdmServ
if (vtarg != NULL && ! gotvtarg) { if (vtarg != NULL && ! gotvtarg) {
argv[len++] = g_strdup (vtarg); argv[len++] = g_strdup (vtarg);

View File

@ -1,189 +0,0 @@
From 650465cb691a0eb52a84b0ff3eea64ac82168a43 Mon Sep 17 00:00:00 2001
From: Vincent Untz <vuntz@gnome.org>
Date: Thu, 03 Feb 2011 20:52:49 +0000
Subject: greeter: inform daemon when user disconnects
This is so the daemon knows the user is intentionally
disconnecting and it's not just the greeter tanking.
---
Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-login-window.c
===================================================================
--- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-login-window.c
+++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-login-window.c
@@ -143,7 +143,6 @@ enum {
QUERY_ANSWER,
START_SESSION,
USER_SELECTED,
- DISCONNECTED,
CANCELLED,
LAST_SIGNAL
};
@@ -1519,16 +1518,6 @@ gdm_greeter_login_window_class_init (Gdm
NULL,
NULL,
g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
- signals [DISCONNECTED] =
- g_signal_new ("disconnected",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GdmGreeterLoginWindowClass, disconnected),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE,
0);
signals [START_SESSION] =
Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-login-window.h
===================================================================
--- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-login-window.h
+++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-login-window.h
@@ -56,7 +56,6 @@ typedef struct
void (* user_selected) (GdmGreeterLoginWindow *login_window,
const char *text);
void (* cancelled) (GdmGreeterLoginWindow *login_window);
- void (* disconnected) (GdmGreeterLoginWindow *login_window);
void (* start_session) (GdmGreeterLoginWindow *login_window);
} GdmGreeterLoginWindowClass;
Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-panel.c
===================================================================
--- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-panel.c
+++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-panel.c
@@ -105,6 +105,7 @@ enum {
LANGUAGE_SELECTED,
LAYOUT_SELECTED,
SESSION_SELECTED,
+ DISCONNECTED,
NUMBER_OF_SIGNALS
};
@@ -633,9 +634,10 @@ do_system_stop (void)
}
static void
-do_disconnect (void)
+do_disconnect (GtkWidget *widget,
+ GdmGreeterPanel *panel)
{
- gtk_main_quit ();
+ g_signal_emit (panel, signals[DISCONNECTED], 0);
}
static gboolean
@@ -818,7 +820,7 @@ setup_panel (GdmGreeterPanel *panel)
if (! panel->priv->display_is_local) {
menu_item = gtk_menu_item_new_with_label ("Disconnect");
- g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (do_disconnect), NULL);
+ g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (do_disconnect), panel);
gtk_menu_shell_append (GTK_MENU_SHELL (panel->priv->shutdown_menu), menu_item);
} else if (get_show_restart_buttons (panel)) {
if (can_suspend ()) {
@@ -982,6 +984,17 @@ gdm_greeter_panel_class_init (GdmGreeter
FALSE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+ signals [DISCONNECTED] =
+ g_signal_new ("disconnected",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GdmGreeterPanelClass, disconnected),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
g_type_class_add_private (klass, sizeof (GdmGreeterPanelPrivate));
}
Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-panel.h
===================================================================
--- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-panel.h
+++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-panel.h
@@ -53,6 +53,7 @@ typedef struct
void (* session_selected) (GdmGreeterPanel *panel,
const char *text);
+ void (* disconnected) (GdmGreeterPanel *panel);
} GdmGreeterPanelClass;
GType gdm_greeter_panel_get_type (void);
Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-session.c
===================================================================
--- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-session.c
+++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-session.c
@@ -296,8 +296,7 @@ on_cancelled (GdmGreeterLoginWindow *log
}
static void
-on_disconnected (GdmGreeterLoginWindow *login_window,
- GdmGreeterSession *session)
+on_disconnected (GdmGreeterSession *session)
{
gdm_greeter_client_call_disconnect (session->priv->client);
}
@@ -380,6 +379,11 @@ toggle_panel (GdmGreeterSession *session
G_CALLBACK (on_select_session),
session);
+ g_signal_connect_swapped (session->priv->panel,
+ "disconnected",
+ G_CALLBACK (on_disconnected),
+ session);
+
gtk_widget_show (session->priv->panel);
} else {
gtk_widget_destroy (session->priv->panel);
@@ -427,10 +431,6 @@ toggle_login_window (GdmGreeterSession *
G_CALLBACK (on_cancelled),
session);
g_signal_connect (session->priv->login_window,
- "disconnected",
- G_CALLBACK (on_disconnected),
- session);
- g_signal_connect (session->priv->login_window,
"start-session",
G_CALLBACK (on_start_session),
session);
Index: gdm-2.32.0/daemon/gdm-simple-slave.c
===================================================================
--- gdm-2.32.0.orig/daemon/gdm-simple-slave.c
+++ gdm-2.32.0/daemon/gdm-simple-slave.c
@@ -921,6 +921,23 @@ on_greeter_connected (GdmGreeterServer *
}
static void
+on_greeter_disconnected (GdmGreeterServer *greeter_server,
+ GdmSimpleSlave *slave)
+{
+ gboolean display_is_local;
+
+ g_debug ("GdmSimpleSlave: Greeter disconnected");
+
+ g_object_get (slave,
+ "display-is-local", &display_is_local,
+ NULL);
+
+ if ( ! display_is_local) {
+ gdm_slave_stopped (GDM_SLAVE (slave));
+ }
+}
+
+static void
on_start_session_when_ready (GdmGreeterServer *session,
GdmSimpleSlave *slave)
{
@@ -1116,6 +1133,10 @@ start_greeter (GdmSimpleSlave *slave)
G_CALLBACK (on_greeter_connected),
slave);
g_signal_connect (slave->priv->greeter_server,
+ "disconnected",
+ G_CALLBACK (on_greeter_disconnected),
+ slave);
+ g_signal_connect (slave->priv->greeter_server,
"cancelled",
G_CALLBACK (on_greeter_cancel),
slave);

View File

@ -1,3 +1,88 @@
-------------------------------------------------------------------
Tue Apr 12 10:08:18 UTC 2011 - fcrozat@novell.com
- Remove BuildRequires on gnome-panel-devel (not relevant with 3.0)
-------------------------------------------------------------------
Tue Apr 5 13:35:10 UTC 2011 - fcrozat@novell.com
- Update to version 3.0.0:
+ Updated translations.
-------------------------------------------------------------------
Tue Mar 29 14:15:29 UTC 2011 - fcrozat@novell.com
- Update to version 2.91.94:
+ Warp pointer to convenient place at start up
+ Fix crash with autologin
+ Don't show empty names in user list
+ Add a gdm session file for gnome-session to use
+ Fix fuzzy icon in greeter
+ Drop faces images
+ Updated translations
- Changes from version 2.91.93:
+ Fall back to username in user list if user doesn't have real
name configured.
+ Be more robust against unexpected changes from accounts
service
+ Move some custom widgets to builder file out of source code.
+ Load accounts settings before showing session selector.
+ Fix crash for passwordless login
+ other misc fixes
- Changes from version 2.91.92:
+ dconf overrides db generation clean ups
+ ensure accounts service account is loaded before login
+ slightly change hue of fg color
+ maintain worker environment solely in PAM
- Changes from to version 2.91.91:
+ Fix bug that some times prevent user list from coming up
- Changes from version 2.91.90:
+ Make better use of iso-codes
+ Fix g-s-d lockdown
+ Set SIGPIPE to default before starting session
+ Fix disconnect button for XDMCP connections
+ GTK 3 fixes
+ Add back session chooser
+ Move greeter to accounts service library
+ Update dconf defaults to reflect new schema names
- Changes from version 2.91.6:
+ Add dconf profile
+ Move to gtk3
+ Apply a thick layer of gnome 3 textured paint
+ Move from ~/.dmrc to accounts service
+ Be more robust against missing icons
- Changes from version 2.91.4:
+ Omit version in login window if unknown
+ Fix version display when release file is empty
+ User manager async fixes
+ Add greeter specific dconf database for lockdown
+ XDMCP/ipv6 fix
+ Fix to make sure PostSession is always called when appropriate
+ Only automatically login on boot when autologin is enabled,
not after logout
+ Enable braille reader support when screenreading is enabled
+ Beep when login window is ready
+ Make beeps audible by enable event sounds
- Remove patch gdm-autologin-once.patch, merged upstream
- Add dconf, gnome-session-core, libattr-devel,
pkgconfig(accountsservice) BuildRequires.
- Drop gdm-focus-user-chooser.patch: fixed upstream
- Drop gdm-xdmcp-disconnect.patch: fixed upstream
- Drop gdm-autologin-once.patch: fixed upstream
- Remove dependency on gnome-themes, not needed anymore.
- Remove gnome-applets-gdm package and obsoletes/provides it
- Adapt gnome-settings-daemon directory path in configure call.
- Disable gdm-greeter-greater-ui.patch: needs rebase, patch might
not be relevant with GNOME3 anymore.
- Rebase patches:
+ gdm-desktop-session-env-pam.patch
+ gdm-helper-directory.patch
+ gdm-passwordless-login.patch
+ gdm-plymouth.patch
+ gdm-selecting-desktop-environment.patch
+ gdm-vt-allocation-hack.patch
+ gdm-xdmcp-disconnect.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Feb 15 13:31:41 CET 2011 - vuntz@opensuse.org Tue Feb 15 13:31:41 CET 2011 - vuntz@opensuse.org

View File

@ -20,13 +20,16 @@
Name: gdm Name: gdm
BuildRequires: check-devel BuildRequires: check-devel
#needed for directory ownership
BuildRequires: dconf
BuildRequires: gnome-session-core
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: gconf2-devel BuildRequires: gconf2-devel
BuildRequires: gnome-doc-utils-devel BuildRequires: gnome-doc-utils-devel
BuildRequires: gnome-panel-devel
BuildRequires: gnome-patch-translation BuildRequires: gnome-patch-translation
BuildRequires: intltool BuildRequires: intltool
BuildRequires: iso-codes-devel BuildRequires: iso-codes-devel
BuildRequires: libattr-devel
BuildRequires: libcanberra-devel BuildRequires: libcanberra-devel
BuildRequires: libselinux-devel BuildRequires: libselinux-devel
BuildRequires: libupower-glib-devel BuildRequires: libupower-glib-devel
@ -39,10 +42,11 @@ BuildRequires: update-desktop-files
BuildRequires: xorg-x11-server BuildRequires: xorg-x11-server
BuildRequires: xorg-x11-server-extra BuildRequires: xorg-x11-server-extra
BuildRequires: zenity BuildRequires: zenity
BuildRequires: pkgconfig(accountsservice)
License: GPLv2+ License: GPLv2+
Group: System/GUI/GNOME Group: System/GUI/GNOME
Version: 2.32.0 Version: 3.0.0
Release: 11 Release: 1
Summary: The GNOME Display Manager Summary: The GNOME Display Manager
Source: %{name}-%{version}.tar.bz2 Source: %{name}-%{version}.tar.bz2
Source1: gdm.pamd Source1: gdm.pamd
@ -57,8 +61,6 @@ Patch2: gdm-helper-directory.patch
Patch3: gdm-is-not-unstable-unless.patch Patch3: gdm-is-not-unstable-unless.patch
# PATCH-FIX-UPSTREAM gdm-vt-allocation-hack.patch bgo511168 hpj@novell.com -- Needed for user switching # PATCH-FIX-UPSTREAM gdm-vt-allocation-hack.patch bgo511168 hpj@novell.com -- Needed for user switching
Patch4: gdm-vt-allocation-hack.patch Patch4: gdm-vt-allocation-hack.patch
# PATCH-FIX-UPSTREAM gdm-focus-user-chooser.patch bgo#629310 bnc#652938 vuntz@opensuse.org -- Correctly give the focus to the user chooser on startup
Patch5: gdm-focus-user-chooser.patch
# PATCH-FIX-OPENSUSE gdm-desktop-session-env-pam.patch bnc427744 vuntz@novell.com -- Sets a PAM environment variable to let the pam gnome-keyring module know which session is started # PATCH-FIX-OPENSUSE gdm-desktop-session-env-pam.patch bnc427744 vuntz@novell.com -- Sets a PAM environment variable to let the pam gnome-keyring module know which session is started
Patch6: gdm-desktop-session-env-pam.patch Patch6: gdm-desktop-session-env-pam.patch
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts # PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
@ -69,9 +71,7 @@ Patch8: gdm-sysconfig-settings.patch
Patch9: gdm-passwordless-login.patch Patch9: gdm-passwordless-login.patch
# PATCH-NEEDS-REBASE gdm-domain-logon.patch hpj@novell.com -- Add UI to log in a specific domain (was: PATCH_FEATURE-SLED bnc#627575) # PATCH-NEEDS-REBASE gdm-domain-logon.patch hpj@novell.com -- Add UI to log in a specific domain (was: PATCH_FEATURE-SLED bnc#627575)
Patch10: gdm-domain-logon.patch Patch10: gdm-domain-logon.patch
# PATCH-FIX-UPSTREAM gdm-xdmcp-disconnect.patch vuntz@opensuse.org -- Make XDMCP disconnect work, taken from git. # PATCH-NEEDS-REBASE 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)
Patch11: gdm-xdmcp-disconnect.patch
# PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch)
Patch15: gdm-greeter-greater-ui.patch Patch15: gdm-greeter-greater-ui.patch
# PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations. # PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations.
Patch18: gdm-always-reflect-keyboard-layout.patch Patch18: gdm-always-reflect-keyboard-layout.patch
@ -83,8 +83,6 @@ Patch31: gdm-gconf-path.patch
Patch34: gdm-default-wm.patch Patch34: gdm-default-wm.patch
# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bgo555464 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to localhost for local logins to avoid issues in the session in case the hostname changes # PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bgo555464 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to localhost for local logins to avoid issues in the session in case the hostname changes
Patch35: gdm-xauthlocalhostname.patch Patch35: gdm-xauthlocalhostname.patch
# PATCH-FIX-UPSTREAM gdm-autologin-once.patch bgo587606 vuntz@novell.com -- Make autologin work only once
Patch37: gdm-autologin-once.patch
# PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 vuntz@opensuse.org -- Look at the current runlevel before managing the display again, so we don't do this when shutting down or rebooting # PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 vuntz@opensuse.org -- Look at the current runlevel before managing the display again, so we don't do this when shutting down or rebooting
Patch40: gdm-look-at-runlevel.patch Patch40: gdm-look-at-runlevel.patch
# PATCH-FIX-OPENSUSE gdm-selinux.patch -- Small changes to make it compile fine with SELinux # PATCH-FIX-OPENSUSE gdm-selinux.patch -- Small changes to make it compile fine with SELinux
@ -94,10 +92,11 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
DocDir: %{_defaultdocdir} DocDir: %{_defaultdocdir}
Provides: gdm2 = %{version} Provides: gdm2 = %{version}
Obsoletes: gdm2 < %{version} Obsoletes: gdm2 < %{version}
Obsoletes: gnome-applets-gdm < %{version}
Provides: gnome-applets-gdm = %{version}
Requires: %{name}-branding Requires: %{name}-branding
Requires: ConsoleKit-x11 Requires: ConsoleKit-x11
Requires: gnome-session-core Requires: gnome-session-core
Requires: gnome-themes
Requires: klogd Requires: klogd
Requires: xorg-x11-server-extra Requires: xorg-x11-server-extra
# For groupadd, useradd, usermod # For groupadd, useradd, usermod
@ -133,42 +132,29 @@ suited for the GNOME Desktop. GDM is a flexible X Window System
display manager that has many options, is usable for remote login, and display manager that has many options, is usable for remote login, and
provides a good looking graphical interface. provides a good looking graphical interface.
%package -n gnome-applets-gdm
License: GPLv2+
Summary: Switch User Panel Applet
Group: System/GUI/GNOME
Supplements: packageand(%{name}:gnome-panel)
Provides: fast-user-switch-applet = 2.22.0
Obsoletes: fast-user-switch-applet <= 2.22.0
%description -n gnome-applets-gdm
This package provides the switch user panel applet, that uses GDM,
the GNOME display manager.
%lang_package %lang_package
%prep %prep
%setup -q %setup -q
translation-update-upstream translation-update-upstream
#disabled, needed for patch15
#gnome-patch-translation-prepare #gnome-patch-translation-prepare
%patch0 -p1 %patch0 -p1
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1 %patch3 -p1
%patch4 -p1 %patch4 -p1
%patch5 -p1
%patch6 -p1 %patch6 -p1
%patch7 -p1 %patch7 -p1
%patch8 -p1 %patch8 -p1
%patch9 -p1 %patch9 -p1
#%patch10 -p1 #%patch10 -p1
%patch11 -p1 # needs rebase (or dropped)
%patch15 -p1 ##%patch15 -p1
%patch18 -p1 %patch18 -p1
%patch20 -p1 %patch20 -p1
%patch31 -p1 %patch31 -p1
%patch34 -p1 %patch34 -p1
%patch35 -p0 %patch35 -p0
%patch37 -p1
%patch40 -p1 %patch40 -p1
%patch60 %patch60
#gnome-patch-translation-update #gnome-patch-translation-update
@ -177,16 +163,16 @@ translation-update-upstream
libtoolize -f -i libtoolize -f -i
autoreconf -f -i autoreconf -f -i
%configure\ %configure\
--libexecdir=%{_prefix}/lib/gdm \ --libexecdir=%{_prefix}/lib/gdm \
--localstatedir=%{_localstatedir} \ --localstatedir=%{_localstatedir} \
--with-at-spi-registryd-directory=%{_libexecdir}/at-spi \ --with-at-spi-registryd-directory=%{_libexecdir}/at-spi \
--with-gnome-settings-daemon-directory=%{_libexecdir}/gnome-settings-daemon \ --with-gnome-settings-daemon-directory=%{_libexecdir}/gnome-settings-daemon-3.0 \
--with-consolekit-directory=%{_libexecdir}/ConsoleKit \ --with-consolekit-directory=%{_libexecdir}/ConsoleKit \
--with-polkit-gnome-directory=%{_libexecdir}/polkit-gnome \ --with-polkit-gnome-directory=%{_libexecdir}/polkit-gnome \
--with-selinux \ --with-selinux \
--enable-ipv6\ --enable-ipv6 \
--disable-scrollkeeper --disable-scrollkeeper
%__make %{?jobs:-j%jobs} %__make %{?jobs:-j%jobs} V=1
%install %install
%makeinstall %makeinstall
@ -267,11 +253,10 @@ fi
%{_bindir}/* %{_bindir}/*
%{_datadir}/gdm/ %{_datadir}/gdm/
%{_datadir}/pixmaps/*.png %{_datadir}/pixmaps/*.png
%{_datadir}/pixmaps/faces
%{_datadir}/icons/*/*/*/*.* %{_datadir}/icons/*/*/*/*.*
%{_datadir}/gnome-session/sessions/gdm.session
%dir %{_libexecdir}/gdm %dir %{_libexecdir}/gdm
%{_libexecdir}/gdm/gdm-* %{_libexecdir}/gdm/gdm-*
%exclude %{_libexecdir}/gdm/gdm-user-switch-applet
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm
%ghost %attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm %ghost %attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm
%attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm %attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm
@ -281,17 +266,13 @@ fi
%dir %{_localstatedir}/cache/gdm %dir %{_localstatedir}/cache/gdm
%config /etc/pam.d/* %config /etc/pam.d/*
%config %{_sysconfdir}/dbus-1/system.d/gdm.conf %config %{_sysconfdir}/dbus-1/system.d/gdm.conf
%{_sysconfdir}/dconf/db/gdm
%{_sysconfdir}/dconf/profile/gdm
%files branding-upstream %files branding-upstream
%defattr(-,root,root) %defattr(-,root,root)
%config(noreplace) %{_sysconfdir}/gdm/custom.conf %config(noreplace) %{_sysconfdir}/gdm/custom.conf
%files -n gnome-applets-gdm
%defattr(-,root,root)
%{_libexecdir}/gdm/gdm-user-switch-applet
%{_libdir}/bonobo/servers/GNOME_FastUserSwitchApplet.server
%{_datadir}/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml
%files lang -f %{name}.lang %files lang -f %{name}.lang
%changelog %changelog