From bb0e7932afef8ca503b2752c91ab6e66864ba591 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 6 Apr 2010 15:09:31 +0000 Subject: [PATCH] - Update plymouth patch to work with 0.8.1 --- fix-boot.patch | 233 --------------------------------- gdm.spec | 7 +- plymouth.patch | 343 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 347 insertions(+), 236 deletions(-) delete mode 100644 fix-boot.patch diff --git a/fix-boot.patch b/fix-boot.patch deleted file mode 100644 index b94eec1..0000000 --- a/fix-boot.patch +++ /dev/null @@ -1,233 +0,0 @@ - -diff -up gdm-2.29.5/daemon/gdm-simple-slave.c.fix-boot gdm-2.29.5/daemon/gdm-simple-slave.c ---- gdm-2.29.5/daemon/gdm-simple-slave.c.fix-boot 2010-01-26 17:34:33.980834884 -0500 -+++ gdm-2.29.5/daemon/gdm-simple-slave.c 2010-01-26 17:34:34.027782630 -0500 -@@ -91,6 +91,7 @@ struct GdmSimpleSlavePrivate - - enum { - PROP_0, -+ FORCE_ACTIVE_VT - }; - - static void gdm_simple_slave_class_init (GdmSimpleSlaveClass *klass); -@@ -1327,11 +1328,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 -@@ -1369,7 +1372,11 @@ 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 " -@@ -1521,12 +1528,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.5/daemon/gdm-simple-slave.h.fix-boot gdm-2.29.5/daemon/gdm-simple-slave.h ---- gdm-2.29.5/daemon/gdm-simple-slave.h.fix-boot 2009-12-08 10:20:18.000000000 -0500 -+++ gdm-2.29.5/daemon/gdm-simple-slave.h 2010-01-26 17:34:34.027782630 -0500 -@@ -48,7 +48,8 @@ typedef struct - } GdmSimpleSlaveClass; - - GType gdm_simple_slave_get_type (void); --GdmSlave * gdm_simple_slave_new (const char *id); -+GdmSlave * gdm_simple_slave_new (const char *id, -+ gboolean force_active_vt); - - G_END_DECLS - -diff -up gdm-2.29.5/daemon/gdm-slave.c.fix-boot gdm-2.29.5/daemon/gdm-slave.c ---- gdm-2.29.5/daemon/gdm-slave.c.fix-boot 2010-01-26 17:34:33.777750861 -0500 -+++ gdm-2.29.5/daemon/gdm-slave.c 2010-01-26 17:46:49.256752923 -0500 -@@ -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; -@@ -1595,6 +1610,14 @@ gdm_slave_class_init (GdmSlaveClass *kla - "display is local", - 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", -diff -up gdm-2.29.5/daemon/gdm-static-display.c.fix-boot gdm-2.29.5/daemon/gdm-static-display.c ---- gdm-2.29.5/daemon/gdm-static-display.c.fix-boot 2009-12-17 09:20:42.000000000 -0500 -+++ gdm-2.29.5/daemon/gdm-static-display.c 2010-01-26 17:34:34.029750726 -0500 -@@ -86,10 +86,27 @@ gdm_static_display_remove_user_authoriza - } - - static gboolean -+triggered_to_force_display_on_active_vt (void) -+{ -+ gboolean should_force_display_on_active_vt; -+ -+ should_force_display_on_active_vt = g_file_test (GDM_SPOOL_DIR "/force-display-on-active-vt", -+ G_FILE_TEST_EXISTS); -+ g_unlink (GDM_SPOOL_DIR "/force-display-on-active-vt"); -+ -+ return should_force_display_on_active_vt; -+} -+ -+static gboolean - gdm_static_display_manage (GdmDisplay *display) - { - g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE); - -+ if (triggered_to_force_display_on_active_vt ()) { -+ g_object_set (display, "force-active-vt", TRUE, NULL); -+ } else { -+ g_object_set (display, "force-active-vt", FALSE, NULL); -+ } - GDM_DISPLAY_CLASS (gdm_static_display_parent_class)->manage (display); - - return TRUE; -diff -up gdm-2.29.5/daemon/Makefile.am.fix-boot gdm-2.29.5/daemon/Makefile.am ---- gdm-2.29.5/daemon/Makefile.am.fix-boot 2010-01-12 15:30:45.000000000 -0500 -+++ gdm-2.29.5/daemon/Makefile.am 2010-01-26 17:34:34.029750726 -0500 -@@ -14,6 +14,7 @@ AM_CPPFLAGS = \ - -DLOGDIR=\"$(logdir)\" \ - -DSBINDIR=\"$(sbindir)\" \ - -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ -+ -DGDM_SPOOL_DIR=\"/var/spool/gdm\" \ - -DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\" \ - -DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \ - -DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \ -diff -up gdm-2.29.5/daemon/simple-slave-main.c.fix-boot gdm-2.29.5/daemon/simple-slave-main.c ---- gdm-2.29.5/daemon/simple-slave-main.c.fix-boot 2010-01-12 11:36:37.000000000 -0500 -+++ gdm-2.29.5/daemon/simple-slave-main.c 2010-01-26 17:34:34.029750726 -0500 -@@ -178,9 +178,11 @@ main (int argc, - DBusGConnection *connection; - GdmSlave *slave; - static char *display_id = NULL; -+ static gboolean force_active_vt = FALSE; - GdmSignalHandler *signal_handler; - static GOptionEntry entries [] = { - { "display-id", 0, 0, G_OPTION_ARG_STRING, &display_id, N_("Display ID"), N_("ID") }, -+ { "force-active-vt", 0, 0, G_OPTION_ARG_NONE, &force_active_vt, N_("Force X to start on active vt"), NULL }, - { NULL } - }; - -@@ -248,7 +250,7 @@ main (int argc, - gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL); - gdm_signal_handler_add (signal_handler, SIGUSR2, signal_cb, NULL); - -- slave = gdm_simple_slave_new (display_id); -+ slave = gdm_simple_slave_new (display_id, force_active_vt); - if (slave == NULL) { - goto out; - } -diff -up gdm-2.29.5/data/Makefile.am.fix-boot gdm-2.29.5/data/Makefile.am ---- gdm-2.29.5/data/Makefile.am.fix-boot 2010-01-13 09:44:40.000000000 -0500 -+++ gdm-2.29.5/data/Makefile.am 2010-01-26 17:34:34.030752200 -0500 -@@ -13,6 +13,7 @@ predir = $(gdmconfdir)/PreSession - postlogindir = $(gdmconfdir)/PostLogin - workingdir = $(GDM_WORKING_DIR) - xauthdir = $(GDM_XAUTH_DIR) -+spooldir = "/var/spool/gdm" - screenshotdir = $(GDM_SCREENSHOT_DIR) - cachedir = $(localstatedir)/cache/gdm - -@@ -129,6 +130,7 @@ uninstall-hook: - $(DESTDIR)$(workingdir)/.gconf.mandatory \ - $(DESTDIR)$(screenshotdir) \ - $(DESTDIR)$(xauthdir) -+ $(DESTDIR)$(spooldir) - - install-data-hook: gdm.conf-custom Xsession Init PostSession PreSession gconf.path - if test '!' -d $(DESTDIR)$(gdmconfdir); then \ -@@ -221,6 +223,11 @@ install-data-hook: gdm.conf-custom Xsess - chmod 1770 $(DESTDIR)$(workingdir); \ - chown root:gdm $(DESTDIR)$(workingdir) || : ; \ - fi -+ if test '!' -d $(DESTDIR)$(spooldir); then \ -+ $(mkinstalldirs) $(DESTDIR)$(spooldir); \ -+ chmod 775 $(DESTDIR)$(spooldir); \ -+ chown root:gdm $(DESTDIR)$(spooldir) || : ; \ -+ fi - - if test '!' -d $(DESTDIR)$(cachedir); then \ - $(mkinstalldirs) $(DESTDIR)$(cachedir); \ diff --git a/gdm.spec b/gdm.spec index 7c11b27..79f91e4 100644 --- a/gdm.spec +++ b/gdm.spec @@ -15,7 +15,7 @@ Summary: The GNOME Display Manager Name: gdm Version: 2.30.0 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 License: GPLv2+ Group: User Interface/X @@ -96,7 +96,6 @@ Patch96: gdm-multistack.patch Patch97: gdm-bubble-location.patch Patch98: tray-padding.patch Patch99: gdm-2.23.1-fedora-logo.patch -Patch100: fix-boot.patch Patch101: gdm-libs.patch @@ -140,7 +139,6 @@ The GDM fingerprint plugin provides functionality necessary to use a fingerprint %patch97 -p1 -b .bubble-location %patch98 -p1 -b .tray-padding %patch99 -p1 -b .fedora-logo -%patch100 -p1 -b .fix-boot %patch101 -p1 -b .libs autoreconf -i -f @@ -396,6 +394,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor >&/dev/ull || : %{_libdir}/gdm/simple-greeter/plugins/fingerprint.so %changelog +* Tue Apr 06 2010 Ray Strode 2.30.0-2 +- Update plymouth patch to work with 0.8.1 + * Mon Mar 29 2010 Matthias Clasen 2.30.0-1 - Update to 2.30.0 diff --git a/plymouth.patch b/plymouth.patch index 9660a2e..0658664 100644 --- a/plymouth.patch +++ b/plymouth.patch @@ -392,3 +392,346 @@ index 66d1c77..4703537 100644 -- 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 - Directory to spool events from other processes ++dnl --------------------------------------------------------------------------- ++ ++AC_ARG_WITH(spool-dir, ++ AS_HELP_STRING([--with-spool-dir=], ++ [spool directory])) ++ ++if ! test -z "$with_spool_dir"; then ++ GDM_SPOOL_DIR=$with_spool_dir ++else ++ GDM_SPOOL_DIR=${localstatedir}/spool/gdm ++fi ++ ++AC_SUBST(GDM_SPOOL_DIR) ++ ++ ++dnl --------------------------------------------------------------------------- + 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 +@@ -65,7 +65,9 @@ struct GdmDisplayPrivate + gsize x11_cookie_size; + GdmDisplayAccessFile *access_file; + +- gboolean is_local; ++ guint is_local : 1; ++ guint force_active_vt : 1; ++ + guint finish_idle_id; + + GdmSlaveProxy *slave_proxy; +@@ -84,6 +86,7 @@ enum { + PROP_X11_COOKIE, + PROP_X11_AUTHORITY_FILE, + PROP_IS_LOCAL, ++ PROP_FORCE_ACTIVE_VT, + PROP_SLAVE_COMMAND, + }; + +@@ -574,9 +577,10 @@ gdm_display_real_prepare (GdmDisplay *di + gdm_slave_proxy_set_log_path (display->priv->slave_proxy, log_path); + g_free (log_path); + +- command = g_strdup_printf ("%s --display-id %s", ++ command = g_strdup_printf ("%s --display-id %s %s", + display->priv->slave_command, +- display->priv->id); ++ display->priv->id, ++ display->priv->force_active_vt? "--force-active-vt" : ""); + gdm_slave_proxy_set_command (display->priv->slave_proxy, command); + g_free (command); + +@@ -824,6 +828,13 @@ _gdm_display_set_is_local (GdmDisplay + } + + static void ++_gdm_display_set_force_active_vt (GdmDisplay *display, ++ gboolean force_active_vt) ++{ ++ display->priv->force_active_vt = force_active_vt; ++} ++ ++static void + _gdm_display_set_slave_command (GdmDisplay *display, + const char *command) + { +@@ -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; ++ case PROP_FORCE_ACTIVE_VT: ++ _gdm_display_set_force_active_vt (self, g_value_get_boolean (value)); ++ break; + 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 + case PROP_IS_LOCAL: + g_value_set_boolean (value, self->priv->is_local); + break; ++ case PROP_FORCE_ACTIVE_VT: ++ g_value_set_boolean (value, self->priv->force_active_vt); ++ break; + case PROP_SLAVE_COMMAND: + g_value_set_string (value, self->priv->slave_command); + break; +@@ -1084,6 +1101,13 @@ gdm_display_class_init (GdmDisplayClass + NULL, + TRUE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); ++ g_object_class_install_property (object_class, ++ PROP_FORCE_ACTIVE_VT, ++ g_param_spec_boolean ("force-active-vt", ++ NULL, ++ NULL, ++ FALSE, ++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + 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 +@@ -48,7 +48,8 @@ typedef struct + } GdmSimpleSlaveClass; + + GType gdm_simple_slave_get_type (void); +-GdmSlave * gdm_simple_slave_new (const char *id); ++GdmSlave * gdm_simple_slave_new (const char *id, ++ gboolean force_active_vt); + + 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 +@@ -86,10 +86,27 @@ gdm_static_display_remove_user_authoriza + } + + static gboolean ++triggered_to_force_display_on_active_vt (void) ++{ ++ gboolean should_force_display_on_active_vt; ++ ++ should_force_display_on_active_vt = g_file_test (GDM_SPOOL_DIR "/force-display-on-active-vt", ++ G_FILE_TEST_EXISTS); ++ g_unlink (GDM_SPOOL_DIR "/force-display-on-active-vt"); ++ ++ return should_force_display_on_active_vt; ++} ++ ++static gboolean + gdm_static_display_manage (GdmDisplay *display) + { + g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE); + ++ if (triggered_to_force_display_on_active_vt ()) { ++ g_object_set (display, "force-active-vt", TRUE, NULL); ++ } else { ++ g_object_set (display, "force-active-vt", FALSE, NULL); ++ } + 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 = \ + -DLOGDIR=\"$(logdir)\" \ + -DSBINDIR=\"$(sbindir)\" \ + -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ ++ -DGDM_SPOOL_DIR=\"$(GDM_SPOOL_DIR)\" \ + -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, + DBusGConnection *connection; + GdmSlave *slave; + static char *display_id = NULL; ++ static gboolean force_active_vt = FALSE; + GdmSignalHandler *signal_handler; + static GOptionEntry entries [] = { + { "display-id", 0, 0, G_OPTION_ARG_STRING, &display_id, N_("Display ID"), N_("ID") }, ++ { "force-active-vt", 0, 0, G_OPTION_ARG_NONE, &force_active_vt, N_("Force X to start on active vt"), NULL }, + { NULL } + }; + +@@ -248,7 +250,7 @@ main (int argc, + gdm_signal_handler_add (signal_handler, SIGUSR1, signal_cb, NULL); + gdm_signal_handler_add (signal_handler, SIGUSR2, signal_cb, NULL); + +- slave = gdm_simple_slave_new (display_id); ++ slave = gdm_simple_slave_new (display_id, force_active_vt); + 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 + postlogindir = $(gdmconfdir)/PostLogin + workingdir = $(GDM_WORKING_DIR) + xauthdir = $(GDM_XAUTH_DIR) ++spooldir = $(GDM_SPOOL_DIR) + screenshotdir = $(GDM_SCREENSHOT_DIR) + cachedir = $(localstatedir)/cache/gdm + +@@ -129,6 +130,7 @@ uninstall-hook: + $(DESTDIR)$(workingdir)/.gconf.mandatory \ + $(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 + chown root:gdm $(DESTDIR)$(cachedir) || : ; \ + fi + ++ if test '!' -d $(DESTDIR)$(spooldir); then \ ++ $(mkinstalldirs) $(DESTDIR)$(spooldir); \ ++ chmod 775 $(DESTDIR)$(spooldir); \ ++ chown root:gdm $(DESTDIR)$(spooldir) || : ; \ ++ fi ++ + $(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 +