Editing Cross Compiling FileZilla 3 for Windows under Ubuntu or Debian GNU/Linux
From FileZilla Wiki
Jump to navigationJump to searchWarning: 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]] '''for Windows''' and how to compile it under [ | + | 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]]. |
== OS version == | == 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 | |
− | |||
− | |||
− | |||
− | |||
− | + | Neither one of your links worked. If you can't upoald images/files using FTP, contact your hosting support by phone. The public_html folder should have already been installed for your site.I'm not sure Wiki allows hotlinking to their images as it uses up their bandwidth. That is bandwidth theft.Displaying images on a web page uses the EXACT path to the image ONLY. Not the page it is on.You can change the p tags to div tags and style as needed.I didn't check Wiki's Terms of Use for their images, but if they are allowed to be used, I suggest that you upoald the images to your own site.Ron | |
− | + | === 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 | + | wget ftp://alpha.gnu.org/gnu/libidn/libidn2-0.8.tar.gz |
− | tar | + | tar zxvf libidn2-0.8.tar.gz |
− | cd | + | cd libidn2-0.8 |
− | ./configure | + | ./configure $CFGOPT |
− | make | + | 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 | + | 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 | |
− | wget | + | |
− | + | 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 | make | ||
− | + | strip src/interface/filezilla.exe | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |