Hello,
I have been playing around with x2go and xinerama. While the current setup kind of works there are some problems with the current concept: programs doing that...)
The reason for all this is the chosen approach. Patching the libXinerama.so only works for clients actually able to access the patched library. If - for whatever reason - they are using the standard libXinerama this fails. So I really think the patched library should vanish completely. Instead nx-X11/programs/xserver/Xext/panoramix.c should be extended to do a lookup to the nx client side whenever an X client is asking the nxagent/x2goagent for Xinerama information.
What do you think? Is there anything I am missing here?
Uli
Hi Ulrich (see bottom reply),
On Tue, Apr 28, 2015 at 6:46 AM, Ulrich Sibiller <uli42@gmx.de> wrote:
Hello,
I have been playing around with x2go and xinerama. While the current setup kind of works there are some problems with the current concept: programs doing that...)
- it uses LD_LIBRARY_PATH. Any software that fiddles around with LD_LIBRARY_PATH can break it (and there a lot (mostly commercial)
- it does not fully work on mixed architecture setups (32/64bit mix) because there's only one library in the distribution. (I haven't tested this but it AFAIK you cannot link a 32bit library to a 64 binary an vice versa.)
- requesting xinerama information (xdpyinfo -ext XINERAMA) does only work for programs that are started inside the session. You cannot request Xinerama information by redirecting $DISPLAY for the calling program. You'd as well have to set the LD_LIBRARY_PATH variable.
- connection to an other host using ssh -X other-host leads to a working shell that has a DISPLAY. However, it is not able to request the correct Xinerama information.
- probably more
The reason for all this is the chosen approach. Patching the libXinerama.so only works for clients actually able to access the patched library. If - for whatever reason - they are using the standard libXinerama this fails. So I really think the patched library should vanish completely. Instead nx-X11/programs/xserver/Xext/panoramix.c should be extended to do a lookup to the nx client side whenever an X client is asking the nxagent/x2goagent for Xinerama information.
What do you think? Is there anything I am missing here?
We don't patch Xinerama. Rather, nx-libs, our "X server", includes an outdated version: nx-X11/lib/Xinerama
We are indeed working on dropping as many of nx-libs's bundled libraries as possible. We replace them with the system's versions. Often this means modifying files under nx-X11/programs/xserver/ like the one you mentioned. I am not sure what the schedule is for libXinerama, but I assume it is on the list. All this work is being done on the nx-libs 3.6.x branch. http://code.x2go.org/gitweb?p=nx-libs.git;a=shortlog;h=refs/heads/3.6.x https://github.com/ArcticaProject/nx-libs/tree/3.6.x
Hopefully someone can comment on the timetable for dropping the bundled libXinerama. Still, just because we dropped libXinerama doesn't mean we will immediately release nx-libs 3.6.0; We will probably drop other libraries 1st.
-Mike#2
On Tue, Apr 28, 2015 at 1:59 PM, Michael DePaulo <mikedep333@gmail.com> wrote:
- We don't patch Xinerama. Rather, nx-libs, our "X server", includes an outdated version: nx-X11/lib/Xinerama
Maybe my wording was a bit misleading. What I meant was this patch:
0202_nx-X11_enable-xinerama.full.patch
This indeed patches the libXinerama that is built from the nx-x11 tree (in nx-X11/lib/Xinerama/Xinerama.c). And that's the one that is distributed in x2go and provided via LD_LIBRARY_PATH to have xinerama emulation.
We are indeed working on dropping as many of nx-libs's bundled libraries as possible. We replace them with the system's versions. Often this means modifying files under nx-X11/programs/xserver/ like the one you mentioned. I am not sure what the schedule is for libXinerama, but I assume it is on the list. All this work is being done on the nx-libs 3.6.x branch. http://code.x2go.org/gitweb?p=nx-libs.git;a=shortlog;h=refs/heads/3.6.x https://github.com/ArcticaProject/nx-libs/tree/3.6.x
Hopefully someone can comment on the timetable for dropping the bundled libXinerama. Still, just because we dropped libXinerama doesn't mean we will immediately release nx-libs 3.6.0; We will probably drop other libraries 1st.
Ok, I have not seen a detailed list of the planned steps, does such a thing exist?
Uli
Hi Ulrich,
On Di 28 Apr 2015 16:37:52 CEST, Ulrich Sibiller wrote:
On Tue, Apr 28, 2015 at 1:59 PM, Michael DePaulo
<mikedep333@gmail.com> wrote:
- We don't patch Xinerama. Rather, nx-libs, our "X server", includes an outdated version: nx-X11/lib/Xinerama
Maybe my wording was a bit misleading. What I meant was this patch:
0202_nx-X11_enable-xinerama.full.patch
This indeed patches the libXinerama that is built from the nx-x11 tree (in nx-X11/lib/Xinerama/Xinerama.c). And that's the one that is distributed in x2go and provided via LD_LIBRARY_PATH to have xinerama emulation.
Moving that change from libXinerama into the Xserver code is actually
a good idea. Maybe that is also possible for all the other changes in
libNX_X<*>.
Also, I would like to get rid of that xinerama.conf and turn it into
some sort of FIFO socket.
We are indeed working on dropping as many of nx-libs's bundled libraries as possible. We replace them with the system's versions. Often this means modifying files under nx-X11/programs/xserver/ like the one you mentioned. I am not sure what the schedule is for libXinerama, but I assume it is on the list. All this work is being done on the nx-libs 3.6.x branch. http://code.x2go.org/gitweb?p=nx-libs.git;a=shortlog;h=refs/heads/3.6.x https://github.com/ArcticaProject/nx-libs/tree/3.6.x
Hopefully someone can comment on the timetable for dropping the bundled libXinerama. Still, just because we dropped libXinerama doesn't mean we will immediately release nx-libs 3.6.0; We will probably drop other libraries 1st.
Ok, I have not seen a detailed list of the planned steps, does such a thing exist?
There is no such list. We coordinate via IRC (#arctica on Freenode).
The current phase is clean-up-clean-up-clean-up. The other current
phase is replace libNX_X<*> by libX<*> where possible.
If you are available for coding, maybe you feel like working on the
Xinerama change?
DAS-NETZWERKTEAM mike gabriel, herweg 7, 24357 fleckeby fon: +49 (1520) 1976 148
GnuPG Key ID 0x25771B31 mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de
freeBusy: https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xf...
On 28.04.2015 11:03 PM, Mike Gabriel wrote:
Moving that change from libXinerama into the Xserver code is actually
a good idea. Maybe that is also possible for all the other changes in
libNX_X<*>.
Yes, but for now I'd like to fix up the current, broken packages we have, including 3.5.0.x. Thus https://github.com/ArcticaProject/nx-libs/pull/19
Also, I would like to get rid of that xinerama.conf and turn it into
some sort of FIFO socket.
We are indeed working on dropping as many of nx-libs's bundled libraries as possible. We replace them with the system's versions. Often this means modifying files under nx-X11/programs/xserver/ like the one you mentioned. I am not sure what the schedule is for libXinerama, but I assume it is on the list. All this work is being done on the nx-libs 3.6.x branch. http://code.x2go.org/gitweb?p=nx-libs.git;a=shortlog;h=refs/heads/3.6.x https://github.com/ArcticaProject/nx-libs/tree/3.6.x
Hopefully someone can comment on the timetable for dropping the bundled libXinerama. Still, just because we dropped libXinerama doesn't mean we will immediately release nx-libs 3.6.0; We will probably drop other libraries 1st.
Ok, I have not seen a detailed list of the planned steps, does such a thing exist?
There is no such list. We coordinate via IRC (#arctica on Freenode).
The current phase is clean-up-clean-up-clean-up. The other current
phase is replace libNX_X<*> by libX<*> where possible.
Btw, a list of already cleaned up stuff can be found here:
https://github.com/ArcticaProject/nx-libs/pulls?q=is%3Apr+is%3Aclosed
Mihai