Compiling FileZilla 3 under Windows

From FileZilla Wiki
Revision as of 11:15, 3 May 2015 by Rexdf (talk | contribs) (→‎Build dependencies and filezilla: MinGW-w64 Win32 Shell)
Jump to navigationJump to search

This documentation explains how to setup a build environment for FileZilla 3 and how to compile it under Windows using msys2. Msys2 is a cygwin environment.

It will take some time to get everything working, but you will be able to use the build environment for other programs too.

Note to wiki contributors: Do not change version numbers on your own. The build process is somewhat fragile and does break if you change things


Installing the MSYS2 environment

msys2-x86_64-20150202.exe

Install this to c:\msys64 or D:\msys64 depending on how you installed msys2

Installing the compiler toolchain

FileZilla's shell extension needs to be build both for 32bit as well as 64bit, hence we're going to need compilers for both 32bit and 64bit.

Tools and compiler

start MSYS2 shell, execute the following command:

pacman -Syu base-devel msys2-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain 
pacman -S svn git

Downloading dependencies

download GMP

cd ~
curl -O https://gmplib.org/download/gmp/gmp-6.0.0a.tar.xz

Download Nettle

cd ~
wget http://www.lysator.liu.se/~nisse/archive/nettle-2.7.1.tar.gz

Download GnuTLS

cd ~
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.13.tar.xz

Download SQLite

cd ~
wget http://sqlite.org/2015/sqlite-autoconf-3080803.tar.gz

Download wxWidgets

cd ~
svn co https://github.com/wxWidgets/wxWidgets/branches/WX_3_0_BRANCH wx3

Download FileZilla

cd ~
svn co https://svn.filezilla-project.org/svn/FileZilla3/trunk filezilla

Build Filezilla

Fetch patch and build script

git clone https://github.com/rexdf/build_filezilla_on_msys2.git
cp build_filezilla_on_msys2/*.patch ~
cp build_filezilla_on_msys2/build.sh ~

Build a static only zlib

git clone https://github.com/Alexpux/MINGW-packages.git
cd MINGW-packages
git apply ../mingw-w64-zlib.patch
cd mingw-w64-zlib
makepkg-mingw -sLf
cp mingw-w64-i686-zlib-1.2.8-6-any.pkg.tar.xz ~/

Build dependencies and filezilla

Build

start MinGW-w64 Win32 Shell shell

./build.sh

Generate installer

Installing NSIS

Download and install Unicode NSIS from http://www.scratchpaper.com

Make sure you get the Unicode version and not the ANSI one.

Compile the installer script

Right click compile/data/install.nsi in Explorer and use "Compile NSIS Script" from context menu.

Troubleshooting

If you run into problems, please make sure you've followed each step exactly how it is explained and that you haven't missed any steps along the way.