Bug#757889: gdm3: Does not define WINDOWPATH any more
Samuel Thibault
sthibault at debian.org
Mon Aug 11 23:25:04 UTC 2014
Source: gdm3
Version: 3.12.2-2
Severity: normal
Hello,
Starting from version 3.12, gdm3 does not define WINDOWPATH any more.
This breaks proper braille output. Upstream has put back the support, I
have attached the two corresponding patches, could you please apply
them?
Thanks,
Samuel
-- System Information:
Debian Release: jessie/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.16.0 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--
Samuel
/* Halley */
(Halley's comment.)
-------------- next part --------------
commit e4dbf006279ecbf408186f3759e559b46ddedda5
Author: Ray Strode <rstrode at redhat.com>
Date: Tue Jul 22 17:26:42 2014 -0400
Revert "session: drop remnants of WINDOWPATH"
This reverts commit 6e1f486ca0d37da9fc8239493633deed6d796b93.
https://bugzilla.gnome.org/show_bug.cgi?id=730729
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index 60667c5..bb54084 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -2387,6 +2387,12 @@ set_up_session_environment (GdmSession *self)
}
}
+ if (g_getenv ("WINDOWPATH") != NULL) {
+ gdm_session_set_environment_variable (self,
+ "WINDOWPATH",
+ g_getenv ("WINDOWPATH"));
+ }
+
g_free (desktop_names);
}
-------------- next part --------------
commit 13dc48dd1e30356dbd83d319734fd38571806677
Author: Ray Strode <rstrode at redhat.com>
Date: Tue Jul 22 17:27:30 2014 -0400
Revert "slave: Remove support for WINDOWPATH"
This reverts commit 64210ac9dc1dafd1970ad0abcf46a010731d17b4.
https://bugzilla.gnome.org/show_bug.cgi?id=730729
diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
index 1afe48e..b4bbcfd 100644
--- a/daemon/gdm-slave.c
+++ b/daemon/gdm-slave.c
@@ -250,6 +250,83 @@ gdm_slave_setup_xhost_auth (XHostAddress *host_entries, XServerInterpretedAddres
host_entries[2].length = sizeof (XServerInterpretedAddress);
}
+static void
+gdm_slave_set_windowpath (GdmSlave *slave)
+{
+ /* setting WINDOWPATH for clients */
+ Atom prop;
+ Atom actualtype;
+ int actualformat;
+ unsigned long nitems;
+ unsigned long bytes_after;
+ unsigned char *buf;
+ const char *windowpath;
+ char *newwindowpath;
+ unsigned long num;
+ char nums[10];
+ int numn;
+
+ prop = XInternAtom (slave->priv->server_display, "XFree86_VT", False);
+ if (prop == None) {
+ g_debug ("no XFree86_VT atom\n");
+ return;
+ }
+ if (XGetWindowProperty (slave->priv->server_display,
+ DefaultRootWindow (slave->priv->server_display), prop, 0, 1,
+ False, AnyPropertyType, &actualtype, &actualformat,
+ &nitems, &bytes_after, &buf)) {
+ g_debug ("no XFree86_VT property\n");
+ return;
+ }
+
+ if (nitems != 1) {
+ g_debug ("%lu items in XFree86_VT property!\n", nitems);
+ XFree (buf);
+ return;
+ }
+
+ switch (actualtype) {
+ case XA_CARDINAL:
+ case XA_INTEGER:
+ case XA_WINDOW:
+ switch (actualformat) {
+ case 8:
+ num = (*(uint8_t *)(void *)buf);
+ break;
+ case 16:
+ num = (*(uint16_t *)(void *)buf);
+ break;
+ case 32:
+ num = (*(long *)(void *)buf);
+ break;
+ default:
+ g_debug ("format %d in XFree86_VT property!\n", actualformat);
+ XFree (buf);
+ return;
+ }
+ break;
+ default:
+ g_debug ("type %lx in XFree86_VT property!\n", actualtype);
+ XFree (buf);
+ return;
+ }
+ XFree (buf);
+
+ windowpath = getenv ("WINDOWPATH");
+ numn = snprintf (nums, sizeof (nums), "%lu", num);
+ if (!windowpath) {
+ newwindowpath = malloc (numn + 1);
+ sprintf (newwindowpath, "%s", nums);
+ } else {
+ newwindowpath = malloc (strlen (windowpath) + 1 + numn + 1);
+ sprintf (newwindowpath, "%s:%s", windowpath, nums);
+ }
+
+ slave->priv->windowpath = newwindowpath;
+
+ g_setenv ("WINDOWPATH", newwindowpath, TRUE);
+}
+
gboolean
gdm_slave_connect_to_x11_display (GdmSlave *slave)
{
@@ -299,6 +376,8 @@ gdm_slave_connect_to_x11_display (GdmSlave *slave)
if (gdm_error_trap_pop ()) {
g_warning ("Failed to give slave programs access to the display. Trying to proceed.");
}
+
+ gdm_slave_set_windowpath (slave);
} else {
g_debug ("GdmSlave: Connected to display %s", slave->priv->display_name);
ret = TRUE;
More information about the pkg-gnome-maintainers
mailing list