Difference between revisions of "Cross Compiling FileZilla 3 for Windows under Ubuntu or Debian GNU/Linux"

From FileZilla Wiki
Jump to navigationJump to search
(Undo revision 8320 by Bugiii (talk))
Line 1: Line 1:
This documentation explains how to setup a build environment for [[FileZilla 3]] '''for Windows''' and how to compile it under [http://ubuntu.com Ubuntu] or [http://debian.org Debian] using [http://www.mingw.org/ MinGW]. It will take less time and simple than [[Compiling FileZilla 3 under Windows]].
+
ini lokasi finyela ada di hostmonster ato di gedung UM sendiri?kalo di hostmonster berarti kan US dan downloadnya lumayan lama ya?kalo di gedung UM sendiri kan bisa dapat koneksi lebih cepat pake IIX. (thinking)
 
 
== OS version ==
 
* [http://ubuntu.com Ubuntu] 10.04 ('''recommended''')
 
* [http://debian.org Debian] 5.0.3
 
* [http://colinux.org coLinux] with [http://sourceforge.net/projects/colinux/files/Images%202.6.x%20Debian/Debian%205.0%20Lenny/Debian-5.0r2-lenny.7z/download Debian-5.0r2-lenny]
 
 
 
== Setting up the build environment ==
 
 
 
=== Ubuntu ===
 
 
 
Required packages
 
sudo apt-get install -y mingw32 make g++ libtool bzip2 automake gettext wx-common
 
 
 
=== Debian ===
 
 
 
Do works as root
 
su -
 
 
 
Required packages
 
apt-get install -y mingw32 make g++ libtool bzip2 automake gettext wx-common
 
 
 
== Patch mingw32-runtime (only Debian) ==
 
 
 
If you are using Ubuntu, go to the next [[#Make libraries]] section. In Ubuntu, the patch is applied.
 
 
 
Because the version of mingw32-runtime in Debian 5 is [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=452977 broken] - Thanks [[CodeSquid]], patch mingw32-runtime package.
 
 
 
=== Get source package ===
 
cd /tmp
 
apt-get install dpkg-dev debhelper
 
apt-get source mingw32-runtime
 
cd mingw32-runtime-3.13/
 
debian/rules unpack-stamp
 
 
 
=== Patch snprintf bug ===
 
pushd build_dir/src/mingw-runtime-3.13-20070825-1/mingwex/gdtoa/
 
diff -u mingw_snprintf.c.org mingw_snprintf.c
 
--- mingw_snprintf.c.org        2009-09-21 02:41:31.000000000 +0000
 
+++ mingw_snprintf.c    2009-09-21 02:41:54.000000000 +0000
 
@@ -465,7 +465,7 @@
 
                                    len = LEN_LL;
 
                                  }
 
                                else
 
-                                len = LEN_LL;
 
+                                len = LEN_L;
 
                                goto fmtloop;
 
                        case 'L':
 
                                flag_ld++;
 
@@ -617,6 +617,7 @@
 
                                        break;
 
                                  case LEN_S:
 
                                        *(short*)ip = c;
 
+                                      break;
 
                                  case LEN_LL:
 
                                        *(long long*) ip = c;
 
                                        break;
 
popd
 
 
 
=== Build & Install ===
 
debian/rules build
 
debian/rules install
 
 
 
=== Copy new library ===
 
mv $/usr/i586-mingw32msvc/lib/libmingwex.a $/usr/i586-mingw32msvc/lib/libmingwex.a.old
 
cp debian/mingw32-runtime/usr/i586-mingw32msvc/lib/libmingwex.a $/usr/i586-mingw32msvc/lib/
 
 
 
== Make libraries ==
 
Do works as normal user in Debian.
 
exit
 
 
 
=== Make working & install directory ===
 
Check available space of storage.
 
mkdir ~/mingw32
 
mkdir /tmp/fz3
 
cd /tmp/fz3
 
 
 
=== Setting up environment variables ===
 
export CFGPRE=~/mingw32
 
export CFGOPT="--prefix=$CFGPRE --host=i586-mingw32msvc --disable-shared --enable-static"
 
 
 
=== iconv ===
 
wget ftp://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
 
tar zxvf libiconv-1.14.tar.gz
 
cd libiconv-1.14
 
./configure $CFGOPT
 
make install clean
 
cd ..
 
 
 
=== libidn ===
 
wget ftp://alpha.gnu.org/gnu/libidn/libidn2-0.8.tar.gz
 
tar zxvf libidn2-0.8.tar.gz
 
cd libidn2-0.8
 
./configure $CFGOPT
 
make install clean
 
cd ..
 
 
 
=== libgpg-error ===
 
wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2
 
tar jxvf libgpg-error-1.10.tar.bz2
 
cd libgpg-error-1.10
 
./configure $CFGOPT --disable-nls
 
make install clean
 
cd ..
 
 
 
=== libgcrypt ===
 
wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2
 
tar jxvf libgcrypt-1.5.0.tar.bz2
 
cd libgcrypt-1.5.0
 
./configure $CFGOPT --disable-nls --disable-asm --with-gpg-error-prefix=$CFGPRE
 
make install clean
 
cd ..
 
 
 
=== GnuTLS ===
 
wget ftp://ftp.gnu.org/pub/gnu/gnutls/gnutls-3.0.19.tar.xz
 
tar Jxvf gnutls-3.0.19.tar.xz
 
cd gnutls-3.0.19
 
./configure $CFGOPT --disable-nls --disable-cxx --disable-guile --with-libgcrypt-prefix=$CFGPRE
 
make install clean
 
cd ..
 
 
 
=== wxWidgets ===
 
wget http://downloads.sourceforge.net/wxwindows/wxWidgets-2.8.12.tar.bz2
 
tar jxvf wxWidgets-2.8.12.tar.bz2
 
cd wxWidgets-2.8.12
 
mkdir compile
 
cd compile
 
../configure $CFGOPT --enable-unicode
 
make install clean
 
cd ../..
 
 
 
== Compiling FileZilla 3 ==
 
wget http://downloads.sourceforge.net/filezilla/FileZilla_3.5.3_src.tar.bz2
 
tar jxvf FileZilla_3.5.3_src.tar.bz2
 
 
cd filezilla-3.5.3
 
./autogen.sh
 
 
 
mkdir compile
 
cd compile
 
 
 
autogen.sh of FileZilla 3 use old libgnutls-config. GnuTLS does not use libgnutls-config anymore.
 
 
 
Dowload http://filezilla-project.org/codesquid/libgnutls-config to $CFGPRE/bin. Edit prefix value.
 
 
 
wget -O $CFGPRE/bin/libgnutls-config http://filezilla-project.org/codesquid/libgnutls-config
 
 
echo $CFGPRE
 
/home/fz/mingw32 # remember the path
 
 
vi $CFGPRE/bin/libgnutls-config
 
prefix=/home/fz/mingw32 # edit this line.
 
 
chmod +x $CFGPRE/bin/libgnutls-config
 
 
 
Configure and builld.
 
 
 
CFLAGS="-I$CFGPRE/include" CXXFLAGS="-I$CFGPRE/include" LDFLAGS="-L$CFGPRE/lib" ../configure $CFGOPT --with-wx-prefix=$CFGPRE --with-libgnutls-prefix=$CFGPRE
 
 
make
 
strip src/interface/filezilla.exe
 

Revision as of 11:03, 5 March 2013

ini lokasi finyela ada di hostmonster ato di gedung UM sendiri?kalo di hostmonster berarti kan US dan downloadnya lumayan lama ya?kalo di gedung UM sendiri kan bisa dapat koneksi lebih cepat pake IIX. (thinking)