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:48]
ionic Typos, spelling, formatting, ...
wiki:development:build-howto-mswin:x2goclient [2019/05/22 23:56]
ionic [Manual Copying] Update VcXsrv instructions (new files, find command).
Line 152: 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 195: 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.
Line 205: Line 205:
 ==== Pack/Compress X2Go Client ==== ==== Pack/Compress X2Go Client ====
  
-You may want to pack X2Go Client to reduce it size. You can do it with [[http://upx.sourceforge.net/|upx]], which is available for Windows, Linux and Cygwin.+You may want to pack X2Go Client to reduce it size. You can do it with [[https://upx.github.io/|upx]], which is available for Windows, Linux and Cygwin.
  
-Official regular builds of X2Go Client are packed. Official debug builds of X2Go Client are not.+Official regular builds of X2Go Client are packed. Official debug builds of X2Go Client are not. There is no difference between nightly and release versions - both pack the release binary, while not packing the debug binary.
  
 It is available in [[http://code.x2go.org/gitweb?p=x2goclient-contrib.git;a=tree;hb=HEAD|x2goclient-contrib.git]]. The current version is located at: It is available in [[http://code.x2go.org/gitweb?p=x2goclient-contrib.git;a=tree;hb=HEAD|x2goclient-contrib.git]]. The current version is located at:
 <code> <code>
-x2goclient-contrib\upx\3.91_bin\upx.exe+x2goclient-contrib\upx\3.95_bin\upx.exe
 </code> </code>
  
 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 230: Line 230:
 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 237: 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>
  
Line 244: Line 244:
   * ''automake''   * ''automake''
   * ''gcc-core''   * ''gcc-core''
-  * ''gcc-g\+\+''+  * ''gcc-g%%++%%''
   * ''git''   * ''git''
   * ''imake''   * ''imake''
Line 260: Line 260:
  
 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 the "Src" checkbox beside the 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.
Line 292: 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+) +  * ''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 ====
Line 496: Line 496:
  
 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:
Line 509: Line 509:
  
 First, 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:
Line 588: Line 588:
 === Libraries === === Libraries ===
  
-  - Add MinGW 4.8's libraries (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's 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)
Line 603: Line 603:
   - 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 661: Line 661:
 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''
 +  * ''libiconv-2.dll''
   * ''libgcc-s-sjlj-1.dll''   * ''libgcc-s-sjlj-1.dll''
   * ''libiconv-2.dll''   * ''libiconv-2.dll''
Line 683: Line 684:
 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.1.4_bin/fonts 
-$ find . -name *.gz | xargs strip-nondeterminism+$ find . -iname '*.gz' -exec 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:
Line 708: Line 709:
 ===== Creating an NSIS Installer ===== ===== Creating an NSIS Installer =====
  
-Install NSIS Unicode (currently, 2.46.5): http://www.scratchpaper.com/+Install NSIS (currently, 3.04): https://nsis.sourceforge.io 
 + 
 +Previously, we used NSIS Unicode, but this project is stale and NSIS 3.x nowadays supports Unicode.
  
 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, 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.
wiki/development/build-howto-mswin/x2goclient.txt · Last modified: 2023/05/08 22:20 by orion