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.23.92/daemon/gdm-session-worker.c
@@ -1926,11 +1926,28 @@ static void
--- gdm-2.91.6.orig/daemon/gdm-session-worker.c
+++ gdm-2.91.6/daemon/gdm-session-worker.c
@@ -2163,11 +2163,28 @@ static void
gdm_session_worker_set_session_name (GdmSessionWorker *worker,
const char *session_name)
{
@ -31,7 +31,7 @@ Index: gdm-2.23.92/daemon/gdm-session-worker.c
on_set_session_name (GdmSessionWorker *worker,
DBusMessage *message)
{
@@ -1953,6 +1970,28 @@ on_set_session_name (GdmSessionWorker *w
@@ -2190,6 +2207,28 @@ on_set_session_name (GdmSessionWorker *w
}
static void
@ -60,8 +60,8 @@ Index: gdm-2.23.92/daemon/gdm-session-worker.c
gdm_session_worker_set_language_name (GdmSessionWorker *worker,
const char *language_name)
{
@@ -2527,6 +2566,8 @@ worker_dbus_handle_message (DBusConnecti
on_set_layout_name (worker, message);
@@ -2761,6 +2800,8 @@ worker_dbus_handle_message (DBusConnecti
on_set_language_name (worker, message);
} else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetSessionName")) {
on_set_session_name (worker, message);
+ } 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 {
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.23.92/daemon/gdm-session-direct.c
@@ -115,6 +115,8 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirec
--- gdm-2.91.6.orig/daemon/gdm-session-direct.c
+++ gdm-2.91.6/daemon/gdm-session-direct.c
@@ -120,6 +120,8 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirec
G_IMPLEMENT_INTERFACE (GDM_TYPE_SESSION,
gdm_session_iface_init))
@ -82,7 +82,7 @@ Index: gdm-2.23.92/daemon/gdm-session-direct.c
static gboolean
send_dbus_message (DBusConnection *connection,
DBusMessage *message)
@@ -668,12 +670,16 @@ get_default_session_name (GdmSessionDire
@@ -707,10 +709,14 @@ get_default_session_name (GdmSessionDire
static void
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),
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),
get_default_session_name (session));
+ send_dbus_string_signal (impl, "SetDefaultSessionName",
@ -99,7 +97,7 @@ Index: gdm-2.23.92/daemon/gdm-session-direct.c
}
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,
get_default_session_name (session)) != 0) {
@ -116,7 +114,7 @@ Index: gdm-2.23.92/daemon/gdm-session-direct.c
}
out:
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"
" <arg name=\"session_name\" type=\"s\"/>\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.29.4/configure.ac
@@ -990,6 +990,30 @@ fi
--- gdm-2.91.6.orig/configure.ac
+++ gdm-2.91.6/configure.ac
@@ -1006,6 +1006,30 @@ fi
AC_SUBST(GDM_CUSTOM_CONF)
AC_SUBST(GDM_OLD_CONF, '${gdmconfdir}/gdm.conf')
@ -33,7 +33,7 @@ Index: gdm-2.29.4/configure.ac
dnl ---------------------------------------------------------------------------
dnl - Check for XEvIE extension support
dnl ---------------------------------------------------------------------------
@@ -1417,6 +1441,9 @@ echo "
@@ -1449,6 +1473,9 @@ echo "
dmconfdir: ${dmconfdir}
localstatedir: ${localstatedir}
datadir: ${datadir}
@ -43,11 +43,11 @@ Index: gdm-2.29.4/configure.ac
source code location: ${srcdir}
compiler: ${CC}
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.29.4/daemon/Makefile.am
@@ -18,6 +18,7 @@ AM_CPPFLAGS = \
--- gdm-2.91.6.orig/daemon/Makefile.am
+++ gdm-2.91.6/daemon/Makefile.am
@@ -20,6 +20,7 @@ AM_CPPFLAGS = \
-DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
-DGDM_SESSION_DEFAULT_PATH=\"$(GDM_SESSION_DEFAULT_PATH)\" \
@ -55,11 +55,11 @@ Index: gdm-2.29.4/daemon/Makefile.am
$(DISABLE_DEPRECATED_CFLAGS) \
$(DAEMON_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.29.4/daemon/gdm-server.c
@@ -127,7 +127,7 @@ _gdm_server_query_ck_for_display_device
--- gdm-2.91.6.orig/daemon/gdm-server.c
+++ gdm-2.91.6/daemon/gdm-server.c
@@ -134,7 +134,7 @@ _gdm_server_query_ck_for_display_device
g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
error = NULL;
@ -68,10 +68,10 @@ Index: gdm-2.29.4/daemon/gdm-server.c
server->priv->display_name);
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.29.4/data/greeter-autostart/Makefile.am
--- gdm-2.91.6.orig/data/greeter-autostart/Makefile.am
+++ gdm-2.91.6/data/greeter-autostart/Makefile.am
@@ -5,7 +5,9 @@ edit = sed \
-e 's|@SYSCONFDIR[@]|$(sysconfdir)|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
$(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.29.4/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.91.6/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
@@ -1,8 +1,8 @@
[Desktop Entry]
Type=Application
_Name=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
+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;
X-GNOME-Autostart-Phase=Initialization
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.29.4/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.91.6/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
@@ -1,5 +1,5 @@
[Desktop Entry]
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.32.0/common/gdm-settings-system-backend.c
--- gdm-2.91.93.orig/common/gdm-settings-system-backend.c
+++ gdm-2.91.93/common/gdm-settings-system-backend.c
@@ -44,11 +44,11 @@
#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
#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 {
g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
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.32.0/common/gdm-settings-keys.h
--- gdm-2.91.93.orig/common/gdm-settings-keys.h
+++ gdm-2.91.93/common/gdm-settings-keys.h
@@ -32,6 +32,7 @@ G_BEGIN_DECLS
#define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable"
#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"
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.32.0/data/gdm.schemas.in.in
--- gdm-2.91.93.orig/data/gdm.schemas.in.in
+++ gdm-2.91.93/data/gdm.schemas.in.in
@@ -47,6 +47,12 @@
<signature>i</signature>
<default>30</default>
@ -107,10 +107,10 @@ Index: gdm-2.32.0/data/gdm.schemas.in.in
<schema>
<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.32.0/daemon/gdm-factory-slave.c
--- gdm-2.91.93.orig/daemon/gdm-factory-slave.c
+++ gdm-2.91.93/daemon/gdm-factory-slave.c
@@ -44,6 +44,9 @@
#include "gdm-common.h"
@ -139,13 +139,13 @@ Index: gdm-2.32.0/daemon/gdm-factory-slave.c
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.32.0/daemon/gdm-simple-slave.c
@@ -837,9 +837,16 @@ on_greeter_begin_verification_for_user (
const char *username,
GdmSimpleSlave *slave)
--- gdm-2.91.93.orig/daemon/gdm-simple-slave.c
+++ gdm-2.91.93/daemon/gdm-simple-slave.c
@@ -952,9 +952,15 @@ static void
on_greeter_begin_verification (GdmGreeterServer *greeter_server,
GdmSimpleSlave *slave)
{
+ gboolean passwordless;
+
@ -153,11 +153,10 @@ Index: gdm-2.32.0/daemon/gdm-simple-slave.c
+ &passwordless)) {
+ passwordless = FALSE;
+ }
+
g_debug ("GdmSimpleSlave: begin verification");
gdm_session_setup_for_user (GDM_SESSION (slave->priv->session),
- "gdm",
+ passwordless ? "gdm-autologin" : "gdm",
username);
gdm_session_setup (GDM_SESSION (slave->priv->session),
- "gdm");
+ passwordless ? "gdm-autologin" : "gdm");
}
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 +
3 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c
index 2cbb568..66d1c77 100644
--- a/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c
@@ -863,6 +863,15 @@ setup_server (GdmSimpleSlave *slave)
Index: gdm-2.91.94/daemon/gdm-simple-slave.c
===================================================================
--- gdm-2.91.94.orig/daemon/gdm-simple-slave.c
+++ gdm-2.91.94/daemon/gdm-simple-slave.c
@@ -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 */
gdm_slave_set_busy_cursor (GDM_SLAVE (slave));
+
+
+ /* The root window has a background that may be useful
+ * to cross fade or transition from when setting the
+ * 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));
+
+ /* Plymouth is waiting for the go-ahead to exit */
+ if (slave->priv->plymouth_is_running) {
+ plymouth_quit_with_transition (slave);
+ }
}
static void
diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
index e11e16c..da86f77 100644
--- a/daemon/gdm-slave.c
+++ b/daemon/gdm-slave.c
@@ -42,6 +42,7 @@
@@ -1305,6 +1387,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
@@ -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 <X11/Xlib.h> /* for Display */
+#include <X11/Xatom.h> /* for XA_PIXMAP */
#include <X11/cursorfont.h> /* for watch cursor */
#include <X11/extensions/Xrandr.h>
#include <X11/Xatom.h>
@@ -351,6 +352,77 @@ gdm_slave_run_script (GdmSlave *slave,
return ret;
@@ -87,6 +88,7 @@ struct GdmSlavePrivate
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;
@@ -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
@ -121,39 +312,71 @@ index e11e16c..da86f77 100644
void
gdm_slave_set_busy_cursor (GdmSlave *slave)
{
diff --git a/daemon/gdm-slave.h b/daemon/gdm-slave.h
index af28b00..1652457 100644
--- a/daemon/gdm-slave.h
+++ b/daemon/gdm-slave.h
@@ -74,6 +74,7 @@ gboolean gdm_slave_switch_to_user_session (GdmSlave *slave,
@@ -1531,6 +1605,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,
@@ -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_save_root_windows (GdmSlave *slave);
gboolean gdm_slave_run_script (GdmSlave *slave,
const char *dir,
const char *username);
--
1.6.5.2
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
Index: gdm-2.91.94/daemon/gdm-server.c
===================================================================
--- gdm-2.91.94.orig/daemon/gdm-server.c
+++ gdm-2.91.94/daemon/gdm-server.c
@@ -32,8 +32,11 @@
#include <pwd.h>
#include <grp.h>
@ -166,7 +389,7 @@ index ba10386..3ec21e9 100644
#ifdef HAVE_SYS_PRCTL_H
#include <sys/prctl.h>
#endif
@@ -663,6 +666,44 @@ gdm_server_spawn (GdmServer *server,
@@ -673,6 +676,44 @@ gdm_server_spawn (GdmServer *server,
return ret;
}
@ -211,10 +434,11 @@ index ba10386..3ec21e9 100644
/**
* gdm_server_start:
* @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;
}
+
+gboolean
+gdm_server_start_on_active_vt (GdmServer *server)
+{
@ -229,15 +453,14 @@ index ba10386..3ec21e9 100644
+
+ return res;
+}
+
static void
server_died (GdmServer *server)
{
diff --git a/daemon/gdm-server.h b/daemon/gdm-server.h
index 535a69a..bd6c60a 100644
--- a/daemon/gdm-server.h
+++ b/daemon/gdm-server.h
@@ -56,6 +56,7 @@ GType gdm_server_get_type (void);
Index: gdm-2.91.94/daemon/gdm-server.h
===================================================================
--- gdm-2.91.94.orig/daemon/gdm-server.h
+++ gdm-2.91.94/daemon/gdm-server.h
@@ -56,6 +56,7 @@ GType gdm_server_get_type
GdmServer * gdm_server_new (const char *display_id,
const char *auth_file);
gboolean gdm_server_start (GdmServer *server);
@ -245,157 +468,11 @@ index 535a69a..bd6c60a 100644
gboolean gdm_server_stop (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 66d1c77..4703537 100644
--- a/daemon/gdm-simple-slave.c
+++ b/daemon/gdm-simple-slave.c
@@ -84,6 +84,7 @@ struct GdmSimpleSlavePrivate
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)
Index: gdm-2.91.94/configure.ac
===================================================================
--- gdm-2.91.94.orig/configure.ac
+++ gdm-2.91.94/configure.ac
@@ -1271,6 +1271,23 @@ AC_SUBST(GDM_SCREENSHOT_DIR)
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 ---------------------------------------------------------------------------
diff -up gdm-2.29.92/daemon/gdm-display.c.force-active-vt gdm-2.29.92/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
Index: gdm-2.91.94/daemon/gdm-display.c
===================================================================
--- gdm-2.91.94.orig/daemon/gdm-display.c
+++ gdm-2.91.94/daemon/gdm-display.c
@@ -65,7 +65,9 @@ struct GdmDisplayPrivate
gsize x11_cookie_size;
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);
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
@ -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,
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:
_gdm_display_set_is_local (self, g_value_get_boolean (value));
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:
_gdm_display_set_slave_command (self, g_value_get_string (value));
break;
@@ -914,6 +928,9 @@ gdm_display_get_property (GObject
@@ -914,6 +928,9 @@ gdm_display_get_property (GObject
case PROP_IS_LOCAL:
g_value_set_boolean (value, self->priv->is_local);
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:
g_value_set_string (value, self->priv->slave_command);
break;
@@ -1084,6 +1101,13 @@ gdm_display_class_init (GdmDisplayClass
@@ -1084,6 +1101,13 @@ gdm_display_class_init (GdmDisplayClass
NULL,
TRUE,
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,
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
--- 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
@@ -89,6 +89,7 @@ struct GdmSimpleSlavePrivate
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
Index: gdm-2.91.94/daemon/gdm-simple-slave.h
===================================================================
--- gdm-2.91.94.orig/daemon/gdm-simple-slave.h
+++ gdm-2.91.94/daemon/gdm-simple-slave.h
@@ -48,7 +48,8 @@ typedef struct
} 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
diff -up gdm-2.29.92/daemon/gdm-slave.c.force-active-vt gdm-2.29.92/daemon/gdm-slave.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
@@ -84,6 +84,7 @@ struct GdmSlavePrivate
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
Index: gdm-2.91.94/daemon/gdm-static-display.c
===================================================================
--- gdm-2.91.94.orig/daemon/gdm-static-display.c
+++ gdm-2.91.94/daemon/gdm-static-display.c
@@ -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);
return TRUE;
diff -up gdm-2.29.92/daemon/Makefile.am.force-active-vt gdm-2.29.92/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
@@ -14,6 +14,7 @@ AM_CPPFLAGS = \
Index: gdm-2.91.94/daemon/Makefile.am
===================================================================
--- gdm-2.91.94.orig/daemon/Makefile.am
+++ gdm-2.91.94/daemon/Makefile.am
@@ -15,6 +15,7 @@ AM_CPPFLAGS = \
-DLOGDIR=\"$(logdir)\" \
-DSBINDIR=\"$(sbindir)\" \
-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_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-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
--- 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
@@ -178,9 +178,11 @@ main (int argc,
Index: gdm-2.91.94/daemon/simple-slave-main.c
===================================================================
--- gdm-2.91.94.orig/daemon/simple-slave-main.c
+++ gdm-2.91.94/daemon/simple-slave-main.c
@@ -177,9 +177,11 @@ main (int argc,
DBusGConnection *connection;
GdmSlave *slave;
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) {
goto out;
}
diff -up gdm-2.29.92/data/Makefile.am.force-active-vt gdm-2.29.92/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
@@ -13,6 +13,7 @@ predir = $(gdmconfdir)/PreSession
Index: gdm-2.91.94/data/Makefile.am
===================================================================
--- gdm-2.91.94.orig/data/Makefile.am
+++ gdm-2.91.94/data/Makefile.am
@@ -12,6 +12,7 @@ predir = $(gdmconfdir)/PreSession
postlogindir = $(gdmconfdir)/PostLogin
workingdir = $(GDM_WORKING_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)
cachedir = $(localstatedir)/cache/gdm
@@ -129,6 +130,7 @@ uninstall-hook:
$(DESTDIR)$(workingdir)/.gconf.mandatory \
@@ -144,6 +145,7 @@ uninstall-hook:
$(DESTDIR)$(workingdir)/.config/dconf \
$(DESTDIR)$(screenshotdir) \
$(DESTDIR)$(xauthdir)
+ $(DESTDIR)$(spooldir)
install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession gconf.path
if test '!' -d $(DESTDIR)$(gdmconfdir); then \
@@ -228,6 +230,12 @@ install-data-hook: gdm.conf-custom Xsess
-rmdir \
$(DESTDIR)$(sysconfdir)/dconf/db \
@@ -265,6 +267,12 @@ install-data-hook: gdm.conf-custom Xsess
chown root:gdm $(DESTDIR)$(cachedir) || : ; \
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
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

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.28.0/daemon/gdm-session-worker.c
@@ -157,6 +157,9 @@ typedef int (* GdmSessionWorkerPamNewMes
--- gdm-2.91.93.orig/daemon/gdm-session-worker.c
+++ gdm-2.91.93/daemon/gdm-session-worker.c
@@ -153,6 +153,8 @@ typedef int (* GdmSessionWorkerPamNewMes
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)
@@ -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,
username,
NULL);
username);
+
+
+ /* These singal handlers should be disconnected after the loading,
+ * 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),
+ worker);
+
+ g_signal_handlers_disconnect_by_func (worker->priv->user_settings,
+ G_CALLBACK (on_saved_layout_name_read),
+ worker);
}
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.32.0/daemon/gdm-server.c
@@ -27,6 +27,8 @@
--- gdm-2.91.4.orig/daemon/gdm-server.c
+++ gdm-2.91.4/daemon/gdm-server.c
@@ -27,6 +27,7 @@
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <sys/vt.h>
#include <errno.h>
#include <ctype.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;
}
@ -104,7 +103,7 @@ Index: gdm-2.32.0/daemon/gdm-server.c
char *
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) {
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

View File

@ -20,13 +20,16 @@
Name: gdm
BuildRequires: check-devel
#needed for directory ownership
BuildRequires: dconf
BuildRequires: gnome-session-core
BuildRequires: fdupes
BuildRequires: gconf2-devel
BuildRequires: gnome-doc-utils-devel
BuildRequires: gnome-panel-devel
BuildRequires: gnome-patch-translation
BuildRequires: intltool
BuildRequires: iso-codes-devel
BuildRequires: libattr-devel
BuildRequires: libcanberra-devel
BuildRequires: libselinux-devel
BuildRequires: libupower-glib-devel
@ -39,10 +42,11 @@ BuildRequires: update-desktop-files
BuildRequires: xorg-x11-server
BuildRequires: xorg-x11-server-extra
BuildRequires: zenity
BuildRequires: pkgconfig(accountsservice)
License: GPLv2+
Group: System/GUI/GNOME
Version: 2.32.0
Release: 11
Version: 3.0.0
Release: 1
Summary: The GNOME Display Manager
Source: %{name}-%{version}.tar.bz2
Source1: gdm.pamd
@ -57,8 +61,6 @@ Patch2: gdm-helper-directory.patch
Patch3: gdm-is-not-unstable-unless.patch
# PATCH-FIX-UPSTREAM gdm-vt-allocation-hack.patch bgo511168 hpj@novell.com -- Needed for user switching
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
Patch6: gdm-desktop-session-env-pam.patch
# 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
# 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
# PATCH-FIX-UPSTREAM gdm-xdmcp-disconnect.patch vuntz@opensuse.org -- Make XDMCP disconnect work, taken from git.
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)
# 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)
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.
Patch18: gdm-always-reflect-keyboard-layout.patch
@ -83,8 +83,6 @@ Patch31: gdm-gconf-path.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
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
Patch40: gdm-look-at-runlevel.patch
# 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}
Provides: gdm2 = %{version}
Obsoletes: gdm2 < %{version}
Obsoletes: gnome-applets-gdm < %{version}
Provides: gnome-applets-gdm = %{version}
Requires: %{name}-branding
Requires: ConsoleKit-x11
Requires: gnome-session-core
Requires: gnome-themes
Requires: klogd
Requires: xorg-x11-server-extra
# 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
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
%prep
%setup -q
translation-update-upstream
#disabled, needed for patch15
#gnome-patch-translation-prepare
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
#%patch10 -p1
%patch11 -p1
%patch15 -p1
# needs rebase (or dropped)
##%patch15 -p1
%patch18 -p1
%patch20 -p1
%patch31 -p1
%patch34 -p1
%patch35 -p0
%patch37 -p1
%patch40 -p1
%patch60
#gnome-patch-translation-update
@ -177,16 +163,16 @@ translation-update-upstream
libtoolize -f -i
autoreconf -f -i
%configure\
--libexecdir=%{_prefix}/lib/gdm \
--localstatedir=%{_localstatedir} \
--with-at-spi-registryd-directory=%{_libexecdir}/at-spi \
--with-gnome-settings-daemon-directory=%{_libexecdir}/gnome-settings-daemon \
--with-consolekit-directory=%{_libexecdir}/ConsoleKit \
--libexecdir=%{_prefix}/lib/gdm \
--localstatedir=%{_localstatedir} \
--with-at-spi-registryd-directory=%{_libexecdir}/at-spi \
--with-gnome-settings-daemon-directory=%{_libexecdir}/gnome-settings-daemon-3.0 \
--with-consolekit-directory=%{_libexecdir}/ConsoleKit \
--with-polkit-gnome-directory=%{_libexecdir}/polkit-gnome \
--with-selinux \
--enable-ipv6\
--disable-scrollkeeper
%__make %{?jobs:-j%jobs}
--with-selinux \
--enable-ipv6 \
--disable-scrollkeeper
%__make %{?jobs:-j%jobs} V=1
%install
%makeinstall
@ -267,11 +253,10 @@ fi
%{_bindir}/*
%{_datadir}/gdm/
%{_datadir}/pixmaps/*.png
%{_datadir}/pixmaps/faces
%{_datadir}/icons/*/*/*/*.*
%{_datadir}/gnome-session/sessions/gdm.session
%dir %{_libexecdir}/gdm
%{_libexecdir}/gdm/gdm-*
%exclude %{_libexecdir}/gdm/gdm-user-switch-applet
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm
%ghost %attr(751,gdm,gdm) %dir %{_localstatedir}/run/gdm
%attr(750,gdm,gdm) %dir %{_localstatedir}/log/gdm
@ -281,17 +266,13 @@ fi
%dir %{_localstatedir}/cache/gdm
%config /etc/pam.d/*
%config %{_sysconfdir}/dbus-1/system.d/gdm.conf
%{_sysconfdir}/dconf/db/gdm
%{_sysconfdir}/dconf/profile/gdm
%files branding-upstream
%defattr(-,root,root)
%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
%changelog