summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk Opfer <dirk@opfer-online.de>2008-06-17 08:28:34 +0000
committerDirk Opfer <dirk@opfer-online.de>2008-06-17 08:28:34 +0000
commitd189f18f99cd20ebed5c0a5b16cbfb6436229373 (patch)
tree21697fd9f5f87c31aacca0ebc77501ff6bf5fc31
parent1fd277c5bc4ac3d7e1a94aec620a4d175e913eb8 (diff)
parent5c84e19f276babb5fdf1ad9096ee43645955b32f (diff)
merge of 'ca63fe7da843b99d6a109e39aea7a28865c9f2a3'
and 'd162dc983ded73541698d0c356a5af38c08d5229'
-rw-r--r--conf/distro/include/preferred-om-2008-versions.inc2
-rw-r--r--conf/machine/hx4700.conf2
-rw-r--r--conf/machine/om-gta01.conf2
-rw-r--r--conf/machine/om-gta02.conf2
-rw-r--r--packages/freesmartphone/gsmd2_git.bb7
-rw-r--r--packages/ipkg-utils/ipkg-utils/arfile_even_alignment.patch11
-rw-r--r--packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb3
-rw-r--r--packages/meta/slugos-packages.bb2
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/.mtn2git_empty0
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/010_FPU_IS_ARM_FPA_xslt.diff56
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug339782.additional.fix.diff39
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug385583.nspr.jmp_buf.eabi.diff33
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug405992.atomic.nspr.diff48
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/jsautocfg-dontoverwrite.patch23
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/linkage-problem.patch14
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/mozconfig61
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/random_to_urandom.diff26
-rw-r--r--packages/mozilla/firefox-2.0.0.14+3.0rc1/security-cross.patch93
-rw-r--r--packages/mozilla/firefox_2.0.0.14+3.0rc1.bb37
19 files changed, 454 insertions, 7 deletions
diff --git a/conf/distro/include/preferred-om-2008-versions.inc b/conf/distro/include/preferred-om-2008-versions.inc
index b86a6f90bb..bfa3689e7a 100644
--- a/conf/distro/include/preferred-om-2008-versions.inc
+++ b/conf/distro/include/preferred-om-2008-versions.inc
@@ -1476,7 +1476,7 @@ PREFERRED_VERSION_proj-4-native ?= "4.9"
PREFERRED_VERSION_psmisc ?= "22.2"
PREFERRED_VERSION_psplash-zap ?= "1.0"
PREFERRED_VERSION_pth ?= "2.0.2"
-PREFERRED_VERSION_pulseaudio ?= "0.9.9"
+PREFERRED_VERSION_pulseaudio ?= "0.9.10"
PREFERRED_VERSION_puppy ?= "1.11"
PREFERRED_VERSION_puzz-le ?= "2.0.0"
PREFERRED_VERSION_puzzles ?= "r7436"
diff --git a/conf/machine/hx4700.conf b/conf/machine/hx4700.conf
index 0d3a9bbcf0..785214409f 100644
--- a/conf/machine/hx4700.conf
+++ b/conf/machine/hx4700.conf
@@ -8,6 +8,8 @@
TARGET_ARCH = "arm"
PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te iwmmxt "
+IMAGE_FSTYPES += "jffs2"
+
# Use tune-xscale per default. Machine independent feeds should be built with tune-strongarm.
require conf/machine/include/tune-xscale.inc
diff --git a/conf/machine/om-gta01.conf b/conf/machine/om-gta01.conf
index 09c382f376..190d1d1049 100644
--- a/conf/machine/om-gta01.conf
+++ b/conf/machine/om-gta01.conf
@@ -8,7 +8,7 @@ TARGET_ARCH = "arm"
MACHINE_CLASS = "neo1973"
PACKAGE_EXTRA_ARCHS = "armv4t fic-gta01 ${MACHINE_CLASS}"
-PREFERRED_PROVIDER_virtual/kernel = "linux-openmoko"
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-openmoko"
UBOOT_ENTRYPOINT = "30008000"
MACHINE_FEATURES = "kernel26 apm alsa bluetooth gps usbgadget usbhost phone vfat ext2"
diff --git a/conf/machine/om-gta02.conf b/conf/machine/om-gta02.conf
index 3b9ed1b468..45dc0518a4 100644
--- a/conf/machine/om-gta02.conf
+++ b/conf/machine/om-gta02.conf
@@ -8,7 +8,7 @@ TARGET_ARCH = "arm"
MACHINE_CLASS = "neo1973"
PACKAGE_EXTRA_ARCHS = "armv4t fic-gta02 ${MACHINE_CLASS}"
-PREFERRED_PROVIDER_virtual/kernel = "linux-openmoko"
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-openmoko"
PREFERRED_PROVIDER_virtual/xserver = "xserver-kdrive-glamo"
UBOOT_ENTRYPOINT = "30008000"
diff --git a/packages/freesmartphone/gsmd2_git.bb b/packages/freesmartphone/gsmd2_git.bb
index 6c2f1a4d21..6c327ede30 100644
--- a/packages/freesmartphone/gsmd2_git.bb
+++ b/packages/freesmartphone/gsmd2_git.bb
@@ -1,14 +1,17 @@
DESCRIPTION = "GSM 07.07 phone server"
HOMEPAGE = "http://www.freesmartphone.org/mediawiki/index.php/Implementations/gsm0710muxd"
-AUTHOR = "Ixonos"
+AUTHOR = "Ixonos Team"
SECTION = "console/network"
DEPENDS = "dbus dbus-glib"
RDEPENDS = "gsm0710muxd"
LICENSE = "GPL"
-PV = "0.0.0+gitr${SRCREV}"
+PV = "0.1.0+gitr${SRCREV}"
PR = "r0"
SRC_URI = "${FREESMARTPHONE_GIT}/gsmd2.git;protocol=git;branch=master"
S = "${WORKDIR}/git"
inherit autotools
+
+EXTRA_OECONF = "--disable-tests"
+
diff --git a/packages/ipkg-utils/ipkg-utils/arfile_even_alignment.patch b/packages/ipkg-utils/ipkg-utils/arfile_even_alignment.patch
new file mode 100644
index 0000000000..3ab133fb15
--- /dev/null
+++ b/packages/ipkg-utils/ipkg-utils/arfile_even_alignment.patch
@@ -0,0 +1,11 @@
+--- ipkg-utils/arfile.py.orig 2008-06-11 21:07:01.000000000 -0500
++++ ipkg-utils/arfile.py 2008-06-14 19:56:04.000000000 -0500
+@@ -86,6 +86,8 @@
+ return FileSection(self.f, self.f.tell(), size)
+
+ # Skip data and loop
++ if size % 2:
++ size = size + 1
+ data = self.f.seek(size, 1)
+ # print hex(f.tell())
+
diff --git a/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb b/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb
index f64e644bd3..707a005c5c 100644
--- a/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb
+++ b/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb
@@ -5,12 +5,13 @@ LICENSE = "GPL"
CONFLICTS = "ipkg-link"
RDEPENDS = "python"
SRCDATE = "20050404"
-PR = "r20"
+PR = "r20.1"
SRC_URI = "${HANDHELDS_CVS};module=ipkg-utils \
file://ipkg-utils-fix.patch;patch=1 \
file://ipkg-py-sane-vercompare.patch;patch=1 \
file://ipkg-py-tarfile.patch;patch=1 \
+ file://arfile_even_alignment.patch;patch=1 \
file://ipkg-make-index-track-stamps.patch;patch=1 \
file://fields_tweaks.patch;patch=1 "
diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb
index 2927bc6d7b..89474b0dd0 100644
--- a/packages/meta/slugos-packages.bb
+++ b/packages/meta/slugos-packages.bb
@@ -61,7 +61,6 @@ SLUGOS_PACKAGES = "\
coreutils \
cron \
cryptsetup \
- ctorrent \
ctrlproxy \
cups \
curl \
@@ -252,6 +251,7 @@ SLUGOS_PACKAGES = "\
# Packages currently broken on all platforms
SLUGOS_BROKEN_PACKAGES = "\
bwmon \
+ ctorrent \
dsniff \
eciadsl \
fetchmail \
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/.mtn2git_empty b/packages/mozilla/firefox-2.0.0.14+3.0rc1/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/.mtn2git_empty
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/010_FPU_IS_ARM_FPA_xslt.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/010_FPU_IS_ARM_FPA_xslt.diff
new file mode 100644
index 0000000000..854100c4c3
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/010_FPU_IS_ARM_FPA_xslt.diff
@@ -0,0 +1,56 @@
+# Bug 369722 – prdtoa.c jsnum.h txDouble.h not required IEEE_ARM define on Codesourcery EABI gcc3.4.4 compiler
+#
+--- mozilla/content/xslt/public/txDouble.h.orig 2006-07-13 17:21:52.000000000 +0300
++++ mozilla/content/xslt/public/txDouble.h 2007-10-25 15:01:25.000000000 +0300
+@@ -58,46 +58,48 @@ fp_except_t oldmask = fpsetmask(~allmask
+ /**
+ * Stefan Hanske <sh990154@mail.uni-greifswald.de> reports:
+ * ARM is a little endian architecture but 64 bit double words are stored
+ * differently: the 32 bit words are in little endian byte order, the two words
+ * are stored in big endian`s way.
+ */
+
+ #if defined(__arm) || defined(__arm32__) || defined(__arm26__) || defined(__arm__)
+-#define CPU_IS_ARM
++#if !defined(__VFP_FP__)
++#define FPU_IS_ARM_FPA
++#endif
+ #endif
+
+ #if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
+ /**
+ * This version of the macros is safe for the alias optimizations
+ * that gcc does, but uses gcc-specific extensions.
+ */
+
+ typedef union txdpun {
+ PRFloat64 d;
+ struct {
+-#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
++#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
+ PRUint32 lo, hi;
+ #else
+ PRUint32 hi, lo;
+ #endif
+ } s;
+ } txdpun;
+
+ #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; }))
+ #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; }))
+
+ #else // __GNUC__
+
+ /* We don't know of any non-gcc compilers that perform alias optimization,
+ * so this code should work.
+ */
+
+-#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
++#if defined(IS_LITTLE_ENDIAN) && !defined(FPU_IS_ARM_FPA)
+ #define TX_DOUBLE_HI32(x) (((PRUint32 *)&(x))[1])
+ #define TX_DOUBLE_LO32(x) (((PRUint32 *)&(x))[0])
+ #else
+ #define TX_DOUBLE_HI32(x) (((PRUint32 *)&(x))[0])
+ #define TX_DOUBLE_LO32(x) (((PRUint32 *)&(x))[1])
+ #endif
+
+ #endif // __GNUC__
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug339782.additional.fix.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug339782.additional.fix.diff
new file mode 100644
index 0000000000..0848e730d3
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug339782.additional.fix.diff
@@ -0,0 +1,39 @@
+# XPTC_InvokeByIndex crashes
+# Bug 339782 [ARM] XPTC_InvokeByIndex crashes when cross-compiled under GCC 3.4.x with EABI (CodeSourcery)
+Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+===================================================================
+--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+@@ -51,22 +51,32 @@
+ #ifdef __ARM_EABI__
+ #define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
+ #define VAR_STACK_SIZE_64 3
+ #else
+ #define DOUBLEWORD_ALIGN(p) (p)
+ #define VAR_STACK_SIZE_64 2
+ #endif
+
++#ifdef __ARM_EABI__
++#define DOUBLEWORD_ALIGN(p) ((PRUint32 *)((((PRUint32)(p)) + 7) & 0xfffffff8))
++#else
++#define DOUBLEWORD_ALIGN(p) (p)
++#endif
++
+ // Remember that these 'words' are 32bit DWORDS
+
+ static PRUint32
+ invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
+ {
+ PRUint32 result = 0;
++
++ /* Note that we give a "worst case" estimate of how much stack _might_ be
++ * needed, rather than the real count - this should be safe */
++
+ for(PRUint32 i = 0; i < paramCount; i++, s++)
+ {
+ if(s->IsPtrData())
+ {
+ result++;
+ continue;
+ }
+ switch(s->type)
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug385583.nspr.jmp_buf.eabi.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug385583.nspr.jmp_buf.eabi.diff
new file mode 100644
index 0000000000..486440c30e
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug385583.nspr.jmp_buf.eabi.diff
@@ -0,0 +1,33 @@
+diff -up mozilla/nsprpub/pr/include/md/_linux.h.orig mozilla/nsprpub/pr/include/md/_linux.h
+--- mozilla/nsprpub/pr/include/md/_linux.h.orig 2007-11-28 14:16:03.000000000 -0500
++++ mozilla/nsprpub/pr/include/md/_linux.h 2007-11-28 14:12:09.000000000 -0500
+@@ -346,8 +346,8 @@ extern void _MD_CleanupBeforeExit(void);
+ #error "Linux/MIPS pre-glibc2 not supported yet"
+ #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
+
+-#elif defined(__arm__)
+-/* ARM/Linux */
++#elif defined(__arm__) && !defined(__ARM_EABI__)
++/* ARM/Linux (old-ABI) */
+ #if defined(__GLIBC__) && __GLIBC__ >= 2
+ #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[20]
+ #define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[19] = (val))
+@@ -358,6 +358,18 @@ extern void _MD_CleanupBeforeExit(void);
+ #error "ARM/Linux pre-glibc2 not supported yet"
+ #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
+
++#elif defined(__arm__) && defined(__ARM_EABI__)
++/* ARM/Linux (EABI) */
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[8]
++#define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[7] = (val))
++#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t))
++#define _MD_GET_FP_PTR(_t) (&(_t)->md.context[0].__jmpbuf[7])
++#define _MD_SP_TYPE __ptr_t
++#else
++#error "ARM/Linux pre-glibc2 not supported yet"
++#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
++
+ #else
+
+ #error "Unknown CPU architecture"
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug405992.atomic.nspr.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug405992.atomic.nspr.diff
new file mode 100644
index 0000000000..f54f916a6a
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/Bug405992.atomic.nspr.diff
@@ -0,0 +1,48 @@
+# Add atomic operations for ARM.
+diff --git a/nsprpub/pr/include/md/_linux.h b/nsprpub/pr/include/md/_linux.h
+index 5b794c5..cb8d58e 100644
+--- a/nsprpub/pr/include/md/_linux.h
++++ b/nsprpub/pr/include/md/_linux.h
+@@ -194,6 +194,42 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval);
+ })
+ #endif
+
++#if defined(__arm__)
++#define _PR_HAVE_ATOMIC_OPS
++#define _MD_INIT_ATOMIC()
++
++typedef int (__kernel_cmpxchg_t)(int oldval, int newval, volatile int *ptr);
++#define __kernel_cmpxchg (*(__kernel_cmpxchg_t *)0xffff0fc0)
++
++#define _MD_ATOMIC_INCREMENT(ptr) _MD_ATOMIC_ADD(ptr, 1)
++#define _MD_ATOMIC_DECREMENT(ptr) _MD_ATOMIC_ADD(ptr, -1)
++#define _MD_ATOMIC_ADD(ptr, n) \
++ ({ \
++ PRInt32 ov, nv; \
++ volatile PRInt32 *vp = (ptr); \
++ \
++ do { \
++ ov = *vp; \
++ nv = ov + (n); \
++ } \
++ while (__kernel_cmpxchg(ov, nv, vp)); \
++ \
++ nv; \
++ })
++#define _MD_ATOMIC_SET(ptr, nv) \
++ ({ \
++ PRInt32 ov; \
++ volatile PRInt32 *vp = (ptr); \
++ \
++ do { \
++ ov = *vp; \
++ } \
++ while (__kernel_cmpxchg(ov, (nv), vp)); \
++ \
++ ov; \
++ })
++#endif
++
+ #define USE_SETJMP
+ #if defined(__GLIBC__) && __GLIBC__ >= 2
+ #define _PR_POLL_AVAILABLE
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/jsautocfg-dontoverwrite.patch b/packages/mozilla/firefox-2.0.0.14+3.0rc1/jsautocfg-dontoverwrite.patch
new file mode 100644
index 0000000000..39978cfd11
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/jsautocfg-dontoverwrite.patch
@@ -0,0 +1,23 @@
+--- mozilla/js/src/Makefile.in.orig 2006-12-12 11:46:02.000000000 +0000
++++ mozilla/js/src/Makefile.in 2006-12-12 11:46:27.000000000 +0000
+@@ -319,20 +319,8 @@
+
+ jsopcode.h jsopcode.c: jsopcode.tbl
+
+-ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
+ jsautocfg.h:
+ touch $@
+-else
+-ifeq ($(OS_ARCH),WINCE)
+-jsautocfg.h:
+- touch $@
+-else
+-jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
+- @rm -f $@ jsautocfg.tmp
+- ./jscpucfg > jsautocfg.tmp
+- mv jsautocfg.tmp $@
+-endif
+-endif
+
+ # jscpucfg is a strange target
+ # Needs to be built with the host compiler but needs to include
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/linkage-problem.patch b/packages/mozilla/firefox-2.0.0.14+3.0rc1/linkage-problem.patch
new file mode 100644
index 0000000000..28bffd1e22
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/linkage-problem.patch
@@ -0,0 +1,14 @@
+--- mozilla/layout/build/Makefile.in~ 2007-11-24 00:38:14.000000000 -0200
++++ mozilla/layout/build/Makefile.in 2007-11-24 00:38:14.000000000 -0200
+@@ -229,6 +229,11 @@
+ $(NULL)
+ endif
+
++ifdef MOZ_ENABLE_XFT
++EXTRA_DSO_LDOPTS += $(MOZ_XFT_LIBS) \
++ $(NULL)
++endif
++
+ ifneq (,$(MOZ_ENABLE_CANVAS)$(MOZ_SVG_RENDERER_CAIRO))
+ EXTRA_DSO_LDOPTS += $(MOZ_CAIRO_LIBS) \
+ $(NULL)
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/mozconfig b/packages/mozilla/firefox-2.0.0.14+3.0rc1/mozconfig
new file mode 100644
index 0000000000..6e85c5eda2
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/mozconfig
@@ -0,0 +1,61 @@
+. $topsrcdir/browser/config/mozconfig
+
+# use GTK+-2 widget set with XFT font rendering
+#ac_add_options --enable-default-toolkit=gtk2
+ac_add_options --enable-xft
+ac_add_options --disable-freetype2
+
+# enable minimal profile support
+ac_add_options --disable-profilesharing
+ac_add_options --disable-profilelocking
+ac_add_options --enable-single-profile
+
+ac_add_options --with-system-zlib
+ac_add_options --with-system-jpeg
+#ac_add_options --with-system-png
+
+ac_add_options --disable-accessibility
+ac_add_options --disable-composer
+#ac_add_options --enable-plaintext-editor-only
+ac_add_options --disable-mailnews
+ac_add_options --disable-ldap
+#ac_add_options --disable-postscript
+ac_add_options --disable-mathml
+ac_add_options --disable-jsd
+ac_add_options --disable-installer
+ac_add_options --disable-xprint
+ac_add_options --disable-necko-disk-cache
+
+# configure necko to allocate smaller network buffers
+ac_add_options --enable-necko-small-buffers
+
+# disable debug logging and tests
+#ac_add_options --disable-dtd-debug
+ac_add_options --disable-logging
+ac_add_options --enable-debug=-ggdb
+ac_add_options --disable-gtktest
+ac_add_options --disable-tests
+ac_add_options --disable-printing
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-gnomeui
+
+# build crypto module (PSM + NSS)
+ac_add_options --enable-crypto
+
+# build minimal set of protocol handlers
+ac_add_options --enable-necko-protocols=http,file,res,jar,ftp,about,viewsource
+
+# build minimal set of image decoders
+ac_add_options --enable-image-decoders=png,gif,jpeg
+
+#ac_add_options --enable-reorder
+#ac_add_options --enable-elf-dynstr-gc
+
+# enable static build
+#ac_add_options --disable-shared
+#ac_add_options --enable-static
+ac_add_options --enable-optimize=-O1
+
+# Use cairo from system
+ac_add_options --enable-system-cairo
+
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/random_to_urandom.diff b/packages/mozilla/firefox-2.0.0.14+3.0rc1/random_to_urandom.diff
new file mode 100644
index 0000000000..f969752381
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/random_to_urandom.diff
@@ -0,0 +1,26 @@
+# Component manager should not use /dev/random for generation ranodm numbers
+# It cause hangs on embedding platforms,which does not have enough devices for generation required entropy
+# Bug somewhere exists but it is very old
+Index: nsprpub/pr/src/md/unix/uxrng.c
+===================================================================
+--- mozilla/nsprpub/pr/src/md/unix/uxrng.c.orig
++++ mozilla/nsprpub/pr/src/md/unix/uxrng.c
+@@ -144,17 +144,17 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+
+ static int fdDevRandom;
+ static PRCallOnceType coOpenDevRandom;
+
+ static PRStatus OpenDevRandom( void )
+ {
+- fdDevRandom = open( "/dev/random", O_RDONLY );
++ fdDevRandom = open( "/dev/urandom", O_RDONLY );
+ return((-1 == fdDevRandom)? PR_FAILURE : PR_SUCCESS );
+ } /* end OpenDevRandom() */
+
+ static size_t GetDevRandom( void *buf, size_t size )
+ {
+ int bytesIn;
+ int rc;
+
diff --git a/packages/mozilla/firefox-2.0.0.14+3.0rc1/security-cross.patch b/packages/mozilla/firefox-2.0.0.14+3.0rc1/security-cross.patch
new file mode 100644
index 0000000000..56c8d04a9e
--- /dev/null
+++ b/packages/mozilla/firefox-2.0.0.14+3.0rc1/security-cross.patch
@@ -0,0 +1,93 @@
+--- mozilla/security/coreconf/Linux.mk.orig 2006-12-12 10:53:12.000000000 +0000
++++ mozilla/security/coreconf/Linux.mk 2006-12-12 10:54:13.000000000 +0000
+@@ -52,88 +52,8 @@
+
+ DEFAULT_COMPILER = gcc
+
+-ifeq ($(OS_TEST),m68k)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = m68k
+-else
+-ifeq ($(OS_TEST),ppc64)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = ppc
+-ifeq ($(USE_64),1)
+- ARCHFLAG = -m64
+-endif
+-else
+-ifeq ($(OS_TEST),ppc)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = ppc
+-else
+-ifeq ($(OS_TEST),alpha)
+- OS_REL_CFLAGS = -D_ALPHA_ -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = alpha
+-else
+-ifeq ($(OS_TEST),ia64)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = ia64
+-else
+-ifeq ($(OS_TEST),x86_64)
+-ifeq ($(USE_64),1)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = x86_64
+-else
+- OS_REL_CFLAGS = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+- CPU_ARCH = x86
+- ARCHFLAG = -m32
+-endif
+-else
+-ifeq ($(OS_TEST),sparc)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = sparc
+-else
+-ifeq ($(OS_TEST),sparc64)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = sparc
+-else
+-ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = arm
+-else
+-ifeq ($(OS_TEST),parisc)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = hppa
+-else
+-ifeq ($(OS_TEST),parisc64)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = hppa
+-else
+-ifeq ($(OS_TEST),s390)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = s390
+-else
+-ifeq ($(OS_TEST),s390x)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = s390x
+-else
+-ifeq ($(OS_TEST),mips)
+- OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+- CPU_ARCH = mips
+-else
+- OS_REL_CFLAGS = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+- CPU_ARCH = x86
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-
++OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
++CPU_ARCH =
+
+ LIBC_TAG = _glibc
+
diff --git a/packages/mozilla/firefox_2.0.0.14+3.0rc1.bb b/packages/mozilla/firefox_2.0.0.14+3.0rc1.bb
new file mode 100644
index 0000000000..431a069d5f
--- /dev/null
+++ b/packages/mozilla/firefox_2.0.0.14+3.0rc1.bb
@@ -0,0 +1,37 @@
+DEPENDS += "cairo"
+PR = "r3"
+
+SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.0rc1/source/firefox-3.0rc1-source.tar.bz2 \
+ file://jsautocfg.h \
+ file://security-cross.patch;patch=1 \
+ file://jsautocfg-dontoverwrite.patch;patch=1 \
+ file://Bug339782.additional.fix.diff;patch=1 \
+ file://Bug385583.nspr.jmp_buf.eabi.diff;patch=1 \
+ file://Bug405992.atomic.nspr.diff;patch=1 \
+ file://random_to_urandom.diff;patch=1 \
+"
+
+S = "${WORKDIR}/mozilla"
+
+#DEFAULT_PREFERENCE = "-1"
+
+inherit mozilla
+require firefox.inc
+
+do_compile_prepend() {
+ cp ${WORKDIR}/jsautocfg.h ${S}/js/src/
+ sed -i "s|CPU_ARCH =|CPU_ARCH = ${TARGET_ARCH}|" security/coreconf/Linux.mk
+}
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/firefox-${PV}
+ cd dist/sdk/include
+ rm -rf obsolete
+ headers=`find . -name "*.h"`
+ for f in $headers
+ do
+ install -D -m 0644 $f ${STAGING_INCDIR}/firefox-${PV}/
+ done
+ # removes 2 lines that call absent headers
+ sed -e '178,179d' ${STAGING_INCDIR}/firefox-${PV}/nsIServiceManager.h
+}