aboutsummaryrefslogtreecommitdiff
path: root/www/firefox
diff options
context:
space:
mode:
authorFlorian Smeets <flo@FreeBSD.org>2012-10-10 21:13:06 +0000
committerFlorian Smeets <flo@FreeBSD.org>2012-10-10 21:13:06 +0000
commit98ff1f74fb3f09d69165fc711a54df23a7127a23 (patch)
tree16010259bfe88bdd615bd9a206f3377ee212913d /www/firefox
parent383d692c9cac9d4848e5f6e8c42c90128fcb738c (diff)
downloadports-98ff1f74fb3f09d69165fc711a54df23a7127a23.tar.gz
ports-98ff1f74fb3f09d69165fc711a54df23a7127a23.zip
Notes
Diffstat (limited to 'www/firefox')
-rw-r--r--www/firefox/Makefile8
-rw-r--r--www/firefox/Makefile.options10
-rw-r--r--www/firefox/distinfo4
-rw-r--r--www/firefox/files/extra-bug78053110
-rw-r--r--www/firefox/files/patch-bug35118131
-rw-r--r--www/firefox/files/patch-bug54324111
-rw-r--r--www/firefox/files/patch-bug713802176
-rw-r--r--www/firefox/files/patch-bug72386054
-rw-r--r--www/firefox/files/patch-bug75289571
-rw-r--r--www/firefox/files/patch-bug75304654
-rw-r--r--www/firefox/files/patch-bug75945924
-rw-r--r--www/firefox/files/patch-bug76089954
-rw-r--r--www/firefox/files/patch-bug76103025
-rw-r--r--www/firefox/files/patch-bug76141922
-rw-r--r--www/firefox/files/patch-bug77467131
-rw-r--r--www/firefox/files/patch-bug7780564
-rw-r--r--www/firefox/files/patch-bug7780784
-rw-r--r--www/firefox/files/patch-bug78147411
-rw-r--r--www/firefox/files/patch-bug78477617
-rw-r--r--www/firefox/files/patch-bug785638168
-rw-r--r--www/firefox/files/patch-bug78810820
-rw-r--r--www/firefox/files/patch-bug788955309
-rw-r--r--www/firefox/files/patch-bug78943627
-rw-r--r--www/firefox/files/patch-bug78965611
-rw-r--r--www/firefox/files/patch-bug789693109
-rw-r--r--www/firefox/files/patch-bug791305107
-rw-r--r--www/firefox/files/patch-bug79136695
-rw-r--r--www/firefox/files/patch-config-baseconfig.mk16
-rw-r--r--www/firefox/files/patch-config_autoconf.mk.in21
-rw-r--r--www/firefox/files/patch-content-media-nsAudioStream.cpp14
-rw-r--r--www/firefox/files/patch-extensions-spellcheck-hunspell-src-mozHunspell.cpp15
-rw-r--r--www/firefox/files/pkg-deinstall.in28
-rw-r--r--www/firefox/files/pkg-install.in38
-rw-r--r--www/firefox/pkg-message4
34 files changed, 1028 insertions, 575 deletions
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index 7d46def9c4f9..9f061567eff5 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= firefox
-DISTVERSION= 15.0.1
+DISTVERSION= 16.0
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= ${MASTER_SITE_MOZILLA}
@@ -17,7 +17,7 @@ MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
BUILD_DEPENDS= nspr>=4.9:${PORTSDIR}/devel/nspr \
- nss>=3.13.2:${PORTSDIR}/security/nss \
+ nss>=3.13.6_1:${PORTSDIR}/security/nss \
sqlite3>=3.7.12.1:${PORTSDIR}/databases/sqlite3 \
${PYTHON_SITELIBDIR}/_sqlite3.so:${PORTSDIR}/databases/py-sqlite3 \
cairo>=1.10.2_1,1:${PORTSDIR}/graphics/cairo \
@@ -49,8 +49,12 @@ MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \
--enable-official-branding
OPTIONS_DEFINE= GSTREAMER PGO
+OPTIONS_DEFAULT=GIO
.include "${.CURDIR}/../../www/firefox/Makefile.options"
+
+OPTIONS_DEFAULT:=${OPTIONS_DEFAULT:S/OSS/ALSA/}
+
.include <bsd.port.pre.mk>
WRKSRC:= ${WRKDIR}/mozilla-release
diff --git a/www/firefox/Makefile.options b/www/firefox/Makefile.options
index 93b811fc1ffd..20937f22314d 100644
--- a/www/firefox/Makefile.options
+++ b/www/firefox/Makefile.options
@@ -1,6 +1,7 @@
# -*- makefile-bsdmake -*-
-OPTIONS_DEFINE+= DBUS DEBUG GNOME LIBPROXY LOGGING OPTIMIZED_CFLAGS
+OPTIONS_DEFINE+= DBUS DEBUG GCONF GIO GNOMEUI GNOMEVFS2 LIBPROXY \
+ LOGGING OPTIMIZED_CFLAGS
OPTIONS_DEFAULT+= DBUS GTK2 LOGGING OSS
OPTIONS_SINGLE+= AUDIO
@@ -9,12 +10,9 @@ OPTIONS_SINGLE_AUDIO= ALSA OSS PULSEAUDIO
OPTIONS_SINGLE+= TOOLKIT
OPTIONS_SINGLE_TOOLKIT= GTK2 QT4
-OPTIONS_MULTI+= GNOME
-OPTIONS_MULTI_GNOME= GCONF GIO GNOMEUI GNOMEVFS2
-
+ENIGMAIL_DESC?= Enigmail extension
GIO_DESC?= GIO for file I/O # move to bsd.options.desc.mk
GNOMEUI_DESC?= libgnomeui support module
+LIBPROXY_DESC?= Proxy support via libproxy
LIGHTNING_DESC?= Calendar extension
LOGGING_DESC?= Additional log messages
-PGO_DESC?= Profile-Guided Optimization # move to bsd.options.desc.mk
-LIBPROXY_DESC?= Proxy support via libproxy
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index 80a71d06a9d3..a852ad685cfc 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,2 +1,2 @@
-SHA256 (firefox-15.0.1.source.tar.bz2) = d5b245e3f16933edf49bc9754d38013f0f82c855f164f429b92697e14ae0c3bf
-SIZE (firefox-15.0.1.source.tar.bz2) = 83710112
+SHA256 (firefox-16.0.source.tar.bz2) = 60d4e73a5ff2f796d8c9f3d0650a15afe6c140e017d0678ccf16c968e2c5ff55
+SIZE (firefox-16.0.source.tar.bz2) = 89461772
diff --git a/www/firefox/files/extra-bug780531 b/www/firefox/files/extra-bug780531
index 54843c752c81..c237bd26e509 100644
--- a/www/firefox/files/extra-bug780531
+++ b/www/firefox/files/extra-bug780531
@@ -1,13 +1,12 @@
--- configure.in~
+++ configure.in
-@@ -5585,10 +5585,13 @@ if test -n "$MOZ_OGG"; then
+@@ -5282,10 +5282,13 @@ if test -n "$MOZ_OGG"; then
MOZ_SYDNEYAUDIO=1
MOZ_CUBEB=1
MOZ_MEDIA=1
- case "$target_cpu" in
-- arm*)
+ case "$target" in
-+ arm-*-linux*)
+ arm*)
MOZ_TREMOR=1
;;
+ *-freebsd*)
@@ -16,14 +15,13 @@
*)
MOZ_VORBIS=1
;;
-@@ -5715,10 +5720,13 @@ if test -n "$MOZ_WEBM" -a -z "$MOZ_NATIV
+@@ -5417,10 +5420,13 @@ if test "$MOZ_WEBM"; then
MOZ_SYDNEYAUDIO=1
MOZ_CUBEB=1
MOZ_MEDIA=1
- case "$target_cpu" in
-- arm*)
+ case "$target" in
-+ arm-*-linux*)
+ arm*)
MOZ_TREMOR=1
;;
+ *-freebsd*)
diff --git a/www/firefox/files/patch-bug351181 b/www/firefox/files/patch-bug351181
deleted file mode 100644
index f47838638257..000000000000
--- a/www/firefox/files/patch-bug351181
+++ /dev/null
@@ -1,31 +0,0 @@
---- js/src/jsnum.cpp.orig 2010-01-05 22:35:17.000000000 -0500
-+++ js/src/jsnum.cpp 2010-01-11 05:10:19.000000000 -0500
-@@ -49,6 +49,9 @@
- // Avoid warnings about ASSERT being defined by the assembler as well.
- #undef ASSERT
-
-+#if defined(__FreeBSD__)
-+#include <sys/param.h>
-+#endif
- #ifdef XP_OS2
- #define _PC_53 PC_53
- #define _MCW_EM MCW_EM
-@@ -691,8 +694,18 @@
-
- #else
-
-+#if defined(__FreeBSD__)
-+#if __BSD_VISIBLE == 0
-+#error __BSD_VISIBLE is zero, so fedisableexcept is not defined
-+#endif
-+#include <fenv.h>
-+#define FIX_FPU() ((void)fedisableexcept(FE_ALL_EXCEPT))
-+#else
-+
- #define FIX_FPU() ((void)0)
-
-+#endif /* defined(__FreeBSD__) && __FreeBSD_version >= 503000 */
-+
- #endif
-
- JSBool
diff --git a/www/firefox/files/patch-bug543241 b/www/firefox/files/patch-bug543241
index af9e0ad7ba15..362e47ffe2d6 100644
--- a/www/firefox/files/patch-bug543241
+++ b/www/firefox/files/patch-bug543241
@@ -1,5 +1,16 @@
--- ./xpcom/threads/nsThreadManager.cpp.orig 2011-08-25 02:37:45.000000000 +0200
+++ ./xpcom/threads/nsThreadManager.cpp 2011-08-28 17:14:14.000000000 +0200
+@@ -12,6 +12,10 @@
+ #include "nsAutoPtr.h"
+ #include "nsCycleCollectorUtils.h"
+
++#if defined(__FreeBSD__)
++#include <osreldate.h>
++#endif
++
+ using namespace mozilla;
+
+ #ifdef XP_WIN
@@ -57,6 +57,11 @@
nsresult
nsThreadManager::Init()
diff --git a/www/firefox/files/patch-bug713802 b/www/firefox/files/patch-bug713802
new file mode 100644
index 000000000000..956ed1cc8e97
--- /dev/null
+++ b/www/firefox/files/patch-bug713802
@@ -0,0 +1,176 @@
+commit 20586fa
+Author: Karl Tomlinson <karlt+@karlt.net>
+Date: Thu Sep 27 18:35:06 2012 +1200
+
+ b=713802 default enable GIO support and disable GnomeVFS r=glandium
+
+ --HG--
+ extra : transplant_source : wk%ADr%CA%8EN%AE%C93p/p%0A%26%0E%1D0%F20
+---
+ browser/confvars.sh | 2 +-
+ configure.in | 20 ++++++++++----------
+ xulrunner/confvars.sh | 2 +-
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git browser/confvars.sh browser/confvars.sh
+index 40ab494..eae5645 100755
+--- browser/confvars.sh
++++ browser/confvars.sh
+@@ -21,7 +21,7 @@ MOZ_SERVICES_AITC=1
+ MOZ_SERVICES_NOTIFICATIONS=1
+ MOZ_SERVICES_SYNC=1
+ MOZ_APP_VERSION=$FIREFOX_VERSION
+-MOZ_EXTENSIONS_DEFAULT=" gnomevfs"
++MOZ_EXTENSIONS_DEFAULT=" gio"
+ # MOZ_APP_DISPLAYNAME will be set by branding/configure.sh
+ # Changing MOZ_*BRANDING_DIRECTORY requires a clobber to ensure correct results,
+ # because branding dependencies are broken.
+--- browser/installer/package-manifest.in~
++++ browser/installer/package-manifest.in
+@@ -679,6 +679,10 @@ bin/libfreebl_32int64_3.so
+
+ ; [Extensions]
+ ;
++#ifdef MOZ_ENABLE_GIO
++bin/components/@DLL_PREFIX@nkgio@DLL_SUFFIX@
++#endif
++
+ #ifdef MOZ_ENABLE_GNOMEVFS
+ bin/components/@DLL_PREFIX@nkgnomevfs@DLL_SUFFIX@
+ #endif
+diff --git configure.in configure.in
+index 87a9391..2118651 100644
+--- configure.in
++++ configure.in
+@@ -4846,21 +4846,21 @@ dnl ========================================================
+
+ if test "$MOZ_X11"
+ then
+- dnl build the gnomevfs extension by default only when the
++ dnl build the GIO extension by default only when the
+ dnl GTK2 toolkit is in use.
+ if test "$MOZ_ENABLE_GTK2"
+ then
+- MOZ_ENABLE_GNOMEVFS=1
++ MOZ_ENABLE_GIO=1
+ MOZ_ENABLE_GCONF=1
+ fi
+
+ dnl ========================================================
+ dnl = GnomeVFS support module
+ dnl ========================================================
+- MOZ_ARG_DISABLE_BOOL(gnomevfs,
+- [ --disable-gnomevfs Disable GnomeVFS support ],
+- MOZ_ENABLE_GNOMEVFS=,
+- MOZ_ENABLE_GNOMEVFS=force)
++ MOZ_ARG_ENABLE_BOOL(gnomevfs,
++ [ --enable-gnomevfs Enable GnomeVFS support (default: disabled)],
++ MOZ_ENABLE_GNOMEVFS=force,
++ MOZ_ENABLE_GNOMEVFS=)
+
+ if test "$MOZ_ENABLE_GNOMEVFS"
+ then
+@@ -4884,10 +4884,10 @@ then
+ dnl ========================================================
+ dnl = GIO support module
+ dnl ========================================================
+- MOZ_ARG_ENABLE_BOOL(gio,
+- [ --enable-gio Enable GIO support (default: disabled)],
+- MOZ_ENABLE_GIO=force,
+- MOZ_ENABLE_GIO=)
++ MOZ_ARG_DISABLE_BOOL(gio,
++ [ --disable-gio Disable GIO support],
++ MOZ_ENABLE_GIO=,
++ MOZ_ENABLE_GIO=force)
+
+ if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK2"
+ then
+diff --git xulrunner/confvars.sh xulrunner/confvars.sh
+index 2fa6ead..5fe2c3d 100755
+--- xulrunner/confvars.sh
++++ xulrunner/confvars.sh
+@@ -10,5 +10,5 @@ MOZ_XULRUNNER=1
+ MOZ_CHROME_FILE_FORMAT=omni
+ MOZ_APP_VERSION=$MOZILLA_VERSION
+ MOZ_PLACES=1
+-MOZ_EXTENSIONS_DEFAULT=" gnomevfs"
++MOZ_EXTENSIONS_DEFAULT=" gio"
+ MOZ_URL_CLASSIFIER=1
+
+commit d884d75
+Author: Karl Tomlinson <karlt+@karlt.net>
+Date: Thu Sep 27 18:34:44 2012 +1200
+
+ b=713802 disable gnomevfs extension without --enable-gnomevfs r=glandium
+
+ --HG--
+ extra : transplant_source : i%07%81%E9%90_%C1%05b%194%9B%1E%93%FC%03%279%F9%8A
+---
+ configure.in | 12 +++---------
+ 1 file changed, 3 insertions(+), 9 deletions(-)
+
+diff --git configure.in configure.in
+index f2b4041..87a9391 100644
+--- configure.in
++++ configure.in
+@@ -4875,12 +4875,6 @@ then
+ fi
+ MOZ_ENABLE_GNOMEVFS=
+ ])
+- else
+- if test `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
+- PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
+- MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
+- ])
+- fi
+ fi
+
+ AC_SUBST(MOZ_ENABLE_GNOMEVFS)
+@@ -5967,10 +5961,10 @@ MOZ_ARG_ENABLE_STRING(extensions,
+ done],
+ MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
+
+-if test -z "$MOZ_ENABLE_GNOMEVFS" -a -z "$MOZ_GNOMEVFS_LIBS" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
++if test -z "$MOZ_ENABLE_GNOMEVFS" -a `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
+ # Suppress warning on non-X11 platforms
+ if test -n "$MOZ_X11"; then
+- AC_MSG_WARN([Cannot build gnomevfs without required libraries. Removing gnomevfs from MOZ_EXTENSIONS.])
++ AC_MSG_WARN([Removing gnomevfs from MOZ_EXTENSIONS due to no --enable-gnomevfs.])
+ fi
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
+ fi
+@@ -5983,7 +5977,7 @@ fi
+ if test -z "$MOZ_ENABLE_GIO" -a `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
+ # Suppress warning on non-X11 platforms
+ if test -n "$MOZ_X11"; then
+- AC_MSG_WARN([Cannot build gio without required libraries. Removing gio from MOZ_EXTENSIONS.])
++ AC_MSG_WARN([Removing gio from MOZ_EXTENSIONS due to --disable-gio.])
+ fi
+ MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
+ fi
+
+commit ddedeea
+Author: Karl Tomlinson <karlt+@karlt.net>
+Date: Thu Sep 27 13:47:19 2012 +1200
+
+ b=713802 link gio extension against libxul for tracemalloc stack functions r=bsmedberg
+
+ --HG--
+ extra : transplant_source : %C8%A3o%BE%A0z%F7%C8%8A%E6%0E%D4s%7D%90%9C%D9%0F%06%7E
+---
+ extensions/gio/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git extensions/gio/Makefile.in extensions/gio/Makefile.in
+index 46412c4..ccf2846 100644
+--- extensions/gio/Makefile.in
++++ extensions/gio/Makefile.in
+@@ -23,7 +23,7 @@ LOCAL_INCLUDES = $(MOZ_GIO_CFLAGS)
+
+ EXTRA_DSO_LDOPTS = \
+ $(XPCOM_GLUE_LDOPTS) \
+- $(NSPR_LIBS) \
++ $(MOZ_COMPONENT_LIBS) \
+ $(MOZ_GIO_LIBS) \
+ $(NULL)
+
diff --git a/www/firefox/files/patch-bug723860 b/www/firefox/files/patch-bug723860
deleted file mode 100644
index ee7b355912fe..000000000000
--- a/www/firefox/files/patch-bug723860
+++ /dev/null
@@ -1,54 +0,0 @@
-commit 4e07587
-Author: Matthew Gregan <kinetik@flim.org>
-Date: Wed Jun 6 17:58:07 2012 +1200
-
- Bug 723860 - Early bail from reader's GetBuffered() if not yet initialized. r=doublec
----
- content/media/gstreamer/nsGStreamerReader.cpp | 4 ++++
- content/media/ogg/nsOggReader.cpp | 3 +--
- content/media/wave/nsWaveReader.cpp | 3 +++
- 3 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git content/media/gstreamer/nsGStreamerReader.cpp content/media/gstreamer/nsGStreamerReader.cpp
-index 164fb2e..06a09b5 100644
---- content/media/gstreamer/nsGStreamerReader.cpp
-+++ content/media/gstreamer/nsGStreamerReader.cpp
-@@ -505,6 +505,10 @@ nsresult nsGStreamerReader::Seek(PRInt64 aTarget,
- nsresult nsGStreamerReader::GetBuffered(nsTimeRanges* aBuffered,
- PRInt64 aStartTime)
- {
-+ if (!mInfo.mHasVideo && !mInfo.mHasAudio) {
-+ return NS_OK;
-+ }
-+
- GstFormat format = GST_FORMAT_TIME;
- MediaResource* resource = mDecoder->GetResource();
- gint64 resourceLength = resource->GetLength();
-diff --git content/media/ogg/nsOggReader.cpp content/media/ogg/nsOggReader.cpp
-index c6ff008..8d40e2c 100644
---- content/media/ogg/nsOggReader.cpp
-+++ content/media/ogg/nsOggReader.cpp
-@@ -1532,8 +1532,7 @@ nsresult nsOggReader::GetBuffered(nsTimeRanges* aBuffered, PRInt64 aStartTime)
- {
- // HasAudio and HasVideo are not used here as they take a lock and cause
- // a deadlock. Accessing mInfo doesn't require a lock - it doesn't change
-- // after metadata is read and GetBuffered isn't called before metadata is
-- // read.
-+ // after metadata is read.
- if (!mInfo.mHasVideo && !mInfo.mHasAudio) {
- // No need to search through the file if there are no audio or video tracks
- return NS_OK;
-diff --git content/media/wave/nsWaveReader.cpp content/media/wave/nsWaveReader.cpp
-index 7242eb5..60fc1e1 100644
---- content/media/wave/nsWaveReader.cpp
-+++ content/media/wave/nsWaveReader.cpp
-@@ -239,6 +239,9 @@ static double RoundToUsecs(double aSeconds) {
-
- nsresult nsWaveReader::GetBuffered(nsTimeRanges* aBuffered, PRInt64 aStartTime)
- {
-+ if (!mInfo.mHasAudio) {
-+ return NS_OK;
-+ }
- PRInt64 startOffset = mDecoder->GetResource()->GetNextCachedData(mWavePCMOffset);
- while (startOffset >= 0) {
- PRInt64 endOffset = mDecoder->GetResource()->GetCachedDataEnd(startOffset);
diff --git a/www/firefox/files/patch-bug752895 b/www/firefox/files/patch-bug752895
deleted file mode 100644
index 0942b8b247b8..000000000000
--- a/www/firefox/files/patch-bug752895
+++ /dev/null
@@ -1,71 +0,0 @@
-commit de14ddd
-Author: Andrew Benton <b3nton@gmail.com>
-Date: Tue Jun 12 09:10:09 2012 +0200
-
- Bug 752895 - Don't try to install nspr, nss and sqlite when using system libraries. r=glandium
----
- browser/installer/Makefile.in | 8 ++++++++
- browser/installer/package-manifest.in | 6 ++++++
- 2 files changed, 14 insertions(+)
-
-diff --git browser/installer/Makefile.in browser/installer/Makefile.in
-index 975b1f4..c791872 100644
---- browser/installer/Makefile.in
-+++ browser/installer/Makefile.in
-@@ -44,6 +44,14 @@ ifeq (gtk2, $(MOZ_WIDGET_TOOLKIT))
- DEFINES += -DMOZ_GTK2=1
- endif
-
-+ifdef MOZ_NATIVE_NSPR
-+DEFINES += -DMOZ_NATIVE_NSPR=1
-+endif
-+
-+ifdef MOZ_NATIVE_NSS
-+DEFINES += -DMOZ_NATIVE_NSS=1
-+endif
-+
- ifdef NSS_DISABLE_DBM
- DEFINES += -DNSS_DISABLE_DBM=1
- endif
-diff --git browser/installer/package-manifest.in browser/installer/package-manifest.in
-index 2969643..b8fddf0 100644
---- browser/installer/package-manifest.in
-+++ browser/installer/package-manifest.in
-@@ -58,9 +58,11 @@
- #ifndef MOZ_STATIC_JS
- @BINPATH@/@DLL_PREFIX@mozjs@DLL_SUFFIX@
- #endif
-+#ifndef MOZ_NATIVE_NSPR
- @BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
- @BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
- @BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
-+#endif
- @BINPATH@/@DLL_PREFIX@xpcom@DLL_SUFFIX@
- #ifdef XP_MACOSX
- @BINPATH@/XUL
-@@ -109,7 +111,9 @@
- #endif
- @BINPATH@/platform.ini
- #ifndef XP_OS2
-+#ifndef MOZ_NATIVE_SQLITE
- @BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@
-+#endif
- #else
- @BINPATH@/mozsqlt3@DLL_SUFFIX@
- #endif
-@@ -583,6 +587,7 @@
- ; NSS libraries are signed in the staging directory,
- ; meaning their .chk files are created there directly.
- ;
-+#ifndef MOZ_NATIVE_NSS
- @BINPATH@/@DLL_PREFIX@freebl3@DLL_SUFFIX@
- @BINPATH@/@DLL_PREFIX@nss3@DLL_SUFFIX@
- @BINPATH@/@DLL_PREFIX@nssckbi@DLL_SUFFIX@
-@@ -593,6 +598,7 @@
- @BINPATH@/@DLL_PREFIX@smime3@DLL_SUFFIX@
- @BINPATH@/@DLL_PREFIX@softokn3@DLL_SUFFIX@
- @BINPATH@/@DLL_PREFIX@ssl3@DLL_SUFFIX@
-+#endif
- @BINPATH@/chrome/pippki@JAREXT@
- @BINPATH@/chrome/pippki.manifest
- @BINPATH@/components/pipboot.xpt
diff --git a/www/firefox/files/patch-bug753046 b/www/firefox/files/patch-bug753046
index f520e1118f6d..601e0c13e948 100644
--- a/www/firefox/files/patch-bug753046
+++ b/www/firefox/files/patch-bug753046
@@ -456,7 +456,7 @@ $NetBSD: patch-ipc_chromium_src_base_platform__thread.h,v 1.1 2012/03/06 12:34:0
--- ipc/chromium/src/base/platform_thread.h.orig 2011-12-20 23:28:19.000000000 +0000
+++ ipc/chromium/src/base/platform_thread.h
-@@ -22,9 +22,11 @@ typedef void* PlatformThreadHandle; // HANDLE
+@@ -22,9 +22,12 @@ typedef void* PlatformThreadHandle; // HANDLE
#elif defined(OS_POSIX)
#include <pthread.h>
typedef pthread_t PlatformThreadHandle;
@@ -465,6 +465,7 @@ $NetBSD: patch-ipc_chromium_src_base_platform__thread.h,v 1.1 2012/03/06 12:34:0
#include <unistd.h>
typedef pid_t PlatformThreadId;
+#elif defined(OS_BSD)
++#include <sys/types.h>
+typedef lwpid_t PlatformThreadId;
#elif defined(OS_MACOSX)
#include <mach/mach.h>
@@ -978,57 +979,6 @@ $NetBSD: patch-ipc_chromium_src_base_sys__info__posix.cc,v 1.2 2011/11/27 13:09:
#else
long pages = sysconf(_SC_PHYS_PAGES);
long page_size = sysconf(_SC_PAGE_SIZE);
-$NetBSD: patch-ipc_chromium_src_base_third__party_nspr_prcpucfg.h,v 1.2 2012/03/06 12:34:09 ryoon Exp $
-
---- ipc/chromium/src/base/third_party/nspr/prcpucfg.h.orig 2011-12-20 23:28:19.000000000 +0000
-+++ ipc/chromium/src/base/third_party/nspr/prcpucfg.h
-@@ -34,7 +34,7 @@
- #include "base/third_party/nspr/prcpucfg_win.h"
- #elif defined(__APPLE__)
- #include "base/third_party/nspr/prcpucfg_mac.h"
--#elif defined(__linux__) || defined(ANDROID)
-+#elif defined(__linux__) || defined(ANDROID) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
- #include "base/third_party/nspr/prcpucfg_linux.h"
- #elif defined(__OpenBSD__)
- #include "base/third_party/nspr/prcpucfg_openbsd.h"
-$NetBSD: patch-ipc_chromium_src_base_third__party_nspr_prtime.cc,v 1.1 2012/03/06 12:34:09 ryoon Exp $
-
---- ipc/chromium/src/base/third_party/nspr/prtime.cc.orig 2011-12-20 23:28:19.000000000 +0000
-+++ ipc/chromium/src/base/third_party/nspr/prtime.cc
-@@ -212,7 +212,7 @@ PR_ImplodeTime(const PRExplodedTime *exp
- LL_ADD(retVal, retVal, temp);
-
- return retVal;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_DRAGONFLY)
- struct tm exp_tm = {0};
- exp_tm.tm_sec = exploded->tm_sec;
- exp_tm.tm_min = exploded->tm_min;
-@@ -245,6 +245,24 @@ PR_ImplodeTime(const PRExplodedTime *exp
- result *= kSecondsToMicroseconds;
- result += exploded->tm_usec;
- return result;
-+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
-+ struct tm exp_tm = {0};
-+ exp_tm.tm_sec = exploded->tm_sec;
-+ exp_tm.tm_min = exploded->tm_min;
-+ exp_tm.tm_hour = exploded->tm_hour;
-+ exp_tm.tm_mday = exploded->tm_mday;
-+ exp_tm.tm_mon = exploded->tm_month;
-+ exp_tm.tm_year = exploded->tm_year - 1900;
-+
-+ // time_t is 64bit
-+ time_t absolute_time = timegm(&exp_tm);
-+
-+ PRTime result = static_cast<PRTime>(absolute_time);
-+ result -= exploded->tm_params.tp_gmt_offset +
-+ exploded->tm_params.tp_dst_offset;
-+ result *= kSecondsToMicroseconds;
-+ result += exploded->tm_usec;
-+ return result;
- #else
- #error No PR_ImplodeTime implemented on your platform.
- #endif
diff --git ipc/chromium/src/base/time_posix.cc ipc/chromium/src/base/time_posix.cc
index abf2a56..48791f6 100644
--- ipc/chromium/src/base/time_posix.cc
diff --git a/www/firefox/files/patch-bug759459 b/www/firefox/files/patch-bug759459
deleted file mode 100644
index efd253baff13..000000000000
--- a/www/firefox/files/patch-bug759459
+++ /dev/null
@@ -1,24 +0,0 @@
-commit 4d0c5b9
-Author: Marco Perez <bugmail@millibyte.net>
-Date: Sat Jun 9 12:24:56 2012 -0400
-
- Bug 759459 - Build broken on FreeBSD since patch for bug 745034 landed. r=terrence
----
- js/src/gc/Memory.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git js/src/gc/Memory.cpp js/src/gc/Memory.cpp
-index 815e90b..10c1a91 100644
---- js/src/gc/Memory.cpp
-+++ js/src/gc/Memory.cpp
-@@ -292,9 +292,9 @@ GetPageFaultCount()
- #elif defined(XP_UNIX) || defined(XP_MACOSX) || defined(DARWIN)
-
- #include <sys/mman.h>
--#include <unistd.h>
- #include <sys/time.h>
- #include <sys/resource.h>
-+#include <unistd.h>
-
- void
- InitMemorySubsystem()
diff --git a/www/firefox/files/patch-bug760899 b/www/firefox/files/patch-bug760899
deleted file mode 100644
index 460c1393bdbc..000000000000
--- a/www/firefox/files/patch-bug760899
+++ /dev/null
@@ -1,54 +0,0 @@
-commit 667daed
-Author: Stephen Moehle <stephen.moehle@gmail.com>
-Date: Tue Jun 5 11:32:36 2012 +1200
-
- Bug 760899 - Fix debug builds with gstreamer enabled - r=kinetik
-
- --HG--
- extra : rebase_source : 22598bc470d35d94991ea9f1b14df11ba19a461a
----
- content/media/gstreamer/nsGStreamerReader.cpp | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git content/media/gstreamer/nsGStreamerReader.cpp content/media/gstreamer/nsGStreamerReader.cpp
-index 6a50e09..164fb2e 100644
---- content/media/gstreamer/nsGStreamerReader.cpp
-+++ content/media/gstreamer/nsGStreamerReader.cpp
-@@ -278,7 +278,7 @@ nsresult nsGStreamerReader::ReadMetadata(nsVideoInfo* aInfo)
- if (gst_element_query_duration(GST_ELEMENT(mPlayBin),
- &format, &duration) && format == GST_FORMAT_TIME) {
- ReentrantMonitorAutoEnter mon(mDecoder->GetReentrantMonitor());
-- LOG(PR_LOG_DEBUG, ("returning duration %"GST_TIME_FORMAT,
-+ LOG(PR_LOG_DEBUG, ("returning duration %" GST_TIME_FORMAT,
- GST_TIME_ARGS (duration)));
- duration = GST_TIME_AS_USECONDS (duration);
- mDecoder->GetStateMachine()->SetDuration(duration);
-@@ -422,8 +422,8 @@ bool nsGStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip,
- nextTimestamp += gst_util_uint64_scale(GST_USECOND, fpsNum, fpsDen);
-
- if (timestamp < aTimeThreshold) {
-- LOG(PR_LOG_DEBUG, ("skipping frame %"GST_TIME_FORMAT
-- " threshold %"GST_TIME_FORMAT,
-+ LOG(PR_LOG_DEBUG, ("skipping frame %" GST_TIME_FORMAT
-+ " threshold %" GST_TIME_FORMAT,
- GST_TIME_ARGS(timestamp), GST_TIME_ARGS(aTimeThreshold)));
- gst_buffer_unref(buffer);
- buffer = NULL;
-@@ -489,7 +489,7 @@ nsresult nsGStreamerReader::Seek(PRInt64 aTarget,
- NS_ASSERTION(mDecoder->OnDecodeThread(), "Should be on decode thread.");
-
- gint64 seekPos = aTarget * GST_USECOND;
-- LOG(PR_LOG_DEBUG, ("%p About to seek to %"GST_TIME_FORMAT,
-+ LOG(PR_LOG_DEBUG, ("%p About to seek to %" GST_TIME_FORMAT,
- mDecoder, GST_TIME_ARGS(seekPos)));
-
- if (!gst_element_seek_simple(mPlayBin, GST_FORMAT_TIME,
-@@ -592,7 +592,7 @@ PRInt64 nsGStreamerReader::QueryDuration()
- if (gst_element_query_duration(GST_ELEMENT(mPlayBin),
- &format, &duration)) {
- if (format == GST_FORMAT_TIME) {
-- LOG(PR_LOG_DEBUG, ("pipeline duration %"GST_TIME_FORMAT,
-+ LOG(PR_LOG_DEBUG, ("pipeline duration %" GST_TIME_FORMAT,
- GST_TIME_ARGS (duration)));
- duration = GST_TIME_AS_USECONDS (duration);
- }
diff --git a/www/firefox/files/patch-bug761030 b/www/firefox/files/patch-bug761030
deleted file mode 100644
index 5a0829e6c2f0..000000000000
--- a/www/firefox/files/patch-bug761030
+++ /dev/null
@@ -1,25 +0,0 @@
-commit 8bc9e15
-Author: Stephen Moehle <stephen.moehle@gmail.com>
-Date: Tue Jun 5 11:31:13 2012 +1200
-
- Bug 761030 - Fix crash with HTML 5 video with GStreamer enabled - r=kinetik
-
- --HG--
- extra : rebase_source : 5e884550f9870bd2fda247d50bebd472e8368588
----
- content/media/gstreamer/nsGStreamerReader.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git content/media/gstreamer/nsGStreamerReader.cpp content/media/gstreamer/nsGStreamerReader.cpp
-index 17374a3..6a50e09 100644
---- content/media/gstreamer/nsGStreamerReader.cpp
-+++ content/media/gstreamer/nsGStreamerReader.cpp
-@@ -452,6 +452,8 @@ bool nsGStreamerReader::DecodeVideoFrame(bool &aKeyFrameSkip,
- i, height);
- b.mPlanes[i].mWidth = gst_video_format_get_component_width(format,
- i, width);
-+ b.mPlanes[i].mOffset = 0;
-+ b.mPlanes[i].mSkip = 0;
- }
-
- bool isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer,
diff --git a/www/firefox/files/patch-bug761419 b/www/firefox/files/patch-bug761419
deleted file mode 100644
index 222e3053d489..000000000000
--- a/www/firefox/files/patch-bug761419
+++ /dev/null
@@ -1,22 +0,0 @@
-commit f0a73aa
-Author: Paul Adenot <paul@paul.cx>
-Date: Thu Jun 21 20:44:39 2012 -0400
-
- Bug 761419 - Build failure in content/media/gstreamer/nsGStreamerReader.cpp when using clang r=kinetik
----
- content/media/gstreamer/nsGStreamerReader.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git content/media/gstreamer/nsGStreamerReader.cpp content/media/gstreamer/nsGStreamerReader.cpp
-index 06a09b5..c48f92e 100644
---- content/media/gstreamer/nsGStreamerReader.cpp
-+++ content/media/gstreamer/nsGStreamerReader.cpp
-@@ -191,7 +191,7 @@ nsresult nsGStreamerReader::ReadMetadata(nsVideoInfo* aInfo)
- * stream but that are otherwise decodeable.
- */
- guint flags[3] = {GST_PLAY_FLAG_VIDEO|GST_PLAY_FLAG_AUDIO,
-- ~GST_PLAY_FLAG_AUDIO, ~GST_PLAY_FLAG_VIDEO};
-+ static_cast<guint>(~GST_PLAY_FLAG_AUDIO), static_cast<guint>(~GST_PLAY_FLAG_VIDEO)};
- guint default_flags, current_flags;
- g_object_get(mPlayBin, "flags", &default_flags, NULL);
-
diff --git a/www/firefox/files/patch-bug774671 b/www/firefox/files/patch-bug774671
index 9c2cd0f7c0f1..97ad3415e4d0 100644
--- a/www/firefox/files/patch-bug774671
+++ b/www/firefox/files/patch-bug774671
@@ -1,6 +1,31 @@
---- js/src/jsprvtd.h.orig 2012-08-25 00:55:40.000000000 +0200
-+++ js/src/jsprvtd.h 2012-09-06 15:20:48.000000000 +0200
-@@ -149,9 +149,9 @@
+commit 7e9eda2
+Author: Rafael Ávila de Espíndola <respindola@mozilla.com>
+Date: Tue Jul 17 12:54:41 2012 -0400
+
+ Bug 774671 - Fix mismatched declarations. r=luke.
+---
+ js/src/jsproxy.h | 2 +-
+ js/src/jsprvtd.h | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git js/src/jsproxy.h js/src/jsproxy.h
+index ec26e3a..aa0e782 100644
+--- js/src/jsproxy.h
++++ js/src/jsproxy.h
+@@ -13,7 +13,7 @@
+
+ namespace js {
+
+-class Wrapper;
++class JS_FRIEND_API(Wrapper);
+
+ /*
+ * A proxy is a JSObject that implements generic behavior by providing custom
+diff --git js/src/jsprvtd.h js/src/jsprvtd.h
+index 19b5aef..93e1216 100644
+--- js/src/jsprvtd.h
++++ js/src/jsprvtd.h
+@@ -146,9 +146,9 @@ struct TreeContext;
class UpvarCookie;
class Proxy;
diff --git a/www/firefox/files/patch-bug778056 b/www/firefox/files/patch-bug778056
index e03a02bfc3f1..9515b967764e 100644
--- a/www/firefox/files/patch-bug778056
+++ b/www/firefox/files/patch-bug778056
@@ -4,9 +4,9 @@
#if defined(XP_UNIX)
# include <unistd.h> // for valloc on *BSD
#endif //if defined(XP_UNIX)
-+#ifdef __FreeBSD__
++#if defined(__FreeBSD__)
+# include <malloc_np.h> // for malloc_usable_size
-+#endif
++#endif // if defined(__FreeBSD__)
#if defined(XP_WIN) || (defined(XP_OS2) && defined(__declspec))
# define MOZALLOC_EXPORT __declspec(dllexport)
diff --git a/www/firefox/files/patch-bug778078 b/www/firefox/files/patch-bug778078
index 232b32509a33..f7bedeb8053c 100644
--- a/www/firefox/files/patch-bug778078
+++ b/www/firefox/files/patch-bug778078
@@ -1,9 +1,9 @@
--- toolkit/xre/nsAppRunner.cpp~
+++ toolkit/xre/nsAppRunner.cpp
-@@ -3819,7 +3819,7 @@ XREMain::XRE_main(int argc, char* argv[]
+@@ -3833,7 +3833,7 @@ XREMain::XRE_main(int argc, char* argv[]
ScopedLogging log;
- #if defined(MOZ_WIDGET_GTK2)
+ #if defined(MOZ_WIDGET_GTK)
-#ifdef MOZ_MEMORY
+#if defined(MOZ_MEMORY) || defined(__FreeBSD__) || defined(__NetBSD__)
// Disable the slice allocator, since jemalloc already uses similar layout
diff --git a/www/firefox/files/patch-bug781474 b/www/firefox/files/patch-bug781474
deleted file mode 100644
index 8239b2e8b8fd..000000000000
--- a/www/firefox/files/patch-bug781474
+++ /dev/null
@@ -1,11 +0,0 @@
---- content/base/public/nsContentUtils.h.orig 2011-07-07 10:44:49.000000000 +0200
-+++ content/base/public/nsContentUtils.h 2011-07-07 10:46:12.000000000 +0200
-@@ -54,7 +54,7 @@
- //A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
- #ifdef __FreeBSD__
- #include <ieeefp.h>
--#ifdef __alpha__
-+#if !defined(__amd64__) && !defined(__i386__)
- static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;
- #else
- static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML;
diff --git a/www/firefox/files/patch-bug784776 b/www/firefox/files/patch-bug784776
index 417043931ee2..3fe665e7140c 100644
--- a/www/firefox/files/patch-bug784776
+++ b/www/firefox/files/patch-bug784776
@@ -1,20 +1,3 @@
---- content/media/MediaEngineDefault.cpp~
-+++ content/media/MediaEngineDefault.cpp
-@@ -232,12 +232,12 @@ nsresult
- MediaEngineDefaultAudioSource::Start(SourceMediaStream* aStream, TrackID aID)
- {
- if (mState != kAllocated) {
-- return NULL;
-+ return 0;
- }
-
- mTimer = do_CreateInstance(NS_TIMER_CONTRACTID);
- if (!mTimer) {
-- return NULL;
-+ return 0;
- }
-
- mSource = aStream;
--- gfx/layers/opengl/ImageLayerOGL.cpp~
+++ gfx/layers/opengl/ImageLayerOGL.cpp
@@ -936,7 +936,7 @@ ShadowImageLayerOGL::CleanupResources()
diff --git a/www/firefox/files/patch-bug785638 b/www/firefox/files/patch-bug785638
deleted file mode 100644
index 0cf60e4eb1fe..000000000000
--- a/www/firefox/files/patch-bug785638
+++ /dev/null
@@ -1,168 +0,0 @@
-diff --git configure.in configure.in
-index cef992b..3bd39ca 100644
---- configure.in
-+++ configure.in
-@@ -5353,22 +5353,6 @@ if test -n "$MOZ_VP8" -a -z "$MOZ_NATIVE_LIBVPX"; then
-
- dnl See if we have assembly on this platform.
- case "$OS_ARCH:$CPU_ARCH" in
-- Linux:x86)
-- VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
-- VPX_X86_ASM=1
-- ;;
-- Linux:x86_64)
-- VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
-- VPX_X86_ASM=1
-- ;;
-- SunOS:x86)
-- VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
-- VPX_X86_ASM=1
-- ;;
-- SunOS:x86_64)
-- VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
-- VPX_X86_ASM=1
-- ;;
- Darwin:x86)
- VPX_ASFLAGS="-f macho32 -rnasm -pnasm -DPIC"
- VPX_X86_ASM=1
-@@ -5412,6 +5388,19 @@ if test -n "$MOZ_VP8" -a -z "$MOZ_NATIVE_LIBVPX"; then
- VPX_ASM_SUFFIX="$ASM_SUFFIX"
- VPX_ARM_ASM=1
- fi
-+ ;;
-+ *:x86)
-+ if $CC -E -dM -</dev/null | grep -q __ELF__; then
-+ VPX_ASFLAGS="-f elf32 -rnasm -pnasm"
-+ VPX_X86_ASM=1
-+ fi
-+ ;;
-+ *:x86_64)
-+ if $CC -E -dM -</dev/null | grep -q __ELF__; then
-+ VPX_ASFLAGS="-f elf64 -rnasm -pnasm -DPIC"
-+ VPX_X86_ASM=1
-+ fi
-+ ;;
- esac
-
- if test -n "$COMPILE_ENVIRONMENT" -a -n "$VPX_X86_ASM" -a -z "$VPX_AS"; then
-@@ -5843,22 +5832,6 @@ if test -n "$MOZ_LIBJPEG_TURBO"; then
-
- dnl Do we support libjpeg-turbo on this platform?
- case "$OS_ARCH:$OS_TEST" in
-- Linux:x86|Linux:i?86)
-- LIBJPEG_TURBO_ASFLAGS="-f elf32 -rnasm -pnasm -DPIC -DELF"
-- LIBJPEG_TURBO_X86_ASM=1
-- ;;
-- Linux:x86_64)
-- LIBJPEG_TURBO_ASFLAGS="-f elf64 -rnasm -pnasm -D__x86_64__ -DPIC -DELF"
-- LIBJPEG_TURBO_X64_ASM=1
-- ;;
-- SunOS:i?86)
-- LIBJPEG_TURBO_ASFLAGS="-f elf32 -rnasm -pnasm -DPIC -DELF"
-- LIBJPEG_TURBO_X86_ASM=1
-- ;;
-- SunOS:x86_64)
-- LIBJPEG_TURBO_ASFLAGS="-f elf64 -rnasm -pnasm -D__x86_64__ -DPIC -DELF"
-- LIBJPEG_TURBO_X64_ASM=1
-- ;;
- Darwin:i?86)
- LIBJPEG_TURBO_ASFLAGS="-f macho32 -rnasm -pnasm -DPIC -DMACHO"
- LIBJPEG_TURBO_X86_ASM=1
-@@ -5879,6 +5852,18 @@ if test -n "$MOZ_LIBJPEG_TURBO"; then
- LIBJPEG_TURBO_ASFLAGS="-march=armv7-a -mfpu=neon"
- LIBJPEG_TURBO_ARM_ASM=1
- ;;
-+ *:x86|*:i?86)
-+ if $CC -E -dM -</dev/null | grep -q __ELF__; then
-+ LIBJPEG_TURBO_ASFLAGS="-f elf32 -rnasm -pnasm -DPIC -DELF"
-+ LIBJPEG_TURBO_X86_ASM=1
-+ fi
-+ ;;
-+ *:x86_64)
-+ if $CC -E -dM -</dev/null | grep -q __ELF__; then
-+ LIBJPEG_TURBO_ASFLAGS="-f elf64 -rnasm -pnasm -D__x86_64__ -DPIC -DELF"
-+ LIBJPEG_TURBO_X64_ASM=1
-+ fi
-+ ;;
- esac
-
- fi
-diff --git media/libvpx/update.sh media/libvpx/update.sh
-index 79e0fb1..51956af 100755
---- media/libvpx/update.sh
-+++ media/libvpx/update.sh
-@@ -363,12 +363,12 @@ cp $1/objdir/x86-win32-vs8/vpx_config.h vpx_config_x86-win32-vs8.h
- # Should be same for all platforms...
- cp $1/objdir/x86-win32-vs8/vpx_version.h vpx_version.h
-
--# Config files for x86-linux-gcc and Solaris x86
-+# Config files for x86-linux-gcc and other x86 elf platforms
- cp $1/objdir/x86-linux-gcc/vpx_config.c vpx_config_x86-linux-gcc.c
- cp $1/objdir/x86-linux-gcc/vpx_config.asm vpx_config_x86-linux-gcc.asm
- cp $1/objdir/x86-linux-gcc/vpx_config.h vpx_config_x86-linux-gcc.h
-
--# Config files for x86_64-linux-gcc and Solaris x86_64
-+# Config files for x86_64-linux-gcc and other x86_64 elf platforms
- cp $1/objdir/x86_64-linux-gcc/vpx_config.c vpx_config_x86_64-linux-gcc.c
- cp $1/objdir/x86_64-linux-gcc/vpx_config.asm vpx_config_x86_64-linux-gcc.asm
- cp $1/objdir/x86_64-linux-gcc/vpx_config.h vpx_config_x86_64-linux-gcc.h
-diff --git media/libvpx/vpx_config.h media/libvpx/vpx_config.h
-index 55433f3..36e1780 100644
---- media/libvpx/vpx_config.h
-+++ media/libvpx/vpx_config.h
-@@ -16,20 +16,12 @@
- /* 32 bit MacOS. */
- #include "vpx_config_x86-darwin9-gcc.h"
-
--#elif defined(__linux__) && defined(__i386__)
--/* 32 bit Linux. */
-+#elif defined(__ELF__) && (defined(__i386) || defined(__i386__))
-+/* 32 bit ELF platforms. */
- #include "vpx_config_x86-linux-gcc.h"
-
--#elif defined(__linux__) && defined(__x86_64__)
--/* 64 bit Linux. */
--#include "vpx_config_x86_64-linux-gcc.h"
--
--#elif defined(__sun) && defined(__i386)
--/* 32 bit Solaris. */
--#include "vpx_config_x86-linux-gcc.h"
--
--#elif defined(__sun) && defined(__x86_64)
--/* 64 bit Solaris. */
-+#elif defined(__ELF__) && (defined(__x86_64) || defined(__x86_64__))
-+/* 64 bit ELF platforms. */
- #include "vpx_config_x86_64-linux-gcc.h"
-
- #else
-diff --git media/libvpx/vpx_config_c.c media/libvpx/vpx_config_c.c
-index eedd515..c8b5375 100644
---- media/libvpx/vpx_config_c.c
-+++ media/libvpx/vpx_config_c.c
-@@ -15,22 +15,14 @@
- /* 32 bit MacOS. */
- #include "vpx_config_x86-darwin9-gcc.c"
-
--#elif defined(__linux__) && defined(__i386__)
--/* 32 bit Linux. */
-+#elif defined(__ELF__) && (defined(__i386) || defined(__i386__))
-+/* 32 bit ELF platforms. */
- #include "vpx_config_x86-linux-gcc.c"
-
--#elif defined(__linux__) && defined(__x86_64__)
--/* 64 bit Linux. */
-+#elif defined(__ELF__) && (defined(__x86_64) || defined(__x86_64__))
-+/* 64 bit ELF platforms. */
- #include "vpx_config_x86_64-linux-gcc.c"
-
--#elif defined(__sun) && defined(__i386)
--/* 32 bit Solaris. */
--#include "vpx_config_x86-linux-gcc.h"
--
--#elif defined(__sun) && defined(__x86_64)
--/* 64 bit Solaris. */
--#include "vpx_config_x86_64-linux-gcc.h"
--
- #else
- #error VPX_X86_ASM is defined, but assembly not supported on this platform!
- #endif
diff --git a/www/firefox/files/patch-bug788108 b/www/firefox/files/patch-bug788108
new file mode 100644
index 000000000000..746146760c62
--- /dev/null
+++ b/www/firefox/files/patch-bug788108
@@ -0,0 +1,20 @@
+--- content/base/public/nsContentUtils.h~
++++ content/base/public/nsContentUtils.h
+@@ -18,17 +18,6 @@
+ #include <ieeefp.h>
+ #endif
+
+-//A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
+-#ifdef __FreeBSD__
+-#include <ieeefp.h>
+-#ifdef __alpha__
+-static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;
+-#else
+-static fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML;
+-#endif
+-static fp_except_t oldmask = fpsetmask(~allmask);
+-#endif
+-
+ #include "nsAString.h"
+ #include "nsIStatefulFrame.h"
+ #include "nsNodeInfoManager.h"
diff --git a/www/firefox/files/patch-bug788955 b/www/firefox/files/patch-bug788955
new file mode 100644
index 000000000000..39a8cd7ff70d
--- /dev/null
+++ b/www/firefox/files/patch-bug788955
@@ -0,0 +1,309 @@
+diff --git Makefile.in Makefile.in
+index e341462..f75bd55 100644
+--- Makefile.in
++++ Makefile.in
+@@ -48,8 +48,10 @@ endif
+ ifdef MOZ_MEMORY
+ tier_base_dirs += memory/mozjemalloc
+ ifdef MOZ_JEMALLOC
++ifndef MOZ_NATIVE_JEMALLOC
+ tier_base_dirs += memory/jemalloc
+ endif
++endif
+ tier_base_dirs += memory/build
+ endif
+ ifndef MOZ_NATIVE_ZLIB
+diff --git allmakefiles.sh allmakefiles.sh
+index 6a9be4b..d2e49e3 100755
+--- allmakefiles.sh
++++ allmakefiles.sh
+@@ -59,7 +59,7 @@ if [ ! "$LIBXUL_SDK" ]; then
+ mozglue/Makefile
+ mozglue/build/Makefile
+ "
+- if [ "$MOZ_JEMALLOC" ]; then
++ if [ "$MOZ_JEMALLOC" -a -z "$MOZ_NATIVE_JEMALLOC" ]; then
+ add_makefiles "
+ memory/jemalloc/Makefile
+ "
+--- config/autoconf.mk.in
++++ config/autoconf.mk.in
+@@ -74,6 +74,7 @@ MOZ_JSDEBUGGER = @MOZ_JSDEBUGGER@
+ MOZ_IPDL_TESTS = @MOZ_IPDL_TESTS@
+ MOZ_MEMORY = @MOZ_MEMORY@
+ MOZ_JEMALLOC = @MOZ_JEMALLOC@
++MOZ_NATIVE_JEMALLOC = @MOZ_NATIVE_JEMALLOC@
+ MOZ_PROFILING = @MOZ_PROFILING@
+ MOZ_ENABLE_PROFILER_SPS = @MOZ_ENABLE_PROFILER_SPS@
+ MOZ_JPROF = @MOZ_JPROF@
+diff --git configure.in configure.in
+index bb05782..2f32516 100644
+--- configure.in
++++ configure.in
+@@ -3711,21 +3711,22 @@ fi
+
+ dnl Check for the existence of various allocation headers/functions
+
++MALLOC_HEADERS="malloc.h malloc_np.h malloc/malloc.h sys/malloc.h"
+ MALLOC_H=
+-MOZ_CHECK_HEADER(malloc.h, [MALLOC_H=malloc.h])
+-if test "$MALLOC_H" = ""; then
+- MOZ_CHECK_HEADER(malloc/malloc.h, [MALLOC_H=malloc/malloc.h])
+- if test "$MALLOC_H" = ""; then
+- MOZ_CHECK_HEADER(sys/malloc.h, [MALLOC_H=sys/malloc.h])
++
++for file in $MALLOC_HEADERS; do
++ MOZ_CHECK_HEADER($file, [MALLOC_H=$file])
++ if test "$MALLOC_H" != ""; then
++ AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>)
++ break
+ fi
+-fi
+-if test "$MALLOC_H" != ""; then
+- AC_DEFINE_UNQUOTED(MALLOC_H, <$MALLOC_H>)
+-fi
++done
+
+ MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
+ AC_CHECK_FUNCS(strndup posix_memalign memalign valloc)
+
++AC_CHECK_FUNCS(malloc_usable_size)
++
+ dnl See if compiler supports some gcc-style attributes
+
+ AC_CACHE_CHECK(for __attribute__((always_inline)),
+@@ -6939,6 +6940,18 @@ else
+ fi
+
+ if test -z "$MOZ_MEMORY"; then
++ if test -n "$MOZ_JEMALLOC"; then
++ MOZ_NATIVE_JEMALLOC=1
++ AC_CHECK_FUNCS(mallctl nallocm,,
++ [MOZ_NATIVE_JEMALLOC=
++ break])
++ if test -n "$MOZ_NATIVE_JEMALLOC"; then
++ MOZ_MEMORY=1
++ AC_DEFINE(MOZ_MEMORY)
++ AC_DEFINE(MOZ_JEMALLOC)
++ AC_DEFINE(MOZ_NATIVE_JEMALLOC)
++ fi
++ fi
+ case "${target}" in
+ *-mingw*)
+ if test -z "$WIN32_REDIST_DIR" -a -z "$MOZ_DEBUG"; then
+@@ -7033,6 +7046,7 @@ else
+ fi # MOZ_MEMORY
+ AC_SUBST(MOZ_MEMORY)
+ AC_SUBST(MOZ_JEMALLOC)
++AC_SUBST(MOZ_NATIVE_JEMALLOC)
+ AC_SUBST(MOZ_GLUE_LDFLAGS)
+ AC_SUBST(MOZ_GLUE_PROGRAM_LDFLAGS)
+ AC_SUBST(WIN32_CRT_LIBS)
+@@ -8820,10 +8834,22 @@ fi
+
+ # Run jemalloc configure script
+
+-if test "$MOZ_JEMALLOC" -a "$MOZ_MEMORY"; then
++if test -z "$MOZ_NATIVE_JEMALLOC" -a "$MOZ_JEMALLOC" -a "$MOZ_MEMORY" ; then
+ ac_configure_args="$_SUBDIR_CONFIG_ARGS --build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_"
+- if test "$OS_ARCH" = "Linux"; then
+- MANGLE="malloc calloc valloc free realloc memalign posix_memalign malloc_usable_size"
++ case "$OS_ARCH" in
++ Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
++ MANGLE="malloc calloc valloc free realloc posix_memalign"
++ case "$OS_ARCH" in
++ Linux)
++ MANGLE="$MANGLE memalign malloc_usable_size"
++ ;;
++ FreeBSD)
++ MANGLE="$MANGLE malloc_usable_size"
++ ;;
++ esac
++ ;;
++ esac
++ if test -n "$MANGLE"; then
+ MANGLED=
+ JEMALLOC_WRAPPER=
+ if test -n "$_WRAP_MALLOC"; then
+diff --git memory/build/Makefile.in memory/build/Makefile.in
+index dca0f48..af93ee0 100644
+--- memory/build/Makefile.in
++++ memory/build/Makefile.in
+@@ -22,7 +22,9 @@ CSRCS = extraMallocFuncs.c
+
+ ifdef MOZ_JEMALLOC
+ CSRCS += mozjemalloc_compat.c
++ifndef MOZ_NATIVE_JEMALLOC
+ SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,jemalloc,$(DEPTH)/memory/jemalloc)
++endif
+ else
+ SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,jemalloc,$(DEPTH)/memory/mozjemalloc)
+ endif
+diff --git memory/build/extraMallocFuncs.c memory/build/extraMallocFuncs.c
+index 9d87629..03c8320 100644
+--- memory/build/extraMallocFuncs.c
++++ memory/build/extraMallocFuncs.c
+@@ -94,8 +94,16 @@ wrap(wcsdup)(const wchar_t *src)
+ #endif
+
+ #ifdef MOZ_JEMALLOC
++
++#undef wrap
++#if defined(MOZ_NATIVE_JEMALLOC)
++#define wrap(a) a
++#else
++#define wrap(a) je_ ## a
++#endif
++
+ /* Override some jemalloc defaults */
+-const char *je_malloc_conf = "narenas:1,lg_chunk:20";
++MOZ_EXPORT_DATA(const char *) wrap(malloc_conf) = "narenas:1,lg_chunk:20";
+
+ #ifdef ANDROID
+ #include <android/log.h>
+diff --git memory/build/mozjemalloc_compat.c memory/build/mozjemalloc_compat.c
+index 10a845a..94ad96e 100644
+--- memory/build/mozjemalloc_compat.c
++++ memory/build/mozjemalloc_compat.c
+@@ -5,14 +5,21 @@
+ #include "mozilla/Types.h"
+ #include "jemalloc_types.h"
+
+-extern int je_mallctl(const char*, void*, size_t*, void*, size_t);
++#if defined(MOZ_NATIVE_JEMALLOC)
++#define wrap(a) a
++#else
++#define wrap(a) je_ ## a
++#endif
+
+-MOZ_EXPORT_API (void)
++extern MOZ_IMPORT_API(int)
++wrap(mallctl)(const char*, void*, size_t*, void*, size_t);
++
++MOZ_EXPORT_API(void)
+ jemalloc_stats(jemalloc_stats_t *stats)
+ {
+ size_t size = sizeof(stats->mapped);
+- je_mallctl("stats.mapped", &stats->mapped, &size, NULL, 0);
+- je_mallctl("stats.allocated", &stats->allocated, &size, NULL, 0);
++ wrap(mallctl)("stats.mapped", &stats->mapped, &size, NULL, 0);
++ wrap(mallctl)("stats.allocated", &stats->allocated, &size, NULL, 0);
+ stats->committed = -1;
+ stats->dirty = -1;
+ }
+diff --git memory/jemalloc/src/src/mutex.c memory/jemalloc/src/src/mutex.c
+index 37a843e..55e18c2 100644
+--- memory/jemalloc/src/src/mutex.c
++++ memory/jemalloc/src/src/mutex.c
+@@ -64,7 +64,7 @@ pthread_create(pthread_t *__restrict thread,
+ /******************************************************************************/
+
+ #ifdef JEMALLOC_MUTEX_INIT_CB
+-int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex,
++JEMALLOC_EXPORT int _pthread_mutex_init_calloc_cb(pthread_mutex_t *mutex,
+ void *(calloc_cb)(size_t, size_t));
+ #endif
+
+diff --git memory/mozalloc/mozalloc.cpp memory/mozalloc/mozalloc.cpp
+index 5b61050b..5b3399a 100644
+--- memory/mozalloc/mozalloc.cpp
++++ memory/mozalloc/mozalloc.cpp
+@@ -12,16 +12,13 @@
+ #include <sys/types.h>
+
+ #if defined(MALLOC_H)
+-# include MALLOC_H // for memalign, valloc where available
++# include MALLOC_H // for memalign, valloc, malloc_size, malloc_usable_size
+ #endif // if defined(MALLOC_H)
+ #include <stddef.h> // for size_t
+ #include <stdlib.h> // for malloc, free
+ #if defined(XP_UNIX)
+ # include <unistd.h> // for valloc on *BSD
+ #endif //if defined(XP_UNIX)
+-#if defined(__FreeBSD__)
+-# include <malloc_np.h> // for malloc_usable_size
+-#endif // if defined(__FreeBSD__)
+
+ #if defined(XP_WIN) || (defined(XP_OS2) && defined(__declspec))
+ # define MOZALLOC_EXPORT __declspec(dllexport)
+@@ -213,8 +210,7 @@ moz_malloc_usable_size(void *ptr)
+
+ #if defined(XP_MACOSX)
+ return malloc_size(ptr);
+-#elif defined(MOZ_MEMORY) || (defined(XP_LINUX) && !defined(ANDROID)) || defined(__FreeBSD__)
+- // Android bionic libc doesn't have malloc_usable_size.
++#elif defined(HAVE_MALLOC_USABLE_SIZE) || defined(MOZ_MEMORY)
+ return malloc_usable_size(ptr);
+ #elif defined(XP_WIN)
+ return _msize(ptr);
+diff --git memory/mozjemalloc/jemalloc.h memory/mozjemalloc/jemalloc.h
+index f0e0878..2486e83 100644
+--- memory/mozjemalloc/jemalloc.h
++++ memory/mozjemalloc/jemalloc.h
+@@ -37,22 +37,29 @@
+ #endif
+ #include "jemalloc_types.h"
+
++#if defined(MOZ_NATIVE_JEMALLOC)
++#define wrap(a) a
++#else
++#define wrap(a) je_ ## a
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+-#if defined(MOZ_MEMORY_LINUX)
++#if defined(MOZ_NATIVE_JEMALLOC) \
++ || defined(MOZ_MEMORY_LINUX) || defined(MOZ_MEMORY_BSD)
+ __attribute__((weak))
+ #endif
+ void jemalloc_stats(jemalloc_stats_t *stats);
+
+ /* Computes the usable size in advance. */
+ #if !defined(MOZ_MEMORY_DARWIN)
+-#if defined(MOZ_MEMORY_LINUX)
++#if defined(MOZ_MEMORY_LINUX) || defined(MOZ_MEMORY_BSD)
+ __attribute__((weak))
+ #endif
+ #if defined(MOZ_JEMALLOC)
+-int je_nallocm(size_t *rsize, size_t size, int flags);
++MOZ_IMPORT_API(int) wrap(nallocm)(size_t *rsize, size_t size, int flags);
+ #else
+ size_t je_malloc_good_size(size_t size);
+ #endif
+@@ -62,11 +69,11 @@ static inline size_t je_malloc_usable_size_in_advance(size_t size) {
+ #if defined(MOZ_MEMORY_DARWIN)
+ return malloc_good_size(size);
+ #elif defined(MOZ_JEMALLOC)
+- if (je_nallocm) {
++ if (wrap(nallocm)) {
+ size_t ret;
+ if (size == 0)
+ size = 1;
+- if (!je_nallocm(&ret, size, 0))
++ if (!wrap(nallocm)(&ret, size, 0))
+ return ret;
+ }
+ return size;
+@@ -113,4 +120,6 @@ void jemalloc_purge_freed_pages();
+ } /* extern "C" */
+ #endif
+
++#undef wrap
++
+ #endif /* _JEMALLOC_H_ */
+diff --git mozglue/build/Makefile.in mozglue/build/Makefile.in
+index c333647..15ba505 100644
+--- mozglue/build/Makefile.in
++++ mozglue/build/Makefile.in
+@@ -23,7 +23,7 @@ FORCE_STATIC_LIB = 1
+ endif
+
+ # Keep jemalloc separated when mozglue is statically linked
+-ifeq (1_1,$(MOZ_MEMORY)_$(FORCE_SHARED_LIB))
++ifeq (1_1,$(MOZ_MEMORY)_$(or $(MOZ_NATIVE_JEMALLOC),$(FORCE_SHARED_LIB)))
+ SHARED_LIBRARY_LIBS = $(call EXPAND_LIBNAME_PATH,memory,$(DEPTH)/memory/build)
+ else
+ # Temporary, until bug 662814 lands
diff --git a/www/firefox/files/patch-bug789436 b/www/firefox/files/patch-bug789436
new file mode 100644
index 000000000000..6d1e7069b858
--- /dev/null
+++ b/www/firefox/files/patch-bug789436
@@ -0,0 +1,27 @@
+--- toolkit/xre/nsAppRunner.cpp~
++++ toolkit/xre/nsAppRunner.cpp
+@@ -1388,11 +1388,6 @@ static int MSCRTReportHook( int aReportType, char *aMessage, int *oReturnValue)
+
+ #endif
+
+-#if defined(FREEBSD)
+-// pick up fpsetmask prototype.
+-#include <ieeefp.h>
+-#endif
+-
+ static inline void
+ DumpVersion()
+ {
+@@ -4136,12 +4131,5 @@ SetupErrorHandling(const char* progname)
+
+ // Unbuffer stdout, needed for tinderbox tests.
+ setbuf(stdout, 0);
+-
+-#if defined(FREEBSD)
+- // Disable all SIGFPE's on FreeBSD, as it has non-IEEE-conformant fp
+- // trap behavior that trips up on floating-point tests performed by
+- // the JS engine. See bugzilla bug 9967 details.
+- fpsetmask(0);
+-#endif
+ }
+
diff --git a/www/firefox/files/patch-bug789656 b/www/firefox/files/patch-bug789656
new file mode 100644
index 000000000000..ebc567ef27ac
--- /dev/null
+++ b/www/firefox/files/patch-bug789656
@@ -0,0 +1,11 @@
+--- media/libopus/Makefile.in~
++++ media/libopus/Makefile.in
+@@ -20,7 +20,7 @@ DEFINES += \
+ -Drestrict= \
+ $(NULL)
+
+-ifneq ($(filter $(OS_ARCH),Linux Darwin),)
++ifneq ($(filter $(OS_ARCH),Linux Darwin DragonFly FreeBSD NetBSD OpenBSD),)
+ DEFINES += -DHAVE_LRINTF
+ endif
+ ifeq ($(OS_ARCH), WINNT)
diff --git a/www/firefox/files/patch-bug789693 b/www/firefox/files/patch-bug789693
new file mode 100644
index 000000000000..1d2b790a35d5
--- /dev/null
+++ b/www/firefox/files/patch-bug789693
@@ -0,0 +1,109 @@
+--- toolkit/components/startup/nsAppStartup.cpp
++++ toolkit/components/startup/nsAppStartup.cpp
+@@ -50,18 +50,41 @@
+ #include <sys/syscall.h>
+ #endif
+
+-#ifdef XP_MACOSX
++#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
++ || defined(__NetBSD__) || defined(__OpenBSD__)
++#include <sys/param.h>
+ #include <sys/sysctl.h>
+ #endif
+
+-#ifdef __OpenBSD__
+-#include <sys/param.h>
+-#include <sys/sysctl.h>
++#if defined(__DragonFly__) || defined(__FreeBSD__)
++#include <sys/user.h>
+ #endif
+
+ #include "mozilla/Telemetry.h"
+ #include "mozilla/StartupTimeline.h"
+
++#if defined(__NetBSD__)
++#undef KERN_PROC
++#define KERN_PROC KERN_PROC2
++#define KINFO_PROC struct kinfo_proc2
++#else
++#define KINFO_PROC struct kinfo_proc
++#endif
++
++#if defined(XP_MACOSX)
++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec
++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec
++#elif defined(__DragonFly__)
++#define KP_START_SEC kp_start.tv_sec
++#define KP_START_USEC kp_start.tv_usec
++#elif defined(__FreeBSD__)
++#define KP_START_SEC ki_start.tv_sec
++#define KP_START_USEC ki_start.tv_usec
++#else
++#define KP_START_SEC p_ustart_sec
++#define KP_START_USEC p_ustart_usec
++#endif
++
+ static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID);
+
+ #define kPrefLastSuccess "toolkit.startup.last_success"
+@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp()
+ #endif
+ return timestamp;
+ }
+-#elif defined(XP_MACOSX)
++#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
++ || defined(__NetBSD__) || defined(__OpenBSD__)
+ static PRTime
+ CalculateProcessCreationTimestamp()
+ {
+- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() };
+- size_t buffer_size;
+- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0))
+- return 0;
++ int mib[] = {
++ CTL_KERN,
++ KERN_PROC,
++ KERN_PROC_PID,
++ getpid(),
++#if defined(__NetBSD__) || defined(__OpenBSD__)
++ sizeof(KINFO_PROC),
++ 1,
++#endif
++ };
++ u_int miblen = sizeof(mib) / sizeof(mib[0]);
+
+- struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size);
+- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) {
+- free(proc);
+- return 0;
+- }
+- PRTime starttime = static_cast<PRTime>(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC;
+- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec;
+- free(proc);
+- return starttime;
+-}
+-#elif defined(__OpenBSD__)
+-static PRTime
+-CalculateProcessCreationTimestamp()
+-{
+- int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 };
+- size_t buffer_size;
+- if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0))
++ KINFO_PROC proc;
++ size_t buffer_size = sizeof(proc);
++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0))
+ return 0;
+
+- struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size);
+- if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) {
+- free(proc);
+- return 0;
+- }
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC;
++ starttime += proc.KP_START_USEC;
+ return starttime;
+ }
+ #else
diff --git a/www/firefox/files/patch-bug791305 b/www/firefox/files/patch-bug791305
new file mode 100644
index 000000000000..534e7f2d9cac
--- /dev/null
+++ b/www/firefox/files/patch-bug791305
@@ -0,0 +1,107 @@
+commit c269a16
+Author: Jeff Muizelaar <jmuizelaar@mozilla.com>
+Date: Fri Sep 14 15:54:55 2012 -0400
+
+ Bug 791305. Use libjpeg's color conversion code instead of our own. r=joe,r=khuey
+
+ libjpeg-turbo supports converting directly to a format compatible with cairo's
+ FORMAT_RGB24. Use that instead of our own handcoded function. This also gives
+ us SSE2 and NEON version of this function.
+
+ --HG--
+ extra : rebase_source : 18f48925f023a33ec2a097d4f4e5cc2ab40be1e9
+---
+ configure.in | 6 +-
+ image/decoders/nsJPEGDecoder.cpp | 311 ++-------------------------------------
+ 2 files changed, 20 insertions(+), 297 deletions(-)
+
+diff --git image/decoders/nsJPEGDecoder.cpp image/decoders/nsJPEGDecoder.cpp
+index c1fb515..1d2a259 100644
+--- image/decoders/nsJPEGDecoder.cpp
++++ image/decoders/nsJPEGDecoder.cpp
+@@ -22,6 +22,13 @@
+ extern "C" {
+ #include "iccjpeg.h"
+
++#ifdef JCS_EXTENSIONS
++#if defined(IS_BIG_ENDIAN)
++#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB
++#else
++#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX
++#endif
++#else
+ /* Colorspace conversion (copied from jpegint.h) */
+ struct jpeg_color_deconverter {
+ JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
+@@ -34,6 +41,7 @@ METHODDEF(void)
+ ycc_rgb_convert_argb (j_decompress_ptr cinfo,
+ JSAMPIMAGE input_buf, JDIMENSION input_row,
+ JSAMPARRAY output_buf, int num_rows);
++#endif
+ }
+
+ static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width);
+@@ -329,7 +340,18 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, PRUint32 aCount)
+ case JCS_GRAYSCALE:
+ case JCS_RGB:
+ case JCS_YCbCr:
++#ifdef JCS_EXTENSIONS
++ // if we're not color managing we can decode directly to
++ // MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
++ if (mCMSMode != eCMSMode_All) {
++ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
++ mInfo.out_color_components = 4;
++ } else {
++ mInfo.out_color_space = JCS_RGB;
++ }
++#else
+ mInfo.out_color_space = JCS_RGB;
++#endif
+ break;
+ case JCS_CMYK:
+ case JCS_YCCK:
+@@ -397,6 +419,7 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, PRUint32 aCount)
+ return; /* I/O suspension */
+ }
+
++#ifndef JCS_EXTENSIONS
+ /* Force to use our YCbCr to Packed RGB converter when possible */
+ if (!mTransform && (mCMSMode != eCMSMode_All) &&
+ mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) {
+@@ -404,6 +427,7 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, PRUint32 aCount)
+ mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/
+ mInfo.cconvert->color_convert = ycc_rgb_convert_argb;
+ }
++#endif
+
+ /* If this is a progressive JPEG ... */
+ mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
+@@ -542,7 +566,11 @@ nsJPEGDecoder::OutputScanlines(bool* suspend)
+ PRUint32 *imageRow = ((PRUint32*)mImageData) +
+ (mInfo.output_scanline * mInfo.output_width);
+
++#ifdef JCS_EXTENSIONS
++ if (mInfo.out_color_space == MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB) {
++#else
+ if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) {
++#endif
+ /* Special case: scanline will be directly converted into packed ARGB */
+ if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
+ *suspend = true; /* suspend */
+@@ -858,6 +887,7 @@ term_source (j_decompress_ptr jd)
+ } // namespace mozilla
+
+
++#ifndef JCS_EXTENSIONS
+ /**************** YCbCr -> Cairo's RGB24/ARGB32 conversion: most common case **************/
+
+ /*
+@@ -1130,7 +1160,8 @@ ycc_rgb_convert_argb (j_decompress_ptr cinfo,
+ }
+ }
+ }
++#endif
+
+
+ /**************** Inverted CMYK -> RGB conversion **************/
+ /*
diff --git a/www/firefox/files/patch-bug791366 b/www/firefox/files/patch-bug791366
new file mode 100644
index 000000000000..2be866d928cd
--- /dev/null
+++ b/www/firefox/files/patch-bug791366
@@ -0,0 +1,95 @@
+diff --git xpcom/base/nsMemoryReporterManager.cpp xpcom/base/nsMemoryReporterManager.cpp
+index a9aff58..674e757 100644
+--- xpcom/base/nsMemoryReporterManager.cpp
++++ xpcom/base/nsMemoryReporterManager.cpp
+@@ -32,7 +32,7 @@ using namespace mozilla;
+ # include "jemalloc.h"
+ #endif // MOZ_MEMORY
+
+-#if defined(XP_LINUX) || defined(XP_MACOSX) || defined(SOLARIS)
++#ifdef XP_UNIX
+
+ #include <sys/time.h>
+ #include <sys/resource.h>
+@@ -95,6 +95,81 @@ static nsresult GetResident(PRInt64 *n)
+ return GetProcSelfStatmField(1, n);
+ }
+
++#elif defined(__DragonFly__) || defined(__FreeBSD__) \
++ || defined(__NetBSD__) || defined(__OpenBSD__)
++
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#if defined(__DragonFly__) || defined(__FreeBSD__)
++#include <sys/user.h>
++#endif
++
++#include <unistd.h>
++
++#if defined(__NetBSD__)
++#undef KERN_PROC
++#define KERN_PROC KERN_PROC2
++#define KINFO_PROC struct kinfo_proc2
++#else
++#define KINFO_PROC struct kinfo_proc
++#endif
++
++#if defined(__DragonFly__)
++#define KP_SIZE(kp) (kp.kp_vm_map_size)
++#define KP_RSS(kp) (kp.kp_vm_rssize * getpagesize())
++#elif defined(__FreeBSD__)
++#define KP_SIZE(kp) (kp.ki_size)
++#define KP_RSS(kp) (kp.ki_rssize * getpagesize())
++#elif defined(__NetBSD__)
++#define KP_SIZE(kp) (kp.p_vm_msize * getpagesize())
++#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize())
++#elif defined(__OpenBSD__)
++#define KP_SIZE(kp) ((kp.p_vm_dsize + kp.p_vm_ssize \
++ + kp.p_vm_tsize) * getpagesize())
++#define KP_RSS(kp) (kp.p_vm_rssize * getpagesize())
++#endif
++
++static nsresult GetKinfoProcSelf(KINFO_PROC *proc)
++{
++ int mib[] = {
++ CTL_KERN,
++ KERN_PROC,
++ KERN_PROC_PID,
++ getpid(),
++#if defined(__NetBSD__) || defined(__OpenBSD__)
++ sizeof(KINFO_PROC),
++ 1,
++#endif
++ };
++ u_int miblen = sizeof(mib) / sizeof(mib[0]);
++ size_t size = sizeof(KINFO_PROC);
++ if (sysctl(mib, miblen, proc, &size, NULL, 0))
++ return NS_ERROR_FAILURE;
++
++ return NS_OK;
++}
++
++#define HAVE_VSIZE_AND_RESIDENT_REPORTERS 1
++static nsresult GetVsize(PRInt64 *n)
++{
++ KINFO_PROC proc;
++ nsresult rv = GetKinfoProcSelf(&proc);
++ if (NS_SUCCEEDED(rv))
++ *n = KP_SIZE(proc);
++
++ return rv;
++}
++
++static nsresult GetResident(PRInt64 *n)
++{
++ KINFO_PROC proc;
++ nsresult rv = GetKinfoProcSelf(&proc);
++ if (NS_SUCCEEDED(rv))
++ *n = KP_RSS(proc);
++
++ return rv;
++}
++
+ #elif defined(SOLARIS)
+
+ #include <procfs.h>
diff --git a/www/firefox/files/patch-config-baseconfig.mk b/www/firefox/files/patch-config-baseconfig.mk
new file mode 100644
index 000000000000..e6fd78f35e7b
--- /dev/null
+++ b/www/firefox/files/patch-config-baseconfig.mk
@@ -0,0 +1,16 @@
+--- config/baseconfig.mk~
++++ config/baseconfig.mk
+@@ -1,9 +1,9 @@
+ INCLUDED_AUTOCONF_MK = 1
+
+-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
++includedir := $(includedir)/%%MOZILLA%%
++idldir = $(datadir)/idl/%%MOZILLA%%
++installdir = $(libdir)/%%MOZILLA%%
++sdkdir = $(libdir)/%%MOZILLA%%
+ DIST = $(DEPTH)/dist
+
+ # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't
diff --git a/www/firefox/files/patch-config_autoconf.mk.in b/www/firefox/files/patch-config_autoconf.mk.in
deleted file mode 100644
index 877c48294fc6..000000000000
--- a/www/firefox/files/patch-config_autoconf.mk.in
+++ /dev/null
@@ -1,21 +0,0 @@
---- config/autoconf.mk.in.orig 2009-04-24 03:46:37.000000000 +0200
-+++ config/autoconf.mk.in 2009-05-11 15:03:26.000000000 +0200
-@@ -57,14 +57,14 @@
- prefix = @prefix@
- exec_prefix = @exec_prefix@
- bindir = @bindir@
--includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-+includedir = @includedir@/%%MOZILLA%%
- libdir = @libdir@
- datadir = @datadir@
- mandir = @mandir@
--idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-+idldir = $(datadir)/idl/%%MOZILLA%%
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
--sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/%%MOZILLA%%
-+sdkdir = $(libdir)/%%MOZILLA%%
-
- DIST = $(DEPTH)/dist
- LIBXUL_SDK = @LIBXUL_SDK@
diff --git a/www/firefox/files/patch-content-media-nsAudioStream.cpp b/www/firefox/files/patch-content-media-nsAudioStream.cpp
new file mode 100644
index 000000000000..bd0f0d4963db
--- /dev/null
+++ b/www/firefox/files/patch-content-media-nsAudioStream.cpp
@@ -0,0 +1,14 @@
+--- content/media/nsAudioStream.cpp~
++++ content/media/nsAudioStream.cpp
+@@ -298,7 +298,11 @@ static int PrefChanged(const char* aPref
+ gVolumeScale = NS_MAX<double>(0, PR_strtod(utf8.get(), nsnull));
+ }
+ } else if (strcmp(aPref, PREF_USE_CUBEB) == 0) {
++#if defined(__FreeBSD__) && __FreeBSD_version < 800097
++ bool value = Preferences::GetBool(aPref, false);
++#else
+ bool value = Preferences::GetBool(aPref, true);
++#endif
+ mozilla::MutexAutoLock lock(*gAudioPrefsLock);
+ gUseCubeb = value;
+ } else if (strcmp(aPref, PREF_CUBEB_LATENCY) == 0) {
diff --git a/www/firefox/files/patch-extensions-spellcheck-hunspell-src-mozHunspell.cpp b/www/firefox/files/patch-extensions-spellcheck-hunspell-src-mozHunspell.cpp
new file mode 100644
index 000000000000..161feb2ca7b5
--- /dev/null
+++ b/www/firefox/files/patch-extensions-spellcheck-hunspell-src-mozHunspell.cpp
@@ -0,0 +1,15 @@
+--- extensions/spellcheck/hunspell/src/mozHunspell.cpp~
++++ extensions/spellcheck/hunspell/src/mozHunspell.cpp
+@@ -400,6 +400,12 @@ mozHunspell::LoadDictionaryList()
+ }
+ }
+
++ // load system hunspell dictionaries
++ nsIFile* hunDir;
++ NS_NewNativeLocalFile(NS_LITERAL_CSTRING("%%LOCALBASE%%/share/hunspell"),
++ true, &hunDir);
++ LoadDictionariesFromDir(hunDir);
++
+ // find dictionaries from extensions requiring restart
+ nsCOMPtr<nsISimpleEnumerator> dictDirs;
+ rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY_LIST,
diff --git a/www/firefox/files/pkg-deinstall.in b/www/firefox/files/pkg-deinstall.in
new file mode 100644
index 000000000000..2544ee4ed3a2
--- /dev/null
+++ b/www/firefox/files/pkg-deinstall.in
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# $MCom: ports/www/mozilla/pkg-deinstall.in,v 1.25 2008/07/26 19:07:07 ahze Exp $
+#
+# Date created: Mon Nov 29, 2003
+# Whom: Thierry Thomas (<thierry@pompo.net>)
+# Fix the chrome registry.
+
+umask 022
+PATH=/bin:/usr/bin
+
+[ "x$1" = "x" ] && exit 1
+[ "x$2" != "xDEINSTALL" ] && exit 0
+
+MOZDIR=%%MOZDIR%%
+
+rm -rf ${MOZDIR}/chrome/overlayinfo
+rm -f ${MOZDIR}/chrome/*.rdf
+rm -f ${MOZDIR}/component.reg
+rm -f ${MOZDIR}/components/*.dat
+rm -f ${MOZDIR}/components.ini
+rm -f ${MOZDIR}/defaults.ini
+rm -f ${MOZDIR}/chrome/app-chrome.manifest
+rm -rf ${MOZDIR}/updates
+find %%MOZDIR%%/plugins/ -depth 1 -type l -delete > /dev/null 2>&1
+find %%MOZDIR%%/extensions/ -depth 1 -type l -delete > /dev/null 2>&1
+
+exit 0
diff --git a/www/firefox/files/pkg-install.in b/www/firefox/files/pkg-install.in
new file mode 100644
index 000000000000..b2c8186701c4
--- /dev/null
+++ b/www/firefox/files/pkg-install.in
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# $MCom: ports/www/mozilla/pkg-install.in,v 1.26 2008/08/04 16:58:03 mezz Exp $
+#
+# Date created: Mon Nov 29, 2003
+# Whom: Thierry Thomas (<thierry@pompo.net>)
+# Fix the chrome registry.
+
+umask 022
+PATH=/bin:/usr/bin
+
+[ "x$1" = "x" ] && exit 1
+[ "x$2" != "xPOST-INSTALL" ] && exit 0
+
+MOZDIR=%%MOZDIR%%
+MOZBIN=${MOZDIR}/%%MOZILLA_BIN%%
+REGXPCOM=${MOZDIR}/regxpcom
+REGCHROME=${MOZDIR}/regchrome
+
+echo "===> Building Chrome's registry..."
+rm -rf ${MOZDIR}/chrome/overlayinfo
+rm -f ${MOZDIR}/chrome/*.rdf
+mkdir -p ${MOZDIR}/chrome/overlayinfo
+rm -f ${MOZDIR}/component.reg
+
+cd ${MOZDIR} || exit 1
+if [ -f ${REGXPCOM} ]; then
+ ./run-mozilla.sh ${REGXPCOM} || true
+fi
+if [ -f ${REGCHROME} ]; then
+ ./run-mozilla.sh ${REGCHROME} || true
+fi
+if [ -f ${MOZBIN} -a "${1%-*}" = "nvu" ]; then
+ ./run-mozilla.sh ${MOZBIN} -register > /dev/null 2>&1
+fi
+cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%MOZILLA%%/ %%MOZDIR%%/extensions/ > /dev/null 2>&1
+
+exit 0
diff --git a/www/firefox/pkg-message b/www/firefox/pkg-message
index 541e7771f224..b282c9ce33a1 100644
--- a/www/firefox/pkg-message
+++ b/www/firefox/pkg-message
@@ -1,9 +1,9 @@
======================================================================
-smb:// issues (GNOMEVFS2 option):
+smb:// issues (Gvfs/GIO or GNOMEVFS2 option):
Network group, machine, and share browsing does not work correctly.
-sftp:// (GNOMEVFS2 option):
+sftp:// (Gvfs/GIO or GNOMEVFS2 option):
Only sftp access using public key authentication works. To easily
setup public key authentication to "remote_host":