This is an old revision of the document!
This howto explains how to build the MS Windows version of X2Go Client. This howto explains how to build the 32-bit version of X2Go Client on MS Windows. If someone successfully attempts a 64-bit (which should work, but needs to be tested), please contribute to this wiki page.
X2Go Cltient for Windows needs several 3rd-party programmes for being able to run on MS Windows:
All these programmes can be built from source, downloaded from our server or from their project sites. You can also copy the 3rd-party components from X2Go Client installation (on MS Windows) directory.
For building X2Go Client, we highly recommend to install MSysGit and Notepad2.
MSysGit provides a Unix-like shell (bash) environment, so that you can use Git easily from the command line.
Notepad2 is a freeware alternative to Notepad shipped with Microsoft Windows. Notepad2 understands UTF-8 text formats (and others) and can handle Unix-style line endings. In case you want to introspect a code file, this tool is very handy.
MinGW is a gcc compiler for Windows. You need it to build X2Go Client. Qt-4.8 for Windows should be used with MinGw-4.4. Unfortunately, you can not download binaries for this version from MinGW project site any more. You can build it from source or download it from X2Go Site
Extract it to your disk (D:\mingw
in this example).
Finally, you have to add these MinGW executable directories to your PATH environment variable: D:\mingw\bin
, D:\mingw\libexec\gcc\mingw32\4.4.0
.
You need Qt to build X2Go Client from source. Qt-4.8 is tested and recommended for current version of X2Go Client.
Download and install a MinGW version of Qt-4.8 for Windows from here
In this example D:\Qt will be chosen as installation directory
As X2Go Client needs a Qt with SSL support you must install OpenSSL for MS Windows. OpenSSL depends on the Microsoft Visual C++ 2008 Redistributables. Get that (32-bit version, x86) from the Microsoft site and install it prior to installing OpenSSL.
The OpenSSL installer for Windows here or from our site. Install it on your build system (for example to directory d:\OpenSSL-Win32
).
After installation, copy OpenSSL header files into MinGW's include directory:
d:\OpenSSL-Win32\include\openssl -> d:\mingw\include\openssl
It is recommended to configure Qt to build statically linked applications. It will take some time to reconfigure Qt for static builds. You surely can skip this step, but in this case you must provide Qt libraries with your X2Go Client binary.
Open Qt Command Prompt and start configuration script
$ configure -release -static -openssl
Rebuild Qt
$ make sub-src
If you choose to build dynamically linked applications with Qt, you still have to rebuild Qt in order to get OpenSSL support into Qt.
Open Qt Command Prompt and start configuration script
$ configure -release -openssl
Rebuild Qt
$ make sub-src
You need libssh to build X2Go Client.
Get libssh library package built with MinGW from here on our site.
Prior versions can befound here the KDE Windows project and here on our site.
Extract files from archive.
Copy headers files in “include” directory of MinGW
libssh\include\libssh → d:\mingw\include\libssh
Copy library files in “lib” directory of MinGW
libssh\lib\*.* → d:\mingw\lib\
Open Qt Command Prompt, change to your build directory and get X2Go Client sources from git
$ git clone git://code.x2go.org/x2goclient.git
Build X2Go Client
$ cd x2goclient $ PATH=%PATH%;D:\MinGW\libexec\gcc\mingw32\4.4.0\ $ config_win.bat $ mingw32-make
X2Go Client (x2goclient.exe) binary is in d:\build\x2goclient\release directory
You may want to pack X2Go Client to reduce it size. You can do it with upx, which is available for Windows, Linux and Cygwin.
To make X2Go Client usable on Windows, you must put X2Go Client binary and all libraries and components in one directory.
All of the files referenced below (apart from x2goclient.exe) can be obtained from x2goclient-contrib.git on http://git.x2go.org
In the base directory of your X2Go Client source tree create a folder named dist/
. To this folder you have to add the following components:
release/
folder) to the dist/
folder.D:\MinGW\bin
)libgcc_s_dw2-1.dll
mingwm10.dll
libeay32.dll
ssleay32.dll
libssh.dll
libzip.dll
libz.dll
Microsoft.VC90.CRT.manifest
msvcm90.dll
msvcp90.dll
msvcr90.dll
You can download nxproxy, and its libraries here or obtain them from x2goclient-contrib.git directly.
dist/
folder (built from nx-libs.git on http://git.x2go.org):cygXcomp.dll
cygjpeg-8.dll
cygstdc\+\+-6.dll
cygz.dll
cyggcc_s-1.dll
cygpng-3.dll
cygwin1.dll
nxproxy.exe
If you want to build nxproxy from source, you need install and configure Cygwin first.
Download and start the Cygwin installer
Choose your cygwin directory. For example c:\cygwin. Follow installer instructions.
on installer page “Select Packages” you can select programs and libraries that should be installed in your cygwin environment. For building of nxproxy you will need:
autoconf
automake
gcc-core
gcc-g++
git
libX11-devel
libjpeg-devel
libmpfr4
make
mc
zlib-devel
wget
If you are updating the X2Go Windows build VM, X2Go-WinBuilder, install these packages too:
vim
git-completion
patch
patch-utils
openssh
xz
unzip
nano
bzip2
time
You will need a libpng12 to build nxproxy. This version of libpng is not available on current version of cygwin. You should install it manually.
$ cd /usr/src
$ wget http://downloads.sourceforge.net/project/libpng/libpng12/1.2.51/libpng-1.2.51.tar.gz $ tar -xzvf libpng-1.2.51.tar.gz $ cd libpng-1.2.51
$ ./configure --prefix=/usr/ $ make && make install
$ cd /cygdrive/d/Build
$ git clone git://code.x2go.org/nx-libs.git $ cd nx-libs
$ cd nxcomp $ autoconf $ ./configure $ make $ cd ..
$ cd nxproxy $ autoconf $ ./configure $ make $ strip nxproxy.exe $ cd ..
Now the nxproxy binary (nxproxy.exe) is ready. You can copy it into the programme packaging folder (dist/
) of X2Go Client. To be able to run nxproxy you must also copy required libraries into the dist/
folder:
cygXcomp.dll
cyggcc_s-1.dll
cygjpeg-8.dll
cygpng-3.dll
cygstdc\+\+-6.dll
cygwin1.dll
cygz.dll
X2Go Client for Windows using modified Cygwin Open SSH Server for file sharing. You can download it here
If you want to build it from source, you should install Cygwin first.
After that run Cygwin installer (setup.exe), navigate to “Select Packages” page and install additional packages, you need to build Open SSH Server:
For openssh you should install both, binary and source packages (toggle “Src” checkbox beside of package name). Source package will be installed in /usr/src directory in your Cygwin installation.
Copy openssh tarball to your build directory. In this example d:\Build will be used
$cp /usr/src/openssh-6.1p1.tar.gz /cygdrive/d/Build/
Extract sources and change to openssh source directory
$cd /cygdrive/d/Build/ $tar -xzvf openssh-6.1p1.tar.gz $cd openssh-6.1p1
Get and apply patch, which allow use Open SSH Server with X2Go Client
$wget http://code.x2go.org/releases/source/openssh-cygwin/openssh-6.0p1-2.x2go.patch $patch.exe < openssh-6.0p1-2.x2go.patch
Build Open SSH Server
$./configure --libexecdir=/usr/sbin --with-kerberos5=/usr --with-tcp-wrappers --with-libedit --with-xauth=/usr/bin/xauth --build=mingw32 $make $strip *.exe
Open SSH Server binaries are ready. Now you can copy them in to the installation directory of x2goclient:
To be able to run Open SSH Server you should also copy needed programs and libraries from cygwin directory (c:\cygwin\bin):
Some of this libraries are also used by nxproxy. Open SSH Server and nxproxy should be built using same version of Cygwin.
You can download PulseAudio 5.0 for Windows here.
Prior versions of PulseAudio are available from project site and the above link.
you can download VcXsrv for Windows here or from project site. Building VcXsrv from source is not the part of this Howto
All official X2Go Project builds use the 32-bit builds of VcXsrv. 64-bit builds are probably compatible with the 32-bit X2Go Client, but have not been tested.
Also, you are doing an official X2Go Project build, use the latest version that is still compatible with Windows XP: 1.14.2.1
If you do download VcXsrv from the project site, deselect to install the fonts. They would more than double the size of the X2Go NSIS installer. Some legacy apps do need them, and users can install them if they'd like
Also, if you are doing an official X2Go Project build, remove these files that X2Go Client does not need and would take up extra space:
you can download PuTTY for Windows from project site. Building PuTTY from source is not the part of this Howto
These are the only binaries you need from PuTTY. Copy them directly into the dist/
folder.