Editing Compiling FileZilla 3 and Getting Dependencies on 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 1: Line 1:
This documentation explains how to setup a build environment for FileZilla 3 and how to compile it under Debian based distributions. This guide assumes you are using Debian stable, but should work as well on other recent Debian-based distributions.
+
This walkthrough is intended for use on a clean Linux distribution such as Ubuntu, Linux Mint, etc by a beginner who is unfamiliar with resolving dependencies.  
  
== Setting up build environment ==
+
Step-By-Step guide on how to use this script:
 +
# Create a file called fzscript.sh in the directory where you wish to build Filezilla
 +
# Copy the below script into the file, save and exit.
 +
# Ensure fzscript.sh has permission to run
 +
# Open terminal and change the current working directory to the location of fzscript.sh
 +
# run this command: "sudo ./fzscript.sh"
  
As root, execute:
+
The expected running time can be anywhere from 10 minutes to hours depending on computer speed and internet connection speed.  
apt build-dep filezilla libwxgtk3.0-dev
 
apt install libtool git subversion xdg-utils
 
  
Back as normal user, execute:
+
The script is publicly available at the pastebin link: http://pastebin.com/6r0dB43d
mkdir ~/prefix
 
export PATH="$HOME/prefix/bin:$PATH"
 
export LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
 
export PKG_CONFIG_PATH="$HOME/prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
 
  
== Getting dependencies ==
+
In case the script does not work, because the Linux libraries are not always up-to-date, follow this step-by-step guide to compile and install Filezilla Client.
  
Note: This guide is for setting up a development environment. To build the latest officially released versions, download and extract the respective source tarballs instead and skip the autoreconf step.
+
Run the following commands from the Linux terminal:
 +
#sudo apt-get install gettext
 +
#sudo apt-get install autoconf
 +
#sudo apt-get install automake
 +
#sudo apt-get install libdbus-c++-dev
 +
#sudo apt-get install libperl-dev
 +
#sudo apt-get install libtool
 +
#sudo apt-get install libgtk2.0-dev
 +
#sudo apt-get install libsqlite3-dev
 +
#sudo apt-get install libtinyxml
 +
#sudo apt-get install libdbus-1-dev
  
=== wxWidgets ===
+
To install the following dependencies, download the specified version or most recent if not specified, extract the downloaded files, navigate to the directory in the terminal and execute the commands:
 
+
*sudo ./configure
  cd ~
+
*sudo make
  git clone --branch WX_3_0_BRANCH --single-branch https://github.com/wxWidgets/wxWidgets.git wx3
+
*sudo make install
  cd wx3
+
*For #4 Nettle, use this special configure line: sudo ./configure --prefix=/usr/local --with-include-path=/usr/local/include --with-lib-path=/usr/local/lib
  ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --enable-unicode
+
#libdbin download & install - http://ftp.gnu.org/gnu/libidn/
  make && make install
+
#GMP download & install - https://gmplib.org/
 
+
#libgcrypt and libgpg-error download & install - https://www.gnupg.org/download/index.html
=== libfilezilla ===
+
#Nettle download & install - https://ftp.gnu.org/gnu/nettle/ (Version 2.7.1)
 
+
#Gnutls download & install - http://gnutls.org/download.html
  cd ~
+
#wxWidgets download & install https://www.wxwidgets.org/downloads/
  svn co https://svn.filezilla-project.org/svn/libfilezilla/trunk lfz
+
To compile and install Filezilla, extract Filezilla's source code and navigate to the directory in a terminal. Then, execute the following commands:
  cd lfz
+
#sudo autoreconf -i
  autoreconf -i
+
#sudo ./configure
  ./configure --prefix="$HOME/prefix" --enable-shared --disable-static
+
#sudo make
  make && make install
+
#sudo make install
 
+
If you get an error loading shared libraries at the make step, here is how to fix it:
== Compiling FileZilla ==
+
#Run as a root in the Filezilla directory using this command: sudo su
 
+
#Execute the command: ldconfig
  cd ~
+
#Execute the command: Exit
  svn co https://svn.filezilla-project.org/svn/FileZilla3/trunk fz
+
#Try make again
  cd fz
+
If you followed these steps, executing filezilla in the terminal should run the program. If you get stuck in the compilation go back over the steps and be sure you installed every dependency as specified.
  autoreconf -i
 
  ./configure --prefix="$HOME/prefix" --enable-shared --disable-static
 
  make && make install
 
 
 
And you're done. Type filezilla to start FileZilla.
 

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)