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.)
commit e4dbf006279ecbf408186f3759e559b46ddedda5 Author: Ray Strode <rstr...@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); }
commit 13dc48dd1e30356dbd83d319734fd38571806677 Author: Ray Strode <rstr...@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;