r25133 - in /desktop/unstable/gdm3/debian: TODO changelog control control.in gdm3.install patches/11_xephyr_nested.patch patches/19_configure_xserver.patch patches/20_endsession_respawn.patch patches/22_noconsole.patch patches/series
joss at users.alioth.debian.org
joss at users.alioth.debian.org
Thu Sep 16 22:43:48 UTC 2010
Author: joss
Date: Thu Sep 16 22:43:47 2010
New Revision: 25133
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=25133
Log:
* 11_xephyr_nested.patch: re-enabled.
+ Updated to apply cleanly.
+ Modified to not affect the logic of 19_configure_xserver.patch.
+ Handle the upgrade situation, where the IsNested method does not
exist on the daemon yet.
+ Don’t pass a vtX argument to nested servers.
+ Start the nested server with an authorization that is accessible
to the user that launches it. Add another authorization for
Debian-gdm later. The implication is that the parent user has
access to the nested display. Which is, well, completely
unimportant since it already owns the server process.
+ Set GDM_PARENT_{DISPLAY,XAUTHORITY} so that the keymap is set in
the nested display as well.
* Install the gdmflexiserver-xnest.desktop file.
* Recommend x11-xkb-utils for xkbcomp.
* 19_configure_xserver.patch:
+ Updated to apply cleanly.
+ Add the ability to configure the nested X server command.
* 20_endsession_respawn.patch: don’t respawn nested X servers.
* 22_noconsole.patch: refreshed.
Modified:
desktop/unstable/gdm3/debian/TODO
desktop/unstable/gdm3/debian/changelog
desktop/unstable/gdm3/debian/control
desktop/unstable/gdm3/debian/control.in
desktop/unstable/gdm3/debian/gdm3.install
desktop/unstable/gdm3/debian/patches/11_xephyr_nested.patch
desktop/unstable/gdm3/debian/patches/19_configure_xserver.patch
desktop/unstable/gdm3/debian/patches/20_endsession_respawn.patch
desktop/unstable/gdm3/debian/patches/22_noconsole.patch
desktop/unstable/gdm3/debian/patches/series
Modified: desktop/unstable/gdm3/debian/TODO
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/TODO?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/TODO [utf-8] (original)
+++ desktop/unstable/gdm3/debian/TODO [utf-8] Thu Sep 16 22:43:47 2010
@@ -1,7 +1,5 @@
-The current Xephyr patch is not usable and is disabled:
- * It is *completely* insecure - anyone can connect to the Xephyr
- server.
- * The greeter always selects the US keyboard by default.
+The current Xephyr patch still has some drawbacks.
+ * The greeter always selects the US keyboard by default, despite having
+ code that sets the variables and scripts that should do the right
+ thing.
* It proposes to reboot/shutdown instead of having an exit button.
- * Closing the Xnest window doesn’t clean it up in the GDM internal
- status.
Modified: desktop/unstable/gdm3/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/changelog?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/changelog [utf-8] (original)
+++ desktop/unstable/gdm3/debian/changelog [utf-8] Thu Sep 16 22:43:47 2010
@@ -6,6 +6,26 @@
Add to that a stripping of ::ffff: from IPv4 mapped addresses, since
this is not understood in $DISPLAY.
Closes: #579033.
+ * 11_xephyr_nested.patch: re-enabled.
+ + Updated to apply cleanly.
+ + Modified to not affect the logic of 19_configure_xserver.patch.
+ + Handle the upgrade situation, where the IsNested method does not
+ exist on the daemon yet.
+ + Don’t pass a vtX argument to nested servers.
+ + Start the nested server with an authorization that is accessible
+ to the user that launches it. Add another authorization for
+ Debian-gdm later. The implication is that the parent user has
+ access to the nested display. Which is, well, completely
+ unimportant since it already owns the server process.
+ + Set GDM_PARENT_{DISPLAY,XAUTHORITY} so that the keymap is set in
+ the nested display as well.
+ * Install the gdmflexiserver-xnest.desktop file.
+ * Recommend x11-xkb-utils for xkbcomp.
+ * 19_configure_xserver.patch:
+ + Updated to apply cleanly.
+ + Add the ability to configure the nested X server command.
+ * 20_endsession_respawn.patch: don’t respawn nested X servers.
+ * 22_noconsole.patch: refreshed.
* 14_pam_dialog.patch: show messages from PAM in a dialog so that the
user can actually see them.
Modified: desktop/unstable/gdm3/debian/control
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/control?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/control [utf-8] (original)
+++ desktop/unstable/gdm3/debian/control [utf-8] Thu Sep 16 22:43:47 2010
@@ -61,6 +61,7 @@
gconf2 (>= 2.26.2-3)
Recommends: zenity,
xserver-xephyr | xnest,
+ x11-xkb-utils,
xserver-xorg,
at-spi,
gnome-power-manager (>= 2.28),
Modified: desktop/unstable/gdm3/debian/control.in
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/control.in?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/control.in [utf-8] (original)
+++ desktop/unstable/gdm3/debian/control.in [utf-8] Thu Sep 16 22:43:47 2010
@@ -56,6 +56,7 @@
gconf2 (>= 2.26.2-3)
Recommends: zenity,
xserver-xephyr | xnest,
+ x11-xkb-utils,
xserver-xorg,
at-spi,
gnome-power-manager (>= 2.28),
Modified: desktop/unstable/gdm3/debian/gdm3.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/gdm3.install?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/gdm3.install [utf-8] (original)
+++ desktop/unstable/gdm3/debian/gdm3.install [utf-8] Thu Sep 16 22:43:47 2010
@@ -2,7 +2,7 @@
debian/moreblue-orbit-gdm.svg usr/share/images/desktop-base
debian/gdmXnestWrapper usr/share/gdm/
debian/greeter.gconf-defaults etc/gdm3
-debian/gdmflexiserver.desktop usr/share/gdm/applications
+debian/gdmflexiserver*.desktop usr/share/gdm/applications
debian/gdmflexiserver.svg usr/share/icons/hicolor/scalable/apps
debian/gdm-xnest.svg usr/share/icons/hicolor/scalable/apps
debian/gdmsetup.svg usr/share/icons/hicolor/scalable/apps
Modified: desktop/unstable/gdm3/debian/patches/11_xephyr_nested.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/11_xephyr_nested.patch?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/patches/11_xephyr_nested.patch [utf-8] (original)
+++ desktop/unstable/gdm3/debian/patches/11_xephyr_nested.patch [utf-8] Thu Sep 16 22:43:47 2010
@@ -1,17 +1,18 @@
Debian: add CreateNestedDisplay(parent_display_id) dbus method.
-Index: gdm-2.30.0/daemon/gdm-display.c
+Index: gdm-2.30.5/daemon/gdm-display.c
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-display.c 2010-04-21 19:32:53.785691730 +0200
-+++ gdm-2.30.0/daemon/gdm-display.c 2010-04-21 19:32:59.133691945 +0200
-@@ -52,6 +52,7 @@ struct GdmDisplayPrivate
+--- gdm-2.30.5.orig/daemon/gdm-display.c 2010-09-16 23:24:30.995561430 +0200
++++ gdm-2.30.5/daemon/gdm-display.c 2010-09-16 23:24:33.031566835 +0200
+@@ -52,6 +52,8 @@ struct GdmDisplayPrivate
{
char *id;
char *seat_id;
+ GdmDisplay *parent_display;
++ char *parent_display_username;
char *remote_hostname;
int x11_display_number;
-@@ -66,6 +67,7 @@ struct GdmDisplayPrivate
+@@ -66,6 +68,7 @@ struct GdmDisplayPrivate
GdmDisplayAccessFile *access_file;
gboolean is_local;
@@ -19,11 +20,12 @@
guint finish_idle_id;
GdmSlaveProxy *slave_proxy;
-@@ -78,12 +80,14 @@ enum {
+@@ -78,12 +81,15 @@ enum {
PROP_ID,
PROP_STATUS,
PROP_SEAT_ID,
+ PROP_PARENT_DISPLAY,
++ PROP_PARENT_DISPLAY_USERNAME,
PROP_REMOTE_HOSTNAME,
PROP_X11_DISPLAY_NUMBER,
PROP_X11_DISPLAY_NAME,
@@ -34,7 +36,26 @@
PROP_SLAVE_COMMAND,
};
-@@ -275,6 +279,33 @@ gdm_display_add_user_authorization (GdmD
+@@ -159,12 +165,17 @@ gdm_display_real_create_authority (GdmDi
+ GdmDisplayAccessFile *access_file;
+ GError *error;
+ gboolean res;
++ char *username;
+
+ g_return_val_if_fail (GDM_IS_DISPLAY (display), FALSE);
+ g_return_val_if_fail (display->priv->access_file == NULL, FALSE);
+
+ error = NULL;
+- access_file = _create_access_file_for_user (display, GDM_USERNAME, &error);
++ if (display->priv->is_nested && display->priv->parent_display_username)
++ username = display->priv->parent_display_username;
++ else
++ username = GDM_USERNAME;
++ access_file = _create_access_file_for_user (display, username, &error);
+
+ if (access_file == NULL) {
+ g_critical ("could not create display access file: %s", error->message);
+@@ -275,6 +286,33 @@ gdm_display_add_user_authorization (GdmD
return ret;
}
@@ -68,7 +89,7 @@
static gboolean
gdm_display_real_set_slave_bus_name (GdmDisplay *display,
const char *name,
-@@ -742,6 +773,24 @@ gdm_display_get_id (GdmDisplay *
+@@ -742,6 +780,24 @@ gdm_display_get_id (GdmDisplay *
}
gboolean
@@ -93,7 +114,7 @@
gdm_display_get_x11_display_name (GdmDisplay *display,
char **x11_display,
GError **error)
-@@ -769,6 +818,20 @@ gdm_display_is_local (GdmDisplay *displa
+@@ -769,6 +825,20 @@ gdm_display_is_local (GdmDisplay *displa
return TRUE;
}
@@ -114,7 +135,7 @@
static void
_gdm_display_set_id (GdmDisplay *display,
const char *id)
-@@ -786,6 +849,18 @@ _gdm_display_set_seat_id (GdmDisplay
+@@ -786,6 +856,26 @@ _gdm_display_set_seat_id (GdmDisplay
}
static void
@@ -127,13 +148,21 @@
+ display->priv->parent_display = parent_display;
+ if (parent_display != NULL)
+ g_object_add_weak_pointer (display, &display->priv->parent_display);
++}
++
++static void
++_gdm_display_set_parent_display_username (GdmDisplay *display,
++ const char *username)
++{
++ g_free (display->priv->parent_display_username);
++ display->priv->parent_display_username = g_strdup (username);
+}
+
+static void
_gdm_display_set_remote_hostname (GdmDisplay *display,
const char *hostname)
{
-@@ -824,6 +899,13 @@ _gdm_display_set_is_local (GdmDisplay
+@@ -824,6 +914,13 @@ _gdm_display_set_is_local (GdmDisplay
}
static void
@@ -147,17 +176,20 @@
_gdm_display_set_slave_command (GdmDisplay *display,
const char *command)
{
-@@ -845,6 +927,9 @@ gdm_display_set_property (GObject
+@@ -845,6 +942,12 @@ gdm_display_set_property (GObject
case PROP_ID:
_gdm_display_set_id (self, g_value_get_string (value));
break;
+ case PROP_PARENT_DISPLAY:
+ _gdm_display_set_parent_display (self, g_value_get_object (value));
+ break;
++ case PROP_PARENT_DISPLAY_USERNAME:
++ _gdm_display_set_parent_display_username (self, g_value_get_string (value));
++ break;
case PROP_STATUS:
_gdm_display_set_status (self, g_value_get_int (value));
break;
-@@ -866,6 +951,9 @@ gdm_display_set_property (GObject
+@@ -866,6 +969,9 @@ gdm_display_set_property (GObject
case PROP_IS_LOCAL:
_gdm_display_set_is_local (self, g_value_get_boolean (value));
break;
@@ -167,17 +199,20 @@
case PROP_SLAVE_COMMAND:
_gdm_display_set_slave_command (self, g_value_get_string (value));
break;
-@@ -889,6 +977,9 @@ gdm_display_get_property (GObject
+@@ -889,6 +995,12 @@ gdm_display_get_property (GObject
case PROP_ID:
g_value_set_string (value, self->priv->id);
break;
+ case PROP_PARENT_DISPLAY:
+ g_value_set_object (value, self->priv->parent_display);
+ break;
++ case PROP_PARENT_DISPLAY_USERNAME:
++ g_value_set_string (value, self->priv->parent_display_username);
++ break;
case PROP_STATUS:
g_value_set_int (value, self->priv->status);
break;
-@@ -914,6 +1005,9 @@ gdm_display_get_property (GObject
+@@ -914,6 +1026,9 @@ gdm_display_get_property (GObject
case PROP_IS_LOCAL:
g_value_set_boolean (value, self->priv->is_local);
break;
@@ -187,7 +222,7 @@
case PROP_SLAVE_COMMAND:
g_value_set_string (value, self->priv->slave_command);
break;
-@@ -979,6 +1073,11 @@ gdm_display_dispose (GObject *object)
+@@ -979,6 +1094,11 @@ gdm_display_dispose (GObject *object)
g_debug ("GdmDisplay: Disposing display");
@@ -199,7 +234,7 @@
if (display->priv->finish_idle_id > 0) {
g_source_remove (display->priv->finish_idle_id);
display->priv->finish_idle_id = 0;
-@@ -1032,6 +1131,15 @@ gdm_display_class_init (GdmDisplayClass
+@@ -1032,6 +1152,23 @@ gdm_display_class_init (GdmDisplayClass
"id",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
@@ -212,10 +247,18 @@
+ GDM_TYPE_DISPLAY,
+ G_PARAM_READWRITE));
+
++ g_object_class_install_property (object_class,
++ PROP_PARENT_DISPLAY_USERNAME,
++ g_param_spec_string ("parent-display-username",
++ "parent display username",
++ "parent display username",
++ NULL,
++ G_PARAM_READWRITE));
++
g_object_class_install_property (object_class,
PROP_REMOTE_HOSTNAME,
g_param_spec_string ("remote-hostname",
-@@ -1086,6 +1194,14 @@ gdm_display_class_init (GdmDisplayClass
+@@ -1086,6 +1223,14 @@ gdm_display_class_init (GdmDisplayClass
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class,
@@ -230,21 +273,22 @@
PROP_SLAVE_COMMAND,
g_param_spec_string ("slave-command",
"slave command",
-@@ -1137,6 +1253,10 @@ gdm_display_finalize (GObject *object)
+@@ -1137,6 +1282,11 @@ gdm_display_finalize (GObject *object)
g_free (display->priv->x11_cookie);
g_free (display->priv->slave_command);
+ if (display->priv->parent_display != NULL) {
+ g_object_remove_weak_pointer (display->priv->parent_display, &display->priv->parent_display);
+ }
++ g_free (display->priv->parent_display_username);
+
if (display->priv->access_file != NULL) {
g_object_unref (display->priv->access_file);
}
-Index: gdm-2.30.0/daemon/gdm-display.h
+Index: gdm-2.30.5/daemon/gdm-display.h
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-display.h 2010-04-21 19:32:53.773689506 +0200
-+++ gdm-2.30.0/daemon/gdm-display.h 2010-04-21 19:32:59.133691945 +0200
+--- gdm-2.30.5.orig/daemon/gdm-display.h 2010-09-16 23:24:30.983561161 +0200
++++ gdm-2.30.5/daemon/gdm-display.h 2010-09-16 23:24:33.031566835 +0200
@@ -102,6 +102,9 @@ gboolean gdm_display_unmanage
gboolean gdm_display_get_id (GdmDisplay *display,
char **id,
@@ -276,10 +320,10 @@
gboolean gdm_display_set_slave_bus_name (GdmDisplay *display,
const char *name,
GError **error);
-Index: gdm-2.30.0/daemon/gdm-local-display-factory.c
+Index: gdm-2.30.5/daemon/gdm-local-display-factory.c
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-local-display-factory.c 2010-04-21 19:32:53.761689237 +0200
-+++ gdm-2.30.0/daemon/gdm-local-display-factory.c 2010-04-21 19:32:59.133691945 +0200
+--- gdm-2.30.5.orig/daemon/gdm-local-display-factory.c 2010-09-16 23:24:30.971561870 +0200
++++ gdm-2.30.5/daemon/gdm-local-display-factory.c 2010-09-16 23:24:33.031566835 +0200
@@ -22,6 +22,8 @@
#include <stdlib.h>
@@ -289,7 +333,7 @@
#include <glib.h>
#include <glib/gi18n.h>
-@@ -274,6 +276,131 @@ gdm_local_display_factory_create_product
+@@ -274,6 +276,132 @@ gdm_local_display_factory_create_product
return ret;
}
@@ -384,6 +428,7 @@
+ g_object_set (display,
+ "seat-id", CK_SEAT1_PATH,
+ "parent-display", parent_display,
++ "parent-display-username", parent_username,
+ "is-nested", TRUE,
+ NULL);
+
@@ -421,10 +466,10 @@
static void
on_static_display_status_changed (GdmDisplay *display,
-Index: gdm-2.30.0/daemon/gdm-local-display-factory.h
+Index: gdm-2.30.5/daemon/gdm-local-display-factory.h
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-local-display-factory.h 2010-04-21 19:32:53.749689457 +0200
-+++ gdm-2.30.0/daemon/gdm-local-display-factory.h 2010-04-21 19:32:59.133691945 +0200
+--- gdm-2.30.5.orig/daemon/gdm-local-display-factory.h 2010-09-16 23:24:30.959563557 +0200
++++ gdm-2.30.5/daemon/gdm-local-display-factory.h 2010-09-16 23:24:33.031566835 +0200
@@ -65,6 +65,10 @@ gboolean gdm_local_dis
char **id,
GError **error);
@@ -436,10 +481,10 @@
gboolean gdm_local_display_factory_create_product_display (GdmLocalDisplayFactory *factory,
const char *parent_display_id,
const char *relay_address,
-Index: gdm-2.30.0/daemon/gdm-local-display-factory.xml
+Index: gdm-2.30.5/daemon/gdm-local-display-factory.xml
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-local-display-factory.xml 2010-04-21 19:32:53.737689677 +0200
-+++ gdm-2.30.0/daemon/gdm-local-display-factory.xml 2010-04-21 19:32:59.137689590 +0200
+--- gdm-2.30.5.orig/daemon/gdm-local-display-factory.xml 2010-09-16 23:24:30.947561821 +0200
++++ gdm-2.30.5/daemon/gdm-local-display-factory.xml 2010-09-16 23:24:33.031566835 +0200
@@ -9,5 +9,10 @@
<method name="CreateTransientDisplay">
<arg name="id" direction="out" type="o"/>
@@ -451,21 +496,21 @@
+ </method>
</interface>
</node>
-Index: gdm-2.30.0/daemon/gdm-simple-slave.c
+Index: gdm-2.30.5/daemon/gdm-simple-slave.c
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-simple-slave.c 2010-04-21 19:32:53.725694786 +0200
-+++ gdm-2.30.0/daemon/gdm-simple-slave.c 2010-04-21 19:32:59.137689590 +0200
-@@ -1043,6 +1043,9 @@ static gboolean
+--- gdm-2.30.5.orig/daemon/gdm-simple-slave.c 2010-09-16 23:24:30.935560574 +0200
++++ gdm-2.30.5/daemon/gdm-simple-slave.c 2010-09-16 23:24:33.031566835 +0200
+@@ -1051,6 +1051,9 @@ static gboolean
idle_connect_to_display (GdmSimpleSlave *slave)
{
gboolean res;
-+ gboolean display_is_nested;
++ gboolean display_is_nested = FALSE;
+
+ g_object_get (slave, "display-is-nested", &display_is_nested, NULL);
slave->priv->connection_attempts++;
-@@ -1053,7 +1056,8 @@ idle_connect_to_display (GdmSimpleSlave
+@@ -1061,7 +1064,8 @@ idle_connect_to_display (GdmSimpleSlave
/* FIXME: handle wait-for-go */
@@ -475,7 +520,7 @@
delay = 0;
enabled = FALSE;
-@@ -1109,12 +1113,20 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
+@@ -1119,12 +1123,20 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
{
char *display_name;
char *auth_file;
@@ -496,7 +541,7 @@
NULL);
/* if this is local display start a server if one doesn't
-@@ -1133,6 +1145,16 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
+@@ -1143,6 +1155,16 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
NULL);
}
@@ -513,11 +558,11 @@
g_signal_connect (slave->priv->server,
"exited",
G_CALLBACK (on_server_exited),
-Index: gdm-2.30.0/daemon/gdm-slave.c
+Index: gdm-2.30.5/daemon/gdm-slave.c
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-slave.c 2010-04-21 19:32:53.701695226 +0200
-+++ gdm-2.30.0/daemon/gdm-slave.c 2010-04-21 19:32:59.137689590 +0200
-@@ -78,31 +78,41 @@ struct GdmSlavePrivate
+--- gdm-2.30.5.orig/daemon/gdm-slave.c 2010-09-16 23:24:30.903567677 +0200
++++ gdm-2.30.5/daemon/gdm-slave.c 2010-09-16 23:28:58.811560929 +0200
+@@ -81,32 +81,42 @@ struct GdmSlavePrivate
/* cached display values */
char *display_id;
@@ -532,6 +577,7 @@
char *display_x11_authority_file;
- char *parent_display_name;
- char *parent_display_x11_authority_file;
+ char *windowpath;
GArray *display_x11_cookie;
@@ -562,18 +608,48 @@
};
enum {
-@@ -378,6 +388,10 @@ gdm_slave_connect_to_x11_display (GdmSla
+@@ -215,13 +225,12 @@ get_script_environment (GdmSlave *slav
+ }
+ }
+
+-#if 0
+- if (display_is_parented) {
+- g_hash_table_insert (hash, g_strdup ("GDM_PARENT_DISPLAY"), g_strdup (parent_display_name));
+-
+- /*g_hash_table_insert (hash, "GDM_PARENT_XAUTHORITY"), slave->priv->parent_temp_auth_file));*/
++ if (slave->priv->display_is_nested) {
++ g_hash_table_insert (hash, g_strdup ("GDM_PARENT_DISPLAY"),
++ g_strdup (slave->priv->parent_display_name));
++ g_hash_table_insert (hash, g_strdup("GDM_PARENT_XAUTHORITY"),
++ g_strdup(slave->priv->parent_display_user_auth_file));
+ }
+-#endif
+
+ /* some env for use with the Pre and Post scripts */
+ temp = g_strconcat (slave->priv->display_name, ".Xservers", NULL);
+@@ -481,9 +490,21 @@ gdm_slave_connect_to_x11_display (GdmSla
g_debug ("GdmSlave: Server is ready - opening display %s", slave->priv->display_name);
+
++ /* Nested displays are started with authorization for the parent
++ * user only. Add the GDM user. */
++ if (slave->priv->display_is_nested)
++ {
++ g_free (slave->priv->display_x11_authority_file);
++ gdm_slave_add_user_authorization (slave, GDM_USERNAME, &slave->priv->display_x11_authority_file);
++ }
++
+ g_setenv ("DISPLAY", slave->priv->display_name, TRUE);
+ g_setenv ("XAUTHORITY", slave->priv->display_x11_authority_file, TRUE);
+ /* don't let root connect to nested displays */
+ if (slave->priv->display_is_nested)
+ return TRUE;
+
- g_setenv ("DISPLAY", slave->priv->display_name, TRUE);
- g_setenv ("XAUTHORITY", slave->priv->display_x11_authority_file, TRUE);
-
-@@ -446,6 +460,15 @@ display_proxy_destroyed_cb (DBusGProxy *
+ sigemptyset (&mask);
+ sigaddset (&mask, SIGCHLD);
+ sigprocmask (SIG_BLOCK, &mask, &omask);
+@@ -540,6 +561,15 @@ display_proxy_destroyed_cb (DBusGProxy *
slave->priv->display_proxy = NULL;
}
@@ -589,7 +665,7 @@
static gboolean
gdm_slave_set_slave_bus_name (GdmSlave *slave)
{
-@@ -480,11 +503,13 @@ gdm_slave_real_start (GdmSlave *slave)
+@@ -574,11 +604,13 @@ gdm_slave_real_start (GdmSlave *slave)
{
gboolean res;
char *id;
@@ -603,7 +679,7 @@
g_debug ("GdmSlave: Creating proxy for %s", slave->priv->display_id);
error = NULL;
-@@ -539,6 +564,134 @@ gdm_slave_real_start (GdmSlave *slave)
+@@ -633,6 +665,135 @@ gdm_slave_real_start (GdmSlave *slave)
/* cache some values up front */
error = NULL;
res = dbus_g_proxy_call (slave->priv->display_proxy,
@@ -620,7 +696,8 @@
+ g_warning ("Failed to get value");
+ }
+
-+ return FALSE;
++ /* Ignore errors, they can be caused by upgrades */
++ slave->priv->display_is_nested = FALSE;
+ }
+
+ if (slave->priv->display_is_nested) {
@@ -738,7 +815,16 @@
"IsLocal",
&error,
G_TYPE_INVALID,
-@@ -1284,6 +1437,14 @@ _gdm_slave_set_display_id (GdmSlave *s
+@@ -857,6 +1018,8 @@ gdm_slave_add_user_authorization (GdmSla
+ }
+ g_free (filename);
+
++ if (slave->priv->display_is_nested)
++ return res;
+ /* Remove access for the programs run by slave and greeter now that the
+ * user session is starting.
+ */
+@@ -1405,6 +1568,14 @@ _gdm_slave_set_display_id (GdmSlave *s
}
static void
@@ -753,7 +839,7 @@
_gdm_slave_set_display_name (GdmSlave *slave,
const char *name)
{
-@@ -1330,6 +1491,37 @@ _gdm_slave_set_display_is_local (GdmSlav
+@@ -1451,6 +1622,37 @@ _gdm_slave_set_display_is_local (GdmSlav
}
static void
@@ -791,7 +877,7 @@
gdm_slave_set_property (GObject *object,
guint prop_id,
const GValue *value,
-@@ -1343,6 +1535,9 @@ gdm_slave_set_property (GObject *ob
+@@ -1464,6 +1666,9 @@ gdm_slave_set_property (GObject *ob
case PROP_DISPLAY_ID:
_gdm_slave_set_display_id (self, g_value_get_string (value));
break;
@@ -801,7 +887,7 @@
case PROP_DISPLAY_NAME:
_gdm_slave_set_display_name (self, g_value_get_string (value));
break;
-@@ -1361,6 +1556,18 @@ gdm_slave_set_property (GObject *ob
+@@ -1482,6 +1687,18 @@ gdm_slave_set_property (GObject *ob
case PROP_DISPLAY_IS_LOCAL:
_gdm_slave_set_display_is_local (self, g_value_get_boolean (value));
break;
@@ -820,7 +906,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-@@ -1381,6 +1588,9 @@ gdm_slave_get_property (GObject *obje
+@@ -1502,6 +1719,9 @@ gdm_slave_get_property (GObject *obje
case PROP_DISPLAY_ID:
g_value_set_string (value, self->priv->display_id);
break;
@@ -830,7 +916,7 @@
case PROP_DISPLAY_NAME:
g_value_set_string (value, self->priv->display_name);
break;
-@@ -1399,6 +1609,18 @@ gdm_slave_get_property (GObject *obje
+@@ -1520,6 +1740,18 @@ gdm_slave_get_property (GObject *obje
case PROP_DISPLAY_IS_LOCAL:
g_value_set_boolean (value, self->priv->display_is_local);
break;
@@ -849,7 +935,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-@@ -1480,6 +1702,13 @@ gdm_slave_class_init (GdmSlaveClass *kla
+@@ -1601,6 +1833,13 @@ gdm_slave_class_init (GdmSlaveClass *kla
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class,
@@ -863,7 +949,7 @@
PROP_DISPLAY_NAME,
g_param_spec_string ("display-name",
"display name",
-@@ -1523,6 +1752,34 @@ gdm_slave_class_init (GdmSlaveClass *kla
+@@ -1644,6 +1883,34 @@ gdm_slave_class_init (GdmSlaveClass *kla
"display is local",
TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
@@ -898,19 +984,19 @@
signals [STOPPED] =
g_signal_new ("stopped",
-@@ -1568,7 +1825,7 @@ gdm_slave_finalize (GObject *object)
+@@ -1689,7 +1956,7 @@ gdm_slave_finalize (GObject *object)
g_free (slave->priv->display_seat_id);
g_free (slave->priv->display_x11_authority_file);
g_free (slave->priv->parent_display_name);
- g_free (slave->priv->parent_display_x11_authority_file);
+ g_free (slave->priv->parent_display_user_auth_file);
- g_array_free (slave->priv->display_x11_cookie, TRUE);
-
- G_OBJECT_CLASS (gdm_slave_parent_class)->finalize (object);
-Index: gdm-2.30.0/daemon/gdm-display.xml
+ g_free (slave->priv->windowpath);
+ if (slave->priv->display_x11_cookie != NULL) {
+ g_array_free (slave->priv->display_x11_cookie, TRUE);
+Index: gdm-2.30.5/daemon/gdm-display.xml
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-display.xml 2010-04-21 19:32:53.673698024 +0200
-+++ gdm-2.30.0/daemon/gdm-display.xml 2010-04-21 19:32:59.137689590 +0200
+--- gdm-2.30.5.orig/daemon/gdm-display.xml 2010-09-16 23:24:30.871566468 +0200
++++ gdm-2.30.5/daemon/gdm-display.xml 2010-09-16 23:24:33.035562524 +0200
@@ -4,6 +4,9 @@
<method name="GetId">
<arg name="id" direction="out" type="o"/>
@@ -942,10 +1028,10 @@
<method name="SetSlaveBusName">
<arg name="name" direction="in" type="s"/>
</method>
-Index: gdm-2.30.0/data/gdm.conf.in
+Index: gdm-2.30.5/data/gdm.conf.in
===================================================================
---- gdm-2.30.0.orig/data/gdm.conf.in 2010-04-21 19:32:53.617694821 +0200
-+++ gdm-2.30.0/data/gdm.conf.in 2010-04-21 19:32:59.137689590 +0200
+--- gdm-2.30.5.orig/data/gdm.conf.in 2010-09-16 23:24:30.784072453 +0200
++++ gdm-2.30.5/data/gdm.conf.in 2010-09-16 23:24:33.035562524 +0200
@@ -62,10 +62,16 @@
<allow send_destination="org.gnome.DisplayManager"
send_interface="org.gnome.DisplayManager.Display"
@@ -963,11 +1049,19 @@
<allow send_destination="org.gnome.DisplayManager"
send_interface="org.gnome.DisplayManager.Manager"
-Index: gdm-2.30.0/daemon/gdm-server.c
+Index: gdm-2.30.5/daemon/gdm-server.c
===================================================================
---- gdm-2.30.0.orig/daemon/gdm-server.c 2010-04-21 19:32:53.645694465 +0200
-+++ gdm-2.30.0/daemon/gdm-server.c 2010-04-21 19:32:59.141689679 +0200
-@@ -79,11 +79,13 @@ struct GdmServerPrivate
+--- gdm-2.30.5.orig/daemon/gdm-server.c 2010-09-16 23:24:30.843565353 +0200
++++ gdm-2.30.5/daemon/gdm-server.c 2010-09-16 23:24:33.035562524 +0200
+@@ -70,6 +70,7 @@ extern char **environ;
+ struct GdmServerPrivate
+ {
+ char *command;
++ char *nested_command;
+ GPid pid;
+
+ gboolean disable_tcp;
+@@ -83,11 +84,13 @@ struct GdmServerPrivate
char *auth_file;
gboolean is_parented;
@@ -981,7 +1075,7 @@
};
enum {
-@@ -92,6 +94,7 @@ enum {
+@@ -96,6 +99,7 @@ enum {
PROP_DISPLAY_DEVICE,
PROP_AUTH_FILE,
PROP_IS_PARENTED,
@@ -989,7 +1083,7 @@
PROP_PARENT_DISPLAY_NAME,
PROP_PARENT_AUTH_FILE,
PROP_CHOSEN_HOSTNAME,
-@@ -169,9 +172,12 @@ gdm_server_get_display_device (GdmServer
+@@ -173,9 +177,12 @@ gdm_server_get_display_device (GdmServer
static gboolean
emit_ready_idle (GdmServer *server)
{
@@ -1004,14 +1098,40 @@
return FALSE;
}
-@@ -657,7 +663,13 @@ gdm_server_spawn (GdmServer *server,
+@@ -269,8 +276,15 @@ gdm_server_resolve_command_line (GdmServ
+ int i;
+ gboolean gotvtarg = FALSE;
+ gboolean query_in_arglist = FALSE;
++ char *command;
++
++ if (server->priv->is_nested) {
++ command = server->priv->nested_command;
++ } else {
++ command = server->priv->command;
++ }
+
+- g_shell_parse_argv (server->priv->command, &argc, &argv, NULL);
++ g_shell_parse_argv (command, &argc, &argv, NULL);
+
+ for (len = 0; argv != NULL && argv[len] != NULL; len++) {
+ char *arg = argv[len];
+@@ -658,7 +672,7 @@ gdm_server_spawn (GdmServer *server,
+
+ if (! ret) {
+ g_warning ("Could not start command '%s': %s",
+- server->priv->command,
++ server->priv->is_nested ? server->priv->nested_command : server->priv->command,
+ error->message);
+ g_error_free (error);
+ }
+@@ -667,7 +681,13 @@ gdm_server_spawn (GdmServer *server,
g_ptr_array_foreach (env, (GFunc)g_free, NULL);
g_ptr_array_free (env, TRUE);
- g_debug ("GdmServer: Started X server process %d - waiting for READY", (int)server->priv->pid);
+ if (server->priv->is_nested) {
+ // Xephyr doesn't send back any signal
-+ g_debug ("GdmServer: Started Xephyr server process %d", (int)server->priv->pid);
++ g_debug ("GdmServer: Started nested server process %d", (int)server->priv->pid);
+ g_timeout_add (500, (GSourceFunc)emit_ready_idle, server);
+ } else {
+ g_debug ("GdmServer: Started X server process %d - waiting for READY", (int)server->priv->pid);
@@ -1019,7 +1139,20 @@
server->priv->child_watch_id = g_child_watch_add (server->priv->pid,
(GChildWatchFunc)server_child_watch,
-@@ -947,6 +959,41 @@ _gdm_server_set_user_name (GdmServer *s
+@@ -882,9 +902,10 @@ gboolean
+ gdm_server_start (GdmServer *server)
+ {
+ gboolean res;
+- char *vtarg;
++ char *vtarg = NULL;
+
+- vtarg = gdm_get_empty_vt_argument ();
++ if (!server->priv->is_nested)
++ vtarg = gdm_get_empty_vt_argument ();
+
+ /* fork X server process */
+ res = gdm_server_spawn (server, vtarg);
+@@ -971,6 +992,36 @@ _gdm_server_set_user_name (GdmServer *s
}
static void
@@ -1050,18 +1183,13 @@
+ gboolean is_nested)
+{
+ server->priv->is_nested = is_nested;
-+ g_free (server->priv->command);
-+ if (is_nested)
-+ server->priv->command = g_strdup (X_XNEST_CMD " " X_XNEST_CONFIG_OPTIONS " -br");
-+ else
-+ server->priv->command = g_strdup (X_SERVER " -br -verbose");
+}
+
+static void
_gdm_server_set_disable_tcp (GdmServer *server,
gboolean disabled)
{
-@@ -973,9 +1020,21 @@ gdm_server_set_property (GObject *o
+@@ -997,9 +1048,21 @@ gdm_server_set_property (GObject *o
case PROP_USER_NAME:
_gdm_server_set_user_name (self, g_value_get_string (value));
break;
@@ -1083,7 +1211,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-@@ -1006,9 +1065,21 @@ gdm_server_get_property (GObject *obj
+@@ -1030,9 +1093,21 @@ gdm_server_get_property (GObject *obj
case PROP_USER_NAME:
g_value_set_string (value, self->priv->user_name);
break;
@@ -1105,7 +1233,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-@@ -1109,6 +1180,34 @@ gdm_server_class_init (GdmServerClass *k
+@@ -1133,6 +1208,34 @@ gdm_server_class_init (GdmServerClass *k
NULL,
TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
@@ -1140,18 +1268,28 @@
}
-@@ -1121,6 +1220,7 @@ gdm_server_init (GdmServer *server)
+@@ -1144,7 +1247,9 @@ gdm_server_init (GdmServer *server)
+
server->priv->pid = -1;
server->priv->command = g_strdup (X_SERVER " -br -verbose");
++ server->priv->nested_command = g_strdup (X_XNEST_CMD " " X_XNEST_CONFIG_OPTIONS " -br")
server->priv->log_dir = g_strdup (LOGDIR);
+ server->priv->is_ready = FALSE;
add_ready_handler (server);
}
-Index: gdm-2.30.0/utils/gdmflexiserver.c
+@@ -1166,6 +1271,7 @@ gdm_server_finalize (GObject *object)
+ gdm_server_stop (server);
+
+ g_free (server->priv->command);
++ g_free (server->priv->nested_command);
+ g_free (server->priv->user_name);
+ g_free (server->priv->session_args);
+ g_free (server->priv->log_dir);
+Index: gdm-2.30.5/utils/gdmflexiserver.c
===================================================================
---- gdm-2.30.0.orig/utils/gdmflexiserver.c 2010-04-21 19:32:53.589693219 +0200
-+++ gdm-2.30.0/utils/gdmflexiserver.c 2010-04-21 19:42:06.625188517 +0200
+--- gdm-2.30.5.orig/utils/gdmflexiserver.c 2010-09-16 23:24:30.756069870 +0200
++++ gdm-2.30.5/utils/gdmflexiserver.c 2010-09-16 23:24:33.035562524 +0200
@@ -34,6 +34,9 @@
#include <dbus/dbus-glib-lowlevel.h>
@@ -1422,3 +1560,15 @@
maybe_lock_screen ();
}
+Index: gdm-2.30.5/data/Init.in
+===================================================================
+--- gdm-2.30.5.orig/data/Init.in 2010-09-17 00:40:52.123567272 +0200
++++ gdm-2.30.5/data/Init.in 2010-09-17 00:42:07.767560905 +0200
+@@ -65,6 +65,7 @@ if [ "x$SETXKBMAP" != "x" ] ; then
+ # FIXME: is this all right? Is this completely on crack?
+ # What this does is move the xkb configuration from the GDM_PARENT_DISPLAY
+ # FIXME: This should be done in code. Or there must be an easier way ...
++ # FIXME: It just does not work, the keymap is not set.
+ if [ -n "$GDM_PARENT_DISPLAY" ]; then
+ XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )`
+ if [ -n "$XKBSETUP" ]; then
Modified: desktop/unstable/gdm3/debian/patches/19_configure_xserver.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/19_configure_xserver.patch?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/patches/19_configure_xserver.patch [utf-8] (original)
+++ desktop/unstable/gdm3/debian/patches/19_configure_xserver.patch [utf-8] Thu Sep 16 22:43:47 2010
@@ -1,22 +1,31 @@
GNOME #586777
-Index: gdm-2.30.2/common/gdm-settings-keys.h
+Index: gdm-2.30.5/common/gdm-settings-keys.h
===================================================================
---- gdm-2.30.2.orig/common/gdm-settings-keys.h 2010-05-08 14:46:42.000000000 +0200
-+++ gdm-2.30.2/common/gdm-settings-keys.h 2010-05-08 14:49:12.457112035 +0200
-@@ -33,6 +33,7 @@ G_BEGIN_DECLS
+--- gdm-2.30.5.orig/common/gdm-settings-keys.h 2010-09-11 11:12:09.144142815 +0200
++++ gdm-2.30.5/common/gdm-settings-keys.h 2010-09-11 11:13:37.816147498 +0200
+@@ -33,6 +33,8 @@ G_BEGIN_DECLS
#define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin"
#define GDM_KEY_TIMED_LOGIN_DELAY "daemon/TimedLoginDelay"
#define GDM_KEY_FIRST_VT "daemon/FirstVT"
+#define GDM_KEY_LOCAL_XSERVER_COMMAND "daemon/LocalXserverCommand"
++#define GDM_KEY_NESTED_XSERVER_COMMAND "daemon/NestedXserverCommand"
#define GDM_KEY_DEBUG "debug/Enable"
-Index: gdm-2.30.2/daemon/gdm-server.c
+Index: gdm-2.30.5/daemon/gdm-server.c
===================================================================
---- gdm-2.30.2.orig/daemon/gdm-server.c 2010-05-08 14:46:48.000000000 +0200
-+++ gdm-2.30.2/daemon/gdm-server.c 2010-05-08 14:50:14.433610793 +0200
-@@ -968,6 +968,14 @@ _gdm_server_set_disable_tcp (GdmServer
+--- gdm-2.30.5.orig/daemon/gdm-server.c 2010-09-11 11:13:07.040641299 +0200
++++ gdm-2.30.5/daemon/gdm-server.c 2010-09-11 11:13:55.032642229 +0200
+@@ -104,6 +104,7 @@ enum {
+ PROP_PARENT_AUTH_FILE,
+ PROP_CHOSEN_HOSTNAME,
+ PROP_COMMAND,
++ PROP_NESTED_COMMAND,
+ PROP_PRIORITY,
+ PROP_USER_NAME,
+ PROP_SESSION_ARGS,
+@@ -1028,6 +1029,22 @@ _gdm_server_set_disable_tcp (GdmServer
}
static void
@@ -28,64 +37,87 @@
+}
+
+static void
++_gdm_server_set_nested_command (GdmServer *server,
++ const char *command)
++{
++ g_free (server->priv->nested_command);
++ server->priv->nested_command = g_strdup (command);
++}
++
++static void
gdm_server_set_property (GObject *object,
guint prop_id,
const GValue *value,
-@@ -990,6 +998,9 @@ gdm_server_set_property (GObject *o
- case PROP_DISABLE_TCP:
- _gdm_server_set_disable_tcp (self, g_value_get_boolean (value));
+@@ -1062,6 +1079,12 @@ gdm_server_set_property (GObject *o
+ case PROP_IS_NESTED:
+ _gdm_server_set_is_nested (self, g_value_get_boolean (value));
break;
+ case PROP_COMMAND:
+ _gdm_server_set_command (self, g_value_get_string (value));
+ break;
++ case PROP_NESTED_COMMAND:
++ _gdm_server_set_nested_command (self, g_value_get_string (value));
++ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-@@ -1023,6 +1034,9 @@ gdm_server_get_property (GObject *obj
- case PROP_DISABLE_TCP:
- g_value_set_boolean (value, self->priv->disable_tcp);
+@@ -1107,6 +1130,12 @@ gdm_server_get_property (GObject *obj
+ case PROP_IS_NESTED:
+ g_value_set_boolean (value, self->priv->is_nested);
break;
+ case PROP_COMMAND:
+ g_value_set_string (value, self->priv->command);
+ break;
++ case PROP_NESTED_COMMAND:
++ g_value_set_string (value, self->priv->nested_command);
++ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-@@ -1123,6 +1137,13 @@ gdm_server_class_init (GdmServerClass *k
- NULL,
+@@ -1208,6 +1237,20 @@ gdm_server_class_init (GdmServerClass *k
TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-+ g_object_class_install_property (object_class,
+ g_object_class_install_property (object_class,
+ PROP_COMMAND,
+ g_param_spec_string ("command",
+ "Server startup command",
+ "Server startup command",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-
- }
-
-@@ -1133,7 +1154,6 @@ gdm_server_init (GdmServer *server)
++ g_object_class_install_property (object_class,
++ PROP_NESTED_COMMAND,
++ g_param_spec_string ("nested-command",
++ "Nested server startup command",
++ "Nested server startup command",
++ NULL,
++ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
++ g_object_class_install_property (object_class,
+ PROP_IS_PARENTED,
+ g_param_spec_boolean ("is-parented",
+ NULL,
+@@ -1245,8 +1288,6 @@ gdm_server_init (GdmServer *server)
server->priv = GDM_SERVER_GET_PRIVATE (server);
server->priv->pid = -1;
- server->priv->command = g_strdup (X_SERVER " -br -verbose");
+- server->priv->nested_command = g_strdup (X_XNEST_CMD " " X_XNEST_CONFIG_OPTIONS " -br")
server->priv->log_dir = g_strdup (LOGDIR);
+ server->priv->is_ready = FALSE;
- add_ready_handler (server);
-@@ -1165,6 +1185,7 @@ gdm_server_new (const char *display_name
+@@ -1291,6 +1332,8 @@ gdm_server_new (const char *display_name
GObject *object;
object = g_object_new (GDM_TYPE_SERVER,
+ "command", X_SERVER " -br -verbose " X_CONFIG_OPTIONS,
++ "nested-command", X_XNEST_CMD " -br " X_XNEST_CONFIG_OPTIONS,
"display-name", display_name,
"auth-file", auth_file,
NULL);
-Index: gdm-2.30.2/daemon/gdm-simple-slave.c
+Index: gdm-2.30.5/daemon/gdm-simple-slave.c
===================================================================
---- gdm-2.30.2.orig/daemon/gdm-simple-slave.c 2010-05-08 14:46:45.000000000 +0200
-+++ gdm-2.30.2/daemon/gdm-simple-slave.c 2010-05-08 14:48:35.533613174 +0200
-@@ -1142,6 +1142,7 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
+--- gdm-2.30.5.orig/daemon/gdm-simple-slave.c 2010-09-11 11:13:37.784154115 +0200
++++ gdm-2.30.5/daemon/gdm-simple-slave.c 2010-09-11 11:13:37.816147498 +0200
+@@ -1162,6 +1162,7 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
if (display_is_local) {
gboolean res;
gboolean disable_tcp;
@@ -93,7 +125,7 @@
slave->priv->server = gdm_server_new (display_name, auth_file);
-@@ -1153,6 +1154,17 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
+@@ -1183,6 +1184,28 @@ gdm_simple_slave_run (GdmSimpleSlave *sl
NULL);
}
@@ -108,14 +140,25 @@
+ g_free (server_command);
+ }
+
++ server_command = NULL;
++ if (gdm_settings_client_get_string (GDM_KEY_NESTED_XSERVER_COMMAND,
++ &server_command) &&
++ server_command != NULL &&
++ server_command [0] != '\0') {
++ g_object_set (slave->priv->server,
++ "nested-command", server_command,
++ NULL);
++ g_free (server_command);
++ }
++
g_signal_connect (slave->priv->server,
"exited",
G_CALLBACK (on_server_exited),
-Index: gdm-2.30.2/data/gdm.schemas.in.in
+Index: gdm-2.30.5/data/gdm.schemas.in.in
===================================================================
---- gdm-2.30.2.orig/data/gdm.schemas.in.in 2010-05-08 14:46:42.000000000 +0200
-+++ gdm-2.30.2/data/gdm.schemas.in.in 2010-05-08 14:50:42.425611096 +0200
-@@ -23,6 +23,11 @@
+--- gdm-2.30.5.orig/data/gdm.schemas.in.in 2010-09-11 11:12:09.100142319 +0200
++++ gdm-2.30.5/data/gdm.schemas.in.in 2010-09-11 11:13:37.816147498 +0200
+@@ -23,6 +23,16 @@
<default>@GDM_GROUPNAME@</default>
</schema>
<schema>
@@ -124,6 +167,11 @@
+ <default>@X_SERVER@ -br -verbose @X_CONFIG_OPTIONS@</default>
+ </schema>
+ <schema>
++ <key>daemon/NestedXserverCommand</key>
++ <signature>s</signature>
++ <default>@X_XNEST_CMD@ -br @X_XNEST_CONFIG_OPTIONS@</default>
++ </schema>
++ <schema>
<key>daemon/AutomaticLoginEnable</key>
<signature>b</signature>
<default>false</default>
Modified: desktop/unstable/gdm3/debian/patches/20_endsession_respawn.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/20_endsession_respawn.patch?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/patches/20_endsession_respawn.patch [utf-8] (original)
+++ desktop/unstable/gdm3/debian/patches/20_endsession_respawn.patch [utf-8] Thu Sep 16 22:43:47 2010
@@ -1,8 +1,8 @@
Index: gdm-2.30.5/daemon/gdm-display.c
===================================================================
---- gdm-2.30.5.orig/daemon/gdm-display.c 2010-08-11 16:19:44.000000000 +0200
-+++ gdm-2.30.5/daemon/gdm-display.c 2010-09-05 19:44:01.988365617 +0200
-@@ -302,6 +302,32 @@ gdm_display_set_slave_bus_name (GdmDispl
+--- gdm-2.30.5.orig/daemon/gdm-display.c 2010-09-16 22:27:23.560059700 +0200
++++ gdm-2.30.5/daemon/gdm-display.c 2010-09-16 22:54:22.195561908 +0200
+@@ -340,6 +340,32 @@ gdm_display_set_slave_bus_name (GdmDispl
return ret;
}
@@ -35,7 +35,7 @@
static void
gdm_display_real_get_timed_login_details (GdmDisplay *display,
gboolean *enabledp,
-@@ -1019,6 +1045,7 @@ gdm_display_class_init (GdmDisplayClass
+@@ -1139,6 +1165,7 @@ gdm_display_class_init (GdmDisplayClass
klass->add_user_authorization = gdm_display_real_add_user_authorization;
klass->remove_user_authorization = gdm_display_real_remove_user_authorization;
klass->set_slave_bus_name = gdm_display_real_set_slave_bus_name;
@@ -45,8 +45,8 @@
klass->manage = gdm_display_real_manage;
Index: gdm-2.30.5/daemon/gdm-display.h
===================================================================
---- gdm-2.30.5.orig/daemon/gdm-display.h 2010-08-11 16:19:44.000000000 +0200
-+++ gdm-2.30.5/daemon/gdm-display.h 2010-09-05 19:44:01.988365617 +0200
+--- gdm-2.30.5.orig/daemon/gdm-display.h 2010-09-16 22:02:43.851563101 +0200
++++ gdm-2.30.5/daemon/gdm-display.h 2010-09-16 22:54:22.195561908 +0200
@@ -66,6 +66,9 @@ typedef struct
gboolean (*set_slave_bus_name) (GdmDisplay *display,
const char *name,
@@ -57,7 +57,7 @@
gboolean (*prepare) (GdmDisplay *display);
gboolean (*manage) (GdmDisplay *display);
gboolean (*finish) (GdmDisplay *display);
-@@ -140,6 +143,9 @@ gboolean gdm_display_remove_u
+@@ -150,6 +153,9 @@ gboolean gdm_display_get_user
gboolean gdm_display_set_slave_bus_name (GdmDisplay *display,
const char *name,
GError **error);
@@ -69,9 +69,9 @@
G_END_DECLS
Index: gdm-2.30.5/daemon/gdm-display.xml
===================================================================
---- gdm-2.30.5.orig/daemon/gdm-display.xml 2010-08-11 16:19:44.000000000 +0200
-+++ gdm-2.30.5/daemon/gdm-display.xml 2010-09-05 19:44:01.988365617 +0200
-@@ -35,6 +35,9 @@
+--- gdm-2.30.5.orig/daemon/gdm-display.xml 2010-09-16 22:02:43.835561766 +0200
++++ gdm-2.30.5/daemon/gdm-display.xml 2010-09-16 22:54:22.195561908 +0200
+@@ -45,6 +45,9 @@
<method name="SetSlaveBusName">
<arg name="name" direction="in" type="s"/>
</method>
@@ -83,8 +83,8 @@
<arg name="username" direction="out" type="s"/>
Index: gdm-2.30.5/daemon/gdm-simple-slave.c
===================================================================
---- gdm-2.30.5.orig/daemon/gdm-simple-slave.c 2010-09-05 19:43:55.564366756 +0200
-+++ gdm-2.30.5/daemon/gdm-simple-slave.c 2010-09-05 19:44:01.988365617 +0200
+--- gdm-2.30.5.orig/daemon/gdm-simple-slave.c 2010-09-16 22:54:22.159562081 +0200
++++ gdm-2.30.5/daemon/gdm-simple-slave.c 2010-09-16 22:54:22.195561908 +0200
@@ -109,6 +109,9 @@ on_session_started (GdmSession *se
g_debug ("GdmSimpleSlave: session started %d", pid);
@@ -97,9 +97,9 @@
if (username != NULL) {
Index: gdm-2.30.5/daemon/gdm-slave.c
===================================================================
---- gdm-2.30.5.orig/daemon/gdm-slave.c 2010-08-11 19:40:07.000000000 +0200
-+++ gdm-2.30.5/daemon/gdm-slave.c 2010-09-05 19:44:01.996367261 +0200
-@@ -569,6 +569,33 @@ gdm_slave_set_slave_bus_name (GdmSlave *
+--- gdm-2.30.5.orig/daemon/gdm-slave.c 2010-09-16 22:44:44.356058833 +0200
++++ gdm-2.30.5/daemon/gdm-slave.c 2010-09-16 22:57:58.667559881 +0200
+@@ -600,6 +600,36 @@ gdm_slave_set_slave_bus_name (GdmSlave *
return res;
}
@@ -109,6 +109,9 @@
+{
+ gboolean res;
+ GError *error;
++
++ /* Never, ever respawn a nested display */
++ respawn = FALSE;
+
+ error = NULL;
+ res = dbus_g_proxy_call (slave->priv->display_proxy,
@@ -135,8 +138,8 @@
{
Index: gdm-2.30.5/daemon/gdm-slave.h
===================================================================
---- gdm-2.30.5.orig/daemon/gdm-slave.h 2010-08-11 16:19:44.000000000 +0200
-+++ gdm-2.30.5/daemon/gdm-slave.h 2010-09-05 19:44:01.996367261 +0200
+--- gdm-2.30.5.orig/daemon/gdm-slave.h 2010-09-16 22:02:43.795560871 +0200
++++ gdm-2.30.5/daemon/gdm-slave.h 2010-09-16 22:54:22.199561508 +0200
@@ -72,6 +72,9 @@ gboolean gdm_slave_add_user_a
gboolean gdm_slave_switch_to_user_session (GdmSlave *slave,
const char *username);
@@ -149,8 +152,8 @@
gboolean gdm_slave_run_script (GdmSlave *slave,
Index: gdm-2.30.5/daemon/gdm-transient-display.c
===================================================================
---- gdm-2.30.5.orig/daemon/gdm-transient-display.c 2010-08-11 16:19:44.000000000 +0200
-+++ gdm-2.30.5/daemon/gdm-transient-display.c 2010-09-05 19:44:01.996367261 +0200
+--- gdm-2.30.5.orig/daemon/gdm-transient-display.c 2010-09-16 22:02:43.783564024 +0200
++++ gdm-2.30.5/daemon/gdm-transient-display.c 2010-09-16 22:54:22.199561508 +0200
@@ -45,7 +45,7 @@
struct GdmTransientDisplayPrivate
Modified: desktop/unstable/gdm3/debian/patches/22_noconsole.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/22_noconsole.patch?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/patches/22_noconsole.patch [utf-8] (original)
+++ desktop/unstable/gdm3/debian/patches/22_noconsole.patch [utf-8] Thu Sep 16 22:43:47 2010
@@ -1,9 +1,9 @@
GNOME #567522
-Index: gdm-2.30.2/common/gdm-settings-keys.h
+Index: gdm-2.30.5/common/gdm-settings-keys.h
===================================================================
---- gdm-2.30.2.orig/common/gdm-settings-keys.h 2010-05-08 14:49:12.457112035 +0200
-+++ gdm-2.30.2/common/gdm-settings-keys.h 2010-05-08 14:57:27.285109455 +0200
+--- gdm-2.30.5.orig/common/gdm-settings-keys.h 2010-09-11 11:08:59.512645923 +0200
++++ gdm-2.30.5/common/gdm-settings-keys.h 2010-09-11 11:09:00.848642546 +0200
@@ -32,6 +32,7 @@ G_BEGIN_DECLS
#define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable"
#define GDM_KEY_TIMED_LOGIN_USER "daemon/TimedLogin"
@@ -11,11 +11,11 @@
+#define GDM_KEY_NO_CONSOLE "daemon/NoConsole"
#define GDM_KEY_FIRST_VT "daemon/FirstVT"
#define GDM_KEY_LOCAL_XSERVER_COMMAND "daemon/LocalXserverCommand"
-
-Index: gdm-2.30.2/daemon/gdm-manager.c
+ #define GDM_KEY_NESTED_XSERVER_COMMAND "daemon/NestedXserverCommand"
+Index: gdm-2.30.5/daemon/gdm-manager.c
===================================================================
---- gdm-2.30.2.orig/daemon/gdm-manager.c 2010-05-08 14:46:42.981612567 +0200
-+++ gdm-2.30.2/daemon/gdm-manager.c 2010-05-08 14:57:27.285109455 +0200
+--- gdm-2.30.5.orig/daemon/gdm-manager.c 2010-09-11 11:08:59.480644229 +0200
++++ gdm-2.30.5/daemon/gdm-manager.c 2010-09-11 11:09:00.848642546 +0200
@@ -71,7 +71,8 @@ struct GdmManagerPrivate
enum {
@@ -81,10 +81,10 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
-Index: gdm-2.30.2/daemon/gdm-manager.h
+Index: gdm-2.30.5/daemon/gdm-manager.h
===================================================================
---- gdm-2.30.2.orig/daemon/gdm-manager.h 2010-05-08 14:46:42.969610832 +0200
-+++ gdm-2.30.2/daemon/gdm-manager.h 2010-05-08 14:57:27.285109455 +0200
+--- gdm-2.30.5.orig/daemon/gdm-manager.h 2010-09-11 11:08:59.452647518 +0200
++++ gdm-2.30.5/daemon/gdm-manager.h 2010-09-11 11:09:00.848642546 +0200
@@ -69,6 +69,8 @@ void gdm_manager_set_wait
void gdm_manager_set_xdmcp_enabled (GdmManager *manager,
@@ -94,11 +94,11 @@
gboolean gdm_manager_get_displays (GdmManager *manager,
GPtrArray **displays,
GError **error);
-Index: gdm-2.30.2/daemon/main.c
+Index: gdm-2.30.5/daemon/main.c
===================================================================
---- gdm-2.30.2.orig/daemon/main.c 2010-05-08 14:57:26.257612530 +0200
-+++ gdm-2.30.2/daemon/main.c 2010-05-08 14:57:27.285109455 +0200
-@@ -525,6 +525,7 @@ main (int argc,
+--- gdm-2.30.5.orig/daemon/main.c 2010-09-11 11:08:59.428650405 +0200
++++ gdm-2.30.5/daemon/main.c 2010-09-11 11:09:00.848642546 +0200
+@@ -531,6 +531,7 @@ main (int argc,
int ret;
gboolean res;
gboolean xdmcp_enabled;
@@ -106,7 +106,7 @@
GdmSignalHandler *signal_handler;
static gboolean do_timed_exit = FALSE;
static gboolean print_version = FALSE;
-@@ -624,6 +625,10 @@ main (int argc,
+@@ -635,6 +636,10 @@ main (int argc,
goto out;
}
@@ -117,11 +117,11 @@
xdmcp_enabled = FALSE;
gdm_settings_direct_get_boolean (GDM_KEY_XDMCP_ENABLE, &xdmcp_enabled);
gdm_manager_set_xdmcp_enabled (manager, xdmcp_enabled);
-Index: gdm-2.30.2/data/gdm.schemas.in.in
+Index: gdm-2.30.5/data/gdm.schemas.in.in
===================================================================
---- gdm-2.30.2.orig/data/gdm.schemas.in.in 2010-05-08 14:50:42.425611096 +0200
-+++ gdm-2.30.2/data/gdm.schemas.in.in 2010-05-08 14:57:27.289111012 +0200
-@@ -57,6 +57,11 @@
+--- gdm-2.30.5.orig/data/gdm.schemas.in.in 2010-09-11 11:08:59.404646448 +0200
++++ gdm-2.30.5/data/gdm.schemas.in.in 2010-09-11 11:09:00.848642546 +0200
+@@ -62,6 +62,11 @@
<signature>i</signature>
<default>7</default>
</schema>
Modified: desktop/unstable/gdm3/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gdm3/debian/patches/series?rev=25133&op=diff
==============================================================================
--- desktop/unstable/gdm3/debian/patches/series [utf-8] (original)
+++ desktop/unstable/gdm3/debian/patches/series [utf-8] Thu Sep 16 22:43:47 2010
@@ -8,7 +8,7 @@
08_frequent-users_greeter.patch
09_default_session.patch
10_gdm3_pam.patch
-#11_xephyr_nested.patch
+11_xephyr_nested.patch
12_polkit_settings.patch
13_gdmsetup.patch
13_gdmsetup_ui.patch
More information about the pkg-gnome-commits
mailing list