User Tools

Site Tools


wiki:development:build-howto-mswin:x2goclient

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
wiki:development:build-howto-mswin:x2goclient [2018/06/07 06:18]
ionic Rephrase Qt-SSL statement a bit.
wiki:development:build-howto-mswin:x2goclient [2018/06/07 06:57]
ionic More formatting and minor changes.
Line 85: Line 85:
 It is recommended to configure Qt to build statically linked applications. It is recommended to configure Qt to build statically linked applications.
  
-This is how official X2Go Client builds are done+This is how official X2Go Client builds are done.
  
 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. 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.
Line 116: Line 116:
 $ make -j3 sub-src $ make -j3 sub-src
 </code> </code>
 +
 ==== Installing libssh ==== ==== Installing libssh ====
 You need libssh to build X2Go Client. You need libssh to build X2Go Client.
Line 151: Line 152:
 <code> <code>
 $ copy debian\changelog txt\ $ copy debian\changelog txt\
-git --no-pager log --since "2 years ago" --format="%ai %aN (%h) %n%n%x09*%w(68,0,10) %s%d%n" > ChangeLog.gitlog+git --no-pager log --since "2 years ago" --format="%ai %aN (%h) %n%n%x09*%w(68,0,10) %s%d%n" > ChangeLog.gitlog
 $ copy ChangeLog.gitlog txt\git-info $ copy ChangeLog.gitlog txt\git-info
- 
 </code> </code>
  
Line 170: Line 170:
  
 X2Go Client binaries (x2goclient.exe & x2gohelper.exe) are in d:\build\x2goclient\release\ directory. X2Go Client binaries (x2goclient.exe & x2gohelper.exe) are in d:\build\x2goclient\release\ directory.
 +
 ==== Build X2Go Client from source (debug build) ==== ==== Build X2Go Client from source (debug build) ====
 Repeat the instructions for "Build X2Go Client from source", except Repeat the instructions for "Build X2Go Client from source", except
Line 176: Line 177:
   - Edit nsis\x2goclient.nsi so that the following lines:   - Edit nsis\x2goclient.nsi so that the following lines:
  
-  * CreateShortCut "$INSTDIR\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" +<code> 
-  CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" +  CreateShortCut "$INSTDIR\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" 
-  CreateShortCut "$DESKTOP\X2Go Client.lnk" "$INSTDIR\x2goclient.exe"+  CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" 
 +  CreateShortCut "$DESKTOP\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" 
 +</code> 
 Are replaced with the following: Are replaced with the following:
  
-  * CreateShortCut "$INSTDIR\X2Go Client.lnk" "$INSTDIR\x2goclient.exe"  "--debug" +<code> 
-  CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" "--debug" +  CreateShortCut "$INSTDIR\X2Go Client.lnk" "$INSTDIR\x2goclient.exe"  "--debug" 
-  CreateShortCut "$DESKTOP\X2Go Client.lnk" "$INSTDIR\x2goclient.exe"  "--debug"+  CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\X2Go Client.lnk" "$INSTDIR\x2goclient.exe" "--debug" 
 +  CreateShortCut "$DESKTOP\X2Go Client.lnk" "$INSTDIR\x2goclient.exe"  "--debug" 
 +</code>
  
 ==== Copy the X2Go Client binaries to the desired folder ==== ==== Copy the X2Go Client binaries to the desired folder ====
Line 189: Line 195:
 The 2 binaries to copy are: The 2 binaries to copy are:
  
-  - x2goclient.exe (from the ''client_build\release'' folder) +  - ''x2goclient.exe'' (from the ''client_build\release'' folder) 
-  - x2gohelper.exe (from the ''client_build\release'' folder)+  - ''x2gohelper.exe'' (from the ''client_build\release'' folder)
  
 However, you must decide where you wish to copy them. However, you must decide where you wish to copy them.
  
-  - If you wish to run x2goclient from a folder without creating and running the NSIS installer , copy them to the ''dist'' folder. This is the folder where you will run them from. +  - If you wish to run x2goclient from a folder without creating and running the NSIS installer, copy them to the ''dist'' folder. This is the folder where you will run them from. 
-  - If you wish to create an x2goclient NSIS installer, create the ''nsis\x2goclient'' folder and copy them there+  - If you wish to create an x2goclient NSIS installer, create the ''nsis\x2goclient'' folder and copy them there.
  
 ==== Pack/Compress X2Go Client ==== ==== Pack/Compress X2Go Client ====
Line 209: Line 215:
  
 The 2 files to pack are: The 2 files to pack are:
-  - x2goclient.exe +  - ''x2goclient.exe'' 
-  - x2gohelper.exe+  - ''x2gohelper.exe'' 
 ===== Building nxproxy & OpenSSH (Optional) ===== ===== Building nxproxy & OpenSSH (Optional) =====
  
