commit:     2ea22f9e6cec238b784825e331b2d921b0f1f4d2
Author:     Felix Janda <felix.janda <AT> posteo <DOT> de>
AuthorDate: Sun Mar 22 08:54:56 2015 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Apr  6 21:04:20 2015 +0000
URL:        https://gitweb.gentoo.org/proj/hardened-dev.git/commit/?id=2ea22f9e

www-client/firefox: Update to 37.0.1

 www-client/firefox/files/1130164.patch             |  68 +++
 www-client/firefox/files/1130175.patch             |  33 ++
 www-client/firefox/files/1130710.patch             |  57 +++
 www-client/firefox/files/avoid-basename-musl.patch |  30 --
 .../firefox/files/avoid-fts-on-nonglibc-musl.patch |  55 ---
 .../firefox/files/avoid-getcontext-musl.patch      |  15 -
 www-client/firefox/files/basename.patch            |  25 ++
 www-client/firefox/files/crashreporter.patch       | 358 +++++++++++++++
 .../files/define-gettid-unconditonally-musl.patch  |  11 -
 .../firefox/files/dont-include-aouth-musl.patch    |  14 -
 .../dont-include-cdefsh-stagefright-musl.patch     |  10 -
 ...refox-31.0-webm-disallow-negative-samples.patch |  29 --
 .../files/firefox-32.0-hppa-js-configure.patch     |  21 -
 .../files/firefox-33.0-jemalloc-configure.patch    |  29 --
 .../files/firefox-35.0-gmp-clearkey-sprintf.patch  |  10 +
 .../firefox/files/fix-amd64-build-musl.patch       |  39 --
 .../firefox/files/fix-android-check-musl.patch     |  11 -
 .../firefox/files/fix-jemalloc-includes-musl.patch |  10 -
 .../files/fix-mtransport-includes-musl.patch       |  20 -
 www-client/firefox/files/fts.patch                 | 480 +++++++++++++++++++++
 .../firefox/files/include-systypesh-musl.patch     |  21 -
 .../firefox/files/libstagefright-cdefs.patch       |  21 +
 .../files/make-handleInt-unsigned-long-musl.patch  |  11 -
 www-client/firefox/files/profiler-gettid.patch     |  51 +++
 www-client/firefox/files/sandbox-cdefs.patch       |  21 +
 ...{fix-sctp-includes-musl.patch => sctp-36.patch} |  25 +-
 www-client/firefox/files/sctp.patch                |  58 +++
 www-client/firefox/files/sipcc.patch               | 159 +++++++
 www-client/firefox/files/stab.h                    |  72 ----
 www-client/firefox/files/updater.patch             |  42 ++
 www-client/firefox/files/xpcom-blocksize.patch     |  22 +
 ...34.0.5-r99.ebuild => firefox-37.0.1-r99.ebuild} | 111 +++--
 32 files changed, 1472 insertions(+), 467 deletions(-)

