[Buildroot] [PATCH 6/9] firefox: Mozilla Web Browser
Stefan Fröberg
stefan.froberg at petroprogram.com
Wed Sep 5 14:29:01 UTC 2012
Signed-off-by: Stefan Fröberg <stefan.froberg at petroprogram.com>
---
package/Config.in | 1 +
package/firefox/Config.in | 417 ++++++++++++++++++++
.../firefox/firefox-11.0-NativeWindowHandle.patch | 12 +
package/firefox/firefox-11.0-execinfo.patch | 45 +++
package/firefox/firefox-11.0-isfinite.patch | 22 +
package/firefox/firefox-11.0-uclibc.patch | 112 ++++++
package/firefox/firefox-11.0-uintptr_t.patch | 12 +
package/firefox/firefox.mk | 240 +++++++++++
package/firefox/firefox_extensions.mk.in | 168 ++++++++
package/firefox/mozconfig | 35 ++
package/firefox/prefs.js | 100 +++++
11 files changed, 1164 insertions(+), 0 deletions(-)
create mode 100644 package/firefox/Config.in
create mode 100644 package/firefox/firefox-11.0-NativeWindowHandle.patch
create mode 100644 package/firefox/firefox-11.0-execinfo.patch
create mode 100644 package/firefox/firefox-11.0-isfinite.patch
create mode 100644 package/firefox/firefox-11.0-uclibc.patch
create mode 100644 package/firefox/firefox-11.0-uintptr_t.patch
create mode 100644 package/firefox/firefox.mk
create mode 100644 package/firefox/firefox_extensions.mk.in
create mode 100644 package/firefox/mozconfig
create mode 100755 package/firefox/prefs.js
diff --git a/package/Config.in b/package/Config.in
index 636caf8..1848abb 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -540,6 +540,7 @@ source "package/dnsmasq/Config.in"
source "package/dropbear/Config.in"
source "package/ebtables/Config.in"
source "package/ethtool/Config.in"
+source "package/firefox/Config.in"
source "package/heirloom-mailx/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/hiawatha/Config.in"
diff --git a/package/firefox/Config.in b/package/firefox/Config.in
new file mode 100644
index 0000000..fbd4749
--- /dev/null
+++ b/package/firefox/Config.in
@@ -0,0 +1,417 @@
+config BR2_PACKAGE_FIREFOX
+ bool "firefox"
+ select BR2_PACKAGE_ALSA_LIB
+ select BR2_PACKAGE_CAIRO
+ select BR2_PACKAGE_CAIRO_TEE
+ select BR2_PACKAGE_FREETYPE
+ select BR2_PACKAGE_JPEG
+ select BR2_PACKAGE_LIBGTK2
+ select BR2_PACKAGE_LIBFFI
+ select BR2_PACKAGE_LIBNSS
+ select BR2_PACKAGE_LIBNSPR
+ select BR2_PACKAGE_LIBPNG
+ select BR2_PACKAGE_SQLITE
+ select BR2_PACKAGE_SQLITE_ENABLE_FTS3
+ select BR2_PACKAGE_SQLITE_ENABLE_UNLOCK_NOTIFY
+ select BR2_PACKAGE_SQLITE_SECURE_DELETE
+ select BR2_PACKAGE_ZLIB
+ depends on BR2_PACKAGE_PYTHON
+ help
+ Mozilla Firefox Web Browser
+
+ http://releases.mozilla.org/pub/mozilla.org/firefox/releases/11.0/source/
+
+if BR2_PACKAGE_FIREFOX
+
+config BR2_PACKAGE_FIREFOX_ENABLE_DEBUG
+ bool "Enable debug build and Valgrind integration hooks"
+ select BR2_PACKAGE_VALGRIND if BR2_TOOLCHAIN_BUILDROOT && BR2_GCC_ENABLE_TLS
+ help
+ This enables debug support.
+ If you are using buildroot toolchain and your gcc has TLS enable then
+ this will also enable Valgrind integration hooks.
+
+config BR2_PACKAGE_FIREFOX_ENABLE_WEBM
+ bool "Enable WebM"
+ select BR2_PACKAGE_YASM if BR2_i386 || BR2_x86_64
+ help
+ WebM is an audio-video format designed to provide royalty-free, open video compression
+ for use with HTML5 video. The project's development is sponsored by Google inc.
+
+ A WebM file consist of VP8 video and Vorbis audio streams, in a container based on
+ a profile of Matroska. The project releases WebM related software under a BSD license and
+ all users are granted a worldwide, non-exclusive, non-charge, royalty-free patent license.
+
+ WebM is one way of watching YouTube videos without proprietary Adobe Flash.
+ After you have installed WebM enabled Firefox you can try it by visiting the following link:
+
+ http://www.youtube.com/results?search_query=web&webm=1
+
+config BR2_PACKAGE_FIREFOX_ULTRA_PARANOID
+ bool "Enable Ulta-paranoid settings"
+ select BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS
+ select BR2_PACKAGE_FIREFOX_EXTENSION_NOSCRIPT
+ select BR2_PACKAGE_FIREFOX_EXTENSION_ADBLOCK_LITE
+ select BR2_PACKAGE_FIREFOX_EXTENSION_GHOSTERY
+ select BR2_PACKAGE_FIREFOX_EXTENSION_HTTPS_EVERYWHERE
+ help
+ This enables my (IMHO) ultra-private custom settings.
+ The changed settings appear bold when typing about:config into your browser address bar.
+
+ Most (but not all!) are documented in
+ http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries
+
+ For more info of these entries please take a look at package/firefox/prefs.js file.
+
+ By selecting this option you are also enabling pipelining for your browser.
+
+ Below is a short summary of settings changed:
+
+ network.http.pipelining = true;
+ network.http.pipelining.aggressive = true;
+ network.http.pipelining.ssl = true;
+ network.http.proxy.pipelining = true;
+ browser.download.manager.retention = 1;
+ browser.formfill.enable = false;
+ browser.privatebrowsing.autostart = true;
+ dom.disable_window_move_resize = false;
+ dom.event.contextmenu.enabled = false;
+ geo.enabled = false;
+ network.cookie.cookieBehavior = 1;
+ network.cookie.lifetimePolicy = 2;
+ network.cookie.prefsMigrated = true;
+ network.proxy.socks_remote_dns = true;
+ network.websocket.enabled = false;
+ places.history.enabled = false;
+ privacy.clearOnShutdown.offlineApps = true;
+ privacy.clearOnShutdown.passwords = true;
+ privacy.clearOnShutdown.siteSettings = true;
+ privacy.donottrackheader.enabled = true;
+ privacy.item.cookies = true;
+ privacy.sanitize.sanitizeOnShutdown = true;
+
+ Note:
+ By selecting this option you are also enabling the following privacy/security related
+ extensions: NoScript, Adblock Lite, Ghostery & HTTPS Everywhere
+
+config BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS
+ bool "Enable installing of selected default extensions"
+ help
+ This option will enable you to select default extensions to
+ be installed when building Firefox.
+
+ Note: The selected extensions are only *installed*.
+ They are not *enabled* by default.
+ For that you have to manually enable them after starting you
+ freshly build Firefox.
+
+config BR2_PACKAGE_FIREFOX_EXTENSION_NOSCRIPT
+ bool "Install NoScript extensions"
+ depends on BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS
+ help
+ NoScript for Firefox pre-emptively blocks malicious scripts
+ and allows JavaScript, Java, Flash and other potentially dangerous
+ content only from sites you trust.
+
+ NoScript also provides the most anti-XSS and anti-Clickjacking
+ protection ever available in a browser
+
+ http://noscript.net
+
+config BR2_PACKAGE_FIREFOX_EXTENSION_ADBLOCK_LITE
+ bool "Install Adblock Lite extension"
+ depends on BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS
+ help
+ Adblock Lite is a fork of the Adblock Plus version 1.3.10 (classic UI)
+ extension for blocking advertisements on the web.
+ This fork will provide the same features as Adblock Plus 2.x and higher
+ while keeping the old UI but without acceptable ads feature.
+
+ https://bitbucket.org/adstomper/adblocklite
+
+config BR2_PACKAGE_FIREFOX_EXTENSION_GHOSTERY
+ bool "Install Ghostery extension"
+ depends on BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS
+ help
+ Protect your privacy. See who's tracking your web browsing and
+ block them with Ghostery.
+
+ http://www.ghostery.com
+
+config BR2_PACKAGE_FIREFOX_EXTENSION_HTTPS_EVERYWHERE
+ bool "Install HTTPS Everywhere extension"
+ depends on BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS
+ help
+ HTTPS Everywhere is a Firefox and Chrome extension
+ that encrypts your communications wit many major
+ websites, making your browsing more secure.
+
+ https://www.eff.org/https-everywhere
+
+config BR2_PACKAGE_FIREFOX_PLUGIN_GNASH
+ source "package/gnash/Config.in"
+
+choice
+ default BR2_PACKAGE_FIREFOX_LOCALE_EN_US
+ prompt "Select locale"
+ config BR2_PACKAGE_FIREFOX_LOCALE_AF
+ bool "af"
+ config BR2_PACKAGE_FIREFOX_LOCALE_AK
+ bool "ak"
+ config BR2_PACKAGE_FIREFOX_LOCALE_AR
+ bool "ar"
+ config BR2_PACKAGE_FIREFOX_LOCALE_AS
+ bool "as"
+ config BR2_PACKAGE_FIREFOX_LOCALE_AST
+ bool "ast"
+ config BR2_PACKAGE_FIREFOX_LOCALE_BE
+ bool "be"
+ config BR2_PACKAGE_FIREFOX_LOCALE_BG
+ bool "bg"
+ config BR2_PACKAGE_FIREFOX_LOCALE_BN_BD
+ bool "bn-BD"
+ config BR2_PACKAGE_FIREFOX_LOCALE_BN_ID
+ bool "bn-IN"
+ config BR2_PACKAGE_FIREFOX_LOCALE_BR
+ bool "br"
+ config BR2_PACKAGE_FIREFOX_LOCALE_BS
+ bool "bs"
+ config BR2_PACKAGE_FIREFOX_LOCALE_CA
+ bool "ca"
+ config BR2_PACKAGE_FIREFOX_LOCALE_CSB
+ bool "csb"
+ config BR2_PACKAGE_FIREFOX_LOCALE_CS
+ bool "cs"
+ config BR2_PACKAGE_FIREFOX_LOCALE_CY
+ bool "cy"
+ config BR2_PACKAGE_FIREFOX_LOCALE_DA
+ bool "da"
+ config BR2_PACKAGE_FIREFOX_LOCALE_DE
+ bool "de"
+ config BR2_PACKAGE_FIREFOX_LOCALE_EL
+ bool "el"
+ config BR2_PACKAGE_FIREFOX_LOCALE_EN_GB
+ bool "en-GB"
+ config BR2_PACKAGE_FIREFOX_LOCALE_EN_US
+ bool "en-US"
+ config BR2_PACKAGE_FIREFOX_LOCALE_EN_ZA
+ bool "en-ZA"
+ config BR2_PACKAGE_FIREFOX_LOCALE_EO
+ bool "eo"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ES_AR
+ bool "es-AR"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ES_CL
+ bool "es-CL"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ES_ES
+ bool "es-ES"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ES_MX
+ bool "es-MX"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ET
+ bool "et"
+ config BR2_PACKAGE_FIREFOX_LOCALE_EU
+ bool "eu"
+ config BR2_PACKAGE_FIREFOX_LOCALE_FA
+ bool "fa"
+ config BR2_PACKAGE_FIREFOX_LOCALE_FI
+ bool "fi"
+ config BR2_PACKAGE_FIREFOX_LOCALE_FR
+ bool "fr"
+ config BR2_PACKAGE_FIREFOX_LOCALE_FY_NL
+ bool "fy-NL"
+ config BR2_PACKAGE_FIREFOX_LOCALE_GA_IE
+ bool "ga-IE"
+ config BR2_PACKAGE_FIREFOX_LOCALE_GD
+ bool "gd"
+ config BR2_PACKAGE_FIREFOX_LOCALE_GL
+ bool "gl"
+ config BR2_PACKAGE_FIREFOX_LOCALE_GU_IN
+ bool "gu-IN"
+ config BR2_PACKAGE_FIREFOX_LOCALE_HE
+ bool "he"
+ config BR2_PACKAGE_FIREFOX_LOCALE_HI_IN
+ bool "hi-IN"
+ config BR2_PACKAGE_FIREFOX_LOCALE_HR
+ bool "hr"
+ config BR2_PACKAGE_FIREFOX_LOCALE_HU
+ bool "hu"
+ config BR2_PACKAGE_FIREFOX_LOCALE_HY_AM
+ bool "hy-AM"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ID
+ bool "id"
+ config BR2_PACKAGE_FIREFOX_LOCALE_IS
+ bool "is"
+ config BR2_PACKAGE_FIREFOX_LOCALE_IT
+ bool "it"
+ config BR2_PACKAGE_FIREFOX_LOCALE_JA
+ bool "ja"
+ config BR2_PACKAGE_FIREFOX_LOCALE_KK
+ bool "kk"
+ config BR2_PACKAGE_FIREFOX_LOCALE_KN
+ bool "kn"
+ config BR2_PACKAGE_FIREFOX_LOCALE_KO
+ bool "ko"
+ config BR2_PACKAGE_FIREFOX_LOCALE_KU
+ bool "ku"
+ config BR2_PACKAGE_FIREFOX_LOCALE_LG
+ bool "lg"
+ config BR2_PACKAGE_FIREFOX_LOCALE_LT
+ bool "lt"
+ config BR2_PACKAGE_FIREFOX_LOCALE_LV
+ bool "lv"
+ config BR2_PACKAGE_FIREFOX_LOCALE_MAI
+ bool "mai"
+ config BR2_PACKAGE_FIREFOX_LOCALE_MK
+ bool "mk"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ML
+ bool "ml"
+ config BR2_PACKAGE_FIREFOX_LOCALE_MR
+ bool "mr"
+ config BR2_PACKAGE_FIREFOX_LOCALE_NB_NO
+ bool "nb-NO"
+ config BR2_PACKAGE_FIREFOX_LOCALE_NL
+ bool "nl"
+ config BR2_PACKAGE_FIREFOX_LOCALE_NN_NO
+ bool "nn-NO"
+ config BR2_PACKAGE_FIREFOX_LOCALE_NSO
+ bool "nso"
+ config BR2_PACKAGE_FIREFOX_LOCALE_OR
+ bool "or"
+ config BR2_PACKAGE_FIREFOX_LOCALE_PA_IN
+ bool "pa-IN"
+ config BR2_PACKAGE_FIREFOX_LOCALE_PL
+ bool "pl"
+ config BR2_PACKAGE_FIREFOX_LOCALE_PT_BR
+ bool "pt-BR"
+ config BR2_PACKAGE_FIREFOX_LOCALE_PT_PT
+ bool "pt-PT"
+ config BR2_PACKAGE_FIREFOX_LOCALE_RM
+ bool "rm"
+ config BR2_PACKAGE_FIREFOX_LOCALE_RO
+ bool "ro"
+ config BR2_PACKAGE_FIREFOX_LOCALE_RU
+ bool "ru"
+ config BR2_PACKAGE_FIREFOX_LOCALE_SI
+ bool "si"
+ config BR2_PACKAGE_FIREFOX_LOCALE_SK
+ bool "sk"
+ config BR2_PACKAGE_FIREFOX_LOCALE_SL
+ bool "sl"
+ config BR2_PACKAGE_FIREFOX_LOCALE_SON
+ bool "son"
+ config BR2_PACKAGE_FIREFOX_LOCALE_SQ
+ bool "sq"
+ config BR2_PACKAGE_FIREFOX_LOCALE_SR
+ bool "sr"
+ config BR2_PACKAGE_FIREFOX_LOCALE_SV_SE
+ bool "sv-SE"
+ config BR2_PACKAGE_FIREFOX_LOCALE_TA
+ bool "ta"
+ config BR2_PACKAGE_FIREFOX_LOCALE_TA_LK
+ bool "ta-LK"
+ config BR2_PACKAGE_FIREFOX_LOCALE_TE
+ bool "te"
+ config BR2_PACKAGE_FIREFOX_LOCALE_TH
+ bool "th"
+ config BR2_PACKAGE_FIREFOX_LOCALE_TR
+ bool "tr"
+ config BR2_PACKAGE_FIREFOX_LOCALE_UK
+ bool "uk"
+ config BR2_PACKAGE_FIREFOX_LOCALE_VI
+ bool "vi"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ZH_CN
+ bool "zh-CN"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ZH_TW
+ bool "zh-TW"
+ config BR2_PACKAGE_FIREFOX_LOCALE_ZU
+ bool "zu"
+endchoice
+
+config BR2_PACKAGE_FIREFOX_LOCALE
+ string
+ default "af" if BR2_PACKAGE_FIREFOX_LOCALE_AF
+ default "ak" if BR2_PACKAGE_FIREFOX_LOCALE_AK
+ default "ar" if BR2_PACKAGE_FIREFOX_LOCALE_AR
+ default "as" if BR2_PACKAGE_FIREFOX_LOCALE_AS
+ default "ast" if BR2_PACKAGE_FIREFOX_LOCALE_AST
+ default "be" if BR2_PACKAGE_FIREFOX_LOCALE_BE
+ default "bg" if BR2_PACKAGE_FIREFOX_LOCALE_BG
+ default "bn-BD" if BR2_PACKAGE_FIREFOX_LOCALE_BN_BD
+ default "bn-IN" if BR2_PACKAGE_FIREFOX_LOCALE_BN_ID
+ default "br" if BR2_PACKAGE_FIREFOX_LOCALE_BR
+ default "bs" if BR2_PACKAGE_FIREFOX_LOCALE_BS
+ default "ca" if BR2_PACKAGE_FIREFOX_LOCALE_CA
+ default "csb" if BR2_PACKAGE_FIREFOX_LOCALE_CSB
+ default "cs" if BR2_PACKAGE_FIREFOX_LOCALE_CS
+ default "cy" if BR2_PACKAGE_FIREFOX_LOCALE_CY
+ default "da" if BR2_PACKAGE_FIREFOX_LOCALE_DA
+ default "de" if BR2_PACKAGE_FIREFOX_LOCALE_DE
+ default "el" if BR2_PACKAGE_FIREFOX_LOCALE_EL
+ default "en-GB" if BR2_PACKAGE_FIREFOX_LOCALE_EN_GB
+ default "en-US" if BR2_PACKAGE_FIREFOX_LOCALE_EN_US
+ default "en-ZA" if BR2_PACKAGE_FIREFOX_LOCALE_EN_ZA
+ default "eo" if BR2_PACKAGE_FIREFOX_LOCALE_EO
+ default "es-AR" if BR2_PACKAGE_FIREFOX_LOCALE_ES_AR
+ default "es-CL" if BR2_PACKAGE_FIREFOX_LOCALE_ES_CL
+ default "es-ES" if BR2_PACKAGE_FIREFOX_LOCALE_ES_ES
+ default "es-MX" if BR2_PACKAGE_FIREFOX_LOCALE_ES_MX
+ default "et" if BR2_PACKAGE_FIREFOX_LOCALE_ET
+ default "eu" if BR2_PACKAGE_FIREFOX_LOCALE_EU
+ default "fa" if BR2_PACKAGE_FIREFOX_LOCALE_FA
+ default "fi" if BR2_PACKAGE_FIREFOX_LOCALE_FI
+ default "fr" if BR2_PACKAGE_FIREFOX_LOCALE_FR
+ default "fy-NL" if BR2_PACKAGE_FIREFOX_LOCALE_FY_NL
+ default "ga-IE" if BR2_PACKAGE_FIREFOX_LOCALE_GA_IE
+ default "gd" if BR2_PACKAGE_FIREFOX_LOCALE_GD
+ default "gl" if BR2_PACKAGE_FIREFOX_LOCALE_GL
+ default "gu-IN" if BR2_PACKAGE_FIREFOX_LOCALE_GU_IN
+ default "he" if BR2_PACKAGE_FIREFOX_LOCALE_HE
+ default "hi-IN" if BR2_PACKAGE_FIREFOX_LOCALE_HI_IN
+ default "hr" if BR2_PACKAGE_FIREFOX_LOCALE_HR
+ default "hu" if BR2_PACKAGE_FIREFOX_LOCALE_HU
+ default "hy-AM" if BR2_PACKAGE_FIREFOX_LOCALE_HY_AM
+ default "id" if BR2_PACKAGE_FIREFOX_LOCALE_ID
+ default "is" if BR2_PACKAGE_FIREFOX_LOCALE_IS
+ default "it" if BR2_PACKAGE_FIREFOX_LOCALE_IT
+ default "ja" if BR2_PACKAGE_FIREFOX_LOCALE_JA
+ default "kk" if BR2_PACKAGE_FIREFOX_LOCALE_KK
+ default "kn" if BR2_PACKAGE_FIREFOX_LOCALE_KN
+ default "ko" if BR2_PACKAGE_FIREFOX_LOCALE_KO
+ default "ku" if BR2_PACKAGE_FIREFOX_LOCALE_KU
+ default "lg" if BR2_PACKAGE_FIREFOX_LOCALE_LG
+ default "lt" if BR2_PACKAGE_FIREFOX_LOCALE_LT
+ default "lv" if BR2_PACKAGE_FIREFOX_LOCALE_LV
+ default "mai" if BR2_PACKAGE_FIREFOX_LOCALE_MAI
+ default "mk" if BR2_PACKAGE_FIREFOX_LOCALE_MK
+ default "ml" if BR2_PACKAGE_FIREFOX_LOCALE_ML
+ default "mr" if BR2_PACKAGE_FIREFOX_LOCALE_MR
+ default "nb-NO" if BR2_PACKAGE_FIREFOX_LOCALE_NB_NO
+ default "nl" if BR2_PACKAGE_FIREFOX_LOCALE_NL
+ default "nn-NO" if BR2_PACKAGE_FIREFOX_LOCALE_NN_NO
+ default "nso" if BR2_PACKAGE_FIREFOX_LOCALE_NSO
+ default "or" if BR2_PACKAGE_FIREFOX_LOCALE_OR
+ default "pa-IN" if BR2_PACKAGE_FIREFOX_LOCALE_PA_IN
+ default "pl" if BR2_PACKAGE_FIREFOX_LOCALE_PL
+ default "pt-BR" if BR2_PACKAGE_FIREFOX_LOCALE_PT_BR
+ default "pt-PT" if BR2_PACKAGE_FIREFOX_LOCALE_PT_PT
+ default "rm" if BR2_PACKAGE_FIREFOX_LOCALE_RM
+ default "ro" if BR2_PACKAGE_FIREFOX_LOCALE_RO
+ default "ru" if BR2_PACKAGE_FIREFOX_LOCALE_RU
+ default "si" if BR2_PACKAGE_FIREFOX_LOCALE_SI
+ default "sk" if BR2_PACKAGE_FIREFOX_LOCALE_SK
+ default "sl" if BR2_PACKAGE_FIREFOX_LOCALE_SL
+ default "son" if BR2_PACKAGE_FIREFOX_LOCALE_SON
+ default "sq" if BR2_PACKAGE_FIREFOX_LOCALE_SQ
+ default "sr" if BR2_PACKAGE_FIREFOX_LOCALE_SR
+ default "sv-SE" if BR2_PACKAGE_FIREFOX_LOCALE_SV_SE
+ default "ta" if BR2_PACKAGE_FIREFOX_LOCALE_TA
+ default "ta-LK" if BR2_PACKAGE_FIREFOX_LOCALE_TA_LK
+ default "te" if BR2_PACKAGE_FIREFOX_LOCALE_TE
+ default "th" if BR2_PACKAGE_FIREFOX_LOCALE_TH
+ default "tr" if BR2_PACKAGE_FIREFOX_LOCALE_TR
+ default "uk" if BR2_PACKAGE_FIREFOX_LOCALE_UK
+ default "vi" if BR2_PACKAGE_FIREFOX_LOCALE_VI
+ default "zh-CN" if BR2_PACKAGE_FIREFOX_LOCALE_ZH_CN
+ default "zh-TW" if BR2_PACKAGE_FIREFOX_LOCALE_ZH_TW
+ default "zu" if BR2_PACKAGE_FIREFOX_LOCALE_ZU
+
+endif
diff --git a/package/firefox/firefox-11.0-NativeWindowHandle.patch b/package/firefox/firefox-11.0-NativeWindowHandle.patch
new file mode 100644
index 0000000..bced599
--- /dev/null
+++ b/package/firefox/firefox-11.0-NativeWindowHandle.patch
@@ -0,0 +1,12 @@
+diff -Naur firefox-11.0.org/dom/plugins/ipc/PluginMessageUtils.h firefox-11.0/dom/plugins/ipc/PluginMessageUtils.h
+--- firefox-11.0.org/dom/plugins/ipc/PluginMessageUtils.h 2012-09-04 22:20:07.086923927 +0300
++++ firefox-11.0/dom/plugins/ipc/PluginMessageUtils.h 2012-09-04 22:23:45.195922486 +0300
+@@ -131,7 +131,7 @@
+ typedef HWND NativeWindowHandle;
+ #elif defined(MOZ_X11)
+ typedef XID NativeWindowHandle;
+-#elif defined(XP_MACOSX) || defined(ANDROID) || defined(MOZ_WIDGET_QT)
++#elif defined(XP_MACOSX) || defined(ANDROID) || defined(MOZ_WIDGET_QT) || defined(MOZ_DFB)
+ typedef intptr_t NativeWindowHandle; // never actually used, will always be 0
+ #else
+ #error Need NativeWindowHandle for this platform
diff --git a/package/firefox/firefox-11.0-execinfo.patch b/package/firefox/firefox-11.0-execinfo.patch
new file mode 100644
index 0000000..cacd7a1
--- /dev/null
+++ b/package/firefox/firefox-11.0-execinfo.patch
@@ -0,0 +1,45 @@
+diff -Naur firefox-11.0.org/ipc/chromium/src/base/debug_util_posix.cc firefox-11.0/ipc/chromium/src/base/debug_util_posix.cc
+--- firefox-11.0.org/ipc/chromium/src/base/debug_util_posix.cc 2012-08-06 15:09:43.325994371 +0300
++++ firefox-11.0/ipc/chromium/src/base/debug_util_posix.cc 2012-08-06 23:30:33.750226316 +0300
+@@ -5,7 +5,7 @@
+ #include "build/build_config.h"
+ #include "base/debug_util.h"
+
+-#define MOZ_HAVE_EXECINFO_H (!defined(ANDROID) && !defined(__OpenBSD__))
++#define MOZ_HAVE_EXECINFO_H (!defined(ANDROID) && !defined(__OpenBSD__) && !defined(__UCLIBC__) )
+
+ #include <errno.h>
+ #include <fcntl.h>
+diff -Naur firefox-11.0.org/tools/profiler/sps/platform-linux.cc firefox-11.0/tools/profiler/sps/platform-linux.cc
+--- firefox-11.0.org/tools/profiler/sps/platform-linux.cc 2012-08-06 15:09:24.330995513 +0300
++++ firefox-11.0/tools/profiler/sps/platform-linux.cc 2012-08-06 23:30:33.751226314 +0300
+@@ -28,7 +28,7 @@
+ #include <sys/stat.h> // open
+ #include <fcntl.h> // open
+ #include <unistd.h> // sysconf
+-#ifdef __GLIBC__
++#if defined(__GLIBC__) && !defined(__UCLIBC__)
+ #include <execinfo.h> // backtrace, backtrace_symbols
+ #endif // def __GLIBC__
+ #include <strings.h> // index
+@@ -114,7 +114,7 @@
+ static Sampler* sActiveSampler = NULL;
+
+
+-#if !defined(__GLIBC__) && (defined(__arm__) || defined(__thumb__))
++#if !defined(__GLIBC__) && (defined(__arm__) || defined(__thumb__)) && !defined(__UCLIBC__)
+ // Android runs a fairly new Linux kernel, so signal info is there,
+ // but the C library doesn't have the structs defined.
+
+diff -Naur firefox-11.0.org/xpcom/threads/nsThread.cpp firefox-11.0/xpcom/threads/nsThread.cpp
+--- firefox-11.0.org/xpcom/threads/nsThread.cpp 2012-08-06 15:09:49.129994022 +0300
++++ firefox-11.0/xpcom/threads/nsThread.cpp 2012-08-06 23:30:49.474225373 +0300
+@@ -53,7 +53,7 @@
+ _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && \
+ !(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
+
+-#if defined(XP_UNIX) && !defined(ANDROID) && !defined(DEBUG) && HAVE_UALARM \
++#if defined(XP_UNIX) && !defined(ANDROID) && !defined(__UCLIBC__) && !defined(DEBUG) && HAVE_UALARM \
+ && defined(_GNU_SOURCE)
+ # define MOZ_CANARY
+ # include <unistd.h>
diff --git a/package/firefox/firefox-11.0-isfinite.patch b/package/firefox/firefox-11.0-isfinite.patch
new file mode 100644
index 0000000..87c024d
--- /dev/null
+++ b/package/firefox/firefox-11.0-isfinite.patch
@@ -0,0 +1,22 @@
+diff -Naur firefox-11.0.org/xpcom/ds/nsMathUtils.h firefox-11.0/xpcom/ds/nsMathUtils.h
+--- firefox-11.0.org/xpcom/ds/nsMathUtils.h 2012-08-06 15:09:49.059994026 +0300
++++ firefox-11.0/xpcom/ds/nsMathUtils.h 2012-08-06 23:32:57.771217662 +0300
+@@ -42,6 +42,9 @@
+
+ #include "nscore.h"
+ #include <math.h>
++#ifdef __UCLIBC__
++#include <cmath>
++#endif
+ #include <float.h>
+
+ #ifdef SOLARIS
+@@ -134,6 +137,8 @@
+ // Darwin has deprecated |finite| and recommends |isfinite|. The former is
+ // not present in the iOS SDK.
+ return isfinite(d);
++#elif __UCLIBC__
++ return std::isfinite(d);
+ #else
+ return finite(d);
+ #endif
diff --git a/package/firefox/firefox-11.0-uclibc.patch b/package/firefox/firefox-11.0-uclibc.patch
new file mode 100644
index 0000000..3d1b1a0
--- /dev/null
+++ b/package/firefox/firefox-11.0-uclibc.patch
@@ -0,0 +1,112 @@
+diff -Naur firefox-11.0.org/ipc/chromium/src/base/file_util.h firefox-11.0/ipc/chromium/src/base/file_util.h
+--- firefox-11.0.org/ipc/chromium/src/base/file_util.h 2012-08-06 15:09:43.333994370 +0300
++++ firefox-11.0/ipc/chromium/src/base/file_util.h 2012-08-06 23:42:29.523183319 +0300
+@@ -16,7 +16,9 @@
+ #include <sys/stat.h>
+ #elif defined(OS_POSIX)
+ #include <sys/types.h>
++#ifndef __UCLIBC__
+ #include <fts.h>
++#endif
+ #include <sys/stat.h>
+ #endif
+
+@@ -466,7 +468,7 @@
+ #if defined(OS_WIN)
+ WIN32_FIND_DATA find_data_;
+ HANDLE find_handle_;
+-#elif defined(ANDROID)
++#elif defined(ANDROID) || defined(__UCLIBC__)
+ void *fts_;
+ #elif defined(OS_POSIX)
+ FTS* fts_;
+diff -Naur firefox-11.0.org/ipc/chromium/src/base/file_util_posix.cc firefox-11.0/ipc/chromium/src/base/file_util_posix.cc
+--- firefox-11.0.org/ipc/chromium/src/base/file_util_posix.cc 2012-08-06 15:09:43.296994374 +0300
++++ firefox-11.0/ipc/chromium/src/base/file_util_posix.cc 2012-08-06 23:42:29.525183319 +0300
+@@ -8,7 +8,7 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <fnmatch.h>
+-#ifndef ANDROID
++#if !defined(ANDROID) && !defined(__UCLIBC__)
+ #include <fts.h>
+ #endif
+ #include <libgen.h>
+@@ -123,7 +123,7 @@
+ if (!recursive)
+ return (rmdir(path_str) == 0);
+
+-#ifdef ANDROID
++#if defined(ANDROID) || defined(__UCLIBC__)
+ // XXX Need ftsless impl for bionic
+ return false;
+ #else
+@@ -196,7 +196,7 @@
+ return false;
+ }
+
+-#ifdef ANDROID
++#if defined(ANDROID) || defined(__UCLIBC__)
+ // XXX Need ftsless impl for bionic
+ return false;
+ #else
+@@ -419,7 +419,7 @@
+ std::string tmpdir_string = tmpdir.value();
+ // this should be OK since mkdtemp just replaces characters in place
+ char* buffer = const_cast<char*>(tmpdir_string.c_str());
+-#ifdef ANDROID
++#if defined(ANDROID) || defined(__UCLIBC__)
+ char* dtemp = NULL;
+ #else
+ char* dtemp = mkdtemp(buffer);
+@@ -549,7 +549,7 @@
+ }
+
+ FileEnumerator::~FileEnumerator() {
+-#ifndef ANDROID
++#if !defined(ANDROID) && !defined(__UCLIBC__)
+ if (fts_)
+ fts_close(fts_);
+ #endif
+@@ -561,7 +561,7 @@
+ if (!is_in_find_op_)
+ return;
+
+-#ifndef ANDROID
++#if !defined(ANDROID) && !defined(__UCLIBC__)
+ memcpy(&(info->stat), fts_ent_->fts_statp, sizeof(info->stat));
+ info->filename.assign(fts_ent_->fts_name);
+ #endif
+@@ -572,7 +572,7 @@
+ // large directories with many files this can be quite deep.
+ // TODO(erikkay) - get rid of this recursive pattern
+ FilePath FileEnumerator::Next() {
+-#ifdef ANDROID
++#if defined(ANDROID) || defined(__UCLIBC__)
+ return FilePath();
+ #else
+ if (!is_in_find_op_) {
+diff -Naur firefox-11.0.org/js/src/ctypes/CTypes.cpp firefox-11.0/js/src/ctypes/CTypes.cpp
+--- firefox-11.0.org/js/src/ctypes/CTypes.cpp 2012-08-06 15:09:42.909994396 +0300
++++ firefox-11.0/js/src/ctypes/CTypes.cpp 2012-08-06 23:45:09.691173699 +0300
+@@ -473,6 +473,8 @@
+ static inline bool FloatIsFinite(jsdouble f) {
+ #ifdef WIN32
+ return _finite(f) != 0;
++#elif __UCLIBC__
++ return isinf(f);
+ #else
+ return finite(f);
+ #endif
+diff -Naur firefox-11.0.org/memory/mozalloc/mozalloc.cpp firefox-11.0/memory/mozalloc/mozalloc.cpp
+--- firefox-11.0.org/memory/mozalloc/mozalloc.cpp 2012-08-06 15:09:42.968994393 +0300
++++ firefox-11.0/memory/mozalloc/mozalloc.cpp 2012-08-06 23:45:58.800170749 +0300
+@@ -259,7 +259,7 @@
+
+ #if defined(XP_MACOSX)
+ return malloc_size(ptr);
+-#elif defined(MOZ_MEMORY) || defined(XP_LINUX)
++#elif defined(MOZ_MEMORY) || defined(XP_LINUX) && !defined(__UCLIBC__)
+ // XXX: the |defined(XP_LINUX)| may be too lax; some Linux installations
+ // might use a libc that doesn't have malloc_usable_size. Let's fix this
+ // if/when it happens.
diff --git a/package/firefox/firefox-11.0-uintptr_t.patch b/package/firefox/firefox-11.0-uintptr_t.patch
new file mode 100644
index 0000000..559b4c7
--- /dev/null
+++ b/package/firefox/firefox-11.0-uintptr_t.patch
@@ -0,0 +1,12 @@
+diff -Naur firefox-11.0.org/gfx/qcms/qcmstypes.h firefox-11.0/gfx/qcms/qcmstypes.h
+--- firefox-11.0.org/gfx/qcms/qcmstypes.h 2012-08-06 15:09:44.189994318 +0300
++++ firefox-11.0/gfx/qcms/qcmstypes.h 2012-08-06 23:35:38.339208022 +0300
+@@ -27,7 +27,7 @@
+ #ifdef __OS2__
+ /* OS/2's stdlib typdefs uintptr_t. So we'll just include that so we don't collide */
+ #include <stdlib.h>
+-#elif !defined(__intptr_t_defined) && !defined(_UINTPTR_T_DEFINED)
++#elif !defined(__intptr_t_defined) && !defined(_UINTPTR_T_DEFINED) && !defined(__UCLIBC__)
+ typedef PRUptrdiff uintptr_t;
+ #endif
+ #endif
diff --git a/package/firefox/firefox.mk b/package/firefox/firefox.mk
new file mode 100644
index 0000000..f501636
--- /dev/null
+++ b/package/firefox/firefox.mk
@@ -0,0 +1,240 @@
+#############################################################
+#
+# Mozilla Firefox
+#
+# Version: 11.0
+# Authors: Stefan Froberg
+#
+# Builds a very minimal binary with all the optional features
+# stripped, except WebM.
+#
+# With WebM enabled you can watch *some* (but not all!)
+# YouTube videos without Adobe Flash player
+# http://www.youtube.com/results?search_query=web&webm=1
+#
+# Because Adobe Flash player plug-in is a glibc binary it
+# will obviously not work with uClibc.
+# (but maybe with nspluginwrapper ... )
+#
+# So the only real open source solution for playing flash videos
+# with Firefox under uClibc will be gnash + lightspark combo.
+# Lightspark handling the newer flash formats while falling back
+# to gnash with older versions.
+#
+# Further, Adobe has recently stopped supporting Linux version of
+# their plug-in but Google Chrome PPAPI might some day
+# find it's way to firefox and save the day.
+# http://www.phoronix.com/scan.php?page=news_item&px=MTEyNzc
+#
+# Used Linux From Scratch as a starting template for this file
+# http://www.linuxfromscratch.org/blfs/view/svb/xsoft/firefox.html
+#
+# Note: Even tought the libnss and libnspr are marked as dependencies
+# here I could not get them to work when building firefox.
+# Seems that the configure script needs some patching ...
+#
+# So for now, untill somebody fixes this, instead of trying to
+# use the buildroot system version of these libs the
+# internal ones provided by the firefox tarball are used.
+#
+#############################################################
+FIREFOX_VERSION = 11.0
+FIREFOX_SOURCE = firefox-$(FIREFOX_VERSION).source.tar.bz2
+FIREFOX_SITE = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(FIREFOX_VERSION)/source/
+FIREFOX_DEPENDENCIES = host-python alsa-lib cairo freetype jpeg libffi libgtk2 libnss libnspr libpng sqlite zlib
+
+ifeq ($(BR2_PACKAGE_FIREFOX_ENABLE_DEBUG),y)
+FIREFOX_DEPENDENCIES += valgrind
+define FIREFOX_ENABLE_DEBUG
+ echo "ac_add_options --enable-debug" >> $(FIREFOX_DIR)/mozconfig
+ echo "ac_add_options --enable-debug-symbols" >> $(FIREFOX_DIR)/mozconfig
+ echo "ac_add_options --disable-strip" >> $(FIREFOX_DIR)/mozconfig
+ echo "ac_add_options --enable-valgrind" >> $(FIREFOX_DIR)/mozconfig
+endef
+else
+define FIREFOX_ENABLE_DEBUG
+ echo "ac_add_options --disable-debug" >> $(FIREFOX_DIR)/mozconfig
+ echo "ac_add_options --disable-debug-symbols" >> $(FIREFOX_DIR)/mozconfig
+ echo "ac_add_options --enable-strip" >> $(FIREFOX_DIR)/mozconfig
+ echo "ac_add_options --disable-valgrind" >> $(FIREFOX_DIR)/mozconfig
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_FIREFOX_ENABLE_WEBM),y)
+# Only x86 needs yasm
+ifeq ($(BR2_i386),y) || ($(BR2_x86_64),y)
+FIREFOX_DEPENDENCIES += host-yasm
+endif
+define FIREFOX_ENABLE_WEBM
+ echo "ac_add_options --enable-webm" >> $(FIREFOX_DIR)/mozconfig
+endef
+else
+define FIREFOX_ENABLE_WEBM
+ echo "ac_add_options --disable-webm" >> $(FIREFOX_DIR)/mozconfig
+endef
+endif
+
+#####################################################################
+# Some post-install, optional default profile custom settings
+# (extensions, secure default settings, language packs, flash etc...)
+#####################################################################
+
+# General Info & description of some Firefox extensions.
+# Too large to put directly here.
+include package/firefox/firefox_extensions.mk.in
+
+# My (IMHO) privacy enhanced about:config settings.
+# Before you enable this feature please
+# check prefs.js file
+#
+# Note: This will also install NoScript, Adblock Lite, Ghostery and
+# HttpsEverywhere extensions
+
+ifeq ($(BR2_PACKAGE_FIREFOX_ULTRA_PARANOID),y)
+define FIREFOX_ULTRA_PARANOID
+ cp -i package/firefox/prefs.js $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION)/defaults/profile/
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS),y)
+
+# Because this setting will also install the extensions mentioned in
+# package/firefox/firefox_extensions.mk.in we will need two
+# additional tools: host-unzip and host-xmlstarlet
+
+FIREFOX_DEPENDENCIES += host-unzip host-xmlstarlet
+
+define FIREFOX_INSTALL_DEFAULT_EXTENSIONS
+ $(call FIREFOX_INSTALL_EXTENSION,$(EXTENSION_SOURCE))
+endef
+endif
+
+# Installing selected langpack (en-US locale does not need any)
+ifneq ($(BR2_FIREFOX_LOCALE_EN_US),y)
+
+FIREFOX_LOCALE:=$(call qstrip,$(BR2_PACKAGE_FIREFOX_LOCALE))
+FIREFOX_LOCALE_SOURCE:=https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$(FIREFOX_VERSION)/linux-i686/xpi/$(FIREFOX_LOCALE).xpi
+
+define FIREFOX_INSTALL_LANGPACK
+ $(call DOWNLOAD,$(FIREFOX_LOCALE_SOURCE))
+ cp $(DL_DIR)/$(FIREFOX_LOCALE).xpi $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION)/extensions/langpack-$(FIREFOX_LOCALE)@firefox.mozilla.org.xpi
+ echo "user_pref(\"general.useragent.locale\",\"$(FIREFOX_LOCALE)\");" >> $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION)/defaults/profile/prefs.js
+endef
+endif
+
+define FIREFOX_CUSTOM_DEFAULT_PROFILE
+ mkdir -p $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION)/defaults/profile
+ $(FIREFOX_ULTRA_PARANOID)
+ $(FIREFOX_INSTALL_DEFAULT_EXTENSIONS)
+ $(FIREFOX_INSTALL_LANGPACK)
+endef
+
+FIREFOX_POST_INSTALL_TARGET_HOOKS += FIREFOX_CUSTOM_DEFAULT_PROFILE
+
+# Even thought Firefox uses autoconf it's configure process
+# is not simple "configure && make && make install"
+# but a lot more messier than that.
+
+define FIREFOX_CONFIGURE_CMDS
+ # Copy the default mozconfig to source directory.
+ cp package/firefox/mozconfig $(@D)
+
+ # If you want to enable any extra build options like
+ # DBus support, libnotify support, etc., then this
+ # will be the right place to do it.
+
+ echo "ac_add_options --build=$(GNU_HOST_NAME)" >> $(FIREFOX_DIR)/mozconfig
+ echo "ac_add_options --host=$(GNU_TARGET_NAME)" >> $(FIREFOX_DIR)/mozconfig
+
+ # Enable parallel building
+ echo "mk_add_options MOZ_MAKE_FLAGS=\"-j$(BR2_JLEVEL)\"" >> $(FIREFOX_DIR)/mozconfig
+
+ $(FIREFOX_ENABLE_WEBM)
+ $(FIREFOX_ENABLE_DEBUG)
+
+ # Create the needed build directory that was defined in mozconfig file
+ mkdir -p $(@D)/firefox-build-dir
+endef
+
+
+# Firefox needs SQLite to store it's configurations.
+# Further the SQLite must be build with SQLITE_SECURE_DELETE, SQLITE_THREADSAFE,
+# SQLITE_ENABLE_FTS3 and SLITE_ENABLE_UNLOCK_NOTIFY enabled.
+#
+# However, even if you *do* have these things enabled the damn configure
+# script says that they are not. So I had to force the correct settings.
+#
+# Even worse, it seems that the script does not respect even
+# pkg-config variables (see below) to find the buildroot version of SQLite
+# but insist of using *host* SQLite library.
+#
+# Luckily, in the actual linking time, the correct libraries seem to be used.
+
+define FIREFOX_BUILD_CMDS
+
+ # Picked the PKG_ variable suggestions from:
+ # http://www.flameeyess.eu/autotools-mythbuster/pkgconfig/cross-compiling
+ #
+ # With these settings, *most* of the buildroot system libs were found.
+ # With the exception of SQLite, NSS and NSPR.
+
+ # Had to enforce HOST_CC, CC_FOR_BUILD and HOST_CXX because
+ # the configure would not get them right.
+
+ (cd $(@D); \
+ sed -i 's# ""##' browser/base/Makefile.in && \
+ ac_cv_sqlite_secure_delete=yes \
+ ac_cv_sqlite_threadsafe=yes \
+ ac_cv_sqlite_enable_fts3=yes \
+ ac_cv_sqlite_enable_unlock_notify=yes \
+ HOST_CC=gcc \
+ CC_FOR_BUILD=gcc \
+ HOST_CXX=g++ \
+ PKG_CONFIG_DIR= \
+ PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig:$(STAGING_DIR)/usr/share/pkgconfig" \
+ PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" \
+ PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)"\
+ $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) CXXFLAGS="$(TARGET_CXXFLAGS) -fvisibility=hidden -fvisibility-inlines-hidden" LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -f client.mk )
+
+endef
+
+define FIREFOX_INSTALL_TARGET_CMDS
+ # This will create a firefox installation tarball
+ (cd $(@D); \
+ $(TARGET_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C firefox-build-dir/browser/installer )
+
+ # Make nice new clean home for our firefox and extract it there
+ rm -rf $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION) && \
+ mkdir $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION) && \
+ tar -xvf $(@D)/firefox-build-dir/dist/firefox-$(FIREFOX_VERSION).en-US.linux-*.tar.bz2 -C $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION) --strip-components=1
+
+ # Make some symlinks to firefox binary and plugins directory
+ (cd $(TARGET_DIR)/usr/bin && \
+ ln -sfv ../lib/firefox-$(FIREFOX_VERSION)/firefox . && \
+ mkdir -pv $(TARGET_DIR)/usr/lib/mozilla/plugins && \
+ cd $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION) && \
+ ln -sfv ../mozilla/plugins . && \
+ chown -R -v root:root $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION) )
+
+ # Using strace revealed that for some strange reason the firefox is looking these
+ # from /usr/lib and not from /usr/lib/$(FIREFOX_VERSION) like the rest of the files.
+ # That's why I had to use symlinks to make it start.
+
+ (cd $(TARGET_DIR)/usr/lib && \
+ ln -sfv firefox-$(FIREFOX_VERSION)/libxul.so . && \
+ ln -sfv firefox-$(FIREFOX_VERSION)/libmozjs.so . && \
+ ln -sfv firefox-$(FIREFOX_VERSION)/libmozalloc.so . )
+
+ # For gnash support
+ rm -rf $(STAGING_DIR)/usr/include/npapi
+ mkdir -v $(STAGING_DIR)/usr/include/npapi
+ cp -v $(FIREFOX_DIR)/dom/plugins/base/*.h $(STAGING_DIR)/usr/include/npapi
+
+endef
+
+$(eval $(generic-package))
+
+
+
+
+
diff --git a/package/firefox/firefox_extensions.mk.in b/package/firefox/firefox_extensions.mk.in
new file mode 100644
index 0000000..8c8fa3d
--- /dev/null
+++ b/package/firefox/firefox_extensions.mk.in
@@ -0,0 +1,168 @@
+#############################################################
+# Extensions
+#
+# General Info:
+#
+# Firefox extensions are nothing more than ordinary zip-files with .xpi file extension.
+#
+# If you want to add your own default extension(s) to your default firefox profile
+# then you basically have to:
+# - download the extension file
+# - get the extension id from that file with the help of xmlstarlet tool
+# - unzip the extension file to /usr/lib/firefox-$(FIREFOX_VERSION/extensions/$(EXTENSION_ID)
+#
+# For more information of global extension installation look at:
+# http://kb.mozillazine.org/Installing_extensions#Global_installation
+#
+# For information of how to get the extension id (needs unzip and xmlstarlet) look at:
+# http://kb.mozillazine.org/Determine_extension_ID
+#
+# Note that this process will only *install* your extensions to your default firefox profile.
+# It will not *enable* them by default.
+# You have to do it manually afterwards from Firefox Add-ons menu.
+#
+# There is an "extensions.enabledAddons" setting in about:config
+# but it's no use if you try to set it in pref.js file.
+# It seems it's a read-only setting and it will be updated each
+# time after you have manually enabled your installed extensions/language packs
+# from Add-ons menu.
+#
+# The messy way to enable your extensions by default with each build would be:
+#
+# - Start your firefox at least once and then enable all your extensions manually
+#
+# - Do all the necessary setting you need for your extensions/langpacks
+# (like Adblock Lite subscriptions, default language etc..)
+#
+# - Go to your $HOME/.mozilla/firefox/some_random_chars.default/ folder and copy
+# at least the files starting with extensions.* (and maybe also addons.*)
+# to package/firefox/extensions buildroot folder.
+# To make sure, it's generally better to copy *all* files & directories from
+# $HOME/.mozilla/firefox/some_random_chars.default/ folder to
+# packge/firefox/extensions
+#
+# - Add buildroot option that will copy all those saved custom settings from
+# package/firefox/extensions folder in FIREFOX_POST_INSTALL_TARGET_HOOKS phase
+# (or alternativaly, at the end of the FIREFOX_INSTALL_TARGET_CMDS)
+# to $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION)/extensions
+#
+# This seems to be the only way to *enable* extensions by default because
+# firefox keep's track of extensions in SQLite database (like extensions.sqlite file)
+# and not in easily editable/patchable text files :-(
+#
+# Next comes four privacy/security related extensions.
+#
+
+# Name: NoScript
+# Version: 2.5.3
+# Home: http://noscript.net
+# Download URL: http://releases.mozilla.org/pub/mozilla.org/addons/722/noscript-2.5.3-fx+fn+sm.xpi
+# Description: "NoScript for Firefox pre-emptively blocks malicious scripts
+# and allows JavaScript, Java, Flash and other potentially dangerous
+# content only from sites you trust.
+# NoScript also provides the most anti-XSS and anti-Clickjacking
+# protection ever available in a browser."
+
+ifeq ($(BR2_PACKAGE_FIREFOX_EXTENSION_NOSCRIPT),y)
+EXTENSION_SOURCE+=http://releases.mozilla.org/pub/mozilla.org/addons/722/noscript-2.5.3-fx+fn+sm.xpi
+endif
+
+# Name: Adblock Lite
+# Version: 1.4.3
+# Home: https://bitbucket.org/adstomper/adblocklite
+# Download URL: https://bitbucket.org/adstomper/adblocklite/downloads/adblocklite-1.4.3.xpi
+# Description: "Adblocklite is a fork of the Adblock Plus version 1.3.10 (classic UI)
+# extension for blocking advertisements on the web.
+# This fork will provide the same features as Adblock Plus 2.x and higher
+# while keeping the old UI but without acceptable ads feature."
+#
+# Indeed, I can confirm that Adblock Plus is still (as of version 2.1.2)
+# using this "acceptable ads" feature and enabling some adds by default.
+#
+# If you want to check it by yourself then do the following:
+#
+# - wget http://releases.mozilla.org/pub/mozilla.org/addons/1865/adblock_plus-2.1.2-sm+an+fx+tb.xpi
+#
+# - unzip -d adblockplus adblock_plus-2.1.2-sm+an+fx+tb.xpi
+#
+# - cd adblockplus/defaults
+#
+# - open the prefs.js file and look if you can find line entry named:
+#
+# pref("extensions.adblockplus.subscriptions_exceptionsurl","https://easylist-downloads.adblockplus.org/exceptionrules.txt")
+#
+# - if you open that https://easylist-downloads.adblockplus.org/exceptionrules.txt
+# in your browser you will see that Adblock Plus is whitelisting
+# (all those lines starting with @@)
+# ads from google and amazon.
+#
+# So the end of the story is: Use Adblock Lite instead :-)
+#
+# Note:
+# You need some ad blacklist subscriptions for the Adblock Lite to be effective.
+# You can get them by either selecting the subscriptions you want from
+# Adblock Lite options menu or by visiting https://easylist.adblockplus.org
+#
+# I might later add an option to download and install my own,
+# default ad blacklist subscription text file that contains *all* those
+# subscriptions mentioned in https://easylist.adblockplus.org but
+# without any whitelisted ad sites.
+
+ifeq ($(BR2_PACKAGE_FIREFOX_EXTENSION_ADBLOCK_LITE),y)
+EXTENSION_SOURCE+=http://bitbucket.org/adstomper/adblocklite/downloads/adblocklite-1.4.3.xpi
+endif
+
+# Name: Ghostery
+# Version: 2.8.0.2
+# Home: http://www.ghostery.com
+# Download URL: http://releases.mozilla.org/pub/mozilla.org/addons/9609/ghostery-2.8.0.2-sm+fx.xpi
+# Description: "Protect your privacy. See who's tracking your web browsing and
+# block them with Ghostery"
+
+ifeq ($(BR2_PACKAGE_FIREFOX_EXTENSION_GHOSTERY),y)
+EXTENSION_SOURCE+=http://releases.mozilla.org/pub/mozilla.org/addons/9609/ghostery-2.8.0.2-sm+fx.xpi
+endif
+
+# Name: HTTPS Everywhere
+# Version: 2.2
+# Home: https://www.eff.org/https-everywhere
+# Download URL: https://www.eff.org/files/https-everywhere-latest.xpi
+# Description: "HTTPS Everywhere is a Firefox and Chrome extension
+# that encrypts your communications with many major
+# websites, making your browsing more secure."
+
+ifeq ($(BR2_PACKAGE_FIREFOX_EXTENSION_HTTPS_EVERYWHERE),y)
+EXTENSION_SOURCE+=http://www.eff.org/files/https-everywhere-latest.xpi
+endif
+
+
+ifeq ($(BR2_PACKAGE_FIREFOX_INSTALL_DEFAULT_EXTENSIONS),y)
+
+UNZIP=$(HOST_DIR)/usr/bin/unzip
+XMLSTARLET=$(HOST_DIR)/usr/bin/xml
+
+define FIREFOX_INSTALL_EXTENSION
+
+# Do multi-download, get extension id for each downloaded file
+# and finally unzip it to
+# $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION)/extensions/${EXTENSION_ID}
+#
+# Inner guts copied from package/pkg-download.mk DOWNLOAD_WGET
+# Thanks to Yann and Thomas for helping with that $${i##*/} thing!
+
+ for i in $(EXTENSION_SOURCE);do \
+ FILENAME=$${i##*/} ;\
+ test -e $(DL_DIR)/$${FILENAME} || \
+ $(WGET) -O $(DL_DIR)/$${FILENAME} $${i} || \
+ (rm -f $(DL_DIR)/$${FILENAME} ; exit 1) ;\
+ EXTENSION_ID=`$(UNZIP) -qc $(DL_DIR)/$${FILENAME} install.rdf | $(XMLSTARLET) sel \
+ -N rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# \
+ -N em=http://www.mozilla.org/2004/em-rdf# \
+ -t -v \
+ "//rdf:Description[@about='urn:mozilla:install-manifest']/em:id"` ;\
+ $(UNZIP) -d $(TARGET_DIR)/usr/lib/firefox-$(FIREFOX_VERSION)/extensions/$${EXTENSION_ID} $(DL_DIR)/$${FILENAME};\
+ done
+
+endef
+endif
+
diff --git a/package/firefox/mozconfig b/package/firefox/mozconfig
new file mode 100644
index 0000000..83450aa
--- /dev/null
+++ b/package/firefox/mozconfig
@@ -0,0 +1,35 @@
+ac_add_options --disable-crashreporter
+ac_add_options --disable-dbus
+ac_add_options --disable-elf-hack
+ac_add_options --disable-glibtest
+ac_add_options --disable-installer
+ac_add_options --disable-jemalloc
+ac_add_options --disable-libnotify
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-static
+ac_add_options --disable-tests
+ac_add_options --disable-trace-malloc
+ac_add_options --disable-tree-freetype
+ac_add_options --disable-updater
+ac_add_options --disable-warnings-as-errors
+ac_add_options --enable-application=browser
+ac_add_options --enable-default-toolkit=cairo-gtk2
+#ac_add_options --enable-official-branding
+ac_add_options --with-branding=browser/branding/unofficial
+ac_add_options --enable-shared
+ac_add_options --enable-shared-js
+ac_add_options --enable-system-cairo
+ac_add_options --enable-system-ffi
+ac_add_options --enable-system-sqlite
+ac_add_options --prefix=/usr
+ac_add_options --without-libIDL
+ac_add_options --with-pthreads
+ac_add_options --with-system-jpeg
+#ac_add_options --with-system-nspr
+#ac_add_options --with-system-nss
+#ac_add_options --with-system-png
+ac_add_options --with-system-zlib
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir
+CROSS_COMPILE=1
+CC_FOR_BUILD=gcc
+HOST_CC=gcc
diff --git a/package/firefox/prefs.js b/package/firefox/prefs.js
new file mode 100755
index 0000000..7cbf675
--- /dev/null
+++ b/package/firefox/prefs.js
@@ -0,0 +1,100 @@
+# Mozilla User Preferences
+
+# Most of the settings below are documented in
+# http://kb.mozillazine.org/Firefox_:_FAQs_:_About:config_Entries
+#
+# Those entries that are not documented (tagged UNDOCUMENTED) are
+# the ones I found out when playing with various
+# Firefox Privacy settings and then checking afterwards
+# from the about:config URL what had changed.
+
+# If you have more information about these entries please update.
+
+########################
+# Performance settings #
+########################
+
+# Enable pipelining
+user_pref("network.http.pipelining",true);
+user_pref("network.http.pipelining.agressive",true);
+user_pref("network.http.pipelining.ssl",true);
+user_pref("network.http.proxy.pipelining",true);
+
+###############################
+# Privacy & Security settings #
+###############################
+
+# When to remove downloaded files entries from the Download Manager
+# 0: Upon successful download
+# 1: When the browser exits
+# 2 (default): Manually
+user_pref("browser.download.manager.retention",1);
+
+# Don't save information entered in web page forms and the Search Bar
+user_pref("browser.formfill.enable",false);
+
+# Automatically Start in Private Browsing Mode
+user_pref("browser.privatebrowsing.autostart",true);
+
+# Windows may not be moved or resized via JavaScript
+user_pref("dom.disable_window_move_resize",true);
+
+# Webpages will not be able to affect the context menu event,
+# thus allowing to access the context menu all the time
+user_pref("dom.event.contextmenu.enabled",false);
+
+# Is location aware browsing enabled? Default setting *was* 'true' (Jesus Christ!)
+user_pref("geo.enabled",false);
+
+# Allow cookies from originating server only
+user_pref("network.cookie.cookieBehavior",1);
+
+# Accept cookies for session only
+user_pref("network.cookie.lifetimePolicy",2);
+
+# Consult current preferences for cookie prefs
+user_pref("network.cookie.prefsMigrated",true);
+
+# Perform all DNS lookups on remote proxy server
+# NOTE: It has *still* (8th of June 2012) not been fixed!
+# ( see Bug 134105 https://bugzilla.mozilla.org/show_bug.cgi?id=134105 )
+user_pref("network.proxy.socks_remote_dns",true);
+
+# Only important if you are using Tor. Might be fixed by now
+# ( see https://trac.torproject.org/projects/tor/ticket/5741 )
+user_pref("network.websocket.enabled",false);
+
+# UNDOCUMENTED
+# Not documented by Mozilla but my best guess is that this disables browser history :-)
+user_pref("places.history.enabled",false);
+
+# UNDOCUMENTED
+# Not documented by Mozilla (what the heck are offline apps???)
+user_pref("privacy.clearOnShutdown.offlineApps",true);
+
+# UNDOCUMENTED
+# Not documented by Mozilla (but should be obvious :-) )
+user_pref("privacy.clearOnShutdown.passwords",true);
+
+# UNDOCUMENTED
+# Not documented by Mozilla (???)
+user_pref("privacy.clearOnShutdown.siteSettings",true);
+
+# UNDOCUMENTED
+# Not documented by Mozilla but this is clearly the
+# Do-not-track feature from Firefox privacy settings
+user_pref("privacy.donottrackheader.enabled",true);
+
+# Delete all cookies when using the Firefox Clear Private Data feature
+user_pref("privacy.item.cookies",true);
+
+# Perform the Firefox Clear Private Data operation when closing the browser
+user_pref("privacy.sanitize.sanitizeOnShutdown",true);
+
+
+
+
+
+
+
+
--
1.7.7.6
More information about the buildroot
mailing list