Editing Cross Compiling FileZilla 3 for Windows under Ubuntu or Debian GNU/Linux

From FileZilla Wiki
Jump to navigationJump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 2: Line 2:
  
 
== OS version ==
 
== OS version ==
 
Any recent Linux should do the trick. For the sake of simplicity, this guide focuses on Debian(-based) distributions.
 
 
We strongly recommend to use [http://debian.org Debian '''12''' (Bookworkm)] or later ('''recommended''')
 
  
 
== Setting up the build environment ==
 
== Setting up the build environment ==
 
As root, execute:
 
dpkg --add-architecture i386
 
apt update
 
apt install automake autoconf libtool make gettext lzip xz-utils
 
apt install mingw-w64 pkg-config wx-common wine wine64 wine32 wine-binfmt subversion git
 
 
Back as normal user, execute:
 
mkdir ~/prefix
 
mkdir ~/src
 
export PATH="$HOME/prefix/bin:$PATH"
 
export LDFLAGS="-L$HOME/prefix/lib:$LDFLAGS"
 
export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
 
export PKG_CONFIG_PATH="$HOME/prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
 
export TARGET_HOST=x86_64-w64-mingw32
 
 
wine reg add HKCU\\Environment /f /v PATH /d "`x86_64-w64-mingw32-g++ -print-search-dirs | grep ^libraries | sed 's/^libraries: =//' | sed 's/:/;z:/g' | sed 's/^\\//z:\\\\\\\\/' | sed 's/\\//\\\\/g'`"
 
 
<!--
 
<p style="font-size:150%;color:#ff0000">'''Beware:''' You need to patch your MinGW runtime!</p>
 
Note: This does not affect mingw-w64 >= v4.0.6, mingw-w64 v4.0.6 is available in Ubuntu 16.10.
 
 
The version of the MinGW runtime ships with Debian based distributions has broken string conversion functions. You need to fetch the source of the mingw-64 packet and apply the following two patches:
 
https://sourceforge.net/p/mingw-w64/mingw-w64/ci/2474f3904a1fbce19d96383a9633e6c2eeb427ea/
 
https://sourceforge.net/p/mingw-w64/mingw-w64/ci/bca09678e3bfd67b2d445127280ee5a1d9d0453a/
 
 
Without these patches, FileZilla will not work properly and will fail in obscure ways.
 
-->
 
  
 
== GMP ==
 
== GMP ==
 
cd ~/src
 
wget https://gmplib.org/download/gmp/gmp-6.3.0.tar.lz
 
tar xf gmp-6.3.0.tar.lz
 
cd gmp-6.3.0
 
CC_FOR_BUILD=gcc ./configure --host=$TARGET_HOST --prefix="$HOME/prefix" --disable-static --enable-shared --enable-fat
 
make
 
make install
 
  
 
== Nettle ==
 
== Nettle ==
 
cd ~/src
 
wget https://ftp.gnu.org/gnu/nettle/nettle-3.9.1.tar.gz
 
tar xf nettle-3.9.1.tar.gz
 
cd nettle-3.9.1
 
./configure --host=$TARGET_HOST --prefix="$HOME/prefix" --enable-shared --disable-static --enable-fat
 
make
 
make install
 
  
 
== GnuTLS ==
 
== GnuTLS ==
 
cd ~/src
 
wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.1.tar.xz
 
tar xvf gnutls-3.8.1.tar.xz
 
cd gnutls-3.8.1
 
./configure --host=$TARGET_HOST --prefix="$HOME/prefix" --enable-shared --disable-static --without-p11-kit --with-included-libtasn1 --with-included-unistring --disable-srp-authentication --disable-dtls-srtp-support --disable-heartbeat-support --disable-psk-authentication --disable-anon-authentication --disable-openssl-compatibility --without-tpm --without-brotli --disable-cxx --disable-doc --enable-threads=windows --disable-tools
 
make
 
make install
 
  
 
== Compile SQLite ==
 
== Compile SQLite ==

Please note that all contributions to FileZilla Wiki are considered to be released under the GNU Free Documentation License 1.2 (see FileZilla Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)