Line 217: Line 224:
 Official X2Go project builds usually rebuild nxproxy and OpenSSH if there are desired updates to those components, or if the cygwin libraries have been updated. Official X2Go project builds usually rebuild nxproxy and OpenSSH if there are desired updates to those components, or if the cygwin libraries have been updated.
  
-Official X2Go project builds are kept under the x2goclient-contrib git repository under a folder like "cygwin\20160121-1_bin" (the latest cygwin libraries as of 2016-01-21) or "cygwin\20160120-2_bin" (the former, with selective updates). These are then copied over during the jenkins build process.+Official X2Go project builds are kept under the x2goclient-contrib git repository under a folder like "cygwin\20160121-1_bin" (the latest cygwin libraries as of 2016-01-21) or "cygwin\20160121-2_bin" (the former, with selective updates). These are then copied over during the Jenkins build process. 
 ==== Installing Cygwin ==== ==== Installing Cygwin ====
  
-Download and start the [[https://cygwin.com/setup-x86.exe|Cygwin 32-bit installer]]+Download and start the [[https://cygwin.com/setup-x86.exe|Cygwin 32-bit installer]].
  
-Choose your cygwin directory. For example c:\cygwin. Follow installer instructions.+Choose your Cygwin directory. For example C:\cygwin. Follow installer instructions.
  
 For the X2Go-WinBuilder VM, install to D:\cygwin.YYYY-MM-DD instead. For the X2Go-WinBuilder VM, install to D:\cygwin.YYYY-MM-DD instead.
Line 229: Line 237:
  
 <code> <code>
-setup-x86.exe -P "autoconf,automake,gcc-core,gcc-g++,git,libX11-devel,libjpeg-devel,libpng-devel,libmpfr4,make,zlib-devel,wget,libedit-devel,libncurses-devel,openssl-devel,patch,bashdb,bash-completion,chere,colorgcc,colordiff,diffutils,dos2unix,cygcheck-dep,cygutils-extra,indent,mc,renameutils,vim,git-completion,patchutils,openssh,xz,unzip,nano,bzip2,time"+setup-x86.exe -P "autoconf,automake,gcc-core,gcc-g++,git,libX11-devel,libjpeg-devel,libpng-devel,libmpfr4,make,zlib-devel,wget,libedit-devel,libncurses-devel,openssl-devel,patch,bashdb,bash-completion,chere,colorgcc,colordiff,diffutils,dos2unix,cygcheck-dep,cygutils-extra,indent,mc,renameutils,vim,git-completion,patchutils,openssh,xz,unzip,nano,bzip2,time"
 </code> </code>
  
-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:+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''   * ''autoconf''
   * ''automake''   * ''automake''
   * ''gcc-core''   * ''gcc-core''
-  * ''gcc-g\+\+''+  * ''gcc-g%%++%%''
   * ''git''   * ''git''
   * ''imake''   * ''imake''
Line 242: Line 250:
   * ''libjpeg-devel''   * ''libjpeg-devel''
   * ''libpng15-devel'' (X2Go Client 4.0.3.x)   * ''libpng15-devel'' (X2Go Client 4.0.3.x)
-  * ''libpng-devel'' (X2Go Client 4.0.4.x or 4.0.5.x)+  * ''libpng-devel'' (X2Go Client 4.0.4.x+)
   * ''libmpfr4''   * ''libmpfr4''
   * ''libtool'' (nx-libs 3.6)   * ''libtool'' (nx-libs 3.6)
Line 249: Line 257:
   * ''wget''   * ''wget''
  
-<note tip>By installing the ''libjpeg-devel'' package, you are now installing [[https://cygwin.com/ml/cygwin-announce/2014-06/msg00004.html|libjpeg-turbo]] instead of the legacy libjpeg . The same applies for the dependency ''libjpeg8'' package, which provides the cygjpeg-8.dll file that you will copy later.</note>+<note tip>By installing the ''libjpeg-devel'' package, you are now installing [[https://cygwin.com/ml/cygwin-announce/2014-06/msg00004.html|libjpeg-turbo]] instead of IJG libjpeg. The same applies for the dependency ''libjpeg8'' package, which provides the cygjpeg-8.dll file that you will copy later.</note>
  
-For building of OpenSSH Server, you will also need:+For building of OpenSSH Server, you will also need: 
-  *libedit-devel +  * ''libedit-devel'' 
-  *libncurses-devel +  * ''libncurses-devel'' 
-  *openssl-devel +  * ''openssl-devel'' 
-  *patch+  * ''patch''
  
-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.+For OpenSSH you should install both, binary and source packages. Toggle the "Src" checkbox beside the package name. Source package will be installed in ''/usr/src'' directory in your Cygwin installation.
  
 If you are updating the X2Go Windows build VM, X2Go-WinBuilder, install these packages too: If you are updating the X2Go Windows build VM, X2Go-WinBuilder, install these packages too:
Line 284: Line 292:
  
 If you are doing official builds, install these **source** packages for both nxproxy and openssh: If you are doing official builds, install these **source** packages for both nxproxy and openssh:
-  * dash +  * ''dash'' 
-  * cygwin +  * ''cygwin'' 
-  * gcc (select source for: gcc-core) +  * ''gcc'' (select source for: ''gcc-core''
-  * libedit (select source for: libedit0) +  * ''libedit'' (select source for: ''libedit0''
-  * libjpeg-turbo (select source for: libjpeg-devel) +  * ''libjpeg-turbo'' (select source for: ''libjpeg-devel''
-  * libpng15 (select source for: libpng-devel) (X2Go Client 4.0.3.x) +  * ''libpng15'' (select source for: ''libpng-devel'') (X2Go Client 4.0.3.x) 
-  * libpng (select source for: libpng-devel) (X2Go Client 4.0.4.x or 4.0.5.x+  * ''libpng'' (select source for: ''libpng-devel'') (X2Go Client 4.0.4.x+
-  * ncurses (select source for: libncurses-devel) +  * ''ncurses'' (select source for: ''libncurses-devel''
-  * openssh (source, but not binary) +  * ''openssh'' (source, but not binary) 
-  * openssl +  * ''openssl'' 
-  * zlib (select source for: zlib-devel)+  * ''zlib'' (select source for: ''zlib-devel'') 
 ==== Building nxproxy 3.5 ==== ==== Building nxproxy 3.5 ====
  
 X2Go Client for Windows is currently built with nxproxy 3.5. X2Go Client for Windows is currently built with nxproxy 3.5.
  
-  * Open a cygwin shell and change to your build directory. In this example d:\Build will be used+  * Open a cygwin shell and change to your build directory. In this example ''D:\Build'' will be used
 <code> <code>
 $ cd /cygdrive/d/Build $ cd /cygdrive/d/Build
 </code> </code>
-  * Download and extract the latest nx-libs-lite tarball from http://code.x2go.org/releases/source/nx-libs/ . Regular nx-libs sources will also work.+  * Download and extract the latest nx-libs-lite tarball from [[http://code.x2go.org/releases/source/nx-libs/]]. Regular nx-libs sources will also work.
  
 <note warning>Do not download and use the sources from git. Unlike the tarball, the git sources do not have the X2Go project's patches (debian/patches/) applied. (Technically, you could use the sources from git and apply the patches manually.)</note> <note warning>Do not download and use the sources from git. Unlike the tarball, the git sources do not have the X2Go project's patches (debian/patches/) applied. (Technically, you could use the sources from git and apply the patches manually.)</note>
Line 382: Line 391:
 ==== Building nxproxy 3.6 ==== ==== Building nxproxy 3.6 ====
  
-<note tip>X2Go Client for Windows is currently built with nxproxy 3.5, not 3.6. However, it should be safe to use 3.6. +<note tip>X2Go Client for Windows is currently shipped with nxproxy 3.5, not 3.6. However, it should be safe to use 3.6.</note> 
-</note> +<note important>nxproxy 3.6 currently has one additional build dependency that 3.5 does not have. See the Cygwin installation instructions above.</note>
-<note important>nxproxy 3.6 currently has one additional build dependency that 3.5 does not have. See the Cygwin installation instructions above. +
-</note>+
  
-  * Open a cygwin shell and change to your build directory. In this example d:\Build will be used+  * Open a Cygwin shell and change to your build directory. In this example ''D:\Build'' will be used
 <code> <code>
 $ cd /cygdrive/d/Build $ cd /cygdrive/d/Build
Line 420: Line 427:
  
 Now the nxproxy binary (nxproxy.exe) is ready. You can copy it into the program packaging folder (''dist/'' or ''nsis/x2goclient/'') of X2Go Client, or the x2goclient-contrib folder: Now the nxproxy binary (nxproxy.exe) is ready. You can copy it into the program packaging folder (''dist/'' or ''nsis/x2goclient/'') of X2Go Client, or the x2goclient-contrib folder:
-  - nx-libs 3.5: From nxproxy directory (d:\Build\nx-libs\nxproxy) - ''nxproxy.exe'' +  - nx-libs 3.5: From ''nxproxy'' directory (''D:\Build\nx-libs\nxproxy'') - ''nxproxy.exe'' 
-  - nx-libs 3.5: From nxcomp directory (d:\Build\nx-libs\nxcomp) - ''cygXcomp.dll'' +  - nx-libs 3.5: From ''nxcomp'' directory (''D:\Build\nx-libs\nxcomp'') - ''cygXcomp.dll'' 
-  - nx-libs 3.6: From nxproxy\src directory (d:\Build\nx-libs\nxproxy\src) - ''nxproxy.exe'' +  - nx-libs 3.6: From ''nxproxy\src'' directory (''D:\Build\nx-libs\nxproxy\src'') - ''nxproxy.exe'' 
-  - nx-libs 3.5: From nxcomp\src\.libs directory (d:\Build\nx-libs\nxcomp\src\.libs) - ''cygXcomp-3.dll''+  - nx-libs 3.6: From ''nxcomp\src\.libs'' directory (''D:\Build\nx-libs\nxcomp\src\.libs'') - ''cygXcomp-3.dll'' 
 You must also copy required libraries into that folder. You must also copy required libraries into that folder.
-  - From cygwin directory (c:\cygwin\bin):+  - From cygwin directory (''C:\cygwin\bin''):
     * ''cyggcc_s-1.dll''     * ''cyggcc_s-1.dll''
     * ''cygjpeg-8.dll''     * ''cygjpeg-8.dll''
     * ''cygpng15-15.dll'' (x2goclient 4.0.3.x)     * ''cygpng15-15.dll'' (x2goclient 4.0.3.x)
-    * ''cygpng16-16.dll'' (x2goclient 4.0.4.x or 4.0.5.x)+    * ''cygpng16-16.dll'' (x2goclient 4.0.4.x+)
     * ''cygstdc\+\+-6.dll''     * ''cygstdc\+\+-6.dll''
     * ''cygwin1.dll''     * ''cygwin1.dll''
Line 436: Line 444:
  
 If you wish to facilitate debugging, or if you are updating x2goclient-contrib, you should copy these files over also: If you wish to facilitate debugging, or if you are updating x2goclient-contrib, you should copy these files over also:
-  - nx-libs 3.5: From nxproxy directory (d:\Build\nx-libs\nxproxy) - ''nxproxy.exe.unstripped'' +  - nx-libs 3.5: From ''nxproxy'' directory (''D:\Build\nx-libs\nxproxy'') - ''nxproxy.exe.unstripped'' 
-  - nx-libs 3.5 :From nxcomp directory (d:\Build\nx-libs\nxcomp):+  - nx-libs 3.5: From ''nxcomp'' directory (''D:\Build\nx-libs\nxcomp''):
     * ''libXcomp.dll.a''     * ''libXcomp.dll.a''
     * ''libXcomp.a''     * ''libXcomp.a''
-  - nx-libs 3.6: From nxproxy\src directory (d:\Build\nx-libs\nxproxy\src) - ''nxproxy.exe.unstripped'' +  - nx-libs 3.6: From ''nxproxy\src'' directory (''D:\Build\nx-libs\nxproxy\src'') - ''nxproxy.exe.unstripped'' 
-  - nx-libs 3.:From nxcomp\src\.libs directory (d:\Build\nx-libs\nxcomp\src\.libs):+  - nx-libs 3.6: From ''nxcomp\src\.libs'' directory (''D:\Build\nx-libs\nxcomp\src\.libs''):
     * ''libXcomp.dll.a''     * ''libXcomp.dll.a''
     * ''libXcomp.a''     * ''libXcomp.a''
 +
 +
 ==== Building OpenSSH Server ==== ==== Building OpenSSH Server ====
  
-Copy the source folder (downloaded and extracted from a tarball by cygwin) to your build directory. In this example d:\Build will be used+Copy the source folder (downloaded and extracted from a tarball by Cygwin) to your build directory. In this example ''D:\Build'' will be used
 <code> <code>
-$cp -pr /usr/src/openssh-6.1.1p1-3-src /cygdrive/d/Build/+$ cp -pr /usr/src/openssh-6.1.1p1-3-src /cygdrive/d/Build/
 </code> </code>
  
-cd to the openssh source directory, extract the upstream (openssh.com) tarball within, and cd to the lower-level source directory+''cd'' to the openssh source directory, extract the upstream (openssh.com) tarball within, and ''cd'' to the lower-level source directory
 <code> <code>
-$cd /cygdrive/d/Build/openssh-6.6.1p1-3 +$ cd /cygdrive/d/Build/openssh-6.6.1p1-3 
-$tar -xzvf openssh-6.6p1.tar.gz +$ tar -xzvf openssh-6.6p1.tar.gz 
-$cd openssh-6.6p1+$ cd openssh-6.6p1
 </code> </code>
  
-Apply any patches that cygwin provides. For example, with 6.6p1-3:+Apply any patches that Cygwin provides. For example, with 6.6p1-3:
 <code> <code>
-$patch < ../curve25519-sha256.patch+$ patch < ../curve25519-sha256.patch
 </code> </code>
  
 Get and apply the X2Go patch, which enables use of the Open SSH Server with X2Go Client Get and apply the X2Go patch, which enables use of the Open SSH Server with X2Go Client
 <code> <code>
-$wget http://code.x2go.org/releases/source/openssh-cygwin/openssh-6.6p1-1.x2go.patch ../ +$ wget http://code.x2go.org/releases/source/openssh-cygwin/openssh-6.6p1-1.x2go.patch ../ 
-$patch.exe < ../openssh-6.6p1-1.x2go.patch+$ patch.exe < ../openssh-6.6p1-1.x2go.patch
 </code> </code>
  
 Build Open SSH Server Build Open SSH Server
 <code> <code>
-$./configure --libexecdir=/usr/sbin --with-libedit --with-xauth=/usr/bin/xauth --build=mingw32 +$ ./configure --libexecdir=/usr/sbin --with-libedit --with-xauth=/usr/bin/xauth --build=mingw32 
-$make +$ make 
-$strip *.exe+$ strip *.exe
 </code> </code>
  
-<note>If doing an official X2Go Client for Windows build, copy over the text from the "configure" output beginning with "OpenSSH has been configured with the following options:" to "openssh build options.txt." Then, put that .txt file in the same folder with the openssh binaries later on.</note>+<note>If doing an official X2Go Client for Windows build, copy over the text from the "configure" output beginning with "OpenSSH has been configured with the following options:" to "openssh build options.txt." Then, put that .txt file in the same folder with the OpenSSH binaries later on.</note> 
 + 
 +<note>If doing an official X2Go Client for Windows build, create a file "openssh version.txt" with contents like "6.6p1-3-x2go1", where "6.6p1-3" is the version string from Cygwin, and "x2go1" denotes that this is the 1st version off of it modified by X2Go.</note> 
 + 
 +<note>The command above is based on the command that Cygwin uses for their official builds, but with certain changes in order to eliminate unnecessary dependencies. Eliminating unnecessary dependencies decreases how frequently X2Go Client for Windows needs to be rebuilt in order to include security patches for those dependencies.</note>
  
-<note>If doing an official X2Go Client for Windows build, create a file "openssh version.txt" with contents like "6.6p1-3-x2go1", where "6.6p1-3" is the version string from Cygwin, and "x2go1" denotes that this is the 1st version off of it modified by X2Go. </note> 
  
-<note>The command above is based on the command that Cygwin uses for their official builds, but with certain changes in order to eliminate unnecessary dependencies. Eliminating unnecessary dependencies decreases how frequently X2Go Client for Windows needs to rebuilt in order to include security patches for those dependencies.</note> 
 ==== Copying OpenSSH Server binaries ==== ==== Copying OpenSSH Server binaries ====
  
-Open SSH Server binaries are ready. You can copy it into the program packaging folder (dist/ or nsis/x2goclient/) of X2Go Client, or the x2goclient-contrib folder: +Open SSH Server binaries are ready. You can copy it into the program packaging folder (''dist/'' or ''nsis/x2goclient/'') of X2Go Client, or the x2goclient-contrib folder: 
-  *sftp.exe +  * ''sftp.exe'' 
-  *sftp-server.exe +  * ''sftp-server.exe'' 
-  *ssh-keygen.exe +  * ''ssh-keygen.exe'' 
-  *sshd.exe+  * ''sshd.exe''
  
 For example: For example:
 <code> <code>
-cp --preserve=time sftp.exe sftp-server.exe ssh-keygen.exe sshd.exe /cygdrive/d/x2goclient-contrib/cygwin/20160121-1_bin/+cp --preserve=time sftp.exe sftp-server.exe ssh-keygen.exe sshd.exe /cygdrive/d/x2goclient-contrib/cygwin/20160121-1_bin/
 </code> </code>
  
-To be able to run Open SSH Server you should also copy needed programs and libraries from cygwin directory (c:\cygwin\bin). +To be able to run Open SSH Server you should also copy needed programs and libraries from the Cygwin directory (c:\cygwin\bin).
  
-1st, copy these files over without changing their filenames. +First, copy these files over without changing their filenames. 
-  *cygcrypto-1.0.0.dll +  * ''cygcrypto-1.0.0.dll'' 
-  *cygedit-0.dll +  * ''cygedit-0.dll'' 
-  *cyggcc_s-1.dll +  * ''cyggcc_s-1.dll'' 
-  *cygncursesw-10.dll +  * ''cygncursesw-10.dll'' 
-  *cygssp-0.dll +  * ''cygssp-0.dll'' 
-  *cygwin1.dll +  * ''cygwin1.dll'' 
-  *cygz.dll+  * ''cygz.dll''
  
 For example: For example:
 <code> <code>
-cd /bin +cd /bin 
-cp --preserve=time cygcrypto-1.0.0.dll cygedit-0.dll cyggcc_s-1.dll cygncursesw-10.dll cygssp-0.dll cygwin1.dll cygz.dll /cygdrive/d/x2goclient-contrib/cygwin/20160121-1_bin/+cp --preserve=time cygcrypto-1.0.0.dll cygedit-0.dll cyggcc_s-1.dll cygncursesw-10.dll cygssp-0.dll cygwin1.dll cygz.dll /cygdrive/d/x2goclient-contrib/cygwin/20160121-1_bin/
 </code> </code>
  
-2nd, copy the Dash executable over and rename it:+Then, copy the dash executable over and rename it:
 <code> <code>
 ash.exe -> sh.exe ash.exe -> sh.exe
Line 519: Line 530:
 For example: For example:
 <code> <code>
-cp --preserve=time ash.exe /cygdrive/d/x2goclient-contrib/cygwin/20160121-1_bin/sh.exe+cp --preserve=time ash.exe /cygdrive/d/x2goclient-contrib/cygwin/20160121-1_bin/sh.exe
 </code> </code>
  
Line 547: Line 558:
 You can then install all of them by using the ''copy-deps-win32.bat'' script in the x2goclient source folder. You can then install all of them by using the ''copy-deps-win32.bat'' script in the x2goclient source folder.
  
-1st, clone [[http://code.x2go.org/gitweb?p=x2goclient-contrib.git;a=summary|x2goclient-contrib.git]] on http://code.x2go.org if you haven't already done so.+First, clone [[http://code.x2go.org/gitweb?p=x2goclient-contrib.git;a=summary|x2goclient-contrib.git]] on http://code.x2go.org if you haven't already done so.
  
 Now run the script with the following arguments. In this example: Now run the script with the following arguments. In this example:
-  * ..\x2goclient-contrib is the path to the x2goclient-contrib git repo +  * ''..\x2goclient-contrib'' is the path to the x2goclient-contrib git repo 
-  * D:\OpenSSL-Win32\ is the path to OpenSSL-Win32's installation folder (not the exact folder with the DLL's) +  * ''D:\OpenSSL-Win32\'' is the path to OpenSSL-Win32's installation folder (not the exact folder with the DLL's) 
-  * "distis the subfolder you wish to run x2goclient from+  * ''dist'' is the subfolder you wish to run x2goclient from
 <code> <code>
-cd x2goclient +cd x2goclient 
-copy-deps-win32.bat ..\x2goclient-contrib D:\OpenSSL-Win32 dist+copy-deps-win32.bat ..\x2goclient-contrib D:\OpenSSL-Win32 dist
 </code> </code>
 or to the ''nsis/x2goclient'' folder or to the ''nsis/x2goclient'' folder
 <code> <code>
-cd x2goclient +cd x2goclient 
-copy-deps-win32.bat nsis\x2goclient+copy-deps-win32.bat nsis\x2goclient
 </code> </code>
  
Line 569: Line 580:
 However, at the end: However, at the end:
  
-  - View the copy-deps-win32.bat file to determine the location of the cygwin bundle. +  - View the ''copy-deps-win32.bat'' file to determine the location of the Cygwin bundle. 
-  - From the cygwin bundle, ''copy nxproxy.exe.unstripped'' to the ''dist'' or ''release/x2goclient'' folder.+  - From the Cygwin bundle, ''copy nxproxy.exe.unstripped'' to the ''dist'' or ''release/x2goclient'' folder.
   - Replace nxproxy.exe with nxproxy.exe.unstripped   - Replace nxproxy.exe with nxproxy.exe.unstripped
  
Line 577: Line 588:
 === Libraries === === Libraries ===
  
-  - Add MinGW 4.8'ibraries (copy from ''D:\i686-4.8.2-release-posix-dwarf-rt_v3-rev3\mingw32\bin''). (Note that the inclusion of '\' character before the '+' character is to work around a horrible issue in dokuwiki; the actual filenames do not have the '\" character.)+  - Add MinGW 4.8'libraries (copy from ''D:\i686-4.8.2-release-posix-dwarf-rt_v3-rev3\mingw32\bin'').
     * ''libgcc_s_dw2-1.dll''     * ''libgcc_s_dw2-1.dll''
-    * ''libstdc\+\+-6.dll'' +    * ''libstdc%%++%%-6.dll'' 
-    * libwinpthread-1.dll+    * ''libwinpthread-1.dll''
   - Add OpenSSL libraries (copy from your OpenSSL installation directory)   - Add OpenSSL libraries (copy from your OpenSSL installation directory)
     * ''libeay32.dll''     * ''libeay32.dll''
Line 586: Line 597:
   - libssh library ([[wiki:development:build-howto-mswin:x2goclient#installing_libssh|see above section for download link]])   - libssh library ([[wiki:development:build-howto-mswin:x2goclient#installing_libssh|see above section for download link]])
     * ''libssh.dll''     * ''libssh.dll''
-  - libzip library (available [[http://code.x2go.org/releases/binary-win32/3rd-party/libzip/ |here on our site]]) (binaries originally from [[ftp://winkde.org/kde/ports/win32/releases/stable/latest/ | the KDE Windows project]] site)+  - libzip library (available [[http://code.x2go.org/releases/binary-win32/3rd-party/libzip/|here on our site]]) (binaries originally from [[ftp://winkde.org/kde/ports/win32/releases/stable/latest/|the KDE Windows project]] site)
     * ''libzip.dll''     * ''libzip.dll''
-  - zlib library for libzip (available [[http://code.x2go.org/releases/binary-win32/3rd-party/zlib/ |here on our site]]) (binaries originally from [[ftp://winkde.org/kde/ports/win32/releases/stable/latest/ | the KDE Windows project]] site )+  - zlib library for libzip (available [[http://code.x2go.org/releases/binary-win32/3rd-party/zlib/|here on our site]]) (binaries originally from [[ftp://winkde.org/kde/ports/win32/releases/stable/latest/|the KDE Windows project]] site)
     * ''libz.dll''     * ''libz.dll''
-  - zlib library for libssh (available [[http://code.x2go.org/releases/binary-win32/3rd-party/zlib/ |here on our site]]) (binaries originally from [[http://www.zlib.net/ | the zlib project]] site)+  - zlib library for libssh (available [[http://code.x2go.org/releases/binary-win32/3rd-party/zlib/|here on our site]]) (binaries originally from [[http://www.zlib.net/ | the zlib project]] site)
     * ''zlib1.dll''     * ''zlib1.dll''
-  - If you want to use X2Go Client on older versions of Windows, you should put the "Microsoft Visual C\+\+ Redistributable 2013 Package"'s dll files into your X2Go Client package directory. (Originally downloaded from the [[http://www.microsoft.com/en-us/download/details.aspx?id=29|Microsoft download site]]).+  - If you want to use X2Go Client on older versions of Windows, you should put the "Microsoft Visual C%%++%% Redistributable 2013 Package"'s dll files into your X2Go Client package directory. (Originally downloaded from the [[http://www.microsoft.com/en-us/download/details.aspx?id=29|Microsoft download site]]).
     * ''msvcp120.dll''     * ''msvcp120.dll''
     * ''msvcr120.dll.dll''     * ''msvcr120.dll.dll''
Line 600: Line 611:
 === nxproxy === === nxproxy ===
  
-The latest version is available in [[http://code.x2go.org/gitweb?p=x2goclient-contrib.git;a=tree;hb=HEAD|x2goclient-contrib.git]] under the cygwin folder. This includes its libraries.+The latest version is available in [[http://code.x2go.org/gitweb?p=x2goclient-contrib.git;a=tree;hb=HEAD|x2goclient-contrib.git]] under the ''cygwin'' folder. This includes its libraries.
  
 You can download older versions, including their libraries, from here [[http://code.x2go.org/releases/binary-win32/3rd-party/nxproxy|here]]. You can download older versions, including their libraries, from here [[http://code.x2go.org/releases/binary-win32/3rd-party/nxproxy|here]].
Line 612: Line 623:
 Older builds do not have nxproxy.exe.unstripped; that is a limitation of X2Go's old build process. Older builds do not have nxproxy.exe.unstripped; that is a limitation of X2Go's old build process.
  
-=== OpenSSH server ===+=== OpenSSH Server ===
  
 X2Go Client for Windows uses a modified Cygwin OpenSSH Server for file sharing. X2Go Client for Windows uses a modified Cygwin OpenSSH Server for file sharing.
  
-The latest version is available in [[http://code.x2go.org/gitweb?p=x2goclient-contrib.git;a=tree;hb=HEAD|x2goclient-contrib.git]] under the cygwin folder.+The latest version is available in [[http://code.x2go.org/gitweb?p=x2goclient-contrib.git;a=tree;hb=HEAD|x2goclient-contrib.git]] under the ''cygwin'' folder.
  
 You can download older versions from [[http://code.x2go.org/releases/binary-win32/3rd-party/openssh-server|here]]. You can download older versions from [[http://code.x2go.org/releases/binary-win32/3rd-party/openssh-server|here]].
Line 630: Line 641:
 Note that the files must be installed to the ''pulse'' subfolder of ''dist'' or ''nsis/x2goclient''. Note that the files must be installed to the ''pulse'' subfolder of ''dist'' or ''nsis/x2goclient''.
  
-Even older Windows builds are available from [[http://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support|project site]] and the above link.+Even older Windows builds are available from [[http://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support|the PulseAudio project site]] and the above link.
  
 === VcXsrv - XP Compatible === === VcXsrv - XP Compatible ===
Line 640: Line 651:
 Note that the files must be installed to the ''VcXsrv'' subfolder of ''dist'' or ''nsis/x2goclient''. Note that the files must be installed to the ''VcXsrv'' subfolder of ''dist'' or ''nsis/x2goclient''.
  
-Building VcXsrv from source is not the part of this Howto. However, it is documented under the [[https://sourceforge.net/u/mikedep333/vcxsrv/ci/xp-latestmsvc2013-x2gochanges/tree/|source repo]]+Building VcXsrv from source is not the part of this howto. However, it is documented in the [[https://sourceforge.net/u/mikedep333/vcxsrv/ci/xp-latestmsvc2013-x2gochanges/tree/|source repo]].
  
 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. Furthermore, the XP compatible builds are only offered in 32-bit. 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. Furthermore, the XP compatible builds are only offered in 32-bit.
Line 649: Line 660:
  
 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: 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:
-  *iconv.dll +  * ''iconv.dll'' 
-  *libgcc-s-sjlj-1.dll +  * ''libgcc-s-sjlj-1.dll'' 
-  *libiconv-2.dll +  * ''libiconv-2.dll'' 
-  *libwinpthread-1.dll +  * ''libwinpthread-1.dll'' 
-  *libxml2.dll +  * ''libxml2.dll'' 
-  *libxml2-2.dll +  * ''libxml2-2.dll'' 
-  *plink.exe +  * ''plink.exe'' 
-  *uninstall.exe +  * ''uninstall.exe'' 
-  *xauth.exe +  * ''xauth.exe'' 
-  *XCalc +  * ''XCalc'' 
-  *xcalc.exe +  * ''xcalc.exe'' 
-  *XCalc-color +  * ''XCalc-color'' 
-  *XClock +  * ''XClock'' 
-  *xclock.exe +  * ''xclock.exe'' 
-  *XClock-color +  * ''XClock-color'' 
-  *xhost.exe +  * ''xhost.exe'' 
-  *xlaunch.exe +  * ''xlaunch.exe'' 
-  *xrdb.exe +  * ''xrdb.exe'' 
-  *xwininfo.exe+  * ''xwininfo.exe''
  
-Also, if you are doing an official X2Go Project build, before importing it into x2goclient-contrib, remove the timestamps from the .gz files. +Also, if you are doing an official X2Go Project build, before importing it into x2goclient-contrib, remove the timestamps from the ''.gz'' files. 
-Using debian's strip-nondeterminism (a perl script that calls a perl library, both of which can be extracted from their deb's & run fine under Cygwin):+Using Debian's strip-nondeterminism (a perl script that calls a perl library, both of which can be extracted from their deb's & run fine under Cygwin):
 <code> <code>
-cd /cygdrive/c/x2gobuilds/x2goclient-contrib/VcXsrv/1.20.0.0_bin/fonts +cd /cygdrive/c/x2gobuilds/x2goclient-contrib/VcXsrv/1.20.0.0_bin/fonts 
-find . -name *.gz | xargs strip-nondeterminism+find . -name *.gz | xargs strip-nondeterminism
 </code> </code>
 If you are doing an official X2Go Project build, create this file in the VcXsrv folder: If you are doing an official X2Go Project build, create this file in the VcXsrv folder:
-  *vcxsrv-version.txt +  * ''vcxsrv-version.txt'' 
-And specify the version string of VcXsrv in it. The version string should be the only contents of the file. For example:+And specify the version string of VcXsrv in it. The version string should be the only content of that file. For example:
  
 1.15.2.3+xp-vc2013+x2go1 1.15.2.3+xp-vc2013+x2go1
  
 If you are doing an official X2Go Project build, copy the project's [[https://sourceforge.net/p/vcxsrv/code/ci/master/tree/COPYING|COPYING]] file as: If you are doing an official X2Go Project build, copy the project's [[https://sourceforge.net/p/vcxsrv/code/ci/master/tree/COPYING|COPYING]] file as:
-  *COPYING.txt+  * ''COPYING.txt'' 
 + 
 === PuTTY === === PuTTY ===
  
-you can download PuTTY for Windows from [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|project site]]. Building PuTTY from source is not the part of this Howto+You can download PuTTY for Windows from [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|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/'' or ''nsis/x2goclient'' folder. These are the only binaries you need from PuTTY. Copy them directly into the ''dist/'' or ''nsis/x2goclient'' folder.
  
-  *plink.exe +  * ''plink.exe'' 
-  *pscp.exe+  * ''pscp.exe'' 
 + 
 ===== Creating an NSIS Installer ===== ===== Creating an NSIS Installer =====
  
 Install NSIS Unicode (currently, 2.46.5): http://www.scratchpaper.com/ Install NSIS Unicode (currently, 2.46.5): http://www.scratchpaper.com/
  
-Then, edit nsis/x2goclient.nsi to replace all instances of ''X2GOCLIENT_VERSION'' with the actual version, and any string at the end. For example ,if you were doing a test build of fixing bug 123 on top of 4.0.3.2, ''4.0.3.2-bug123''+Then, edit ''nsis/x2goclient.nsi'' and replace all instances of ''X2GOCLIENT_VERSION'' with the actual version, and any string at the end. For example, if you were doing a test build of fixing bug 123 on top of 4.0.3.2, use ''4.0.3.2-bug123'' as the version string.
  
-Then, open nsis\x2goclient.nsi with NSIS Unicode. It will build an installer (*-setup.exe) to the same directory.+Then, open ''nsis\x2goclient.nsi'' with NSIS Unicode. It will build an installer (''*-setup.exe''and put it into the same directory.
  
 If you wish to build via the command-line, run: If you wish to build via the command-line, run:
 <code> <code>
-"C:\Program Files (x86)\NSIS\Unicode\makensis.exe" x2goclient.nsi+"C:\Program Files (x86)\NSIS\Unicode\makensis.exe" x2goclient.nsi
 </code> </code>
 (Adjust path if on 32-bit Windows.) (Adjust path if on 32-bit Windows.)
wiki/development/build-howto-mswin/x2goclient.txt · Last modified: 2023/05/08 22:20 by orion