[X2Go-Dev] Cross-Compiling X2Go Client for Windows

Michael DePaulo mikedep333 at gmail.com
Thu Jul 2 14:59:35 CEST 2015


Hi Heinz,

At the X2Go Gathering 2015, I gave a talk on X2Go Client for Windows
development:
https://docs.google.com/presentation/d/1GxTHN4AiSRLtfbiQqRycMjrAn3OL_xWk0x3_p-Nop2k/edit?usp=sharing

Although many components such as nxproxy have to be built with
separate build systems and thus will have to be built manually, I
would like there to be a more reproducible way to build X2Go Client
itself (x2goclient.git -> x2goclient.exe & x2gohelper.exe). I love
tools like pbuilder and mock for Linux.

2 possible solutions for this (cross-compilation environments) that
look promising are:
http://mxe.cc
http://win-builds.org

However, I think Mike#1 said that you told him there was a need to
build X2Go Client for Windows via a Windows machine (the WinBuilder
VM) rather than a cross-compilation environment. Can you explain the
reason for that?

Note that I am frequently updating this page:
http://wiki.x2go.org/doku.php/wiki:development:build-howto-mswin:x2goclient

I see 4 potential obstacles to using a cross-compilation environment:

1. We configure Qt for static builds (the Qt libraries are included
withing x2goclient.exe):
http://wiki.x2go.org/doku.php/wiki:development:build-howto-mswin:x2goclient#configuring_qt
However, I doubt there is a need to configure Qt for static builds. If
we have to distribute some Qt DLLs, so be it.,

Note that OpenSSL support in Qt should not be a problem; it is safe to
assume that all the cross-compilation environments support that.

2. We have to use a version of libssh that is patched for Pageant
support (upstream libssh wants to do redesign how they handle SSH
agents before they accept the patch):
http://wiki.x2go.org/doku.php/wiki:development:build-howto-mswin:x2goclient#installing_libssh

3. We would need to package libraries for the cross-compilation environments.
For example, MXE lacks libssh.

4. At the end of the build, we need to combine all the 3rd party
components (built with separate build systems) into the NSIS
installer.
This should be feasible though; MXE supports NSIS for example.

-Mike#2


More information about the x2go-dev mailing list