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

From FileZilla Wiki
Jump to navigationJump to search
(Angelika)
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]].
+
I simply wetnad to write a brief remark in order to thank you for those amazing steps you are writing at this site. My extensive internet investigation has at the end been rewarded with reasonable know-how to write about with my pals. I would suppose that we site visitors actually are really endowed to live in a superb community with so many outstanding professionals with very helpful tactics. I feel extremely grateful to have come across your site and look forward to really more enjoyable times reading here. Thank you once again for everything.
 
 
== OS version ==
 
* [http://ubuntu.com Ubuntu] 10.4 ('''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.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
 

Revision as of 09:54, 5 May 2012

I simply wetnad to write a brief remark in order to thank you for those amazing steps you are writing at this site. My extensive internet investigation has at the end been rewarded with reasonable know-how to write about with my pals. I would suppose that we site visitors actually are really endowed to live in a superb community with so many outstanding professionals with very helpful tactics. I feel extremely grateful to have come across your site and look forward to really more enjoyable times reading here. Thank you once again for everything.