aboutsummaryrefslogtreecommitdiffstats
path: root/www/firefox
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2014-08-04 17:11:25 +0800
committerbapt <bapt@FreeBSD.org>2014-08-04 17:11:25 +0800
commit29ca14298ef0db26d8ef8810f35a8e8d4368e12f (patch)
tree1e9acf477fa72cf7c888cc484c96bd4f207a487a /www/firefox
parent95cd0aca7d833ed9707fa1bc2d6528f8ed54c76d (diff)
downloadfreebsd-ports-gnome-29ca14298ef0db26d8ef8810f35a8e8d4368e12f.tar.gz
freebsd-ports-gnome-29ca14298ef0db26d8ef8810f35a8e8d4368e12f.tar.zst
freebsd-ports-gnome-29ca14298ef0db26d8ef8810f35a8e8d4368e12f.zip
Update mozilla ports:
- firefox 31.0 - firefox-esr 24.7.0 - libxul 24.7.0 - seamonkey 2.26.1 - thunderbird 31.0 Among changes: - add workaround for crash with openldap on thunderbird and seamonkey [1] - add crashfix for architectures with strict alignmentment - backport crashfix with system sqlite/nss on firefox-esr and thunderbird - restore hooking jemalloc in sqlite on freebsd 10+ - fix thunderbird build with -jN [2] - respect MAKE_JOBS_NUMBER regardless of kern.smp.cpus [2] - define CPE_URI for nspr/nss and firefox/thunderbird/seamonkey - require recent gstreamer1-libav i386 crashfix - add DTRACE option for use with DTraceToolkit (js_flowtime.d, js_who.d, etc) PR: 165263 [1] PR: 184630 [2] Submitted by: Jan Beich
Diffstat (limited to 'www/firefox')
-rw-r--r--www/firefox/Makefile15
-rw-r--r--www/firefox/Makefile.options3
-rw-r--r--www/firefox/distinfo4
-rw-r--r--www/firefox/files/patch-bug101388273
-rw-r--r--www/firefox/files/patch-bug102649968
-rw-r--r--www/firefox/files/patch-bug102682820
-rw-r--r--www/firefox/files/patch-bug104138112
-rw-r--r--www/firefox/files/patch-bug104179548
-rw-r--r--www/firefox/files/patch-bug70217936
-rw-r--r--www/firefox/files/patch-bug77971377
-rw-r--r--www/firefox/files/patch-bug8269854
-rw-r--r--www/firefox/files/patch-bug8475686
-rw-r--r--www/firefox/files/patch-bug893397201
-rw-r--r--www/firefox/files/patch-bug91658935
-rw-r--r--www/firefox/files/patch-bug9623459
-rw-r--r--www/firefox/files/patch-bug97539773
-rw-r--r--www/firefox/files/patch-ipc-chromium-Makefile.in11
-rw-r--r--www/firefox/files/patch-z-bug5174228
18 files changed, 345 insertions, 358 deletions
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index c1b58eb7b498..09d96e9e4913 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= firefox
-DISTVERSION= 30.0
-PORTREVISION= 2
+DISTVERSION= 31.0
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
@@ -13,15 +12,15 @@ DISTNAME= ${PORTNAME}-${DISTVERSION}.source
MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
-BUILD_DEPENDS= nspr>=4.10.3:${PORTSDIR}/devel/nspr \
- nss>=3.16:${PORTSDIR}/security/nss \
- soundtouch>=1.7.0:${PORTSDIR}/audio/soundtouch \
+BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \
+ nss>=3.16.2:${PORTSDIR}/security/nss \
+ soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \
harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \
graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \
libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \
opus>=1.1:${PORTSDIR}/audio/opus \
libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \
- sqlite3>=3.8.3.1:${PORTSDIR}/databases/sqlite3 \
+ sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \
v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \
zip:${PORTSDIR}/archivers/zip \
@@ -78,11 +77,11 @@ CXXFLAGS+= -O1
.endif
.if ${PORT_OPTIONS:MALSA}
-BUILD_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib
+RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib
.endif
.if ${PORT_OPTIONS:MGSTREAMER}
-BUILD_DEPENDS+= gstreamer1-libav>=1.2.4:${PORTSDIR}/multimedia/gstreamer1-libav
+RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:${PORTSDIR}/multimedia/gstreamer1-libav
.endif
post-extract:
diff --git a/www/firefox/Makefile.options b/www/firefox/Makefile.options
index 22c59d7d5bda..d7db550caedc 100644
--- a/www/firefox/Makefile.options
+++ b/www/firefox/Makefile.options
@@ -1,12 +1,13 @@
# -*- makefile-bsdmake -*-
-OPTIONS_DEFINE+= DBUS DEBUG GCONF GIO GNOMEUI GNOMEVFS2 GSTREAMER \
+OPTIONS_DEFINE+= DBUS DEBUG DTRACE GCONF GIO GNOMEUI GNOMEVFS2 GSTREAMER \
LIBPROXY LOGGING OPTIMIZED_CFLAGS PGO PROFILE TEST
OPTIONS_DEFAULT+= ALSA DBUS GIO GSTREAMER LOGGING OPTIMIZED_CFLAGS
OPTIONS_MULTI+= AUDIO
OPTIONS_MULTI_AUDIO= ALSA PULSEAUDIO
+DTRACE_DESC?= Build with DTrace probes # move to bsd.options.desc.mk
ENIGMAIL_DESC?= Enigmail extension
GIO_DESC?= GIO for file I/O # move to bsd.options.desc.mk
GNOMEUI_DESC?= libgnomeui support module
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index 1170517eb1b6..49e93b662165 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,2 +1,2 @@
-SHA256 (firefox-30.0.source.tar.bz2) = 1e95740a8cf7095e210fb6a2313c4d0fba4fdf44ee7c327d01f202638403c22c
-SIZE (firefox-30.0.source.tar.bz2) = 143171952
+SHA256 (firefox-31.0.source.tar.bz2) = 95c789f2f171c4c7bd832999a22bfa9461ac47ba33e97a46392c90e576baf9db
+SIZE (firefox-31.0.source.tar.bz2) = 147507120
diff --git a/www/firefox/files/patch-bug1013882 b/www/firefox/files/patch-bug1013882
index 14b1e81df5b1..86dc379fe50f 100644
--- a/www/firefox/files/patch-bug1013882
+++ b/www/firefox/files/patch-bug1013882
@@ -1,14 +1,69 @@
---- browser/installer/package-manifest.in~
+diff --git b2g/installer/Makefile.in b2g/installer/Makefile.in
+index 754312a..c69904c 100644
+--- b2g/installer/Makefile.in
++++ b2g/installer/Makefile.in
+@@ -63,6 +63,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)))
+ DEFINES += -DMOZ_RTSP
+ endif
+
++ifdef MOZ_DEBUG
++DEFINES += -DMOZ_DEBUG=1
++endif
++
+ ifdef GKMEDIAS_SHARED_LIBRARY
+ DEFINES += -DGKMEDIAS_SHARED_LIBRARY
+ endif
+diff --git b2g/installer/package-manifest.in b2g/installer/package-manifest.in
+index 17d433c..0416187 100644
+--- b2g/installer/package-manifest.in
++++ b2g/installer/package-manifest.in
+@@ -576,7 +576,7 @@
+ @BINPATH@/components/MozKeyboard.js
+ @BINPATH@/components/InputMethod.manifest
+
+-#ifdef MOZ_DEBUG
++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
+ @BINPATH@/components/TestInterfaceJS.js
+ @BINPATH@/components/TestInterfaceJS.manifest
+ #endif
+diff --git browser/installer/package-manifest.in browser/installer/package-manifest.in
+index b509fd4..195345c 100644
+--- browser/installer/package-manifest.in
+++ browser/installer/package-manifest.in
-@@ -573,11 +573,6 @@
+@@ -583,7 +583,7 @@
@BINPATH@/components/MozKeyboard.js
@BINPATH@/components/InputMethod.manifest
-#ifdef MOZ_DEBUG
--@BINPATH@/components/TestInterfaceJS.js
--@BINPATH@/components/TestInterfaceJS.manifest
--#endif
--
- ; Modules
- @BINPATH@/browser/modules/*
- @BINPATH@/modules/*
++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
+ @BINPATH@/components/TestInterfaceJS.js
+ @BINPATH@/components/TestInterfaceJS.manifest
+ #endif
+diff --git mobile/android/installer/Makefile.in mobile/android/installer/Makefile.in
+index 96dceab..3528ad6 100644
+--- mobile/android/installer/Makefile.in
++++ mobile/android/installer/Makefile.in
+@@ -41,6 +41,10 @@ BINPATH = bin
+ endif
+ DEFINES += -DBINPATH=$(BINPATH)
+
++ifdef MOZ_DEBUG
++DEFINES += -DMOZ_DEBUG=1
++endif
++
+ ifdef ENABLE_MARIONETTE
+ DEFINES += -DENABLE_MARIONETTE=1
+ endif
+diff --git mobile/android/installer/package-manifest.in mobile/android/installer/package-manifest.in
+index 994580b..cf142df 100644
+--- mobile/android/installer/package-manifest.in
++++ mobile/android/installer/package-manifest.in
+@@ -440,7 +440,7 @@
+ @BINPATH@/components/dom_webspeechsynth.xpt
+ #endif
+
+-#ifdef MOZ_DEBUG
++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
+ @BINPATH@/components/TestInterfaceJS.js
+ @BINPATH@/components/TestInterfaceJS.manifest
+ #endif
diff --git a/www/firefox/files/patch-bug1026499 b/www/firefox/files/patch-bug1026499
new file mode 100644
index 000000000000..e446f22c64cf
--- /dev/null
+++ b/www/firefox/files/patch-bug1026499
@@ -0,0 +1,68 @@
+commit 8d0efe4
+Author: Martin Husemann <martin@NetBSD.org>
+Date: Wed Jun 18 18:12:22 2014 +0200
+
+ Bug 1026499 - Use MOZ_ALIGNED_DECL to declare union members in ipdl value declarations. r=bsmedberg
+---
+ ipc/ipdl/ipdl/cxx/ast.py | 7 ++++---
+ ipc/ipdl/ipdl/cxx/cgen.py | 5 ++++-
+ ipc/ipdl/ipdl/lower.py | 2 +-
+ 4 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git ipc/ipdl/ipdl/cxx/ast.py ipc/ipdl/ipdl/cxx/ast.py
+index 3180a65..c2d945b 100644
+--- ipc/ipdl/ipdl/cxx/ast.py
++++ ipc/ipdl/ipdl/cxx/ast.py
+@@ -336,12 +336,13 @@ Type.VOID = Type('void')
+ Type.VOIDPTR = Type('void', ptr=1)
+
+ class TypeArray(Node):
+- def __init__(self, basetype, nmemb):
+- '''the type |basetype DECLNAME[nmemb]|. |nmemb| is an Expr'''
++ def __init__(self, basetype, nmemb, alignType):
++ '''the type |basetype DECLNAME[nmemb]|. |nmemb| is an Expr, |alignType| is a type'''
+ self.basetype = basetype
+ self.nmemb = nmemb
++ self.alignType = alignType
+ def __deepcopy__(self, memo):
+- return TypeArray(deepcopy(self.basetype, memo), nmemb)
++ return TypeArray(deepcopy(self.basetype, memo), nmemb, alignType)
+
+ class TypeEnum(Node):
+ def __init__(self, name=None):
+diff --git ipc/ipdl/ipdl/cxx/cgen.py ipc/ipdl/ipdl/cxx/cgen.py
+index 48b0988..bc914cf 100644
+--- ipc/ipdl/ipdl/cxx/cgen.py
++++ ipc/ipdl/ipdl/cxx/cgen.py
+@@ -101,6 +101,7 @@ class CxxCodeGen(CodePrinter, Visitor):
+ def visitDecl(self, d):
+ # C-syntax arrays make code generation much more annoying
+ if isinstance(d.type, TypeArray):
++ self.write('MOZ_ALIGNED_DECL(')
+ d.type.basetype.accept(self)
+ else:
+ d.type.accept(self)
+@@ -111,7 +112,9 @@ class CxxCodeGen(CodePrinter, Visitor):
+ if isinstance(d.type, TypeArray):
+ self.write('[')
+ d.type.nmemb.accept(self)
+- self.write(']')
++ self.write('], MOZ_ALIGNOF(')
++ d.type.alignType.accept(self)
++ self.write('))')
+
+ def visitParam(self, p):
+ self.visitDecl(p)
+diff --git ipc/ipdl/ipdl/lower.py ipc/ipdl/ipdl/lower.py
+index e97a34c..9360f3c 100644
+--- ipc/ipdl/ipdl/lower.py
++++ ipc/ipdl/ipdl/lower.py
+@@ -768,7 +768,7 @@ IPDL union type."""
+ if self.recursive:
+ return self.ptrToType()
+ else:
+- return TypeArray(Type('char'), ExprSizeof(self.internalType()))
++ return TypeArray(Type('char'), ExprSizeof(self.internalType()), self.internalType())
+
+ def unionValue(self):
+ # NB: knows that Union's storage C union is named |mValue|
diff --git a/www/firefox/files/patch-bug1026828 b/www/firefox/files/patch-bug1026828
new file mode 100644
index 000000000000..69e79f5ac560
--- /dev/null
+++ b/www/firefox/files/patch-bug1026828
@@ -0,0 +1,20 @@
+diff --git storage/src/moz.build storage/src/moz.build
+index 4cd2551..5c40536 100644
+--- storage/src/moz.build
++++ storage/src/moz.build
+@@ -50,11 +50,14 @@ FINAL_LIBRARY = 'storagecomps'
+ # (such as NSS) might trigger an initialization of sqlite and allocation
+ # of memory using the default allocator, prior to the storage service
+ # registering its allocator, causing memory management failures (bug 938730).
++# However, this is not an issue if both the jemalloc allocator and the default
++# allocator are the same thing.
+ #
+ # Note: On Windows our sqlite build assumes we use jemalloc. If you disable
+ # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
+ # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
+-if CONFIG['MOZ_MEMORY'] and not CONFIG['MOZ_NATIVE_SQLITE']:
++if CONFIG['MOZ_MEMORY'] and (not CONFIG['MOZ_NATIVE_SQLITE']
++ or CONFIG['MOZ_NATIVE_JEMALLOC']):
+ if CONFIG['OS_TARGET'] != 'Android':
+ DEFINES['MOZ_STORAGE_MEMORY'] = True
+
diff --git a/www/firefox/files/patch-bug1041381 b/www/firefox/files/patch-bug1041381
new file mode 100644
index 000000000000..ef90b7b00c3f
--- /dev/null
+++ b/www/firefox/files/patch-bug1041381
@@ -0,0 +1,12 @@
+diff --git config/rules.mk config/rules.mk
+index 1dee8c3..4d67eda 100644
+--- config/rules.mk
++++ config/rules.mk
+@@ -822,6 +822,7 @@ endif
+ ifdef DTRACE_PROBE_OBJ
+ EXTRA_DEPS += $(DTRACE_PROBE_OBJ)
+ OBJS += $(DTRACE_PROBE_OBJ)
++EXCLUDED_OBJS += $(DTRACE_PROBE_OBJ)
+ endif
+
+ $(filter %.$(LIB_SUFFIX),$(LIBRARY)): $(OBJS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
diff --git a/www/firefox/files/patch-bug1041795 b/www/firefox/files/patch-bug1041795
new file mode 100644
index 000000000000..3e92884412fb
--- /dev/null
+++ b/www/firefox/files/patch-bug1041795
@@ -0,0 +1,48 @@
+diff --git config/rules.mk config/rules.mk
+index 4d67eda..783942f 100644
+--- config/rules.mk
++++ config/rules.mk
+@@ -858,7 +858,7 @@ ifdef DTRACE_PROBE_OBJ
+ ifndef DTRACE_LIB_DEPENDENT
+ NON_DTRACE_OBJS := $(filter-out $(DTRACE_PROBE_OBJ),$(OBJS))
+ $(DTRACE_PROBE_OBJ): $(NON_DTRACE_OBJS)
+- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
++ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
+ endif
+ endif
+ endif
+@@ -876,7 +876,7 @@ ifndef INCREMENTAL_LINKER
+ endif
+ ifdef DTRACE_LIB_DEPENDENT
+ ifndef XP_MACOSX
+- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
++ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
+ endif
+ $(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS))
+ @$(RM) $(DTRACE_PROBE_OBJ)
+diff --git js/src/Makefile.in js/src/Makefile.in
+index 28ca5e8..96793d7 100644
+--- js/src/Makefile.in
++++ js/src/Makefile.in
+@@ -342,7 +342,7 @@ endif
+
+ ifdef HAVE_DTRACE
+ $(CURDIR)/javascript-trace.h: $(srcdir)/devtools/javascript-trace.d
+- dtrace -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
++ dtrace -x nolibs -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
+ sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
+ -e '/const/!s/char \*/const char */g' \
+ javascript-trace.h.in > javascript-trace.h
+diff --git probes/Makefile.in probes/Makefile.in
+index 6d18f34..deec83f 100644
+--- probes/Makefile.in
++++ probes/Makefile.in
+@@ -7,7 +7,7 @@ export:: $(DIST)/include/mozilla-trace.h
+
+ # Replace _DTRACE_VERSION with INCLUDE_MOZILLA_DTRACE
+ $(DIST)/include/mozilla-trace.h: mozilla-trace.d Makefile
+- dtrace -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp
++ dtrace -x nolibs -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp
+ sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
+ mozilla-trace.h.tmp > $(DIST)/include/mozilla-trace.h
+ rm mozilla-trace.h.tmp
diff --git a/www/firefox/files/patch-bug702179 b/www/firefox/files/patch-bug702179
new file mode 100644
index 000000000000..d7b90a082519
--- /dev/null
+++ b/www/firefox/files/patch-bug702179
@@ -0,0 +1,36 @@
+commit 6ddaacd
+Author: Ginn Chen <ginn.chen@oracle.com>
+Date: Wed Nov 30 07:23:46 2011 +0800
+
+ Bug 702179 dtrace probes are not installed on Solaris with static js lib r=glandium
+---
+ configure.in | 2 +-
+ js/src/Makefile.in | 2 --
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git configure.in configure.in
+index 66549c1..75b848d 100644
+--- configure.in
++++ configure.in
+@@ -966,7 +966,7 @@ MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
+ MOZ_PNG_CFLAGS="-I$_objdir/dist/include" # needed for freetype compilation
+ MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/media/libpng)'
+
+-MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(LIBXUL_DIST)/lib)'
++MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(DEPTH)/js/src)'
+ MOZ_JS_SHARED_LIBS='$(call EXPAND_LIBNAME_PATH,mozjs,$(LIBXUL_DIST)/lib)'
+ MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
+ XPCOM_FROZEN_LDOPTS='$(call EXPAND_LIBNAME_PATH,xul mozalloc,$(LIBXUL_DIST)/bin)'
+diff --git js/src/Makefile.in js/src/Makefile.in
+index e28160a..28ca5e8 100644
+--- js/src/Makefile.in
++++ js/src/Makefile.in
+@@ -18,8 +18,6 @@ run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
+ STATIC_LIBRARY_NAME = js_static
+ LIBS = $(NSPR_LIBS)
+
+-DIST_INSTALL = 1
+-
+ ifdef JS_STANDALONE
+ SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt)
+ ifndef MOZ_NATIVE_ZLIB
diff --git a/www/firefox/files/patch-bug779713 b/www/firefox/files/patch-bug779713
new file mode 100644
index 000000000000..e4643f4422cb
--- /dev/null
+++ b/www/firefox/files/patch-bug779713
@@ -0,0 +1,77 @@
+diff --git mfbt/Alignment.h mfbt/Alignment.h
+index e0843ca..353ec36 100644
+--- mfbt/Alignment.h
++++ mfbt/Alignment.h
+@@ -9,11 +9,20 @@
+ #ifndef mozilla_Alignment_h
+ #define mozilla_Alignment_h
+
++#include "mozilla/Attributes.h"
++
+ #include <stddef.h>
+ #include <stdint.h>
+
+ namespace mozilla {
+
++#if defined(MOZ_HAVE_CXX11_ALIGNAS)
++#define MOZ_ALIGNOF(T) alignof(T)
++#elif defined(__GNUC__)
++#define MOZ_ALIGNOF(T) __alignof__(T)
++#elif defined(_MSC_VER)
++#define MOZ_ALIGNOF(T) __alignof(T)
++#else
+ /*
+ * This class, and the corresponding macro MOZ_ALIGNOF, figures out how many
+ * bytes of alignment a given type needs.
+@@ -32,6 +41,7 @@ public:
+ };
+
+ #define MOZ_ALIGNOF(T) mozilla::AlignmentFinder<T>::alignment
++#endif
+
+ /*
+ * Declare the MOZ_ALIGNED_DECL macro for declaring aligned types.
+@@ -43,7 +53,10 @@ public:
+ * will declare a two-character array |arr| aligned to 8 bytes.
+ */
+
+-#if defined(__GNUC__)
++#if defined(MOZ_HAVE_CXX11_ALIGNAS)
++# define MOZ_ALIGNED_DECL(_type, _align) \
++ alignas(_align) _type
++#elif defined(__GNUC__)
+ # define MOZ_ALIGNED_DECL(_type, _align) \
+ _type __attribute__((aligned(_align)))
+ #elif defined(_MSC_VER)
+diff --git mfbt/Attributes.h mfbt/Attributes.h
+index d317766..ddb13da 100644
+--- mfbt/Attributes.h
++++ mfbt/Attributes.h
+@@ -54,6 +54,9 @@
+ # ifndef __has_extension
+ # define __has_extension __has_feature /* compatibility, for older versions of clang */
+ # endif
++# if __has_extension(cxx_alignas)
++# define MOZ_HAVE_CXX11_ALIGNAS
++# endif
+ # if __has_extension(cxx_constexpr)
+ # define MOZ_HAVE_CXX11_CONSTEXPR
+ # endif
+@@ -75,6 +78,9 @@
+ # endif
+ #elif defined(__GNUC__)
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
++# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0)
++# define MOZ_HAVE_CXX11_ALIGNAS
++# endif
+ # if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0)
+ # define MOZ_HAVE_CXX11_OVERRIDE
+ # define MOZ_HAVE_CXX11_FINAL final
+@@ -96,6 +102,7 @@
+ # define MOZ_HAVE_NORETURN __attribute__((noreturn))
+ #elif defined(_MSC_VER)
+ # if _MSC_VER >= 1800
++# define MOZ_HAVE_CXX11_ALIGNAS
+ # define MOZ_HAVE_CXX11_DELETE
+ # endif
+ # if _MSC_VER >= 1700
diff --git a/www/firefox/files/patch-bug826985 b/www/firefox/files/patch-bug826985
index 3c633bbb466c..b8eee831f66d 100644
--- a/www/firefox/files/patch-bug826985
+++ b/www/firefox/files/patch-bug826985
@@ -151,8 +151,8 @@ index d46b5aa..e452223 100644
],
diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
index 9c16ffa..1db3794 100644
---- toolkit/library/Makefile.in
-+++ toolkit/library/Makefile.in
+--- toolkit/library/libxul.mk
++++ toolkit/library/libxul.mk
@@ -182,6 +182,10 @@ endif
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib)
diff --git a/www/firefox/files/patch-bug847568 b/www/firefox/files/patch-bug847568
index aa188f985b8b..1504654a4341 100644
--- a/www/firefox/files/patch-bug847568
+++ b/www/firefox/files/patch-bug847568
@@ -187,10 +187,10 @@ index 1cacbd7..f5d72bb 100644
# Generate the include file containing compact, static definitions
# for effective TLD data.
etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat
-diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
+diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
index 67f0db9..d42137a 100644
---- toolkit/library/Makefile.in
-+++ toolkit/library/Makefile.in
+--- toolkit/library/libxul.mk
++++ toolkit/library/libxul.mk
@@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN
EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS)
endif
diff --git a/www/firefox/files/patch-bug893397 b/www/firefox/files/patch-bug893397
deleted file mode 100644
index 24ff54b9bc99..000000000000
--- a/www/firefox/files/patch-bug893397
+++ /dev/null
@@ -1,201 +0,0 @@
-diff --git configure.in configure.in
-index 549ad06..2878d9f 100644
---- configure.in
-+++ configure.in
-@@ -8091,7 +8091,7 @@ case "$OS_TARGET" in
- NECKO_WIFI=1
- fi
- ;;
-- Darwin|SunOS|WINNT)
-+ Darwin|FreeBSD|SunOS|WINNT)
- NECKO_WIFI=1
- ;;
- Linux)
-diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build
-index 07b01de..11706af 100644
---- netwerk/wifi/moz.build
-+++ netwerk/wifi/moz.build
-@@ -35,6 +35,10 @@ if CONFIG['OS_ARCH'] == 'Darwin':
- UNIFIED_SOURCES += [
- 'osx_corewlan.mm',
- ]
-+elif CONFIG['OS_ARCH'] == 'FreeBSD':
-+ UNIFIED_SOURCES += [
-+ 'nsWifiScannerFreeBSD.cpp',
-+ ]
- elif CONFIG['OS_ARCH'] == 'WINNT':
- UNIFIED_SOURCES += [
- 'nsWifiScannerWin.cpp',
-diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp
-new file mode 100644
-index 0000000..80d4cb6
---- /dev/null
-+++ netwerk/wifi/nsWifiScannerFreeBSD.cpp
-@@ -0,0 +1,167 @@
-+/* This Source Code Form is subject to the terms of the Mozilla Public
-+ * License, v. 2.0. If a copy of the MPL was not distributed with this
-+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-+
-+// Developed by J.R. Oldroyd <fbsd@opal.com>, December 2012.
-+
-+// For FreeBSD we use the getifaddrs(3) to obtain the list of interfaces
-+// and then check for those with an 802.11 media type and able to return
-+// a list of stations. This is similar to ifconfig(8).
-+
-+#include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/socket.h>
-+#include <net/if.h>
-+#include <net/if_media.h>
-+#include <net80211/ieee80211_ioctl.h>
-+
-+#include <ifaddrs.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+#include "nsWifiAccessPoint.h"
-+
-+using namespace mozilla;
-+
-+static nsresult
-+FreeBSDGetAccessPointData(nsCOMArray<nsWifiAccessPoint> &accessPoints)
-+{
-+ // get list of interfaces
-+ struct ifaddrs *ifal;
-+ if (getifaddrs(&ifal) < 0) {
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ accessPoints.Clear();
-+
-+ // loop through the interfaces
-+ nsresult rv = NS_ERROR_FAILURE;
-+ struct ifaddrs *ifa;
-+ for (ifa = ifal; ifa; ifa = ifa->ifa_next) {
-+ // limit to one interface per address
-+ if (ifa->ifa_addr->sa_family != AF_LINK) {
-+ continue;
-+ }
-+
-+ // store interface name in socket structure
-+ struct ifreq ifr;
-+ memset(&ifr, 0, sizeof(ifr));
-+ strncpy(ifr.ifr_name, ifa->ifa_name, sizeof(ifr.ifr_name));
-+ ifr.ifr_addr.sa_family = AF_LOCAL;
-+
-+ // open socket to interface
-+ int s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0);
-+ if (s < 0) {
-+ continue;
-+ }
-+
-+ // clear interface media structure
-+ struct ifmediareq ifmr;
-+ memset(&ifmr, 0, sizeof(ifmr));
-+ strncpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name));
-+
-+ // get interface media information
-+ if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // check interface is a WiFi interface
-+ if (IFM_TYPE(ifmr.ifm_active) != IFM_IEEE80211) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // perform WiFi scan
-+ struct ieee80211req i802r;
-+ char iscanbuf[32*1024];
-+ memset(&i802r, 0, sizeof(i802r));
-+ strncpy(i802r.i_name, ifa->ifa_name, sizeof(i802r.i_name));
-+ i802r.i_type = IEEE80211_IOC_SCAN_RESULTS;
-+ i802r.i_data = iscanbuf;
-+ i802r.i_len = sizeof(iscanbuf);
-+ if (ioctl(s, SIOCG80211, &i802r) < 0) {
-+ close(s);
-+ continue;
-+ }
-+
-+ // close socket
-+ close(s);
-+
-+ // loop through WiFi networks and build geoloc-lookup structure
-+ char *vsr = (char *) i802r.i_data;
-+ unsigned len = i802r.i_len;
-+ while (len >= sizeof(struct ieee80211req_scan_result)) {
-+ struct ieee80211req_scan_result *isr =
-+ (struct ieee80211req_scan_result *) vsr;
-+
-+ // determine size of this entry
-+ char *id;
-+ int idlen;
-+ if (isr->isr_meshid_len) {
-+ id = vsr + isr->isr_ie_off + isr->isr_ssid_len;
-+ idlen = isr->isr_meshid_len;
-+ } else {
-+ id = vsr + isr->isr_ie_off;
-+ idlen = isr->isr_ssid_len;
-+ }
-+
-+ // copy network data
-+ char ssid[IEEE80211_NWID_LEN+1];
-+ strncpy(ssid, id, idlen);
-+ ssid[idlen] = '\0';
-+ nsWifiAccessPoint *ap = new nsWifiAccessPoint();
-+ ap->setSSID(ssid, strlen(ssid));
-+ ap->setMac(isr->isr_bssid);
-+ ap->setSignal(isr->isr_rssi);
-+ accessPoints.AppendObject(ap);
-+ rv = NS_OK;
-+
-+ // log the data
-+ LOG(( "FreeBSD access point: "
-+ "SSID: %s, MAC: %02x-%02x-%02x-%02x-%02x-%02x, "
-+ "Strength: %d, Channel: %dMHz\n",
-+ ssid, isr->isr_bssid[0], isr->isr_bssid[1], isr->isr_bssid[2],
-+ isr->isr_bssid[3], isr->isr_bssid[4], isr->isr_bssid[5],
-+ isr->isr_rssi, isr->isr_freq));
-+
-+ // increment pointers
-+ len -= isr->isr_len;
-+ vsr += isr->isr_len;
-+ }
-+ }
-+
-+ freeifaddrs(ifal);
-+
-+ return rv;
-+}
-+
-+nsresult
-+nsWifiMonitor::DoScan()
-+{
-+ // Regularly get the access point data.
-+
-+ nsCOMArray<nsWifiAccessPoint> lastAccessPoints;
-+ nsCOMArray<nsWifiAccessPoint> accessPoints;
-+
-+ do {
-+ nsresult rv = FreeBSDGetAccessPointData(accessPoints);
-+ if (NS_FAILED(rv))
-+ return rv;
-+
-+ bool accessPointsChanged = !AccessPointsEqual(accessPoints, lastAccessPoints);
-+ ReplaceArray(lastAccessPoints, accessPoints);
-+
-+ rv = CallWifiListeners(lastAccessPoints, accessPointsChanged);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ // wait for some reasonable amount of time. pref?
-+ LOG(("waiting on monitor\n"));
-+
-+ ReentrantMonitorAutoEnter mon(mReentrantMonitor);
-+ mon.Wait(PR_SecondsToInterval(60));
-+ }
-+ while (mKeepGoing);
-+
-+ return NS_OK;
-+}
diff --git a/www/firefox/files/patch-bug916589 b/www/firefox/files/patch-bug916589
deleted file mode 100644
index c6c6c58c9175..000000000000
--- a/www/firefox/files/patch-bug916589
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-index 5b50785..7cf47d5 100644
---- media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-+++ media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
-@@ -33,9 +33,10 @@
- #ifndef _SYS_QUEUE_H_
- #define _SYS_QUEUE_H_
-
--#if !defined(__FreeBSD__) && !defined(DARWIN)
- #include <stddef.h>
--#define __offsetof offsetof
-+
-+#ifndef offsetof
-+#define offsetof(type, field) ((size_t)(&((type *)0)->field))
- #endif
-
- #define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
-@@ -43,8 +44,6 @@
- (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
- (var) = (tvar))
-
--// #define __offsetof(type, field) ((size_t)(&((type *)0)->field))
--
- /*
- * This file defines four types of data structures: singly-linked lists,
- * singly-linked tail queues, lists and tail queues.
-@@ -285,7 +284,7 @@ struct { \
- (STAILQ_EMPTY((head)) ? \
- NULL : \
- ((struct type *) \
-- ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
-+ ((char *)((head)->stqh_last) - offsetof(struct type, field))))
-
- #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
-
diff --git a/www/firefox/files/patch-bug962345 b/www/firefox/files/patch-bug962345
deleted file mode 100644
index 98bb02ffd8c3..000000000000
--- a/www/firefox/files/patch-bug962345
+++ /dev/null
@@ -1,9 +0,0 @@
-diff --git config/system-headers config/system-headers
-index 8803150..ae38d68 100644
---- config/system-headers
-+++ config/system-headers
-@@ -1144,3 +1144,4 @@ unicode/utypes.h
- #endif
- libutil.h
- unwind.h
-+cairo-qt.h
diff --git a/www/firefox/files/patch-bug975397 b/www/firefox/files/patch-bug975397
deleted file mode 100644
index 6257e53e772d..000000000000
--- a/www/firefox/files/patch-bug975397
+++ /dev/null
@@ -1,73 +0,0 @@
-commit 2fe45fb
-Author: L. David Baron <dbaron@dbaron.org>
-Date: Wed Apr 2 22:56:19 2014 -0700
-
- Bug 975397 - Call TrackImage when constructing a new nsStyleBorder. r=heycam
-
- I confirmed that the crashtest crashes in the harness without the patch.
-
- --HG--
- rename : layout/reftests/backgrounds/blue-32x32.png => layout/style/crashtests/blue-32x32.png
----
- layout/base/nsCSSRendering.cpp | 9 +++++++++
- layout/style/crashtests/blue-32x32.png | Bin 0 -> 110 bytes
- layout/style/crashtests/border-image-visited-link.html | 10 ++++++++++
- layout/style/crashtests/crashtests.list | 1 +
- 4 files changed, 20 insertions(+)
-
-diff --git layout/base/nsCSSRendering.cpp layout/base/nsCSSRendering.cpp
-index d91309b..2d8bb46 100644
---- layout/base/nsCSSRendering.cpp
-+++ layout/base/nsCSSRendering.cpp
-@@ -419,6 +419,10 @@ nsCSSRendering::PaintBorder(nsPresContext* aPresContext,
- }
-
- nsStyleBorder newStyleBorder(*styleBorder);
-+ // We could do something fancy to avoid the TrackImage/UntrackImage
-+ // work, but it doesn't seem worth it. (We need to call TrackImage
-+ // since we're not going through nsRuleNode::ComputeBorderData.)
-+ newStyleBorder.TrackImage(aPresContext);
-
- NS_FOR_CSS_SIDES(side) {
- newStyleBorder.SetBorderColor(side,
-@@ -428,6 +432,11 @@ nsCSSRendering::PaintBorder(nsPresContext* aPresContext,
- PaintBorderWithStyleBorder(aPresContext, aRenderingContext, aForFrame,
- aDirtyRect, aBorderArea, newStyleBorder,
- aStyleContext, aSkipSides);
-+
-+ // We could do something fancy to avoid the TrackImage/UntrackImage
-+ // work, but it doesn't seem worth it. (We need to call UntrackImage
-+ // since we're not going through nsStyleBorder::Destroy.)
-+ newStyleBorder.UntrackImage(aPresContext);
- }
-
- void
-diff --git layout/style/crashtests/blue-32x32.png layout/style/crashtests/blue-32x32.png
-new file mode 100644
-index 0000000..deefd19
-Binary files /dev/null and layout/style/crashtests/blue-32x32.png differ
-diff --git layout/style/crashtests/border-image-visited-link.html layout/style/crashtests/border-image-visited-link.html
-new file mode 100644
-index 0000000..b6e3ae5
---- /dev/null
-+++ layout/style/crashtests/border-image-visited-link.html
-@@ -0,0 +1,10 @@
-+<!DOCTYPE HTML>
-+<title>border-image on link with visited styles</title>
-+<style>
-+
-+:link { color: blue }
-+:visited { color: purple }
-+:link, :visited { border: medium solid; border-image: url(blue-32x32.png) 4 4 4 4; }
-+
-+</style>
-+<a href="http://example.com/">test</a>
-diff --git layout/style/crashtests/crashtests.list layout/style/crashtests/crashtests.list
-index e414f28..acd709c3 100644
---- layout/style/crashtests/crashtests.list
-+++ layout/style/crashtests/crashtests.list
-@@ -104,3 +104,4 @@ load 945048-1.html
- load 972199-1.html
- load 989965-1.html
- load large_border_image_width.html
-+load border-image-visited-link.html
diff --git a/www/firefox/files/patch-ipc-chromium-Makefile.in b/www/firefox/files/patch-ipc-chromium-Makefile.in
deleted file mode 100644
index fc5808594fb4..000000000000
--- a/www/firefox/files/patch-ipc-chromium-Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- ipc/chromium/Makefile.in~
-+++ ipc/chromium/Makefile.in
-@@ -28,6 +28,8 @@ include $(topsrcdir)/config/rules.mk
-
- ifdef MOZ_NATIVE_LIBEVENT # {
-
-+OS_CPPFLAGS += $(filter %/compat, $(MOZ_LIBEVENT_CFLAGS))
-+
- export-preqs = \
- $(call mkdir_deps,$(CURDIR)/third_party/libevent) \
- $(NULL)
diff --git a/www/firefox/files/patch-z-bug517422 b/www/firefox/files/patch-z-bug517422
index f1d0278a49af..17432a29775c 100644
--- a/www/firefox/files/patch-z-bug517422
+++ b/www/firefox/files/patch-z-bug517422
@@ -251,7 +251,7 @@ index 87db361..7947626 100644
+MOZ_NATIVE_SOUNDTOUCH=)
+
+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
-+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.7.0)
++ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.8.0)
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
@@ -423,10 +423,10 @@ index 00e77e7..55f48ab 100644
}, {
'dependencies': [
'<(DEPTH)/third_party/opus/opus.gyp:opus'
-diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
+diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
index d42137a..695e75a8 100644
---- toolkit/library/Makefile.in
-+++ toolkit/library/Makefile.in
+--- toolkit/library/libxul.mk
++++ toolkit/library/libxul.mk
@@ -77,6 +77,34 @@ ifdef MOZ_NATIVE_HUNSPELL
EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS)
endif