diff --git a/www-client/firefox/files/1130164.patch 
b/www-client/firefox/files/1130164.patch
new file mode 100644
index 0000000..2b292f8
--- /dev/null
+++ b/www-client/firefox/files/1130164.patch
@@ -0,0 +1,68 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423173074 -3600
+#      Thu Feb 05 22:51:14 2015 +0100
+# Node ID a446b4e607445d1c6faec25b43a5d9b5d45bcacf
+# Parent  89120ad0518fb4932de5b5f466debed68ee787ce
+Bug 1130164 - tools/profiler: Use <stdint.h> types. r=jseward
+
+diff -r 89120ad0518f -r a446b4e60744 tools/profiler/UnwinderThread2.cpp
+--- a/tools/profiler/UnwinderThread2.cpp       Thu Mar 05 06:04:03 2015 -0500
++++ b/tools/profiler/UnwinderThread2.cpp       Thu Feb 05 22:51:14 2015 +0100
+@@ -470,7 +470,7 @@
+ //////////////////////////////////////////////////////////
+ 
+ // This is the interface to LUL.
+-typedef  struct { u_int64_t pc; u_int64_t sp; }  PCandSP;
++typedef  struct { uint64_t pc; uint64_t sp; }  PCandSP;
+ 
+ // Forward declaration.  Implementation is below.
+ static
+@@ -1338,7 +1338,7 @@
+       else {
+         // We have at least one N and one P entry available.
+         // Scan forwards to find the SP of the current P entry
+-        u_int64_t sp_cur_P = 0;
++        uint64_t sp_cur_P = 0;
+         unsigned int m = next_P + 1;
+         while (1) {
+           /* This assertion should hold because in a well formed
+@@ -1349,7 +1349,7 @@
+           if (ent.is_ent_hint('Q'))
+             break;
+           if (ent.is_ent('S')) {
+-            sp_cur_P = reinterpret_cast<u_int64_t>(ent.get_tagPtr());
++            sp_cur_P = reinterpret_cast<uint64_t>(ent.get_tagPtr());
+             break;
+           }
+           m++;
+@@ -1358,7 +1358,7 @@
+           if (0) LOG("  P  <=  last_was_P && sp_cur_P == 0");
+           use_P = true;
+         } else {
+-          u_int64_t sp_cur_N = pairs[next_N].sp;
++          uint64_t sp_cur_N = pairs[next_N].sp;
+           use_P = (sp_cur_P > sp_cur_N);
+           if (0) LOGF("  %s  <=  sps P %p N %p",
+                       use_P ? "P" : "N", (void*)(intptr_t)sp_cur_P, 
+diff -r 89120ad0518f -r a446b4e60744 
tools/profiler/local_debug_info_symbolizer.cc
+--- a/tools/profiler/local_debug_info_symbolizer.cc    Thu Mar 05 06:04:03 
2015 -0500
++++ b/tools/profiler/local_debug_info_symbolizer.cc    Thu Feb 05 22:51:14 
2015 +0100
+@@ -222,7 +222,7 @@
+     debug_info_module = it->second;
+   }
+ 
+-  u_int64_t address = frame->instruction - frame->module->base_address();
++  uint64_t address = frame->instruction - frame->module->base_address();
+   Module::Function* function =
+       debug_info_module->FindFunctionByAddress(address);
+   if (function) {
+@@ -282,7 +282,7 @@
+   if (it == symbols_.end()) return NULL;
+ 
+   Module* module = it->second;
+-  u_int64_t address = frame->instruction - frame->module->base_address();
++  uint64_t address = frame->instruction - frame->module->base_address();
+   Module::StackFrameEntry* entry =
+       module->FindStackFrameEntryByAddress(address);
+   if (!entry)

diff --git a/www-client/firefox/files/1130175.patch 
b/www-client/firefox/files/1130175.patch
new file mode 100644
index 0000000..8946a56
--- /dev/null
+++ b/www-client/firefox/files/1130175.patch
@@ -0,0 +1,33 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423171460 -3600
+#      Thu Feb 05 22:24:20 2015 +0100
+# Node ID af818fbea923d7c026bc8e22a6512f14f788ba56
+# Parent  9c40ffbcf6b32d688abf089f2cce3c85dd8bdb29
+Bug 1130175 - nICEr: avoid sysctl.h include. r=bwc
+
+diff -r 9c40ffbcf6b3 -r af818fbea923 
media/mtransport/third_party/nICEr/src/stun/addrs.c
+--- a/media/mtransport/third_party/nICEr/src/stun/addrs.c      Mon Feb 23 
07:39:00 2015 -0500
++++ b/media/mtransport/third_party/nICEr/src/stun/addrs.c      Thu Feb 05 
22:24:20 2015 +0100
+@@ -45,13 +45,11 @@
+ #include <sys/param.h>
+ #include <sys/socket.h>
+ #ifndef ANDROID
+-#include <sys/sysctl.h>
+ #include <sys/syslog.h>
+ #else
+ #include <syslog.h>
+ /* Work around an Android NDK < r8c bug */
+ #undef __unused
+-#include <linux/sysctl.h>
+ #endif
+ #ifndef LINUX
+ #include <net/if.h>
+@@ -122,6 +120,7 @@
+  */
+ 
+ #include <err.h>
++#include <sys/sysctl.h>
+ 
+ static void stun_rt_xaddrs(caddr_t, caddr_t, struct rt_addrinfo *);
+ static int stun_grab_addrs(char *name, int addrcount,

diff --git a/www-client/firefox/files/1130710.patch 
b/www-client/firefox/files/1130710.patch
new file mode 100644
index 0000000..02c2877
--- /dev/null
+++ b/www-client/firefox/files/1130710.patch
@@ -0,0 +1,57 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423172841 -3600
+# Node ID 48efa200aae98f4b5fced4f1afa4f1b8c8cde9e1
+# Parent  3693f117ad5018927922c92cf5bd9739bc25f394
+Bug 1130710 - xre: Use stdint uint*_t instead of nonstandard __uint*_t. 
r=bsmedberg
+
+diff --git a/toolkit/xre/nsSigHandlers.cpp b/toolkit/xre/nsSigHandlers.cpp
+--- a/toolkit/xre/nsSigHandlers.cpp
++++ b/toolkit/xre/nsSigHandlers.cpp
+@@ -160,17 +160,17 @@ static void fpehandler(int signum, sigin
+ #if defined(__i386__) || defined(__amd64__)
+   _STRUCT_FP_CONTROL *ctrl = &uc->uc_mcontext->__fs.__fpu_fcw;
+   ctrl->__invalid = ctrl->__denorm = ctrl->__zdiv = ctrl->__ovrfl = 
ctrl->__undfl = ctrl->__precis = 1;
+ 
+   _STRUCT_FP_STATUS *status = &uc->uc_mcontext->__fs.__fpu_fsw;
+   status->__invalid = status->__denorm = status->__zdiv = status->__ovrfl = 
status->__undfl =
+     status->__precis = status->__stkflt = status->__errsumm = 0;
+ 
+-  __uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr;
++  uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr;
+   *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */
+   *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
+ #endif
+ #endif
+ #if defined(LINUX) && !defined(ANDROID)
+   ucontext_t *uc = (ucontext_t *)context;
+ 
+ #if defined(__i386__)
+@@ -180,23 +180,23 @@ static void fpehandler(int signum, sigin
+    */
+   unsigned long int *cw = &uc->uc_mcontext.fpregs->cw;
+   *cw |= FPU_EXCEPTION_MASK;
+ 
+   unsigned long int *sw = &uc->uc_mcontext.fpregs->sw;
+   *sw &= ~FPU_STATUS_FLAGS;
+ #endif
+ #if defined(__amd64__)
+-  __uint16_t *cw = &uc->uc_mcontext.fpregs->cwd;
++  uint16_t *cw = &uc->uc_mcontext.fpregs->cwd;
+   *cw |= FPU_EXCEPTION_MASK;
+ 
+-  __uint16_t *sw = &uc->uc_mcontext.fpregs->swd;
++  uint16_t *sw = &uc->uc_mcontext.fpregs->swd;
+   *sw &= ~FPU_STATUS_FLAGS;
+ 
+-  __uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr;
++  uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr;
+   *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */
+   *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
+ #endif
+ #endif
+ #ifdef SOLARIS
+   ucontext_t *uc = (ucontext_t *)context;
+ 
+ #if defined(__i386)
+

diff --git a/www-client/firefox/files/avoid-basename-musl.patch 
b/www-client/firefox/files/avoid-basename-musl.patch
deleted file mode 100644
index 63ba50b..0000000
--- a/www-client/firefox/files/avoid-basename-musl.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- 
a/mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
-+++ 
b/mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
-@@ -834,9 +834,9 @@
- // last slash, or the whole filename if there are no slashes.
- string BaseFileName(const string &filename) {
-   // Lots of copies!  basename's behavior is less than ideal.
--  char *c_filename = strdup(filename.c_str());
--  string base = basename(c_filename);
--  free(c_filename);
-+  const char *c_filename = filename.c_str();
-+  const char *p = strrchr(c_filename, '/');
-+  string base = p ? p+1 : c_filename;
-   return base;
- }
- 
---- a/mozilla-release/tools/profiler/LulElf.cpp
-+++ b/mozilla-release/tools/profiler/LulElf.cpp
-@@ -580,9 +580,9 @@
- // last slash, or the whole filename if there are no slashes.
- string BaseFileName(const string &filename) {
-   // Lots of copies!  basename's behavior is less than ideal.
--  char *c_filename = strdup(filename.c_str());
--  string base = basename(c_filename);
--  free(c_filename);
-+  const char *c_filename = filename.c_str();
-+  const char *p = strrchr(c_filename, '/');
-+  string base = p ? p+1 : c_filename;
-   return base;
- }
- 

diff --git a/www-client/firefox/files/avoid-fts-on-nonglibc-musl.patch 
b/www-client/firefox/files/avoid-fts-on-nonglibc-musl.patch
deleted file mode 100644
index fdabf90..0000000
--- a/www-client/firefox/files/avoid-fts-on-nonglibc-musl.patch
+++ /dev/null
@@ -1,55 +0,0 @@
---- a/mozilla-release/ipc/chromium/src/base/file_util.h
-+++ b/mozilla-release/ipc/chromium/src/base/file_util.h
-@@ -14,10 +14,15 @@
- #include <windows.h>
- #elif defined(ANDROID)
- #include <sys/stat.h>
-+#define NO_FTS
- #elif defined(OS_POSIX) 
- #include <sys/types.h>
--#include <fts.h>
- #include <sys/stat.h>
-+#ifdef __GLIBC__
-+#include <fts.h>
-+#else
-+#define NO_FTS
-+#endif
- #endif
- 
- #include <stdio.h>
---- a/mozilla-release/ipc/chromium/src/base/file_util_posix.cc
-+++ b/mozilla-release/ipc/chromium/src/base/file_util_posix.cc
-@@ -8,13 +8,13 @@
- #include <errno.h>
- #include <fcntl.h>
- #include <fnmatch.h>
--#ifndef ANDROID
-+#ifndef NO_FTS
- #include <fts.h>
- #endif
- #include <libgen.h>
- #include <stdio.h>
- #include <string.h>
--#include <sys/errno.h>
-+#include <errno.h>
- #include <sys/mman.h>
- #define _DARWIN_USE_64_BIT_INODE // Use 64-bit inode data structures
- #include <sys/stat.h>
-@@ -67,7 +67,7 @@
-   if (!recursive)
-     return (rmdir(path_str) == 0);
- 
--#ifdef ANDROID
-+#ifdef NO_FTS
-   // XXX Need ftsless impl for bionic
-   return false;
- #else
-@@ -140,7 +140,7 @@
-     return false;
-   }
- 
--#ifdef ANDROID
-+#ifdef NO_FTS
-   // XXX Need ftsless impl for bionic
-   return false;
- #else

diff --git a/www-client/firefox/files/avoid-getcontext-musl.patch 
b/www-client/firefox/files/avoid-getcontext-musl.patch
deleted file mode 100644
index e8e2fc0..0000000
--- a/www-client/firefox/files/avoid-getcontext-musl.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/mozilla-release/tools/profiler/platform-linux.cc
-+++ b/mozilla-release/tools/profiler/platform-linux.cc
-@@ -625,10 +625,10 @@
- {
-   MOZ_ASSERT(aContext);
-   ucontext_t* pContext = reinterpret_cast<ucontext_t*>(aContext);
--  if (!getcontext(pContext)) {
-+  /*if (!getcontext(pContext)) {
-     context = pContext;
-     SetSampleContext(this, aContext);
--  }
-+  }*/
- }
- 
- void OS::SleepMicro(int microseconds)

diff --git a/www-client/firefox/files/basename.patch 
b/www-client/firefox/files/basename.patch
new file mode 100644
index 0000000..bfbfaea
--- /dev/null
+++ b/www-client/firefox/files/basename.patch
@@ -0,0 +1,25 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423172942 -3600
+#      Thu Feb 05 22:49:02 2015 +0100
+# Node ID 5f3abeb6ae6c0512901724428d908f601b9e49d4
+# Parent  2d344ef8da33717224d5a08570dc834ca2254f9f
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1041962
+LulElf: Avoid basename
+
+diff -r 2d344ef8da33 -r 5f3abeb6ae6c tools/profiler/LulElf.cpp
+--- a/tools/profiler/LulElf.cpp        Sun Feb 01 19:32:36 2015 +0100
++++ b/tools/profiler/LulElf.cpp        Thu Feb 05 22:49:02 2015 +0100
+@@ -611,9 +611,9 @@
+ // last slash, or the whole filename if there are no slashes.
+ string BaseFileName(const string &filename) {
+   // Lots of copies!  basename's behavior is less than ideal.
+-  char *c_filename = strdup(filename.c_str());
+-  string base = basename(c_filename);
+-  free(c_filename);
++  const char *c_filename = filename.c_str();
++  const char *p = strrchr(c_filename, '/');
++  string base = p ? p+1 : c_filename;
+   return base;
+ }
+ 

diff --git a/www-client/firefox/files/crashreporter.patch 
b/www-client/firefox/files/crashreporter.patch
new file mode 100644
index 0000000..719ed0d
--- /dev/null
+++ b/www-client/firefox/files/crashreporter.patch
@@ -0,0 +1,358 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423172597 -3600
+#      Thu Feb 05 22:43:17 2015 +0100
+# Node ID df5ec9e5685a52bcd19bbe566c0770daa40f14b1
+# Parent  2d344ef8da33717224d5a08570dc834ca2254f9f
+crashreporter: compile with musl
+
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/crash_generation_server.cc
+--- 
a/toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/crash_generation_server.cc
       Sun Feb 01 19:32:36 2015 +0100
++++ 
b/toolkit/crashreporter/google-breakpad/src/client/linux/crash_generation/crash_generation_server.cc
       Thu Feb 05 22:43:17 2015 +0100
+@@ -28,7 +28,6 @@
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+ #include <assert.h>
+-#include <dirent.h>
+ #include <fcntl.h>
+ #include <limits.h>
+ #include <poll.h>
+@@ -49,6 +48,8 @@
+ #include "common/linux/guid_creator.h"
+ #include "common/linux/safe_readlink.h"
+ 
++#include <dirent.h>
++
+ static const char kCommandQuit = 'x';
+ 
+ namespace google_breakpad {
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc
+--- 
a/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc
      Sun Feb 01 19:32:36 2015 +0100
++++ 
b/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.cc
      Thu Feb 05 22:43:17 2015 +0100
+@@ -77,7 +77,7 @@
+ #include <sys/wait.h>
+ #include <unistd.h>
+ 
+-#include <sys/signal.h>
++#include <signal.h>
+ #include <sys/ucontext.h>
+ #include <sys/user.h>
+ #include <ucontext.h>
+@@ -418,11 +418,11 @@
+   siginfo_t siginfo = {};
+   // Mimic a trusted signal to allow tracing the process (see
+   // ExceptionHandler::HandleSignal().
+-  siginfo.si_code = SI_USER;
+-  siginfo.si_pid = getpid();
+-  struct ucontext context;
+-  getcontext(&context);
+-  return HandleSignal(sig, &siginfo, &context);
++//  siginfo.si_code = SI_USER;
++//  siginfo.si_pid = getpid();
++//  struct ucontext context;
++//  getcontext(&context);
++//  return HandleSignal(sig, &siginfo, &context);
+ }
+ 
+ // This function may run in a compromised context: see the top of the file.
+@@ -567,7 +567,7 @@
+   sys_prctl(PR_SET_DUMPABLE, 1);
+ 
+   CrashContext context;
+-  int getcontext_result = getcontext(&context.context);
++  int getcontext_result = 1;//getcontext(&context.context);
+   if (getcontext_result)
+     return false;
+ #if !defined(__ARM_EABI__)
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h
+--- 
a/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h
       Sun Feb 01 19:32:36 2015 +0100
++++ 
b/toolkit/crashreporter/google-breakpad/src/client/linux/handler/exception_handler.h
       Thu Feb 05 22:43:17 2015 +0100
+@@ -192,7 +192,7 @@
+     struct ucontext context;
+ #if !defined(__ARM_EABI__)
+     // #ifdef this out because FP state is not part of user ABI for Linux ARM.
+-    struct _libc_fpstate float_state;
++    struct _fpstate float_state;
+ #endif
+   };
+ 
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+--- 
a/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc
        Sun Feb 01 19:32:36 2015 +0100
++++ 
b/toolkit/crashreporter/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc
        Thu Feb 05 22:43:17 2015 +0100
+@@ -174,7 +174,7 @@
+ //   out: the minidump structure
+ //   info: the collection of register structures.
+ void CPUFillFromUContext(MDRawContextX86 *out, const ucontext *uc,
+-                         const struct _libc_fpstate* fp) {
++                         const struct _fpstate* fp) {
+   const greg_t* regs = uc->uc_mcontext.gregs;
+ 
+   out->context_flags = MD_CONTEXT_X86_FULL |
+@@ -274,7 +274,7 @@
+ }
+ 
+ void CPUFillFromUContext(MDRawContextAMD64 *out, const ucontext *uc,
+-                         const struct _libc_fpstate* fpregs) {
++                         const struct _fpstate* fpregs) {
+   const greg_t* regs = uc->uc_mcontext.gregs;
+ 
+   out->context_flags = MD_CONTEXT_AMD64_FULL;
+@@ -341,7 +341,7 @@
+ }
+ 
+ void CPUFillFromUContext(MDRawContextARM* out, const ucontext* uc,
+-                         const struct _libc_fpstate* fpregs) {
++                         const struct _fpstate* fpregs) {
+   out->context_flags = MD_CONTEXT_ARM_FULL;
+ 
+   out->iregs[0] = uc->uc_mcontext.arm_r0;
+@@ -1480,7 +1480,7 @@
+   const char* path_;  // Path to the file where the minidum should be written.
+ 
+   const struct ucontext* const ucontext_;  // also from the signal handler
+-  const struct _libc_fpstate* const float_state_;  // ditto
++  const struct _fpstate* const float_state_;  // ditto
+   LinuxDumper* dumper_;
+   MinidumpFileWriter minidump_writer_;
+   off_t minidump_size_limit_;
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/common/android/include/stab.h
+--- a/toolkit/crashreporter/google-breakpad/src/common/android/include/stab.h  
Sun Feb 01 19:32:36 2015 +0100
++++ /dev/null  Thu Jan 01 00:00:00 1970 +0000
+@@ -1,100 +0,0 @@
+-// Copyright (c) 2012, Google Inc.
+-// 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.
+-
+-#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
+-#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
+-
+-#include <sys/cdefs.h>
+-
+-#ifdef __BIONIC_HAVE_STAB_H
+-#include <stab.h>
+-#else
+-
+-#ifdef __cplusplus
+-extern "C" {
+-#endif  // __cplusplus
+-
+-#define _STAB_CODE_LIST       \
+-  _STAB_CODE_DEF(UNDF,0x00)   \
+-  _STAB_CODE_DEF(GSYM,0x20)   \
+-  _STAB_CODE_DEF(FNAME,0x22)  \
+-  _STAB_CODE_DEF(FUN,0x24)    \
+-  _STAB_CODE_DEF(STSYM,0x26)  \
+-  _STAB_CODE_DEF(LCSYM,0x28)  \
+-  _STAB_CODE_DEF(MAIN,0x2a)   \
+-  _STAB_CODE_DEF(PC,0x30)     \
+-  _STAB_CODE_DEF(NSYMS,0x32)  \
+-  _STAB_CODE_DEF(NOMAP,0x34)  \
+-  _STAB_CODE_DEF(OBJ,0x38)    \
+-  _STAB_CODE_DEF(OPT,0x3c)    \
+-  _STAB_CODE_DEF(RSYM,0x40)   \
+-  _STAB_CODE_DEF(M2C,0x42)    \
+-  _STAB_CODE_DEF(SLINE,0x44)  \
+-  _STAB_CODE_DEF(DSLINE,0x46) \
+-  _STAB_CODE_DEF(BSLINE,0x48) \
+-  _STAB_CODE_DEF(BROWS,0x48)  \
+-  _STAB_CODE_DEF(DEFD,0x4a)   \
+-  _STAB_CODE_DEF(EHDECL,0x50) \
+-  _STAB_CODE_DEF(MOD2,0x50)   \
+-  _STAB_CODE_DEF(CATCH,0x54)  \
+-  _STAB_CODE_DEF(SSYM,0x60)   \
+-  _STAB_CODE_DEF(SO,0x64)     \
+-  _STAB_CODE_DEF(LSYM,0x80)   \
+-  _STAB_CODE_DEF(BINCL,0x82)  \
+-  _STAB_CODE_DEF(SOL,0x84)    \
+-  _STAB_CODE_DEF(PSYM,0xa0)   \
+-  _STAB_CODE_DEF(EINCL,0xa2)  \
+-  _STAB_CODE_DEF(ENTRY,0xa4)  \
+-  _STAB_CODE_DEF(LBRAC,0xc0)  \
+-  _STAB_CODE_DEF(EXCL,0xc2)   \
+-  _STAB_CODE_DEF(SCOPE,0xc4)  \
+-  _STAB_CODE_DEF(RBRAC,0xe0)  \
+-  _STAB_CODE_DEF(BCOMM,0xe2)  \
+-  _STAB_CODE_DEF(ECOMM,0xe4)  \
+-  _STAB_CODE_DEF(ECOML,0xe8)  \
+-  _STAB_CODE_DEF(NBTEXT,0xf0) \
+-  _STAB_CODE_DEF(NBDATA,0xf2) \
+-  _STAB_CODE_DEF(NBBSS,0xf4)  \
+-  _STAB_CODE_DEF(NBSTS,0xf6)  \
+-  _STAB_CODE_DEF(NBLCS,0xf8)  \
+-  _STAB_CODE_DEF(LENG,0xfe)
+-
+-enum __stab_debug_code {
+-#define _STAB_CODE_DEF(x,y)  N_##x = y,
+-_STAB_CODE_LIST
+-#undef _STAB_CODE_DEF
+-};
+-
+-#ifdef __cplusplus
+-}  // extern "C"
+-#endif  // __cplusplus
+-
+-#endif  // __BIONIC_HAVE_STAB_H
+-
+-#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/common/android/include/sys/signal.h
+--- 
a/toolkit/crashreporter/google-breakpad/src/common/android/include/sys/signal.h 
   Sun Feb 01 19:32:36 2015 +0100
++++ /dev/null  Thu Jan 01 00:00:00 1970 +0000
+@@ -1,35 +0,0 @@
+-// Copyright (c) 2012, Google Inc.
+-// 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.
+-
+-#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H
+-#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H
+-
+-#include <signal.h>
+-
+-#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
+--- a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc   
Sun Feb 01 19:32:36 2015 +0100
++++ b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc   
Thu Feb 05 22:43:17 2015 +0100
+@@ -829,9 +829,9 @@
+ // last slash, or the whole filename if there are no slashes.
+ string BaseFileName(const string &filename) {
+   // Lots of copies!  basename's behavior is less than ideal.
+-  char *c_filename = strdup(filename.c_str());
+-  string base = basename(c_filename);
+-  free(c_filename);
++  const char *c_filename = filename.c_str();
++  const char *p = strrchr(c_filename, '/');
++  string base = p ? p+1 : c_filename;
+   return base;
+ }
+ 
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/common/linux/elf_core_dump.h
+--- a/toolkit/crashreporter/google-breakpad/src/common/linux/elf_core_dump.h   
Sun Feb 01 19:32:36 2015 +0100
++++ b/toolkit/crashreporter/google-breakpad/src/common/linux/elf_core_dump.h   
Thu Feb 05 22:43:17 2015 +0100
+@@ -36,6 +36,7 @@
+ #include <elf.h>
+ #include <link.h>
+ #include <stddef.h>
++#include <sys/reg.h>
+ 
+ #include "common/memory_range.h"
+ 
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
+--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc Sun Feb 
01 19:32:36 2015 +0100
++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc Thu Feb 
05 22:43:17 2015 +0100
+@@ -34,7 +34,6 @@
+ #include "common/stabs_reader.h"
+ 
+ #include <assert.h>
+-#include <stab.h>
+ #include <string.h>
+ 
+ #include <string>
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
+--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h  Sun Feb 
01 19:32:36 2015 +0100
++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h  Thu Feb 
05 22:43:17 2015 +0100
+@@ -53,12 +53,19 @@
+ #include <config.h>
+ #endif
+ 
+-#ifdef HAVE_A_OUT_H
+-#include <a.out.h>
+-#endif
+ #ifdef HAVE_MACH_O_NLIST_H
+ #include <mach-o/nlist.h>
+ #endif
++// Definitions from <stab.h> and <a.out.h> for systems which
++// do not have them
++#undef N_UNDF
++#define N_UNDF 0x0
++#define N_FUN 0x24
++#define N_SLINE 0x44
++#define N_SO 0x64
++#define N_LSYM 0x80
++#define N_BINCL 0x82
++#define N_SOL 0x84
+ 
+ #include <string>
+ #include <vector>
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/common/stabs_reader_unittest.cc
+--- 
a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader_unittest.cc     
   Sun Feb 01 19:32:36 2015 +0100
++++ 
b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader_unittest.cc     
   Thu Feb 05 22:43:17 2015 +0100
+@@ -33,7 +33,6 @@
+ 
+ #include <assert.h>
+ #include <errno.h>
+-#include <stab.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
+--- 
a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
        Sun Feb 01 19:32:36 2015 +0100
++++ 
b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
        Thu Feb 05 22:43:17 2015 +0100
+@@ -2814,7 +2814,7 @@
+     LSS_INLINE _syscall6(void*, mmap,              void*, s,
+                          size_t,                   l, int,               p,
+                          int,                      f, int,               d,
+-                         __off64_t,                o)
++                         off64_t,                o)
+ 
+     LSS_INLINE _syscall4(int, newfstatat,         int,   d,
+                          const char *,            p,
+diff -r 2d344ef8da33 -r df5ec9e5685a 
toolkit/crashreporter/nsExceptionHandler.cpp
+--- a/toolkit/crashreporter/nsExceptionHandler.cpp     Sun Feb 01 19:32:36 
2015 +0100
++++ b/toolkit/crashreporter/nsExceptionHandler.cpp     Thu Feb 05 22:43:17 
2015 +0100
+@@ -49,6 +49,7 @@
+ #elif defined(XP_LINUX)
+ #include "nsIINIParser.h"
+ #include "common/linux/linux_libc_support.h"
++#undef getdents64
+ #include "third_party/lss/linux_syscall_support.h"
+ #include "client/linux/crash_generation/client_info.h"
+ #include "client/linux/crash_generation/crash_generation_server.h"

diff --git a/www-client/firefox/files/define-gettid-unconditonally-musl.patch 
b/www-client/firefox/files/define-gettid-unconditonally-musl.patch
deleted file mode 100644
index 5e42b72..0000000
--- a/www-client/firefox/files/define-gettid-unconditonally-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/mozilla-release/tools/profiler/platform-linux.cc
-+++ b/mozilla-release/tools/profiler/platform-linux.cc
-@@ -84,7 +84,7 @@
- 
- #define SIGNAL_SAVE_PROFILE SIGUSR2
- 
--#if defined(__GLIBC__)
-+#if defined(OS_LINUX) && !defined(ANDROID)
- // glibc doesn't implement gettid(2).
- #include <sys/syscall.h>
- pid_t gettid()

diff --git a/www-client/firefox/files/dont-include-aouth-musl.patch 
b/www-client/firefox/files/dont-include-aouth-musl.patch
deleted file mode 100644
index eae5244..0000000
--- a/www-client/firefox/files/dont-include-aouth-musl.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- 
a/mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
-+++ 
b/mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
-@@ -53,9 +53,10 @@
- #include <config.h>
- #endif
- 
--#ifdef HAVE_A_OUT_H
-+#if 0
- #include <a.out.h>
- #endif
-+
- #ifdef HAVE_MACH_O_NLIST_H
- #include <mach-o/nlist.h>
- #endif

diff --git 
a/www-client/firefox/files/dont-include-cdefsh-stagefright-musl.patch 
b/www-client/firefox/files/dont-include-cdefsh-stagefright-musl.patch
deleted file mode 100644
index 394820e..0000000
--- a/www-client/firefox/files/dont-include-cdefsh-stagefright-musl.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- 
a/mozilla-release/media/libstagefright/system/core/include/cutils/properties.h
-+++ 
b/mozilla-release/media/libstagefright/system/core/include/cutils/properties.h
-@@ -17,7 +17,6 @@
- #ifndef __CUTILS_PROPERTIES_H
- #define __CUTILS_PROPERTIES_H
- 
--#include <sys/cdefs.h>
- #include <stddef.h>
- 
- #ifdef __cplusplus

diff --git 
a/www-client/firefox/files/firefox-31.0-webm-disallow-negative-samples.patch 
b/www-client/firefox/files/firefox-31.0-webm-disallow-negative-samples.patch
deleted file mode 100644
index bccc25e..0000000
--- a/www-client/firefox/files/firefox-31.0-webm-disallow-negative-samples.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/content/media/webm/WebMReader.cpp        2014-10-20 21:59:39.000000000 
-0400
-+++ b/content/media/webm/WebMReader.cpp        2014-10-28 09:06:51.959665416 
-0400
-@@ -668,7 +668,15 @@
-           return true;
-         }
-         int32_t keepFrames = frames - skipFrames;
-+        if (keepFrames < 0) {
-+          NS_WARNING("Int overflow in keepFrames");
-+          return false;
-+      }
-         int samples = keepFrames * channels;
-+      if (samples < 0) {
-+          NS_WARNING("Int overflow in samples");
-+          return false;
-+      }
-         nsAutoArrayPtr<AudioDataValue> trimBuffer(new 
AudioDataValue[samples]);
-         for (int i = 0; i < samples; i++)
-           trimBuffer[i] = buffer[skipFrames*channels + i];
-@@ -691,6 +699,10 @@
-         int32_t keepFrames = frames - discardFrames.value();
-         if (keepFrames > 0) {
-           int samples = keepFrames * channels;
-+          if (samples < 0) {
-+            NS_WARNING("Int overflow in samples");
-+            return false;
-+          }
-           nsAutoArrayPtr<AudioDataValue> trimBuffer(new 
AudioDataValue[samples]);
-           for (int i = 0; i < samples; i++)
-             trimBuffer[i] = buffer[i];

diff --git a/www-client/firefox/files/firefox-32.0-hppa-js-configure.patch 
b/www-client/firefox/files/firefox-32.0-hppa-js-configure.patch
deleted file mode 100644
index c37edda..0000000
--- a/www-client/firefox/files/firefox-32.0-hppa-js-configure.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/mozilla-release/js/src/configure.in
-+++ b/mozilla-release/js/src/configure.in
-@@ -958,7 +958,7 @@
-     CPU_ARCH=s390x
-     ;;
- 
--hppa* | parisc)
-+hppa* | parisc*)
-     CPU_ARCH=hppa
-     ;;
- 
-@@ -2009,6 +2009,9 @@
-     AC_DEFINE(JS_CPU_MIPS)
-     AC_DEFINE(JS_NUNBOX32)
-     ;;
-+hppa*)
-+    AC_DEFINE(JS_NUNBOX32)
-+    ;;
- esac
- 
- MOZ_ARG_DISABLE_BOOL(ion,

diff --git a/www-client/firefox/files/firefox-33.0-jemalloc-configure.patch 
b/www-client/firefox/files/firefox-33.0-jemalloc-configure.patch
deleted file mode 100644
index 0e6e11e..0000000
--- a/www-client/firefox/files/firefox-33.0-jemalloc-configure.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/memory/jemalloc/src/configure.ac 2014-10-11 05:06:41.000000000 -0400
-+++ b/memory/jemalloc/src/configure.ac 2014-10-16 13:41:10.809799170 -0400
-@@ -887,7 +887,7 @@
- dnl Check whether the BSD/SUSv1 sbrk() exists.  If not, disable DSS support.
- AC_CHECK_FUNC([sbrk], [have_sbrk="1"], [have_sbrk="0"])
- if test "x$have_sbrk" = "x1" ; then
--  if test "x$sbrk_deprecated" == "x1" ; then
-+  if test "x$sbrk_deprecated" = "x1" ; then
-     AC_MSG_RESULT([Disabling dss allocation because sbrk is deprecated])
-     enable_dss="0"
-   else
-@@ -1180,7 +1180,7 @@
-               printf("%d\n", rv);
-       }
- ], [je_cv_gcc_builtin_ffsl])
--if test "x${je_cv_gcc_builtin_ffsl}" == "xyes" ; then
-+if test "x${je_cv_gcc_builtin_ffsl}" = "xyes" ; then
-   AC_DEFINE([JEMALLOC_INTERNAL_FFSL], [__builtin_ffsl])
-   AC_DEFINE([JEMALLOC_INTERNAL_FFS], [__builtin_ffs])
- else
-@@ -1194,7 +1194,7 @@
-               printf("%d\n", rv);
-       }
-   ], [je_cv_function_ffsl])
--  if test "x${je_cv_function_ffsl}" == "xyes" ; then
-+  if test "x${je_cv_function_ffsl}" = "xyes" ; then
-     AC_DEFINE([JEMALLOC_INTERNAL_FFSL], [ffsl])
-     AC_DEFINE([JEMALLOC_INTERNAL_FFS], [ffs])
-   else

