[winswitch] Xpra GL and gtkglext woes

Ben Sferrazza bsferrazza at avnera.com
Mon Mar 5 17:38:31 GMT 2018

Hi. I've built Xpra 2.2.4 on a Linux server at work which runs an old
distribution, CentOS 5. The kernel is 2.6.18, but I've created a fully
bootstrapped toolchain/binary/library environment that runs the latest
version of glibc (2.19) for the kernel, gcc 7.3.0, and binutils 2.30,
following most of the Linux From Scratch book. Everything I've thrown at it
works well, even having built Xorg, GTK+2/3, and GUI applications. I made
sure to build all the Xpra dependencies and built it with
--prefix=/home/tools, which is where my updated environment is.

I have built Mesa, and am using the Xdummy xorg.conf. All seems well, but
the Xpra client never showed the --start-child app of konsole. It had
errors like this.

2018-03-05 17:04:40,440 x_event_filter event=('xpra-create-event',
None)/CreateNotify window=0x299
2018-03-05 17:04:40,440 cannot get gdk window for <gtk.gdk.Display object
at 0x2ae82f5ea050 (GdkDisplayX11 at 0x1b3be1f0)>, 12582913
2018-03-05 17:04:40,441 XError: XError: 3 processing CreateNotify
Traceback (most recent call last):
  File "xpra/x11/gtk2/gdk_bindings.pyx", line 1062, in
  File "xpra/x11/gtk2/gdk_bindings.pyx", line 914, in
XError: XError: 3
2018-03-05 17:04:40,442 Some window in our event disappeared before we
could handle the event 16/CreateNotify using ('xpra-create-event', None);
so I'm just ignoring it instead. python event=<X11:CreateNotify
{'delivered_to': '0x299', 'send_event': 0, 'serial': '0x36a', 'type': 16,
'display': ':100'}>

So I then went ahead and installed gtkglext and the Python bindings,
thinking it was somehow related to OpenGL. However, passing --opengl=no on
the command line when starting xpra appeared to do nothing. But now I get
this mysterious ImportError

2018-03-05 17:04:38,809 err(xpra opengl)=xpra main error:
Traceback (most recent call last):
  File "/home/tools/lib/python/xpra/scripts/main.py", line 175, in main
    return run_mode(script_file, err, options, args, mode, defaults)
  File "/home/tools/lib/python/xpra/scripts/main.py", line 1517, in run_mode
    return run_glcheck(options)
  File "/home/tools/lib/python/xpra/scripts/main.py", line 2723, in
    from xpra.client.gl.gtk_base.gtkgl_check import check_support
  File "/home/tools/lib/python/xpra/client/gl/gtk_base/gtkgl_check.py",
line 35, in <module>
    from xpra.client.gl.gtk_base.gtk_compat import MODE_RGBA, MODE_ALPHA,
  File "/home/tools/lib/python/xpra/client/gl/gtk_base/gtk_compat.py", line
59, in <module>
    from gtk import gdkgl, gtkgl
line 21, in <module>
    from _gdkgl import *
undefined symbol: gdk_window_is_gl_capable

When I run strings on that _gdkgl.so, I get the following

bash-4.4$ strings _gdkgl.so | grep gdk_window_is_gl_capable

and the function is defined in the following include file


bash-4.4$ grep gdk_window_is_gl_capable gdkglwindow.h
gboolean     gdk_window_is_gl_capable       (GdkWindow   *window);

Perhaps the issue of not getting a window drawn is unrelated to the
ImportError, but I'd like to fix both of these issues. Thank you for any
help in solving this!


More information about the shifter-users mailing list