A page in your DokuWiki was added or changed. Here are the details: Date : 2017/11/04 11:06 Browser : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5 IP-Address : 79.244.144.125 Hostname : p4FF4907D.dip0.t-ipconnect.de Old Revision: https://wiki.x2go.org/doku.php/wiki:development:glx-xlib-workaround?rev=1425... New Revision: https://wiki.x2go.org/doku.php/wiki:development:glx-xlib-workaround Edit Summary: added instructions for Gentoo User : vwegert @@ -1,16 +1,66 @@ - Workaround for getting GLX 1.4 working. + ====== Workaround for getting GLX 1.4 working ====== - Applications will use libGL.so, which in turn uses the xlib interface to talk to the X server (nxagent) rather than the GLX interface. + ===== Symptoms ===== - From the applications' perspective, they have GLX 1.4. + * Gnome-based and other applications report messages like ''"Failed to initialize gtk+: Unable to initialize the Clutter backend: no available drivers found."'' + * ''glxinfo'' reports GLX Version is 1.2 + * Disabling GLX entirely in ''/etc/x2go/x2goagent.options'' via ''-extension GLX'' does not work because the application does not have the capability to work without GLX at all. + + ===== Approach ===== + + Use a wrapper/proxy library provided by Mesa. The applications will use the supplied libGL.so, which in turn uses the lib interface to talk to the X server (nxagent) rather than the GLX interface. From the applications' perspective, they have GLX 1.4. + + ==== Ubuntu 14.04 ==== + + (with trusty-updates mesa 10.1.3-0ubuntu0.3) - Ubuntu 14.04 (with trusty-updates mesa 10.1.3-0ubuntu0.3): <code> sudo aptitude build-dep mesa sudo aptitude install scons llvm-dev apt-get source mesa cd mesa scons libgl-xlib export LD_LIBRARY_PATH=`pwd`/build/linux-x86_64-debug/gallium/targets/libgl-xlib/:${LD_LIBRARY_PATH} glxinfo | grep 'GLX version:' + </code> + + ==== Gentoo ==== + + Ensure that some required tools are installed: + + <code> + emerge -av app-portage/gentoolkit dev-util/scons dev-python/mako + </code> + + Create a place to store the library - adapt this path to your liking. + <code> + mkdir -p /usr/local/share/mesa-libgl-xlib + </code> + Place the following line in a suitable place - either in your .bashrc or in the script that calls the individual application: + <code> + export LD_LIBRARY_PATH=/usr/local/share/mesa-libgl-xlib/:${LD_LIBRARY_PATH} + </code> + + Configure portage to keep the working area that is used to compile the Mesa package. Before doing so, ensure that the USE flags for media-libs/mesa are configured to your liking. + + <code> + mkdir -p /etc/portage/env + echo 'FEATURES="noclean"' > /etc/portage/env/features-noclean + echo 'media-libs/mesa features-noclean' >> /etc/portage/package.env + emerge -av media-libs/mesa + </code> + + Now compile the library and move it over to the storage location: + <code> + export MESA_VERSION=$(equery -q list media-libs/mesa -F '$version') + cd /var/tmp/portage/media-libs/mesa-${MESA_VERSION}/work/mesa-${MESA_VERSION} + scons libgl-xlib + cp build/linux-x86_64-debug/gallium/targets/libgl-xlib/* /usr/local/share/mesa-libgl-xlib/ + </code> + + Warning: The ''noclean'' feature will result in old versions of the working area for media-libs/mesa stacking up in /var/tmp/portage over time. Remove them from time to time - or right now after compiling and saving the library: + + <code> + cd + build /usr/portage/media-libs/mesa/mesa-${MESA_VERSION}.ebuild clean </code> -- This mail was generated by DokuWiki at https://wiki.x2go.org/