diff --git a/www-client/firefox/files/firefox-35.0-gmp-clearkey-sprintf.patch 
b/www-client/firefox/files/firefox-35.0-gmp-clearkey-sprintf.patch
new file mode 100644
index 0000000..dfd9a8d
--- /dev/null
+++ b/www-client/firefox/files/firefox-35.0-gmp-clearkey-sprintf.patch
@@ -0,0 +1,10 @@
+--- a/mozilla-beta/media/gmp-clearkey/0.1/openaes/oaes_lib.c   2014-12-04 
11:24:16.279571363 -0500
++++ b/mozilla-beta/media/gmp-clearkey/0.1/openaes/oaes_lib.c   2014-12-04 
11:23:07.449572313 -0500
+@@ -42,6 +42,7 @@
+ 
+ #include "oaes_config.h"
+ #include "oaes_lib.h"
++#include "standard.h"
+ 
+ #ifdef OAES_HAVE_ISAAC
+ #include "rand.h"

diff --git a/www-client/firefox/files/fix-amd64-build-musl.patch 
b/www-client/firefox/files/fix-amd64-build-musl.patch
deleted file mode 100644
index 6482af8..0000000
--- a/www-client/firefox/files/fix-amd64-build-musl.patch
+++ /dev/null
@@ -1,39 +0,0 @@
---- 
a/mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
-+++ 
b/mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
-@@ -2814,7 +2814,7 @@
-     LSS_INLINE _syscall6(void*, mmap,              void*, s,
-                          size_t,                   l, int,               p,
-                          int,                      f, int,               d,
--                         __off64_t,                o)
-+                         off64_t,                o)
- 
-     LSS_INLINE _syscall4(int, newfstatat,         int,   d,
-                          const char *,            p,
---- a/mozilla-release/toolkit/xre/nsSigHandlers.cpp
-+++ b/mozilla-release/toolkit/xre/nsSigHandlers.cpp
-@@ -152,7 +152,7 @@
-   status->__invalid = status->__denorm = status->__zdiv = status->__ovrfl = 
status->__undfl =
-     status->__precis = status->__stkflt = status->__errsumm = 0;
- 
--  __uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr;
-+  uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr;
-   *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */
-   *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
- #endif
-@@ -172,13 +172,13 @@
-   *sw &= ~FPU_STATUS_FLAGS;
- #endif
- #if defined(__amd64__)
--  __uint16_t *cw = &uc->uc_mcontext.fpregs->cwd;
-+  uint16_t *cw = &uc->uc_mcontext.fpregs->cwd;
-   *cw |= FPU_EXCEPTION_MASK;
- 
--  __uint16_t *sw = &uc->uc_mcontext.fpregs->swd;
-+  uint16_t *sw = &uc->uc_mcontext.fpregs->swd;
-   *sw &= ~FPU_STATUS_FLAGS;
- 
--  __uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr;
-+  uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr;
-   *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */
-   *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
- #endif

diff --git a/www-client/firefox/files/fix-android-check-musl.patch 
b/www-client/firefox/files/fix-android-check-musl.patch
deleted file mode 100644
index e81da0f..0000000
--- a/www-client/firefox/files/fix-android-check-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/mozilla-release/ipc/chromium/src/base/debug_util_posix.cc
-+++ b/mozilla-release/ipc/chromium/src/base/debug_util_posix.cc
-@@ -5,7 +5,7 @@
- #include "build/build_config.h"
- #include "base/debug_util.h"
- 
--#define MOZ_HAVE_EXECINFO_H (defined(OS_LINUX) && !defined(ANDROID))
-+#define MOZ_HAVE_EXECINFO_H (defined(OS_LINUX) && defined(__GLIBC__))
- 
- #include <errno.h>
- #include <fcntl.h>

diff --git a/www-client/firefox/files/fix-jemalloc-includes-musl.patch 
b/www-client/firefox/files/fix-jemalloc-includes-musl.patch
deleted file mode 100644
index 928673a..0000000
--- a/www-client/firefox/files/fix-jemalloc-includes-musl.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/mozilla-release/memory/mozjemalloc/jemalloc.c
-+++ b/mozilla-release/memory/mozjemalloc/jemalloc.c
-@@ -337,7 +337,6 @@
- #include <sys/time.h>
- #include <sys/types.h>
- #if !defined(MOZ_MEMORY_SOLARIS) && !defined(MOZ_MEMORY_ANDROID)
--#include <sys/sysctl.h>
- #endif
- #include <sys/uio.h>
- #ifndef MOZ_MEMORY

diff --git a/www-client/firefox/files/fix-mtransport-includes-musl.patch 
b/www-client/firefox/files/fix-mtransport-includes-musl.patch
deleted file mode 100644
index 92dd34f..0000000
--- a/www-client/firefox/files/fix-mtransport-includes-musl.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/mozilla-release/media/mtransport/third_party/nICEr/src/stun/addrs.c
-+++ b/mozilla-release/media/mtransport/third_party/nICEr/src/stun/addrs.c
-@@ -45,7 +45,6 @@
- #include <sys/param.h>
- #include <sys/socket.h>
- #ifndef ANDROID
--#include <sys/sysctl.h>
- #include <sys/syslog.h>
- #else
- #include <syslog.h>
-@@ -63,8 +61,8 @@
- #include <sys/sockio.h>
- #else
- #include <linux/sockios.h>
--#include <linux/if.h>
- #include <linux/kernel.h>
-+#include <linux/if.h>
- #include <linux/wireless.h>
- #ifndef ANDROID
- #include <linux/ethtool.h>

diff --git a/www-client/firefox/files/fts.patch 
b/www-client/firefox/files/fts.patch
new file mode 100644
index 0000000..4c1734f
--- /dev/null
+++ b/www-client/firefox/files/fts.patch
@@ -0,0 +1,480 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1428142499 -7200
+#      Sat Apr 04 12:14:59 2015 +0200
+# Node ID b85504ff4ee9c548d58e75398a2de69f2089e907
+# Parent  90adc073cbc6398f4fab9b1cd07b685368559f34
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1139173
+ipc/chromium: Remove dead code to make it compile on linux without <fts.h>
+
+diff -r 90adc073cbc6 -r b85504ff4ee9 ipc/chromium/moz.build
+--- a/ipc/chromium/moz.build   Thu Apr 02 08:10:00 2015 -0400
++++ b/ipc/chromium/moz.build   Sat Apr 04 12:14:59 2015 +0200
+@@ -50,7 +50,6 @@
+     'src/base/pickle.cc',
+     'src/base/rand_util.cc',
+     'src/base/revocable_store.cc',
+-    'src/base/scoped_temp_dir.cc',
+     'src/base/string_piece.cc',
+     'src/base/string_util.cc',
+     'src/base/thread.cc',
+diff -r 90adc073cbc6 -r b85504ff4ee9 ipc/chromium/src/base/file_util.cc
+--- a/ipc/chromium/src/base/file_util.cc       Thu Apr 02 08:10:00 2015 -0400
++++ b/ipc/chromium/src/base/file_util.cc       Sat Apr 04 12:14:59 2015 +0200
+@@ -139,12 +139,6 @@
+     path->push_back(FilePath::kSeparators[0]);
+   path->append(new_ending);
+ }
+-bool CopyDirectory(const std::wstring& from_path, const std::wstring& to_path,
+-                   bool recursive) {
+-  return CopyDirectory(FilePath::FromWStringHack(from_path),
+-                       FilePath::FromWStringHack(to_path),
+-                       recursive);
+-}
+ bool CopyFile(const std::wstring& from_path, const std::wstring& to_path) {
+   return CopyFile(FilePath::FromWStringHack(from_path),
+                   FilePath::FromWStringHack(to_path));
+@@ -172,8 +166,8 @@
+   *temp_file = temp_file_path.ToWStringHack();
+   return true;
+ }
+-bool Delete(const std::wstring& path, bool recursive) {
+-  return Delete(FilePath::FromWStringHack(path), recursive);
++bool Delete(const std::wstring& path) {
++  return Delete(FilePath::FromWStringHack(path));
+ }
+ bool DirectoryExists(const std::wstring& path) {
+   return DirectoryExists(FilePath::FromWStringHack(path));
+diff -r 90adc073cbc6 -r b85504ff4ee9 ipc/chromium/src/base/file_util.h
+--- a/ipc/chromium/src/base/file_util.h        Thu Apr 02 08:10:00 2015 -0400
++++ b/ipc/chromium/src/base/file_util.h        Sat Apr 04 12:14:59 2015 +0200
+@@ -16,7 +16,6 @@
+ #include <sys/stat.h>
+ #elif defined(OS_POSIX) 
+ #include <sys/types.h>
+-#include <fts.h>
+ #include <sys/stat.h>
+ #endif
+ 
+@@ -87,34 +86,17 @@
+ 
+ // Deletes the given path, whether it's a file or a directory.
+ // If it's a directory, it's perfectly happy to delete all of the
+-// directory's contents.  Passing true to recursive deletes
+-// subdirectories and their contents as well.
++// directory's contents.
+ // Returns true if successful, false otherwise.
+-//
+-// WARNING: USING THIS WITH recursive==true IS EQUIVALENT
+-//          TO "rm -rf", SO USE WITH CAUTION.
+-bool Delete(const FilePath& path, bool recursive);
++bool Delete(const FilePath& path);
+ // Deprecated temporary compatibility function.
+-bool Delete(const std::wstring& path, bool recursive);
++bool Delete(const std::wstring& path);
+ 
+ // Copies a single file. Use CopyDirectory to copy directories.
+ bool CopyFile(const FilePath& from_path, const FilePath& to_path);
+ // Deprecated temporary compatibility function.
+ bool CopyFile(const std::wstring& from_path, const std::wstring& to_path);
+ 
+-// Copies the given path, and optionally all subdirectories and their contents
+-// as well.
+-// If there are files existing under to_path, always overwrite.
+-// Returns true if successful, false otherwise.
+-// Dont't use wildcards on the names, it may stop working without notice.
+-//
+-// If you only need to copy a file use CopyFile, it's faster.
+-bool CopyDirectory(const FilePath& from_path, const FilePath& to_path,
+-                   bool recursive);
+-// Deprecated temporary compatibility function.
+-bool CopyDirectory(const std::wstring& from_path, const std::wstring& to_path,
+-                   bool recursive);
+-
+ // Returns true if the given path exists on the local filesystem,
+ // false otherwise.
+ bool PathExists(const FilePath& path);
+diff -r 90adc073cbc6 -r b85504ff4ee9 ipc/chromium/src/base/file_util_posix.cc
+--- a/ipc/chromium/src/base/file_util_posix.cc Thu Apr 02 08:10:00 2015 -0400
++++ b/ipc/chromium/src/base/file_util_posix.cc Sat Apr 04 12:14:59 2015 +0200
+@@ -8,13 +8,10 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <fnmatch.h>
+-#ifndef ANDROID
+-#include <fts.h>
+-#endif
+ #include <libgen.h>
+ #include <stdio.h>
+ #include <string.h>
+-#include <sys/errno.h>
++#include <errno.h>
+ #include <sys/mman.h>
+ #define _DARWIN_USE_64_BIT_INODE // Use 64-bit inode data structures
+ #include <sys/stat.h>
+@@ -53,7 +50,7 @@
+ // which works both with and without the recursive flag.  I'm not sure we need
+ // that functionality. If not, remove from file_util_win.cc, otherwise add it
+ // here.
+-bool Delete(const FilePath& path, bool recursive) {
++bool Delete(const FilePath& path) {
+   const char* path_str = path.value().c_str();
+   struct stat file_info;
+   int test = stat(path_str, &file_info);
+@@ -64,174 +61,8 @@
+   }
+   if (!S_ISDIR(file_info.st_mode))
+     return (unlink(path_str) == 0);
+-  if (!recursive)
+-    return (rmdir(path_str) == 0);
+ 
+-#ifdef ANDROID
+-  // XXX Need ftsless impl for bionic
+-  return false;
+-#else
+-  bool success = true;
+-  int ftsflags = FTS_PHYSICAL | FTS_NOSTAT;
+-  char top_dir[PATH_MAX];
+-  if (base::strlcpy(top_dir, path_str,
+-                    arraysize(top_dir)) >= arraysize(top_dir)) {
+-    return false;
+-  }
+-  char* dir_list[2] = { top_dir, NULL };
+-  FTS* fts = fts_open(dir_list, ftsflags, NULL);
+-  if (fts) {
+-    FTSENT* fts_ent = fts_read(fts);
+-    while (success && fts_ent != NULL) {
+-      switch (fts_ent->fts_info) {
+-        case FTS_DNR:
+-        case FTS_ERR:
+-          // log error
+-          success = false;
+-          continue;
+-          break;
+-        case FTS_DP:
+-          success = (rmdir(fts_ent->fts_accpath) == 0);
+-          break;
+-        case FTS_D:
+-          break;
+-        case FTS_NSOK:
+-        case FTS_F:
+-        case FTS_SL:
+-        case FTS_SLNONE:
+-          success = (unlink(fts_ent->fts_accpath) == 0);
+-          break;
+-        default:
+-          DCHECK(false);
+-          break;
+-      }
+-      fts_ent = fts_read(fts);
+-    }
+-    fts_close(fts);
+-  }
+-  return success;
+-#endif
+-}
+-
+-bool Move(const FilePath& from_path, const FilePath& to_path) {
+-  if (rename(from_path.value().c_str(), to_path.value().c_str()) == 0)
+-    return true;
+-
+-  if (!CopyDirectory(from_path, to_path, true))
+-    return false;
+-
+-  Delete(from_path, true);
+-  return true;
+-}
+-
+-bool CopyDirectory(const FilePath& from_path,
+-                   const FilePath& to_path,
+-                   bool recursive) {
+-  // Some old callers of CopyDirectory want it to support wildcards.
+-  // After some discussion, we decided to fix those callers.
+-  // Break loudly here if anyone tries to do this.
+-  // TODO(evanm): remove this once we're sure it's ok.
+-  DCHECK(to_path.value().find('*') == std::string::npos);
+-  DCHECK(from_path.value().find('*') == std::string::npos);
+-
+-  char top_dir[PATH_MAX];
+-  if (base::strlcpy(top_dir, from_path.value().c_str(),
+-                    arraysize(top_dir)) >= arraysize(top_dir)) {
+-    return false;
+-  }
+-
+-#ifdef ANDROID
+-  // XXX Need ftsless impl for bionic
+-  return false;
+-#else
+-  char* dir_list[] = { top_dir, NULL };
+-  FTS* fts = fts_open(dir_list, FTS_PHYSICAL | FTS_NOSTAT, NULL);
+-  if (!fts) {
+-    CHROMIUM_LOG(ERROR) << "fts_open failed: " << strerror(errno);
+-    return false;
+-  }
+-
+-  int error = 0;
+-  FTSENT* ent;
+-  while (!error && (ent = fts_read(fts)) != NULL) {
+-    // ent->fts_path is the source path, including from_path, so paste
+-    // the suffix after from_path onto to_path to create the target_path.
+-    std::string suffix(&ent->fts_path[from_path.value().size()]);
+-    // Strip the leading '/' (if any).
+-    if (!suffix.empty()) {
+-      DCHECK_EQ('/', suffix[0]);
+-      suffix.erase(0, 1);
+-    }
+-    const FilePath target_path = to_path.Append(suffix);
+-    switch (ent->fts_info) {
+-      case FTS_D:  // Preorder directory.
+-        // If we encounter a subdirectory in a non-recursive copy, prune it
+-        // from the traversal.
+-        if (!recursive && ent->fts_level > 0) {
+-          if (fts_set(fts, ent, FTS_SKIP) != 0)
+-            error = errno;
+-          continue;
+-        }
+-
+-        // Try creating the target dir, continuing on it if it exists already.
+-        // Rely on the user's umask to produce correct permissions.
+-        if (mkdir(target_path.value().c_str(), 0777) != 0) {
+-          if (errno != EEXIST)
+-            error = errno;
+-        }
+-        break;
+-      case FTS_F:     // Regular file.
+-      case FTS_NSOK:  // File, no stat info requested.
+-        errno = 0;
+-        if (!CopyFile(FilePath(ent->fts_path), target_path))
+-          error = errno ? errno : EINVAL;
+-        break;
+-      case FTS_DP:   // Postorder directory.
+-      case FTS_DOT:  // "." or ".."
+-        // Skip it.
+-        continue;
+-      case FTS_DC:   // Directory causing a cycle.
+-        // Skip this branch.
+-        if (fts_set(fts, ent, FTS_SKIP) != 0)
+-          error = errno;
+-        break;
+-      case FTS_DNR:  // Directory cannot be read.
+-      case FTS_ERR:  // Error.
+-      case FTS_NS:   // Stat failed.
+-        // Abort with the error.
+-        error = ent->fts_errno;
+-        break;
+-      case FTS_SL:      // Symlink.
+-      case FTS_SLNONE:  // Symlink with broken target.
+-        CHROMIUM_LOG(WARNING) << "CopyDirectory() skipping symbolic link: " <<
+-            ent->fts_path;
+-        continue;
+-      case FTS_DEFAULT:  // Some other sort of file.
+-        CHROMIUM_LOG(WARNING) << "CopyDirectory() skipping file of unknown 
type: " <<
+-            ent->fts_path;
+-        continue;
+-      default:
+-        NOTREACHED();
+-        continue;  // Hope for the best!
+-    }
+-  }
+-  // fts_read may have returned NULL and set errno to indicate an error.
+-  if (!error && errno != 0)
+-    error = errno;
+-
+-  if (!fts_close(fts)) {
+-    // If we already have an error, let's use that error instead of the error
+-    // fts_close set.
+-    if (!error)
+-      error = errno;
+-  }
+-
+-  if (error) {
+-    CHROMIUM_LOG(ERROR) << "CopyDirectory(): " << strerror(error);
+-    return false;
+-  }
+-  return true;
+-#endif
++  return (rmdir(path_str) == 0);
+ }
+ 
+ bool PathExists(const FilePath& path) {
+diff -r 90adc073cbc6 -r b85504ff4ee9 ipc/chromium/src/base/file_util_win.cc
+--- a/ipc/chromium/src/base/file_util_win.cc   Thu Apr 02 08:10:00 2015 -0400
++++ b/ipc/chromium/src/base/file_util_win.cc   Sat Apr 04 12:14:59 2015 +0200
+@@ -27,14 +27,14 @@
+   return true;
+ }
+ 
+-bool Delete(const FilePath& path, bool recursive) {
++bool Delete(const FilePath& path) {
+   if (path.value().length() >= MAX_PATH)
+     return false;
+ 
+-  // If we're not recursing use DeleteFile; it should be faster. DeleteFile
++  // Use DeleteFile; it should be faster. DeleteFile
+   // fails if passed a directory though, which is why we fall through on
+   // failure to the SHFileOperation.
+-  if (!recursive && DeleteFile(path.value().c_str()) != 0)
++  if (DeleteFile(path.value().c_str()) != 0)
+     return true;
+ 
+   // SHFILEOPSTRUCT wants the path to be terminated with two NULLs,
+@@ -48,8 +48,7 @@
+   file_operation.wFunc = FO_DELETE;
+   file_operation.pFrom = double_terminated_path;
+   file_operation.fFlags = FOF_NOERRORUI | FOF_SILENT | FOF_NOCONFIRMATION;
+-  if (!recursive)
+-    file_operation.fFlags |= FOF_NORECURSION | FOF_FILESONLY;
++  file_operation.fFlags |= FOF_NORECURSION | FOF_FILESONLY;
+   int err = SHFileOperation(&file_operation);
+   // Some versions of Windows return ERROR_FILE_NOT_FOUND when
+   // deleting an empty directory.
+@@ -98,26 +97,6 @@
+   return (SHFileOperation(&file_operation) == 0);
+ }
+ 
+-bool CopyDirectory(const FilePath& from_path, const FilePath& to_path,
+-                   bool recursive) {
+-  if (recursive)
+-    return ShellCopy(from_path, to_path, true);
+-
+-  // Instead of creating a new directory, we copy the old one to include the
+-  // security information of the folder as part of the copy.
+-  if (!PathExists(to_path)) {
+-    // Except that Vista fails to do that, and instead do a recursive copy if
+-    // the target directory doesn't exist.
+-    if (win_util::GetWinVersion() >= win_util::WINVERSION_VISTA)
+-      CreateDirectory(to_path);
+-    else
+-      ShellCopy(from_path, to_path, false);
+-  }
+-
+-  FilePath directory = from_path.Append(L"*.*");
+-  return ShellCopy(directory, to_path, false);
+-}
+-
+ bool PathExists(const FilePath& path) {
+   return (GetFileAttributes(path.value().c_str()) != INVALID_FILE_ATTRIBUTES);
+ }
+diff -r 40f6b9e6448e -r e25335f4fbb2 ipc/chromium/src/base/scoped_temp_dir.cc
+--- a/ipc/chromium/src/base/scoped_temp_dir.cc Tue Mar 03 23:02:07 2015 +0100
++++ /dev/null  Thu Jan 01 00:00:00 1970 +0000
+@@ -1,47 +0,0 @@
+-// 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.
+-
+-#include "base/scoped_temp_dir.h"
+-
+-#include "base/file_util.h"
+-#include "base/logging.h"
+-#include "base/string_util.h"
+-
+-ScopedTempDir::ScopedTempDir() {
+-}
+-
+-ScopedTempDir::~ScopedTempDir() {
+-  if (!path_.empty() && !file_util::Delete(path_, true))
+-    CHROMIUM_LOG(ERROR) << "ScopedTempDir unable to delete " << path_.value();
+-}
+-
+-bool ScopedTempDir::CreateUniqueTempDir() {
+-  // This "scoped_dir" prefix is only used on Windows and serves as a template
+-  // for the unique name.
+-  if (!file_util::CreateNewTempDirectory(FILE_PATH_LITERAL("scoped_dir"),
+-                                         &path_))
+-    return false;
+-
+-  return true;
+-}
+-
+-bool ScopedTempDir::Set(const FilePath& path) {
+-  DCHECK(path_.empty());
+-  if (!file_util::DirectoryExists(path) &&
+-      !file_util::CreateDirectory(path)) {
+-    return false;
+-  }
+-  path_ = path;
+-  return true;
+-}
+-
+-FilePath ScopedTempDir::Take() {
+-  FilePath ret = path_;
+-  path_ = FilePath();
+-  return ret;
+-}
+-
+-bool ScopedTempDir::IsValid() const {
+-  return !path_.empty() && file_util::DirectoryExists(path_);
+-}
+diff -r 40f6b9e6448e -r e25335f4fbb2 ipc/chromium/src/base/scoped_temp_dir.h
+--- a/ipc/chromium/src/base/scoped_temp_dir.h  Tue Mar 03 23:02:07 2015 +0100
++++ /dev/null  Thu Jan 01 00:00:00 1970 +0000
+@@ -1,47 +0,0 @@
+-// 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.
+-
+-#ifndef BASE_SCOPED_TEMP_DIR_H_
+-#define BASE_SCOPED_TEMP_DIR_H_
+-
+-// An object representing a temporary / scratch directory that should be 
cleaned
+-// up (recursively) when this object goes out of scope.  Note that since
+-// deletion occurs during the destructor, no further error handling is 
possible
+-// if the directory fails to be deleted.  As a result, deletion is not
+-// guaranteed by this class.
+-
+-#include "base/file_path.h"
+-
+-class ScopedTempDir {
+- public:
+-  // No directory is owned/created initially.
+-  ScopedTempDir();
+-
+-  // Recursively delete path_
+-  ~ScopedTempDir();
+-
+-  // Creates a unique directory in TempPath, and takes ownership of it.
+-  // See file_util::CreateNewTemporaryDirectory.
+-  bool CreateUniqueTempDir();
+-
+-  // Takes ownership of directory at |path|, creating it if necessary.
+-  // Don't call multiple times unless Take() has been called first.
+-  bool Set(const FilePath& path);
+-
+-  // Caller takes ownership of the temporary directory so it won't be 
destroyed
+-  // when this object goes out of scope.
+-  FilePath Take();
+-
+-  const FilePath& path() const { return path_; }
+-
+-  // Returns true if path_ is non-empty and exists.
+-  bool IsValid() const;
+-
+- private:
+-  FilePath path_;
+-
+-  DISALLOW_COPY_AND_ASSIGN(ScopedTempDir);
+-};
+-
+-#endif  // BASE_SCOPED_TEMP_DIR_H_
+diff -r 90adc073cbc6 -r b85504ff4ee9 
ipc/chromium/src/base/shared_memory_posix.cc
+--- a/ipc/chromium/src/base/shared_memory_posix.cc     Thu Apr 02 08:10:00 
2015 -0400
++++ b/ipc/chromium/src/base/shared_memory_posix.cc     Sat Apr 04 12:14:59 
2015 +0200
+@@ -93,7 +93,7 @@
+ 
+   FilePath path(WideToUTF8(mem_filename));
+   if (file_util::PathExists(path)) {
+-    return file_util::Delete(path, false);
++    return file_util::Delete(path);
+   }
+ 
+   // Doesn't exist, so success.
+@@ -170,7 +170,7 @@
+     // Deleting the file prevents anyone else from mapping it in
+     // (making it private), and prevents the need for cleanup (once
+     // the last fd is closed, it is truly freed).
+-    file_util::Delete(path, false);
++    file_util::Delete(path);
+   } else {
+     std::wstring mem_filename;
+     if (FilenameForMemoryName(name, &mem_filename) == false)

diff --git a/www-client/firefox/files/include-systypesh-musl.patch 
b/www-client/firefox/files/include-systypesh-musl.patch
deleted file mode 100644
index 601b0c3..0000000
--- a/www-client/firefox/files/include-systypesh-musl.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/mozilla-release/tools/profiler/local_debug_info_symbolizer.cc
-+++ b/mozilla-release/tools/profiler/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"
- 
---- a/mozilla-release/tools/profiler/platform.h
-+++ b/mozilla-release/tools/profiler/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
- 
-+#include <sys/types.h>
-+
- #ifdef ANDROID
- #include <android/log.h>
- #else

diff --git a/www-client/firefox/files/libstagefright-cdefs.patch 
b/www-client/firefox/files/libstagefright-cdefs.patch
new file mode 100644
index 0000000..b45f97f
--- /dev/null
+++ b/www-client/firefox/files/libstagefright-cdefs.patch
@@ -0,0 +1,21 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423171584 -3600
+#      Thu Feb 05 22:26:24 2015 +0100
+# Node ID 48a43c9da31a3ae083edd563be50fb04d9a5b99a
+# Parent  2d344ef8da33717224d5a08570dc834ca2254f9f
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1151202
+libstagefright: Fix compilation for systems without <sys/cdefs.h>
+
+diff -r 2d344ef8da33 -r 48a43c9da31a 
media/libstagefright/system/core/include/cutils/properties.h
+--- a/media/libstagefright/system/core/include/cutils/properties.h     Sun Feb 
01 19:32:36 2015 +0100
++++ b/media/libstagefright/system/core/include/cutils/properties.h     Thu Feb 
05 22:26:24 2015 +0100
+@@ -17,7 +17,7 @@
+ #ifndef __CUTILS_PROPERTIES_H
+ #define __CUTILS_PROPERTIES_H
+ 
+-#include <sys/cdefs.h>
++#include <sys/types.h>
+ #include <stddef.h>
+ 
+ #ifdef __cplusplus

diff --git a/www-client/firefox/files/make-handleInt-unsigned-long-musl.patch 
b/www-client/firefox/files/make-handleInt-unsigned-long-musl.patch
deleted file mode 100644
index 7b9743a..0000000
--- a/www-client/firefox/files/make-handleInt-unsigned-long-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 
a/mozilla-release/media/webrtc/signaling/src/sipcc/cpr/include/cpr_threads.h
-+++ 
b/mozilla-release/media/webrtc/signaling/src/sipcc/cpr/include/cpr_threads.h
-@@ -30,7 +30,7 @@
-     uint32_t threadId;
-     union {
-         void *handlePtr;
--        uint64_t handleInt;
-+        unsigned long handleInt;
-     } u;
- } cpr_thread_t;
-

diff --git a/www-client/firefox/files/profiler-gettid.patch 
b/www-client/firefox/files/profiler-gettid.patch
new file mode 100644
index 0000000..d9983b4
--- /dev/null
+++ b/www-client/firefox/files/profiler-gettid.patch
@@ -0,0 +1,51 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423173146 -3600
+#      Thu Feb 05 22:52:26 2015 +0100
+# Node ID c084550fcab646d911bbf4f05747f228759161e4
+# Parent  2d344ef8da33717224d5a08570dc834ca2254f9f
+profiler: avoid getcontext and gettid
+
+diff -r 2d344ef8da33 -r c084550fcab6 tools/profiler/GeckoTaskTracer.cpp
+--- a/tools/profiler/GeckoTaskTracer.cpp       Sun Feb 01 19:32:36 2015 +0100
++++ b/tools/profiler/GeckoTaskTracer.cpp       Thu Feb 05 22:52:26 2015 +0100
+@@ -18,8 +18,8 @@
+ 
+ #include <stdarg.h>
+ 
+-#if defined(__GLIBC__)
+-// glibc doesn't implement gettid(2).
++#if defined(OS_LINUX) && !defined(ANDROID)
++// only bionic wraps gettid(2).
+ #include <sys/syscall.h>
+ static pid_t gettid()
+ {
+diff -r 2d344ef8da33 -r c084550fcab6 tools/profiler/platform-linux.cc
+--- a/tools/profiler/platform-linux.cc Sun Feb 01 19:32:36 2015 +0100
++++ b/tools/profiler/platform-linux.cc Thu Feb 05 22:52:26 2015 +0100
+@@ -92,8 +92,8 @@
+ 
+ #define SIGNAL_SAVE_PROFILE SIGUSR2
+ 
+-#if defined(__GLIBC__)
+-// glibc doesn't implement gettid(2).
++#if !defined(ANDROID)
++// only android wraps gettid(2).
+ #include <sys/syscall.h>
+ pid_t gettid()
+ {
+@@ -652,10 +652,10 @@
+ {
+   MOZ_ASSERT(aContext);
+   ucontext_t* pContext = reinterpret_cast<ucontext_t*>(aContext);
+-  if (!getcontext(pContext)) {
+-    context = pContext;
+-    SetSampleContext(this, aContext);
+-  }
++//  if (!getcontext(pContext)) {
++//    context = pContext;
++//    SetSampleContext(this, aContext);
++//  }
+ }
+ 
+ void OS::SleepMicro(int microseconds)

diff --git a/www-client/firefox/files/sandbox-cdefs.patch 
b/www-client/firefox/files/sandbox-cdefs.patch
new file mode 100644
index 0000000..9591a29
--- /dev/null
+++ b/www-client/firefox/files/sandbox-cdefs.patch
@@ -0,0 +1,21 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423172498 -3600
+#      Thu Feb 05 22:41:38 2015 +0100
+# Node ID 375c73854f92701f13403b8461b35727dccde825
+# Parent  2d344ef8da33717224d5a08570dc834ca2254f9f
+# https://codereview.chromium.org/278583005
+chromium sandbox: Avoid cdefs.h
+
+diff -r 2d344ef8da33 -r 375c73854f92 
security/sandbox/chromium/sandbox/linux/seccomp-bpf/linux_seccomp.h
+--- a/security/sandbox/chromium/sandbox/linux/seccomp-bpf/linux_seccomp.h      
Sun Feb 01 19:32:36 2015 +0100
++++ b/security/sandbox/chromium/sandbox/linux/seccomp-bpf/linux_seccomp.h      
Thu Feb 05 22:41:38 2015 +0100
+@@ -16,7 +16,7 @@
+ #include <asm/unistd.h>
+ #include <linux/filter.h>
+ 
+-#include <sys/cdefs.h>
++#include <sys/types.h>
+ // Old Bionic versions do not have sys/user.h.  The if can be removed once we 
no
+ // longer need to support these old Bionic versions.
+ // All x86_64 builds use a new enough bionic to have sys/user.h.

diff --git a/www-client/firefox/files/fix-sctp-includes-musl.patch 
b/www-client/firefox/files/sctp-36.patch
similarity index 56%
rename from www-client/firefox/files/fix-sctp-includes-musl.patch
rename to www-client/firefox/files/sctp-36.patch
index a659e40..77a18a8 100644
--- a/www-client/firefox/files/fix-sctp-includes-musl.patch
+++ b/www-client/firefox/files/sctp-36.patch
@@ -1,7 +1,10 @@
---- a/mozilla-release/netwerk/sctp/src/netinet/sctp_os_userspace.h
-+++ b/mozilla-release/netwerk/sctp/src/netinet/sctp_os_userspace.h
-@@ -400,9 +400,11 @@
- #define if_nametoindex(x) win_if_nametoindex(x)
+https://bugzilla.mozilla.org/show_bug.cgi?id=1146096
+
+diff -r e965a1a534ec -r 4ca8a9e27180 
netwerk/sctp/src/netinet/sctp_os_userspace.h
+--- a/netwerk/sctp/src/netinet/sctp_os_userspace.h     Tue Mar 17 14:22:40 
2015 -0400
++++ b/netwerk/sctp/src/netinet/sctp_os_userspace.h     Tue Mar 17 22:17:01 
2015 +0100
+@@ -273,9 +273,11 @@
+ #endif
  
  #else /* !defined(Userspace_os_Windows) */
 +#ifdef __FreeBSD__
@@ -13,7 +16,7 @@
  #include <pthread.h>
  #endif
  typedef pthread_mutex_t userland_mutex_t;
-@@ -427,7 +427,7 @@
+@@ -437,7 +439,7 @@
  /* #include <sys/param.h>  in FreeBSD defines MSIZE */
  /* #include <sys/ktr.h> */
  /* #include <sys/systm.h> */
@@ -22,8 +25,9 @@
  #include <user_queue.h>
  #else
  #include <sys/queue.h>
---- a/mozilla-release/netwerk/sctp/src/netinet/sctp_pcb.c
-+++ b/mozilla-release/netwerk/sctp/src/netinet/sctp_pcb.c
+diff -r e965a1a534ec -r 4ca8a9e27180 netwerk/sctp/src/netinet/sctp_pcb.c
+--- a/netwerk/sctp/src/netinet/sctp_pcb.c      Tue Mar 17 14:22:40 2015 -0400
++++ b/netwerk/sctp/src/netinet/sctp_pcb.c      Tue Mar 17 22:17:01 2015 +0100
 @@ -30,6 +30,9 @@
   * THE POSSIBILITY OF SUCH DAMAGE.
   */
@@ -33,9 +37,10 @@
 +
  #ifdef __FreeBSD__
  #include <sys/cdefs.h>
- __FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 258765 2013-11-30 12:51:19Z 
tuexen $");
---- a/mozilla-release/netwerk/sctp/src/user_queue.h
-+++ b/mozilla-release/netwerk/sctp/src/user_queue.h
+ __FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 277031 2015-01-11 21:55:30Z 
tuexen $");
+diff -r e965a1a534ec -r 4ca8a9e27180 netwerk/sctp/src/user_queue.h
+--- a/netwerk/sctp/src/user_queue.h    Tue Mar 17 14:22:40 2015 -0400
++++ b/netwerk/sctp/src/user_queue.h    Tue Mar 17 22:17:01 2015 +0100
 @@ -31,7 +31,7 @@
  #ifndef _USER_QUEUE_H_
  #define       _USER_QUEUE_H_

diff --git a/www-client/firefox/files/sctp.patch 
b/www-client/firefox/files/sctp.patch
new file mode 100644
index 0000000..5155c85
--- /dev/null
+++ b/www-client/firefox/files/sctp.patch
@@ -0,0 +1,58 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1426627021 -3600
+#      Tue Mar 17 22:17:01 2015 +0100
+# Node ID 4ca8a9e2718089a1d220d1d420ebe583be4be9e5
+# Parent  e965a1a534ecb6635975fae33a929dc6c06bcb50
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1146096
+
+diff -r e965a1a534ec -r 4ca8a9e27180 
netwerk/sctp/src/netinet/sctp_os_userspace.h
+--- a/netwerk/sctp/src/netinet/sctp_os_userspace.h     Tue Mar 17 14:22:40 
2015 -0400
++++ b/netwerk/sctp/src/netinet/sctp_os_userspace.h     Tue Mar 17 22:17:01 
2015 +0100
+@@ -273,9 +273,11 @@
+ #endif
+ 
+ #else /* !defined(Userspace_os_Windows) */
++#ifdef __FreeBSD__
+ #include <sys/cdefs.h> /* needed? added from old __FreeBSD__ */
++#endif /* __FreeBSD__ */
+ #include <sys/socket.h>
+-#if defined(__Userspace_os_DragonFly) || defined(__Userspace_os_FreeBSD) || 
defined(__Userspace_os_Linux) || defined(__Userspace_os_NetBSD) || 
defined(__Userspace_os_OpenBSD) || defined(__Userspace_os_NaCl)
++#if !defined(__Userspace_os_Windows) && !defined(__Userspace_os_Darwin)
+ #include <pthread.h>
+ #endif
+ typedef pthread_mutex_t userland_mutex_t;
+@@ -437,7 +439,7 @@
+ /* #include <sys/param.h>  in FreeBSD defines MSIZE */
+ /* #include <sys/ktr.h> */
+ /* #include <sys/systm.h> */
+-#if defined(__Userspace_os_Windows)
++#if 1
+ #include <user_queue.h>
+ #else
+ #include <sys/queue.h>
+diff -r e965a1a534ec -r 4ca8a9e27180 netwerk/sctp/src/netinet/sctp_pcb.c
+--- a/netwerk/sctp/src/netinet/sctp_pcb.c      Tue Mar 17 14:22:40 2015 -0400
++++ b/netwerk/sctp/src/netinet/sctp_pcb.c      Tue Mar 17 22:17:01 2015 +0100
+@@ -30,6 +30,9 @@
+  * THE POSSIBILITY OF SUCH DAMAGE.
+  */
+ 
++#define _BSD_SOURCE /* for IPPORT_RESERVED */
++#include <netdb.h>
++
+ #ifdef __FreeBSD__
+ #include <sys/cdefs.h>
+ __FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 277031 2015-01-11 21:55:30Z 
tuexen $");
+diff -r e965a1a534ec -r 4ca8a9e27180 netwerk/sctp/src/user_queue.h
+--- a/netwerk/sctp/src/user_queue.h    Tue Mar 17 14:22:40 2015 -0400
++++ b/netwerk/sctp/src/user_queue.h    Tue Mar 17 22:17:01 2015 +0100
+@@ -31,7 +31,7 @@
+ #ifndef _USER_QUEUE_H_
+ #define       _USER_QUEUE_H_
+ 
+-#if !defined (__Userspace_os_Windows)
++#if defined(__Userspace_os_FreeBSD)
+ #include <sys/cdefs.h>
+ #endif
+ /*

diff --git a/www-client/firefox/files/sipcc.patch 
b/www-client/firefox/files/sipcc.patch
new file mode 100644
index 0000000..060fdf9
--- /dev/null
+++ b/www-client/firefox/files/sipcc.patch
@@ -0,0 +1,159 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1423304332 -3600
+#      Sat Feb 07 11:18:52 2015 +0100
+# Node ID fbbc5e616bd05c0f3b29ede3d777609e04dce620
+# Parent  204cb68867f5b09f0949bd4a49a4a8c1aaf0f467
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1130709
+sipcc: Make __BEGIN_DECLS and __END_DECLS explicit
+
+diff -r 204cb68867f5 -r fbbc5e616bd0 
media/webrtc/signaling/src/sdp/sipcc/cpr_darwin_types.h
+--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_darwin_types.h  Sat Feb 07 
09:22:26 2015 +0100
++++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_darwin_types.h  Sat Feb 07 
11:18:52 2015 +0100
+@@ -54,27 +54,6 @@
+ #endif
+ 
+ /**
+- * __BEGIN_DECLS and __END_DECLS
+- *
+- * Define macros for compilation by C++ compiler
+- */
+-#ifndef __BEGIN_DECLS
+-#ifdef __cplusplus
+-#define __BEGIN_DECLS extern "C" {
+-#else
+-#define __BEGIN_DECLS
+-#endif
+-#endif
+-
+-#ifndef __END_DECLS
+-#ifdef __cplusplus
+-#define __END_DECLS   }
+-#else
+-#define __END_DECLS
+-#endif
+-#endif
+-
+-/**
+  * Define TRUE/FALSE
+  *     defined in several header files
+  */
+diff -r 204cb68867f5 -r fbbc5e616bd0 
media/webrtc/signaling/src/sdp/sipcc/cpr_linux_types.h
+--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_linux_types.h   Sat Feb 07 
09:22:26 2015 +0100
++++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_linux_types.h   Sat Feb 07 
11:18:52 2015 +0100
+@@ -62,28 +62,6 @@
+ #endif
+ #endif
+ 
+-
+-
+-/**
+- * __BEGIN_DECLS and __END_DECLS
+- *
+- * Define macros for compilation by C++ compiler
+- */
+-#ifndef __BEGIN_DECLS
+-#ifdef __cplusplus
+-#define __BEGIN_DECLS extern "C" {
+-#else
+-#define __BEGIN_DECLS
+-#endif
+-#endif
+-
+-#ifndef __END_DECLS
+-#ifdef __cplusplus
+-#define __END_DECLS   }
+-#else
+-#define __END_DECLS
+-#endif
+-#endif
+ /**
+  * Define TRUE/FALSE
+  *     defined in several header files
+diff -r 204cb68867f5 -r fbbc5e616bd0 
media/webrtc/signaling/src/sdp/sipcc/cpr_string.h
+--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_string.h        Sat Feb 07 
09:22:26 2015 +0100
++++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_string.h        Sat Feb 07 
11:18:52 2015 +0100
+@@ -10,7 +10,9 @@
+ #include "cpr_types.h"
+ #include "cpr_strings.h"
+ 
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ 
+ /**
+  * sstrncpy
+@@ -130,6 +132,8 @@
+ char *
+ cpr_strdup(const char *str);
+ 
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ 
+ #endif
+diff -r 204cb68867f5 -r fbbc5e616bd0 
media/webrtc/signaling/src/sdp/sipcc/cpr_strings.h
+--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_strings.h       Sat Feb 07 
09:22:26 2015 +0100
++++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_strings.h       Sat Feb 07 
11:18:52 2015 +0100
+@@ -7,8 +7,6 @@
+ 
+ #include "cpr_types.h"
+ 
+-__BEGIN_DECLS
+-
+ 
+ #include <string.h>
+ 
+@@ -25,6 +23,4 @@
+ 
+ #endif // _MSC_VER
+ 
+-__END_DECLS
+-
+ #endif
+diff -r 204cb68867f5 -r fbbc5e616bd0 
media/webrtc/signaling/src/sdp/sipcc/cpr_types.h
+--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h Sat Feb 07 09:22:26 
2015 +0100
++++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_types.h Sat Feb 07 11:18:52 
2015 +0100
+@@ -13,7 +13,9 @@
+ #include "cpr_darwin_types.h"
+ #endif
+ 
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ 
+ /*
+  * CPR Return Codes
+@@ -114,6 +116,8 @@
+ 
+ typedef const char *string_t;
+ 
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ 
+ #endif
+diff -r 204cb68867f5 -r fbbc5e616bd0 
media/webrtc/signaling/src/sdp/sipcc/cpr_win_types.h
+--- a/media/webrtc/signaling/src/sdp/sipcc/cpr_win_types.h     Sat Feb 07 
09:22:26 2015 +0100
++++ b/media/webrtc/signaling/src/sdp/sipcc/cpr_win_types.h     Sat Feb 07 
11:18:52 2015 +0100
+@@ -100,16 +100,5 @@
+  */
+ /* DONE defined in windef.h */
+ 
+-/*
+- * Define __BEGIN_DECLS and __END_DECLS
+- */
+-#ifdef __cplusplus
+-#define __BEGIN_DECLS extern "C" {
+-#define __END_DECLS   }
+-#else
+-#define __BEGIN_DECLS
+-#define __END_DECLS
+-#endif
+-
+ #endif // _CPR_WIN_TYPES_H_
+ 

diff --git a/www-client/firefox/files/stab.h b/www-client/firefox/files/stab.h
deleted file mode 100644
index 6207982..0000000
--- a/www-client/firefox/files/stab.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*     $OpenBSD: stab.h,v 1.3 2003/06/02 19:34:12 millert Exp $        */
-/*     $NetBSD: stab.h,v 1.4 1994/10/26 00:56:25 cgd Exp $     */
-
-/*-
- * Copyright (c) 1991 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. 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.
- * 3. Neither the name of the University 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 REGENTS 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 REGENTS 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.
- *
- *     @(#)stab.h      5.2 (Berkeley) 4/4/91
- */
-
-#ifndef _STAB_H_
-#define _STAB_H_
-
-/*
- * The following are symbols used by various debuggers and by the Pascal
- * compiler.  Each of them must have one (or more) of the bits defined by
- * the N_STAB mask set.
- */
-
-#define N_UNDF         0x00
-#define        N_GSYM          0x20    /* global symbol */
-#define        N_FNAME         0x22    /* F77 function name */
-#define        N_FUN           0x24    /* procedure name */
-#define        N_STSYM         0x26    /* data segment variable */
-#define        N_LCSYM         0x28    /* bss segment variable */
-#define        N_MAIN          0x2a    /* main function name */
-#define        N_PC            0x30    /* global Pascal symbol */
-#define        N_RSYM          0x40    /* register variable */
-#define        N_SLINE         0x44    /* text segment line number */
-#define        N_DSLINE        0x46    /* data segment line number */
-#define        N_BSLINE        0x48    /* bss segment line number */
-#define        N_SSYM          0x60    /* structure/union element */
-#define        N_SO            0x64    /* main source file name */
-#define        N_LSYM          0x80    /* stack variable */
-#define        N_BINCL         0x82    /* include file beginning */
-#define        N_SOL           0x84    /* included source file name */
-#define        N_PSYM          0xa0    /* parameter variable */
-#define        N_EINCL         0xa2    /* include file end */
-#define        N_ENTRY         0xa4    /* alternate entry point */
-#define        N_LBRAC         0xc0    /* left bracket */
-#define        N_EXCL          0xc2    /* deleted include file */
-#define        N_RBRAC         0xe0    /* right bracket */
-#define        N_BCOMM         0xe2    /* begin common */
-#define        N_ECOMM         0xe4    /* end common */
-#define        N_ECOML         0xe8    /* end common (local name) */
-#define        N_LENG          0xfe    /* length of preceding entry */
-
-#endif /* !_STAB_H_ */

diff --git a/www-client/firefox/files/updater.patch 
b/www-client/firefox/files/updater.patch
new file mode 100644
index 0000000..e6852a3
--- /dev/null
+++ b/www-client/firefox/files/updater.patch
@@ -0,0 +1,42 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1428142217 -7200
+#      Sat Apr 04 12:10:17 2015 +0200
+# Node ID c04cc88f3bb26e254356df6de06583a542ae6796
+# Parent  90adc073cbc6398f4fab9b1cd07b685368559f34
+updater: no fts.h and MAXNAMLEN
+
+diff -r 90adc073cbc6 -r c04cc88f3bb2 
toolkit/mozapps/update/common/updatedefines.h
+--- a/toolkit/mozapps/update/common/updatedefines.h    Thu Apr 02 08:10:00 
2015 -0400
++++ b/toolkit/mozapps/update/common/updatedefines.h    Sat Apr 04 12:10:17 
2015 +0200
+@@ -109,7 +109,7 @@
+ # include <sys/wait.h>
+ # include <unistd.h>
+ 
+-#ifdef SOLARIS
++#if 1
+ # include <sys/stat.h>
+ #else
+ # include <fts.h>
+diff -r 90adc073cbc6 -r c04cc88f3bb2 toolkit/mozapps/update/updater/updater.cpp
+--- a/toolkit/mozapps/update/updater/updater.cpp       Thu Apr 02 08:10:00 
2015 -0400
++++ b/toolkit/mozapps/update/updater/updater.cpp       Sat Apr 04 12:10:17 
2015 +0200
+@@ -3338,7 +3338,8 @@
+   return rv;
+ }
+ 
+-#elif defined(SOLARIS)
++#elif 1
++//#defined(SOLARIS)
+ int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
+ {
+   int rv = OK;
+@@ -3346,7 +3347,7 @@
+   NS_tchar foundpath[MAXPATHLEN];
+   struct {
+     dirent dent_buffer;
+-    char chars[MAXNAMLEN];
++    char chars[NAME_MAX];
+   } ent_buf;
+   struct dirent* ent;
+ 

diff --git a/www-client/firefox/files/xpcom-blocksize.patch 
b/www-client/firefox/files/xpcom-blocksize.patch
new file mode 100644
index 0000000..9e25ba9
--- /dev/null
+++ b/www-client/firefox/files/xpcom-blocksize.patch
@@ -0,0 +1,22 @@
+# HG changeset patch
+# User Felix Janda <felix.ja...@posteo.de>
+# Date 1424989496 -3600
+#      Thu Feb 26 23:24:56 2015 +0100
+# Node ID 6980ec675819ae01048026a1be510c64e069ffe3
+# Parent  490274146476bc459cc1a9ed9e0d3771a4fe7d57
+xpcom: Use dbtob instead of BLOCK_SIZE
+
+diff -r 490274146476 -r 6980ec675819 xpcom/io/nsLocalFileUnix.cpp
+--- a/xpcom/io/nsLocalFileUnix.cpp     Thu Feb 26 22:58:09 2015 +0100
++++ b/xpcom/io/nsLocalFileUnix.cpp     Thu Feb 26 23:24:56 2015 +0100
+@@ -1408,8 +1408,8 @@
+       && dq.dqb_bhardlimit) {
+     int64_t QuotaSpaceAvailable = 0;
+     // dqb_bhardlimit is count of BLOCK_SIZE blocks, dqb_curspace is bytes
+-    if ((BLOCK_SIZE * dq.dqb_bhardlimit) > dq.dqb_curspace)
+-      QuotaSpaceAvailable = int64_t(BLOCK_SIZE * dq.dqb_bhardlimit - 
dq.dqb_curspace);
++    if (dbtob(dq.dqb_bhardlimit) > dq.dqb_curspace)
++      QuotaSpaceAvailable = (dbtob(dq.dqb_bhardlimit) - dq.dqb_curspace);
+     if (QuotaSpaceAvailable < *aDiskSpaceAvailable) {
+       *aDiskSpaceAvailable = QuotaSpaceAvailable;
+     }

diff --git a/www-client/firefox/firefox-34.0.5-r99.ebuild 
b/www-client/firefox/firefox-37.0.1-r99.ebuild
similarity index 77%
rename from www-client/firefox/firefox-34.0.5-r99.ebuild
rename to www-client/firefox/firefox-37.0.1-r99.ebuild
index 9ed5ca2..cafee6c 100644
--- a/www-client/firefox/firefox-34.0.5-r99.ebuild
+++ b/www-client/firefox/firefox-37.0.1-r99.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: 
/var/cvsroot/gentoo-x86/www-client/firefox/firefox-34.0.5-r1.ebuild,v 1.2 
2014/12/05 23:06:43 axs Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-client/firefox/firefox-37.0.1.ebuild,v 
1.1 2015/04/05 23:07:55 polynomial-c Exp $
 
 EAPI="5"
 VIRTUALX_REQUIRED="pgo"
@@ -8,7 +8,9 @@ WANT_AUTOCONF="2.1"
 MOZ_ESR=""
 
 # This list can be updated with scripts/get_langs.sh from the mozilla overlay
-MOZ_LANGS=( af ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de el en
+# No official support as of fetch time
+# csb
+MOZ_LANGS=( af ar as ast be bg bn-BD bn-IN br bs ca cs cy da de el en
 en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa fi fr fy-NL ga-IE gd
 gl gu-IN he hi-IN hr hu hy-AM id is it ja kk km kn ko lt lv mai mk ml mr
 nb-NO nl nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te
@@ -25,35 +27,38 @@ if [[ ${MOZ_ESR} == 1 ]]; then
 fi
 
 # Patch version
-PATCH="${PN}-34.0-patches-0.1"
+PATCH="${PN}-36.0-patches-01"
 # Upstream ftp release URI that's used by mozlinguas.eclass
 # We don't use the http mirror because it deletes old tarballs.
-MOZ_FTP_URI="ftp://ftp.mozilla.org/pub/${PN}/releases/";
-MOZ_HTTP_URI="http://ftp.mozilla.org/pub/${PN}/releases/";
+MOZ_FTP_URI="ftp://ftp.mozilla.org/pub/${PN}/releases";
+MOZ_HTTP_URI="http://ftp.mozilla.org/pub/${PN}/releases";
 
 MOZCONFIG_OPTIONAL_WIFI=1
 MOZCONFIG_OPTIONAL_JIT="enabled"
 
-inherit check-reqs flag-o-matic toolchain-funcs eutils gnome2-utils 
mozconfig-v5.34 multilib pax-utils fdo-mime autotools virtualx mozlinguas
+inherit check-reqs flag-o-matic toolchain-funcs eutils gnome2-utils 
mozconfig-v5.36 multilib pax-utils fdo-mime autotools virtualx mozlinguas
 
 DESCRIPTION="Firefox Web Browser"
 HOMEPAGE="http://www.mozilla.com/firefox";
 
-KEYWORDS="~amd64 ~arm ~mips ~ppc ~x86"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+
 SLOT="0"
 LICENSE="MPL-2.0 GPL-2 LGPL-2.1"
 IUSE="bindist hardened +minimal pgo selinux +gmp-autoupdate test"
+RESTRICT="!bindist? ( bindist )"
 
 # More URIs appended below...
 SRC_URI="${SRC_URI}
        http://dev.gentoo.org/~anarchy/mozilla/patchsets/${PATCH}.tar.xz
-       http://dev.gentoo.org/~axs/distfiles/${PATCH}.tar.xz";
+       http://dev.gentoo.org/~axs/distfiles/${PATCH}.tar.xz
+       http://dev.gentoo.org/~polynomial-c/mozilla/patchsets/${PATCH}.tar.xz";
 
 ASM_DEPEND=">=dev-lang/yasm-1.1"
 
 # Mesa 7.10 needed for WebGL + bugfixes
 RDEPEND="
-       >=dev-libs/nss-3.17.2
+       >=dev-libs/nss-3.17.4
        >=dev-libs/nspr-4.10.7
        selinux? ( sec-policy/selinux-mozilla )"
 
@@ -126,13 +131,6 @@ pkg_pretend() {
                CHECKREQS_DISK_BUILD="4G"
        fi
        check-reqs_pkg_setup
-
-       if use jit && [[ -n ${PROFILE_IS_HARDENED} ]]; then
-               ewarn "You are emerging this package on a hardened profile with 
USE=jit enabled."
-               ewarn "This is horribly insecure as it disables all PAGEEXEC 
restrictions."
-               ewarn "Please ensure you know what you are doing.  If you 
don't, please consider"
-               ewarn "emerging the package with USE=-jit"
-       fi
 }
 
 src_unpack() {
@@ -144,55 +142,41 @@ src_unpack() {
 
 src_prepare() {
        # Apply our patches
+       EPATCH_EXCLUDE="8002_jemalloc_configure_unbashify.patch" \
        EPATCH_SUFFIX="patch" \
        EPATCH_FORCE="yes" \
        epatch "${WORKDIR}/firefox"
 
-       # Avoid using basename 
https://bugzilla.mozilla.org/show_bug.cgi?id=1041962
-       epatch "${FILESDIR}"/avoid-basename-musl.patch
-       # <fts.h> unavailable on Android and musl, portions from
-       # http://git.alpinelinux.org/cgit/aports/tree/main/firefox/fix-ipc.patch
-       epatch "${FILESDIR}"/avoid-fts-on-nonglibc-musl.patch
-       # getcontext() unavailable on musl, safe to omit
-       epatch "${FILESDIR}"/avoid-getcontext-musl.patch
-       # the glibc check should be non-Android Linux
-       epatch "${FILESDIR}"/define-gettid-unconditonally-musl.patch
-       # <a.out.h> unavailable on musl, yet somehow the build system still 
defines
-       # HAVE_A_OUT_H - unconditionally disable for now, better to fix 
configure.
-       # Portions from
-       # 
http://git.alpinelinux.org/cgit/aports/tree/main/firefox/fix-toolkit.patch
-       epatch "${FILESDIR}"/dont-include-aouth-musl.patch
-       # non-Android Linux check should be a glibc Linux check
-       epatch "${FILESDIR}"/fix-android-check-musl.patch
-       # <sys/sysctl.h> unavailable on musl
-       epatch "${FILESDIR}"/fix-jemalloc-includes-musl.patch
-       # <sys/sysctl.h> unavailable on musl, also wrong order of kernel headers
-       # Portions from
-       # 
http://git.alpinelinux.org/cgit/aports/tree/main/firefox/fix-media.patch
-       epatch "${FILESDIR}"/fix-mtransport-includes-musl.patch
-       # Dumb sctp-refimpl include fixes, to be improved and submitted upstream
-       # Portions from
-       # 
http://git.alpinelinux.org/cgit/aports/tree/main/firefox/fix-netwerk.patch
-       epatch "${FILESDIR}"/fix-sctp-includes-musl.patch
-       # Files erroneously assume other headers include <sys/types.h>
-       # Portions from
-       # 
http://git.alpinelinux.org/cgit/aports/tree/main/firefox/fix-tools.patch
-       epatch "${FILESDIR}"/include-systypesh-musl.patch
-       # Incorrect assumptions about pthread_t
-       # https://bugzilla.mozilla.org/show_bug.cgi?id=1010194
-       epatch "${FILESDIR}"/make-handleInt-unsigned-long-musl.patch
-       # Felix Janda's amd64 fixes
-       epatch "${FILESDIR}"/fix-amd64-build-musl.patch
-       # Stagefright includes <sys/cdefs.h>, unavailable on musl. Upstream will
-       # probably want to include it on Android.
-       epatch "${FILESDIR}"/dont-include-cdefsh-stagefright-musl.patch
+       epatch "${FILESDIR}"/${PN}-35.0-gmp-clearkey-sprintf.patch
+       #epatch "${FILESDIR}"/${PN}-36.0-disable-ion.patch
+       #epatch "${FILESDIR}"/${PN}-36.0-depollute-CONST-from-dtoa.patch
+
+       ## patches for building with musl libc
+
+       #  already upstream
+       epatch "${FILESDIR}"/1130164.patch
+       epatch "${FILESDIR}"/1130175.patch
+       epatch "${FILESDIR}"/sctp-36.patch # backported
+       epatch "${FILESDIR}"/1130710.patch
+
+       #  others against hg
+       epatch "${FILESDIR}"/basename.patch
+       epatch "${FILESDIR}"/crashreporter.patch
+       epatch "${FILESDIR}"/fts.patch
+       epatch "${FILESDIR}"/libstagefright-cdefs.patch
+       epatch "${FILESDIR}"/profiler-gettid.patch
+       epatch "${FILESDIR}"/sandbox-cdefs.patch
+       epatch "${FILESDIR}"/updater.patch
+       epatch "${FILESDIR}"/xpcom-blocksize.patch
+       epatch "${FILESDIR}"/sipcc.patch
+
+       cp 
"${S}"/media/mtransport/third_party/nrappkit/src/port/generic/include/sys/queue.h
 "${S}"/media/mtransport/third_party/nrappkit/src/port/linux/include/sys
+
+       ## end of musl patching
 
        # Allow user to apply any additional patches without modifing ebuild
        epatch_user
 
-       # From http://git.alpinelinux.org/cgit/aports/tree/main/firefox/stab.h, 
added N_UNDF
-       cp "${FILESDIR}"/stab.h 
"${S}"/toolkit/crashreporter/google-breakpad/src/
-
        # Enable gnomebreakpad
        if use debug ; then
                sed -i -e 
"s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \
@@ -394,7 +378,11 @@ src_install() {
        fi
 
        # Required in order to use plugins and even run firefox on hardened.
-       pax-mark m 
"${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin,plugin-container}
+       if use jit; then
+               pax-mark m 
"${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin,plugin-container}
+       else
+               pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/plugin-container
+       fi
 
        if use minimal; then
                rm -r "${ED}"/usr/include 
"${ED}${MOZILLA_FIVE_HOME}"/{idl,include,lib,sdk} \
@@ -411,6 +399,11 @@ src_install() {
        insinto /etc/revdep-rebuild
        echo "SEARCH_DIRS_MASK=${MOZILLA_FIVE_HOME}" >> ${T}/10firefox
        doins "${T}"/10${PN} || die
+
+       # workaround to make firefox find libmozalloc.so on musl
+       insinto /etc/env.d
+       echo "LDPATH=${MOZILLA_FIVE_HOME}" >> "${T}"/20firefox
+       doins "${T}"/20firefox || die
 }
 
 pkg_preinst() {

Reply via email to