aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--community/firefox-esr/APKBUILD162
-rw-r--r--community/firefox-esr/allow-utf8-fallback.patch16
-rw-r--r--community/firefox-esr/disable-hunspell_hooks.patch11
-rw-r--r--community/firefox-esr/disable-moz-stackwalk.patch27
-rw-r--r--community/firefox-esr/fix-arm-atomics-grsec.patch36
-rw-r--r--community/firefox-esr/fix-stack-overflow.patch45
-rw-r--r--community/firefox-esr/fix-toolkit.patch92
-rw-r--r--community/firefox-esr/fix-tools.patch69
-rw-r--r--community/firefox-esr/gcc6-fix-compilation.patch49
-rw-r--r--community/firefox-esr/libavutil.patch12
-rw-r--r--community/firefox-esr/mozconfig54
-rw-r--r--community/firefox-esr/musl-pthread-setname.patch14
-rw-r--r--community/firefox-esr/rhbz-966424.patch14
-rw-r--r--community/firefox-esr/vendor.js5
14 files changed, 266 insertions, 340 deletions
diff --git a/community/firefox-esr/APKBUILD b/community/firefox-esr/APKBUILD
index 9e50cb6dec..b5d4253d7a 100644
--- a/community/firefox-esr/APKBUILD
+++ b/community/firefox-esr/APKBUILD
@@ -1,14 +1,13 @@
-# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Contributor: William Pitcock <nenolod@dereferenced.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=firefox-esr
-pkgver=45.8.0
+pkgver=52.0.2
_pkgver=$pkgver
_xulver=$pkgver
-pkgrel=1
-pkgdesc="Firefox web browser"
+pkgrel=0
+pkgdesc="Firefox web browser - Extended Support Release"
url="https://www.mozilla.org/en-US/firefox/organizations/faq/"
-arch="all"
+arch="all !aarch64"
license="GPL LGPL MPL"
depends=""
depends_dev="
@@ -16,9 +15,8 @@ depends_dev="
bzip2-dev
dbus-glib-dev
gconf-dev
- gst-plugins-base1-dev
- gstreamer1-dev
gtk+2.0-dev
+ gtk+3.0-dev
hunspell-dev
icu-dev
libevent-dev
@@ -54,41 +52,37 @@ makedepends="$depends_dev
install=""
subpackages="$pkgname-dev"
source="https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz
- mozconfig
- vendor.js
+ stab.h
0002-Use-C99-math-isfinite.patch
- fix-arm-atomics-grsec.patch
- fix-arm-version-detect.patch
+ fix-fortify-inline.patch
+ disable-hunspell_hooks.patch
+ fix-seccomp-bpf.patch
fix-toolkit.patch
fix-tools.patch
- fix-seccomp-bpf.patch
- mozilla-build-arm.patch
- disable-moz-stackwalk.patch
- stab.h
+ mallinfo.patch
+ musl-pthread-setname.patch
- rhbz-966424.patch
- fix-fortify-inline.patch
fix-fortify-system-wrappers.patch
- allow-utf8-fallback.patch
- libavutil.patch
- mallinfo.patch
- gcc6-fix-compilation.patch
+ fix-arm-atomics-grsec.patch
+ fix-arm-version-detect.patch
+ mozilla-build-arm.patch
+ disable-moz-stackwalk.patch
firefox.desktop
firefox-safe.desktop"
-_builddir="${srcdir}/firefox-${pkgver}esr"
-_mozappdir=/usr/lib/firefox-$pkgver
-_mozappdirdev=/usr/lib/firefox-devel-$pkgver
+builddir="${srcdir}/firefox-${pkgver}esr"/objdir
+_mozappdir=/usr/lib/firefox-${pkgver}
+_mozappdirdev=/usr/lib/firefox-devel-${pkgver}
# help our shared-object scanner to find the libs
ldpath="$_mozappdir"
prepare() {
local i
-
- cd "$_builddir" || return 1
+ mkdir -p "$builddir"
+ cd "$builddir"/..
for i in $source; do
case $i in
@@ -96,43 +90,88 @@ prepare() {
esac
done
cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
-
- cp "${srcdir}/mozconfig" .mozconfig
}
build() {
- cd "$_builddir"
+ cd "$builddir"
- # mozilla's buildsystem is on drugs
- export CFLAGS="$(echo $CFLAGS | sed -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')"
- export CXXFLAGS="$CFLAGS -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
export SHELL=/bin/sh
+ export BUILD_OFFICIAL=1
+ export MOZILLA_OFFICIAL=1
+ export USE_SHORT_LIBNAME=1
+ # gcc 6
+ export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2"
# set rpath so linker finds the libs
export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}"
- make -f client.mk build \
- STRIP="/bin/true" \
+
+ ../configure \
+ --prefix=/usr \
+ \
+ --disable-crashreporter \
+ --disable-elf-hack \
+ --disable-install-strip \
+ --disable-jemalloc \
+ --disable-profiling \
+ --disable-pulseaudio \
+ --disable-strip \
+ --disable-tests \
+ --disable-updater \
+ \
+ --enable-alsa \
+ --enable-default-toolkit=cairo-gtk3 \
+ --enable-gio \
+ --enable-gold=no \
+ --enable-official-branding \
+ --enable-optimize="$CFLAGS" \
+ --enable-pie \
+ --enable-startup-notification \
+ --enable-system-ffi \
+ --enable-system-hunspell \
+ --enable-system-sqlite \
+ \
+ --with-pthreads \
+ --with-system-bz2 \
+ --with-system-icu \
+ --with-system-jpeg \
+ --with-system-libevent \
+ --with-system-libvpx \
+ --with-system-nspr \
+ --with-system-nss \
+ --with-system-pixman \
+ --with-system-png \
+ --with-system-zlib \
|| return 1
+ make || return 1
+
+ # paxmark outside fakeroot
+ paxmark -msp dist/bin/xpcshell || return 1
- # we need set paxmark outside fakeroot
- paxmark -msp */dist/bin/xpcshell || return 1
}
package() {
- cd "$_builddir"
+ cd "$builddir"
# only used for startupcache creation.
local paxflags="-msp"
- paxmark "$paxflags" */dist/bin/xpcshell || return 1
+ paxmark "$paxflags" dist/bin/xpcshell || return 1
- make -j1 -f client.mk install \
+ make install \
DESTDIR="$pkgdir" \
MOZ_MAKE_FLAGS="$MAKEOPTS" \
|| return 1
install -m755 -d ${pkgdir}/usr/share/applications
install -m755 -d ${pkgdir}/usr/share/pixmaps
- install -m644 "$_builddir"/browser/branding/official/default48.png \
+
+ local png
+ for png in ../browser/branding/official/default*.png; do
+ local i=${_png%.png}
+ i=${i##*/default}
+ install -D -m644 "$png" "$pkgdir"/usr/share/icons/hicolor/${i}x${i}/apps/firefox.png || return 1
+ done
+
+ install -m644 "$builddir"/../browser/branding/official/default48.png \
${pkgdir}/usr/share/pixmaps/firefox.png || return 1
install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/firefox.desktop
install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/firefox-safe.desktop
@@ -160,10 +199,21 @@ __EOF__
# install our vendor prefs
install -d "$pkgdir"/$_mozappdir/browser/defaults/preferences
- cat "$srcdir"/vendor.js >> "$pkgdir"/$_mozappdir/browser/defaults/preferences/firefox-branding.js
+
+ cat >> "$pkgdir"/$_mozappdir/browser/defaults/preferences/firefox-branding.js <<- EOF
+ // Use LANG environment variable to choose locale
+ pref("intl.locale.matchOS", true);
+
+ // Disable default browser checking.
+ pref("browser.shell.checkDefaultBrowser", false);
+
+ // Don't disable our bundled extensions in the application directory
+ pref("extensions.autoDisableScopes", 11);
+ pref("extensions.shownSelectionUI", true);
+ EOF
# remove copied, huge, libraries
- rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozjs.so
+ rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozjs.so
rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozalloc.so
rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so
}
@@ -175,24 +225,20 @@ dev() {
default_dev
}
-sha512sums="f7b5e0c659b2e824cee7f3784e2d72c562915af91c7e316ec1519305755d2126d91b74c47f96c8b4fc7377710f295545c58b2f989c65c268fc23677ef8cf5c85 firefox-45.8.0esr.source.tar.xz
-e14b4a646230f7a752ef864b0e6a074fdac74d6c4abde2c31656eb10ac6f002a5c664d257bf3f4bd22544f10103e38d5fae49f84fcaae402b81940e72bcfe0e5 mozconfig
-cc10dba32d9c7faf1d99b8fdebc71bf0200ad10b976105edb45df696bf64a668b2b7aa8c3892a8056eb71fb071b0e0ae51c3ce2fb75acfb7e7035104c0e4fce3 vendor.js
-7e123144bc2b1efed149dfb41b255c447d43ea93a63ebe114d01945e6a6d69edc2f2a3c36980a93279106c1842355851b8b6c1d96679ee6be7b9b30513e0b1a8 0002-Use-C99-math-isfinite.patch
-4311464ae52b6d2e2b02c789c6d5fca9b3c211888a983aa609a62c2f2554516fea735ea90673387c69b38a30aa8453ed79faa44b5163df4293880d40df676b2d fix-arm-atomics-grsec.patch
-015e1ff6dbf920033982b5df95d869a0b7bf56c6964e45e50649ddf46d1ce09563458e45240c3ecb92808662b1300b67507f7af272ba184835d91068a9e7d5b0 fix-arm-version-detect.patch
-d3f2ec8684aa485e1d08df325281629adb120f2e79c0065b96e14b99ca2968a3c701d18dda1fd1cab482aec2bc4ee8f294b9fda970ae159f8dab655f2c91aca9 fix-toolkit.patch
-6322912a8b496332c593ee5c2069d346552299781148d6c829321a10be7f6550a6f7aab3d0cfeb08e1c4ecca2a79272ea7a6f31f1d2eb430c1b0041e3699c06c fix-tools.patch
-70863b985427b9653ce5e28d6064f078fb6d4ccf43dd1b68e72f97f44868fc0ce063161c39a4e77a0a1a207b7365d5dc7a7ca5e68c726825eba814f2b93e2f5d fix-seccomp-bpf.patch
-e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch
-c69cdb2d6c66180d6a67c386b862a5ed953aab4db434b054c9e1e6702bcc56ba219a4cb22747d9c891040a286388168e0cf5ca28a503389cd9708012fddf6c2b disable-moz-stackwalk.patch
+sha512sums="a0f31479e5265c7f40d3013c3dc8368c6bdf03f21f1c9054fb2ae5557065584da433b288b493680d6147a3b11155f41bd33ad2a5d53c6eaa507258c7e00d7335 firefox-52.0.2esr.source.tar.xz
0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
-06ededcd196af98b77991dcba3b710b0dfc061404adb4676fcc380be80410a2621f64d67257b0aefdf36f566e0ea1294b5405b7b4db43e83281a1c64d02da579 rhbz-966424.patch
+7e123144bc2b1efed149dfb41b255c447d43ea93a63ebe114d01945e6a6d69edc2f2a3c36980a93279106c1842355851b8b6c1d96679ee6be7b9b30513e0b1a8 0002-Use-C99-math-isfinite.patch
09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5 fix-fortify-inline.patch
-2a967e4619fd89a046bd40be7fdcef646fcb1eba5e47afc96aa1d59c25bcc8747cb07baee6c11f3b803db0981aced181534b806778e4d21e74958f5f4d74c784 fix-fortify-system-wrappers.patch
-ebbc2b1336197c289e9b7c073d196fb5734e1dad0109fe70538f8089b1873e4b55305cd39cefcf95cd4eb36715be6dff298856c496616e935ff5579452e62b09 allow-utf8-fallback.patch
-2213dbd7eb36f954add09977c0bb979aea79376164bc98d7e8957ecf584776bc11cc88b6d8235f9e04ac69d5975a47c2f52fd9aff9076326f15997657af8c9f3 libavutil.patch
+0fcc647af53a3ce21c2bc36e5631eb0935e7243ebb3ab59b5719542cc54a6ac023a4a857b43b75756efb9ed80c0aecaa94dc5679a3b3792f82e87bf2c1af82e1 disable-hunspell_hooks.patch
+70863b985427b9653ce5e28d6064f078fb6d4ccf43dd1b68e72f97f44868fc0ce063161c39a4e77a0a1a207b7365d5dc7a7ca5e68c726825eba814f2b93e2f5d fix-seccomp-bpf.patch
+a2925045154f4fd34e5fc056656f4f9da100341529e5d4104d249154db0c7863384083f421ce6e47e0f20566a8b20787fa35444c7933c03cd03f96f06dcd4532 fix-toolkit.patch
+7d7531a0dbb1b3c2f4cbf155168e750f274dbf19cd767d6395d479ef1626a651e714b41e353465d9d58239dc15256d83eeb1bf06c6adf47c521a0db5ee88bb50 fix-tools.patch
bdcd1b402d2ec94957ba5d08cbad7b1a7f59c251c311be9095208491a05abb05a956c79f27908e1f26b54a3679387b2f33a51e945b650671ad85c0a2d59a5a29 mallinfo.patch
-09288e3c9b94e7bfb4f764c506d98315ab3a44926cca59183dd22a84184c1de44f5dbe973367ec0ee0200d438c028e1dbe9fce4d9ce92f0e1367be50a9a72671 gcc6-fix-compilation.patch
+3f535b1e4e9a5a0506ef6f6d9427a84fae1efa3c8e8d6b25b21046d2d04c132bde1a7a98e415067e5c542f699d89249b8cc3d925e0be4e96db498037429691ef musl-pthread-setname.patch
+2a967e4619fd89a046bd40be7fdcef646fcb1eba5e47afc96aa1d59c25bcc8747cb07baee6c11f3b803db0981aced181534b806778e4d21e74958f5f4d74c784 fix-fortify-system-wrappers.patch
+ed0d344c66fc8e1cc83a11e9858b32c42e841cbeedd9eb9438811e9fcc3593dc824a8336d00058d55836cedc970aeadd6a82c6dcd7bc0fb746e564d8b478cc6c fix-arm-atomics-grsec.patch
+015e1ff6dbf920033982b5df95d869a0b7bf56c6964e45e50649ddf46d1ce09563458e45240c3ecb92808662b1300b67507f7af272ba184835d91068a9e7d5b0 fix-arm-version-detect.patch
+e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch
+4797d2d89ac63a57abb826b8ea9f751314ce66946194033deb9d78c2ff377b88106fd2c7bc5034dc13ad03dd5085b1893c3ccae1a9e63fde35655bb0921f7188 disable-moz-stackwalk.patch
f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop"
diff --git a/community/firefox-esr/allow-utf8-fallback.patch b/community/firefox-esr/allow-utf8-fallback.patch
deleted file mode 100644
index d283d60422..0000000000
--- a/community/firefox-esr/allow-utf8-fallback.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Allow user to actually set UTF-8 as the fallback charset.
-
-This is to allow UTF-8 as default for text/plain
-
---- ./dom/encoding/FallbackEncoding.cpp.orig
-+++ ./dom/encoding/FallbackEncoding.cpp
-@@ -55,8 +55,7 @@
- // Don't let the user break things by setting the override to unreasonable
- // values via about:config
- if (!EncodingUtils::FindEncodingForLabel(override, mFallback) ||
-- !EncodingUtils::IsAsciiCompatible(mFallback) ||
-- mFallback.EqualsLiteral("UTF-8")) {
-+ !EncodingUtils::IsAsciiCompatible(mFallback)) {
- mFallback.Truncate();
- }
-
diff --git a/community/firefox-esr/disable-hunspell_hooks.patch b/community/firefox-esr/disable-hunspell_hooks.patch
new file mode 100644
index 0000000000..1eaa4d0351
--- /dev/null
+++ b/community/firefox-esr/disable-hunspell_hooks.patch
@@ -0,0 +1,11 @@
+--- a/mozilla-config.h.in 2016-07-06 15:16:06.621880293 +0200
++++ b/mozilla-config.h.in 2016-07-06 15:16:42.958428126 +0200
+@@ -54,7 +54,7 @@
+ * HUNSPELL_STATIC is defined in extensions/spellcheck/hunspell/src/Makefile.in,
+ * unless --enable-system-hunspell is defined.
+ */
+-#if defined(HUNSPELL_STATIC)
++#if 0
+ #include "hunspell_alloc_hooks.h"
+ #include "hunspell_fopen_hooks.h"
+ #endif
diff --git a/community/firefox-esr/disable-moz-stackwalk.patch b/community/firefox-esr/disable-moz-stackwalk.patch
index f4e14038b4..c83ae7eae9 100644
--- a/community/firefox-esr/disable-moz-stackwalk.patch
+++ b/community/firefox-esr/disable-moz-stackwalk.patch
@@ -1,17 +1,18 @@
-MOZ_STACKWALK_SUPPORTS_LINUX requires GLIBC extensions, Android or
-libunwind. Disable it unconditionally now as otherwise x86 build fails.
-
---- firefox-45.0/mozglue/misc/StackWalk.cpp.orig
-+++ firefox-45.0/mozglue/misc/StackWalk.cpp
-@@ -42,10 +42,7 @@
- (defined(XP_DARWIN) && \
- (defined(__i386) || defined(__ppc__) || defined(HAVE__UNWIND_BACKTRACE)))
+diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
+index a208bad..14e1f0d 100644
+--- a/mozglue/misc/StackWalk.cpp
++++ b/mozglue/misc/StackWalk.cpp
+@@ -41,13 +41,7 @@ static CriticalAddress gCriticalAddress;
+ #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
+ #endif
--#define MOZ_STACKWALK_SUPPORTS_LINUX \
-- (defined(linux) && \
-- ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
-- defined(HAVE__UNWIND_BACKTRACE)))
-+#define MOZ_STACKWALK_SUPPORTS_LINUX 0
+-#if (defined(linux) && \
+- ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
+- defined(HAVE__UNWIND_BACKTRACE)))
+-#define MOZ_STACKWALK_SUPPORTS_LINUX 1
+-#else
+ #define MOZ_STACKWALK_SUPPORTS_LINUX 0
+-#endif
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
#define HAVE___LIBC_STACK_END 1
diff --git a/community/firefox-esr/fix-arm-atomics-grsec.patch b/community/firefox-esr/fix-arm-atomics-grsec.patch
index 5524b2aa73..0eb58f093f 100644
--- a/community/firefox-esr/fix-arm-atomics-grsec.patch
+++ b/community/firefox-esr/fix-arm-atomics-grsec.patch
@@ -1,41 +1,5 @@
--- mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig
+++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h
-@@ -1,8 +1,31 @@
--// Copyright (c) 2009 The Chromium Authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
-+// Copyright 2010 the V8 project authors. All rights reserved.
-+// Redistribution and use in source and binary forms, with or without
-+// modification, are permitted provided that the following conditions are
-+// met:
-+//
-+// * Redistributions of source code must retain the above copyright
-+// notice, this list of conditions and the following disclaimer.
-+// * Redistributions in binary form must reproduce the above
-+// copyright notice, this list of conditions and the following
-+// disclaimer in the documentation and/or other materials provided
-+// with the distribution.
-+// * Neither the name of Google Inc. nor the names of its
-+// contributors may be used to endorse or promote products derived
-+// from this software without specific prior written permission.
-+//
-+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--// This file is an internal atomic implementation, use base/atomicops.h instead.
-+// This file is an internal atomic implementation, use atomicops.h instead.
- //
- // LinuxKernelCmpxchg and Barrier_AtomicIncrement are from Google Gears.
-
@@ -12,43 +35,194 @@
namespace base {
namespace subtle {
diff --git a/community/firefox-esr/fix-stack-overflow.patch b/community/firefox-esr/fix-stack-overflow.patch
new file mode 100644
index 0000000000..e164fc69b6
--- /dev/null
+++ b/community/firefox-esr/fix-stack-overflow.patch
@@ -0,0 +1,45 @@
+https://bugs.alpinelinux.org/issues/5559
+https://bugzilla.mozilla.org/show_bug.cgi?id=1274732
+
+diff --git a/netwerk/streamconv/converters/nsHTTPCompressConv.cpp b/netwerk/streamconv/converters/nsHTTPCompressConv.cpp
+index 1193529..aeb96b5 100644
+--- a/netwerk/streamconv/converters/nsHTTPCompressConv.cpp
++++ b/netwerk/streamconv/converters/nsHTTPCompressConv.cpp
+@@ -165,9 +165,8 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c
+ nsHTTPCompressConv *self = static_cast<nsHTTPCompressConv *>(closure);
+ *countRead = 0;
+
+- const uint32_t kOutSize = 128 * 1024; // just a chunk size, we call in a loop
+- unsigned char outBuffer[kOutSize];
+- unsigned char *outPtr;
++ const size_t kOutSize = 128 * 1024; // just a chunk size, we call in a loop
++ uint8_t *outPtr;
+ size_t outSize;
+ size_t avail = aAvail;
+ BrotliResult res;
+@@ -177,9 +176,15 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c
+ return NS_OK;
+ }
+
++ auto outBuffer = MakeUniqueFallible<uint8_t[]>(kOutSize);
++ if (outBuffer == nullptr) {
++ self->mBrotli->mStatus = NS_ERROR_OUT_OF_MEMORY;
++ return self->mBrotli->mStatus;
++ }
++
+ do {
+ outSize = kOutSize;
+- outPtr = outBuffer;
++ outPtr = outBuffer.get();
+
+ // brotli api is documented in brotli/dec/decode.h and brotli/dec/decode.c
+ LOG(("nsHttpCompresssConv %p brotlihandler decompress %d\n", self, avail));
+@@ -210,7 +215,7 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c
+ nsresult rv = self->do_OnDataAvailable(self->mBrotli->mRequest,
+ self->mBrotli->mContext,
+ self->mBrotli->mSourceOffset,
+- reinterpret_cast<const char *>(outBuffer),
++ reinterpret_cast<const char *>(outBuffer.get()),
+ outSize);
+ LOG(("nsHttpCompressConv %p BrotliHandler ODA rv=%x", self, rv));
+ if (NS_FAILED(rv)) {
diff --git a/community/firefox-esr/fix-toolkit.patch b/community/firefox-esr/fix-toolkit.patch
index 9fd8ef497c..58fe5a3a9a 100644
--- a/community/firefox-esr/fix-toolkit.patch
+++ b/community/firefox-esr/fix-toolkit.patch
@@ -1,6 +1,7 @@
-diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-03-15 05:19:36.000000000 +0000
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-04-17 10:24:33.793431933 +0000
+diff --git a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
+index 4222ce3..4d40c6a 100644
+--- a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
++++ b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
@@ -45,6 +45,7 @@
#include <sys/mman.h>
#include <sys/stat.h>
@@ -9,9 +10,10 @@ diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/l
#include <iostream>
#include <set>
-diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-03-15 05:19:36.000000000 +0000
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-04-17 10:24:33.793431933 +0000
+diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
+index 6019fc7..5953e32 100644
+--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
@@ -41,6 +41,10 @@
#include "common/using_std_string.h"
@@ -23,37 +25,41 @@ diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/s
using std::vector;
namespace google_breakpad {
-diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-03-15 05:19:36.000000000 +0000
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-04-17 10:24:33.793431933 +0000
-@@ -53,9 +53,10 @@
- #include <config.h>
- #endif
+diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
+index 98ee2dd..d57aa68 100644
+--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
+@@ -55,7 +55,7 @@
--#ifdef HAVE_A_OUT_H
-+#if 0
- #include <a.out.h>
- #endif
-+
#ifdef HAVE_MACH_O_NLIST_H
#include <mach-o/nlist.h>
+-#elif defined(HAVE_A_OUT_H)
++#elif 0
+ #include <a.out.h>
#endif
-diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2014-03-15 05:19:37.000000000 +0000
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2014-04-17 10:24:33.793431933 +0000
-@@ -2813,7 +2813,7 @@
- LSS_INLINE _syscall6(void*, mmap, void*, s,
- size_t, l, int, p,
- int, f, int, d,
-- __off64_t, o)
-+ off_t, o)
- LSS_INLINE _syscall4(int, newfstatat, int, d,
- const char *, p,
-diff -ru mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h mozilla-release/toolkit/mozapps/update/common/updatedefines.h
---- mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h 2014-03-15 05:19:37.000000000 +0000
-+++ mozilla-release/toolkit/mozapps/update/common/updatedefines.h 2014-04-17 10:24:33.793431933 +0000
-@@ -105,7 +105,7 @@
+diff --git a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
+index 93fdad7..f34e5e0 100644
+--- a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
++++ b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
+@@ -1134,6 +1134,12 @@ struct kernel_statfs {
+ #ifndef __NR_fallocate
+ #define __NR_fallocate 285
+ #endif
++
++#undef __NR_pread
++#define __NR_pread __NR_pread64
++#undef __NR_pwrite
++#define __NR_pwrite __NR_pwrite64
++
+ /* End of x86-64 definitions */
+ #elif defined(__mips__)
+ #if _MIPS_SIM == _MIPS_SIM_ABI32
+diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h
+index 026e7ed..0801f14 100644
+--- a/toolkit/mozapps/update/common/updatedefines.h
++++ b/toolkit/mozapps/update/common/updatedefines.h
+@@ -117,7 +117,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt, ...)
#ifdef SOLARIS
# include <sys/stat.h>
@@ -62,10 +68,11 @@ diff -ru mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h mozi
# include <fts.h>
#endif
# include <dirent.h>
-diff -ru mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp mozilla-release/toolkit/mozapps/update/updater/updater.cpp
---- mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp 2014-03-15 05:19:37.000000000 +0000
-+++ mozilla-release/toolkit/mozapps/update/updater/updater.cpp 2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
+diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
+index 257ccb4..01314e4 100644
+--- a/toolkit/mozapps/update/updater/updater.cpp
++++ b/toolkit/mozapps/update/updater/updater.cpp
+@@ -3737,6 +3737,7 @@ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
{
int rv = OK;
@@ -73,7 +80,7 @@ diff -ru mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp mozilla
FTS *ftsdir;
FTSENT *ftsdirEntry;
NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+@@ -3840,6 +3841,7 @@ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
}
fts_close(ftsdir);
@@ -81,14 +88,3 @@ diff -ru mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp mozilla
return rv;
}
-diff -ru mozilla-release/toolkit.orig/xre/nsSigHandlers.cpp mozilla-release/toolkit/xre/nsSigHandlers.cpp
---- mozilla-release/toolkit.orig/xre/nsSigHandlers.cpp 2014-03-15 05:19:38.000000000 +0000
-+++ mozilla-release/toolkit/xre/nsSigHandlers.cpp 2014-04-17 10:24:33.796765327 +0000
-@@ -15,6 +15,7 @@
- #include <signal.h>
- #include <stdio.h>
- #include <string.h>
-+#include <stdint.h>
- #include "prthread.h"
- #include "plstr.h"
- #include "prenv.h"
diff --git a/community/firefox-esr/fix-tools.patch b/community/firefox-esr/fix-tools.patch
index cf1589d633..ea5a2cd785 100644
--- a/community/firefox-esr/fix-tools.patch
+++ b/community/firefox-esr/fix-tools.patch
@@ -1,8 +1,39 @@
-diff --git a/tools/profiler/LulElf.cpp b/tools/profiler/LulElf.cpp
-index 203b15d..08a270a 100644
+diff --git a/tools/profiler/core/platform-linux.cc b/tools/profiler/core/platform-linux.cc
+index 0df1e8f..d868895 100644
+--- a/tools/profiler/core/platform-linux.cc
++++ b/tools/profiler/core/platform-linux.cc
+@@ -711,11 +711,13 @@ void OS::Startup() {
+ void TickSample::PopulateContext(void* aContext)
+ {
+ MOZ_ASSERT(aContext);
++#if defined(__GLIBC__)
+ ucontext_t* pContext = reinterpret_cast<ucontext_t*>(aContext);
+ if (!getcontext(pContext)) {
+ context = pContext;
+ SetSampleContext(this, aContext);
+ }
++#endif
+ }
+
+ void OS::SleepMicro(int microseconds)
+diff --git a/tools/profiler/core/platform.h b/tools/profiler/core/platform.h
+index a38b3b5..170bd75 100644
+--- a/tools/profiler/core/platform.h
++++ b/tools/profiler/core/platform.h
+@@ -34,6 +34,8 @@
+ #define MOZ_COUNT_DTOR(name)
+ #endif
+
++#include <sys/types.h>
++
+ #ifdef ANDROID
+ #include <android/log.h>
+ #else
+diff --git a/tools/profiler/lul/LulElf.cpp b/tools/profiler/lul/LulElf.cpp
+index a922137..d01dde1 100644
--- a/tools/profiler/lul/LulElf.cpp
+++ b/tools/profiler/lul/LulElf.cpp
-@@ -612,10 +612,10 @@ string FormatIdentifier(unsigned char identifier[16]) {
+@@ -483,10 +483,10 @@ string FormatIdentifier(unsigned char identifier[16]) {
// Return the non-directory portion of FILENAME: the portion after the
// last slash, or the whole filename if there are no slashes.
string BaseFileName(const string &filename) {
@@ -17,35 +48,3 @@ index 203b15d..08a270a 100644
return base;
}
-diff --git a/tools/profiler/local_debug_info_symbolizer.cc b/tools/profiler/local_debug_info_symbolizer.cc
-index 2232130..41dabc8 100644
---- a/tools/profiler/gecko/local_debug_info_symbolizer.cc
-+++ b/tools/profiler/gecko/local_debug_info_symbolizer.cc
-@@ -3,6 +3,7 @@
- * 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/. */
-
-+#include <sys/types.h>
- #include "PlatformMacros.h"
- #include "nsAutoPtr.h"
-
---- ./tools/profiler/core/platform.h.orig
-+++ ./tools/profiler/core/platform.h
-@@ -34,6 +34,8 @@
- #define MOZ_COUNT_DTOR(name)
- #endif
-
-+#include <sys/types.h>
-+
- #ifdef ANDROID
- #include <android/log.h>
- #else
-@@ -60,7 +62,7 @@
-
- // We need a definition of gettid(), but glibc doesn't provide a
- // wrapper for it.
--#if defined(__GLIBC__)
-+#if defined(__linux__)
- #include <unistd.h>
- #include <sys/syscall.h>
- static inline pid_t gettid()
diff --git a/community/firefox-esr/gcc6-fix-compilation.patch b/community/firefox-esr/gcc6-fix-compilation.patch
deleted file mode 100644
index 1c1dba27e2..0000000000
--- a/community/firefox-esr/gcc6-fix-compilation.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -r 34544e6dfc19 -r 55212130f19d config/gcc-stl-wrapper.template.h
---- a/config/gcc-stl-wrapper.template.h Fri Mar 11 11:45:09 2016 +0800
-+++ b/config/gcc-stl-wrapper.template.h Thu Mar 10 16:54:05 2016 +0900
-@@ -12,33 +12,40 @@
- // compiling ObjC.
- #if defined(__EXCEPTIONS) && __EXCEPTIONS && !(__OBJC__ && __GNUC__ && XP_IOS)
- # error "STL code can only be used with -fno-exceptions"
- #endif
-
- // Silence "warning: #include_next is a GCC extension"
- #pragma GCC system_header
-
-+// Don't include mozalloc for cstdlib. See bug 1245076.
-+#ifndef moz_dont_include_mozalloc_for_cstdlib
-+# define moz_dont_include_mozalloc_for_cstdlib
-+#endif
-+#ifndef moz_dont_include_mozalloc_for_${HEADER}
- // mozalloc.h wants <new>; break the cycle by always explicitly
- // including <new> here. NB: this is a tad sneaky. Sez the gcc docs:
- //
- // `#include_next' does not distinguish between <file> and "file"
- // inclusion, nor does it check that the file you specify has the
- // same name as the current file. It simply looks for the file
- // named, starting with the directory in the search path after the
- // one where the current file was found.
--#include_next <new>
-+# include_next <new>
-
- // See if we're in code that can use mozalloc. NB: this duplicates
- // code in nscore.h because nscore.h pulls in prtypes.h, and chromium
- // can't build with that being included before base/basictypes.h.
--#if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC)
--# include "mozilla/mozalloc.h"
--#else
--# error "STL code can only be used with infallible ::operator new()"
-+# if !defined(XPCOM_GLUE) && !defined(NS_NO_XPCOM) && !defined(MOZ_NO_MOZALLOC)
-+# include "mozilla/mozalloc.h"
-+# else
-+# error "STL code can only be used with infallible ::operator new()"
-+# endif
-+
- #endif
-
- #if defined(DEBUG) && !defined(_GLIBCXX_DEBUG)
- // Enable checked iterators and other goodies
- //
- // FIXME/bug 551254: gcc's debug STL implementation requires -frtti.
- // Figure out how to resolve this with -fno-rtti. Maybe build with
- // -frtti in DEBUG builds?
diff --git a/community/firefox-esr/libavutil.patch b/community/firefox-esr/libavutil.patch
deleted file mode 100644
index ba1e1a2457..0000000000
--- a/community/firefox-esr/libavutil.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/media/libav/libavutil/cpu.c b/media/libav/libavutil/cpu.c
-index 354d21e..6a44cea 100644
---- a/media/libav/libavutil/cpu.c
-+++ b/media/libav/libavutil/cpu.c
-@@ -36,7 +36,6 @@
- #include <sys/param.h>
- #endif
- #include <sys/types.h>
--#include <sys/sysctl.h>
- #endif
- #if HAVE_SYSCONF
- #include <unistd.h>
diff --git a/community/firefox-esr/mozconfig b/community/firefox-esr/mozconfig
deleted file mode 100644
index 8fbbf3d6e6..0000000000
--- a/community/firefox-esr/mozconfig
+++ /dev/null
@@ -1,54 +0,0 @@
-. $topsrcdir/browser/config/mozconfig
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-
-ac_add_options --with-pthreads
-ac_add_options --with-system-bz2
-ac_add_options --with-system-icu
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-pixman
-ac_add_options --with-system-png
-ac_add_options --with-system-zlib
-
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-cairo
-ac_add_options --enable-system-ffi
-
-# make the -dbg package more meaningful with symbols
-# ac_add_options --enable-debug-symbols=-g
-ac_add_options --disable-install-strip
-
-ac_add_options --enable-gstreamer=1.0
-ac_add_options --enable-official-branding
-ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-startup-notification
-
-ac_add_options --disable-cpp-exceptions
-ac_add_options --disable-crashreporter
-ac_add_options --disable-elf-hack
-ac_add_options --disable-gnomevfs
-ac_add_options --disable-installer
-ac_add_options --disable-javaxpcom
-ac_add_options --disable-jemalloc
-ac_add_options --disable-mochitest
-ac_add_options --disable-pulseaudio
-ac_add_options --disable-static
-ac_add_options --disable-strip
-ac_add_options --disable-tests
-ac_add_options --disable-updater
-ac_add_options --disable-xprint
-
-export BUILD_OFFICIAL=1
-export MOZILLA_OFFICIAL=1
-export USE_SHORT_LIBNAME=1
-
-mk_add_options BUILD_OFFICIAL=1
-mk_add_options MOZILLA_OFFICIAL=1
-mk_add_options USE_SHORT_LIBNAME=1
-mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
diff --git a/community/firefox-esr/musl-pthread-setname.patch b/community/firefox-esr/musl-pthread-setname.patch
new file mode 100644
index 0000000000..3bf620219b
--- /dev/null
+++ b/community/firefox-esr/musl-pthread-setname.patch
@@ -0,0 +1,14 @@
+--- a/js/src/threading/posix/Thread.cpp.orig 2016-09-20 22:19:46.368622126 +0200
++++ b/js/src/threading/posix/Thread.cpp 2016-09-20 22:23:35.495823534 +0200
+@@ -153,8 +153,10 @@
+ rv = 0;
+ #elif defined(__NetBSD__)
+ rv = pthread_setname_np(pthread_self(), "%s", (void*)name);
+-#else
++#elif defined(__GLIBC__)
+ rv = pthread_setname_np(pthread_self(), name);
++#else
++ rv = 0;
+ #endif
+ MOZ_RELEASE_ASSERT(!rv);
+ }
diff --git a/community/firefox-esr/rhbz-966424.patch b/community/firefox-esr/rhbz-966424.patch
deleted file mode 100644
index 2be9f931a6..0000000000
--- a/community/firefox-esr/rhbz-966424.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm
---- mozilla-release/toolkit/modules/CertUtils.jsm.966424 2014-10-14 08:12:14.358697255 +0200
-+++ mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-14 08:17:59.962181908 +0200
-@@ -174,7 +174,9 @@ this.checkCert =
- }
-
- function isBuiltinToken(tokenName) {
-- return tokenName == "Builtin Object Token";
-+ return tokenName == "Builtin Object Token" ||
-+ tokenName == "Default Trust" ||
-+ tokenName == "System Trust";
- }
-
- /**
diff --git a/community/firefox-esr/vendor.js b/community/firefox-esr/vendor.js
deleted file mode 100644
index 411803b61b..0000000000
--- a/community/firefox-esr/vendor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// Disable default browser checking.
-pref("browser.shell.checkDefaultBrowser", false);
-// OMTC and system cairo is broken
-pref("layers.offmainthreadcomposition.enabled", false);
-