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

From FileZilla Wiki
Jump to navigationJump to search
m (Reverted edits by 220.244.173.237 (talk) to last revision by 68.81.133.6)
Line 104: Line 104:
 
  cd ..
 
  cd ..
  
=== libgcrypt ===
+
wrote:Gary, you are right.Zen Cart is nothing if not cfsnuoing and all the tutorials I've ever read about using it were also very cfsnuoing.You can literally spend years figuring it out because it is such a monster. My post could be included in the mix of carelessly worded or cfsnuoing tutorials about Zen Cart and I see that when I re read it.I'm thinking of writing a part 2 that is much more clearly written.If you want to move the additional products div which I think is wrapped in a td(ick!) you will have to modify the actual file responsible for showing the products pages and change the order of the output and not get scared of php code.Brave of you and I wish you luck if you do make the changes be sure to make it a part of your own custom theme so that when you upgrade your changes won't be wiped out.I'd hate for you to lose years of hard work!Of course if you succeed you must write a tutorial of your own on how you did it!
wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.4.6.tar.bz2
 
tar jxvf libgcrypt-1.4.6.tar.bz2
 
cd libgcrypt-1.4.6
 
./configure $CFGOPT --disable-nls --disable-asm --with-gpg-error-prefix=$CFGPRE
 
  make install clean
 
cd ..
 
  
 
=== GnuTLS ===
 
=== GnuTLS ===

Revision as of 07:43, 5 May 2012

This documentation explains how to setup a build environment for FileZilla 3 for Windows and how to compile it under Ubuntu or Debian using MinGW. It will take less time and simple than Compiling FileZilla 3 under Windows.

OS version

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 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.13.1.tar.gz
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure $CFGOPT
make install clean
cd ..

libidn

wget ftp://alpha.gnu.org/gnu/libidn/libidn-1.17.tar.gz
tar zxvf libidn-1.17.tar.gz
cd libidn-1.17
./configure $CFGOPT
make install clean
cd ..

libgpg-error

wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.9.tar.bz2
tar jxvf libgpg-error-1.9.tar.bz2
cd libgpg-error-1.9
./configure $CFGOPT --disable-nls
make install clean
cd ..

wrote:Gary, you are right.Zen Cart is nothing if not cfsnuoing and all the tutorials I've ever read about using it were also very cfsnuoing.You can literally spend years figuring it out because it is such a monster. My post could be included in the mix of carelessly worded or cfsnuoing tutorials about Zen Cart and I see that when I re read it.I'm thinking of writing a part 2 that is much more clearly written.If you want to move the additional products div which I think is wrapped in a td(ick!) you will have to modify the actual file responsible for showing the products pages and change the order of the output and not get scared of php code.Brave of you and I wish you luck if you do make the changes be sure to make it a part of your own custom theme so that when you upgrade your changes won't be wiped out.I'd hate for you to lose years of hard work!Of course if you succeed you must write a tutorial of your own on how you did it!

GnuTLS

wget ftp://ftp.gnu.org/pub/gnu/gnutls/gnutls-2.8.6.tar.bz2
tar jxvf gnutls-2.8.6.tar.bz2
cd gnutls-2.8.6
./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.11.tar.bz2
tar jxvf wxWidgets-2.8.11.tar.bz2
cd wxWidgets-2.8.11
mkdir compile
cd compile
../configure $CFGOPT --enable-unicode
make install clean
cd ../..

Compiling FileZilla 3

wget http://downloads.sourceforge.net/filezilla/FileZilla_3.3.4.1_src.tar.bz2
tar jxvf FileZilla_3.3.4.1_src.tar.bz2

cd filezilla-3.3.4.1
./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