Github messages for voidlinux
 help / color / Atom feed
* [PR PATCH] Firefox esr
@ 2019-09-06  1:13 voidlinux-github
  2019-09-06 17:26 ` voidlinux-github
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-06  1:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 371 bytes --]

There is a new pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages firefox-esr
https://github.com/void-linux/void-packages/pull/14229

Firefox esr
Built and tested for:
- x86_64

Building in progress for:
- x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/14229.patch is attached

[-- Warning: decoded text below may be mangled --]
[-- Attachment #2: github-pr-firefox-esr-14229.patch --]
[-- Type: text/x-diff, Size: 47887 bytes --]

From c7e2570eb31cacf4b965e0bb398bdd7440d8ae02 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:17 +0700
Subject: [PATCH 1/2] firefox-esr: update to 68.1.0.

---
 srcpkgs/firefox-esr/files/mozconfig           |  6 --
 .../disable-image-format-warning.patch        | 15 +++
 .../patches/fix-arm-opus-include.patch        | 11 +++
 .../firefox-esr/patches/fix-i686-musl.patch   |  9 --
 srcpkgs/firefox-esr/patches/fix-musl.patch    | 11 ---
 srcpkgs/firefox-esr/patches/fix-toolkit.patch | 35 ++++---
 srcpkgs/firefox-esr/patches/fix-tools.patch   | 31 +++---
 .../firefox-esr/patches/fix-wasm-arm.patch    | 15 +++
 .../firefox-esr/patches/fix-webrtc-arm.patch  | 11 ---
 .../patches/fix-webrtc-glibcisms.patch        | 17 ++--
 srcpkgs/firefox-esr/patches/fix-xpcom.patch   | 11 ---
 srcpkgs/firefox-esr/patches/gettid-musl.patch | 11 +++
 srcpkgs/firefox-esr/patches/mallinfo.patch    | 40 +++++---
 .../patches/ppc-no-static-sizes.patch         | 19 ----
 .../patches/remove-rustc-check.patch          | 18 +++-
 .../patches/rust-unitialized-field.patch      | 19 ----
 srcpkgs/firefox-esr/patches/rust133.patch     | 24 -----
 ...nd-restore-non-volatile-x28-on-arm64.patch | 64 ------------
 ...-clobbering-it-in-the-regex-compiler.patch | 97 -------------------
 srcpkgs/firefox-esr/patches/sndio.patch       | 12 +--
 srcpkgs/firefox-esr/patches/yuv-be.patch      | 48 +++++++++
 srcpkgs/firefox-esr/template                  |  8 +-
 22 files changed, 187 insertions(+), 345 deletions(-)
 create mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-musl.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-xpcom.patch
 create mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust133.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
 create mode 100644 srcpkgs/firefox-esr/patches/yuv-be.patch

diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 5b3c6e46d6f..0798fdd40ef 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -1,11 +1,6 @@
 ac_add_options --prefix=/usr
 ac_add_options --libdir=/usr/lib
 
-ac_add_options --with-pthreads
-# XXX build without system cairo see:
-# - https://github.com/voidlinux/void-packages/issues/2308#issuecomment-135426813
-# - https://bugs.gentoo.org/show_bug.cgi?id=558150
-# ac_add_options --with-system-cairo
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
 ac_add_options --with-system-bz2
@@ -39,7 +34,6 @@ ac_add_options --disable-install-strip
 ac_add_options --disable-strip
 ac_add_options --disable-profiling
 ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-pie
 
 ac_add_options --enable-official-branding
 ac_add_options --enable-application=browser
diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
new file mode 100644
index 00000000000..bd56e6bc37c
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
@@ -0,0 +1,15 @@
+Imported from Adélie. Firefox is prone to this warning on BE and
+it leads to huge .xsession-errors, and the warning is not very
+important or meaningful, so just disable it.
+
+--- gfx/2d/HelpersCairo.h
++++ gfx/2d/HelpersCairo.h
+@@ -147,7 +147,7 @@
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
+-      gfxCriticalError() << "Unknown image format " << (int)format;
++      //gfxCriticalError() << "Unknown image format " << (int)format;
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }
diff --git a/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
new file mode 100644
index 00000000000..6e0c5875da3
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
@@ -0,0 +1,11 @@
+--- media/libopus/silk/arm/arm_silk_map.c.orig	2019-03-19 20:55:01.249609964 +0100
++++ media/libopus/silk/arm/arm_silk_map.c	2019-03-19 20:55:25.769400255 +0100
+@@ -28,7 +28,7 @@
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "../fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
+
diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
index 5345a3cd3df..6df609bbf16 100644
--- a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
+++ b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
@@ -9,12 +9,3 @@
       ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
        defined(HAVE__UNWIND_BACKTRACE)))
  #define MOZ_STACKWALK_SUPPORTS_LINUX 1
-@@ -911,7 +911,7 @@
- }
- 
- // {x86, ppc} x {Linux, Mac} stackwalking code.
--#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-      (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX))
- 
- MFBT_API bool
diff --git a/srcpkgs/firefox-esr/patches/fix-musl.patch b/srcpkgs/firefox-esr/patches/fix-musl.patch
deleted file mode 100644
index c32921d39e1..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/profiler/core/platform.h.orig
-+++ tools/profiler/core/platform.h
-@@ -56,7 +56,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/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
index ce4d7d01f82..86e8ef47855 100644
--- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch
+++ b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
@@ -47,18 +47,28 @@
  #include <a.out.h>
  #endif
 
+--- toolkit.orig/mozapps/update/common/updatedefines.h	2019-01-29 11:34:36.416804577 +0100
++++ toolkit/mozapps/update/common/updatedefines.h	2019-01-29 11:34:59.193583777 +0100
+@@ -102,7 +102,7 @@
 
+ #  ifdef SOLARIS
+ #    include <sys/stat.h>
+-#  else
++#  elif !(defined(__linux__)) || defined(__GLIBC__)
+ #    include <fts.h>
+ #  endif
+ #  include <dirent.h>
 --- toolkit.orig/mozapps/update/updater/updater.cpp	2014-03-15 05:19:37.000000000 +0000
 +++ toolkit/mozapps/update/updater/updater.cpp	2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
+@@ -3978,6 +3978,7 @@
+ 
+ int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
    int rv = OK;
 +#if !defined(__linux__) || defined(__GLIBC__)
-   FTS *ftsdir;
-   FTSENT *ftsdirEntry;
-   NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+   FTS* ftsdir;
+   FTSENT* ftsdirEntry;
+   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
+@@ -4085,6 +4086,7 @@
    }
  
    fts_close(ftsdir);
@@ -66,14 +76,3 @@
  
    return rv;
  }
---- toolkit/mozapps/update/common/updatedefines.h	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:15:53.946747750 +0100
-@@ -100,7 +100,7 @@
- 
- #ifdef SOLARIS
- #include <sys/stat.h>
--#else
-+#elif !defined(__linux__) || defined(__GLIBC__)
- #include <fts.h>
- #endif
- #include <dirent.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch
index 1e2fc4f7d39..0ed043fb5b5 100644
--- a/srcpkgs/firefox-esr/patches/fix-tools.patch
+++ b/srcpkgs/firefox-esr/patches/fix-tools.patch
@@ -1,33 +1,24 @@
---- tools/profiler/core/platform.h
-+++ tools/profiler/core/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
-
-+#include <sys/types.h>
-+
- #include <stdint.h>
- #include <math.h>
- #include "MainThreadUtils.h"
---- tools/profiler/lul/LulElf.cpp	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:19:53.198257189 +0100
-@@ -460,9 +460,9 @@
+--- tools/profiler/lul/LulElf.cpp.orig	2019-01-29 12:05:34.223834130 +0100
++++ tools/profiler/lul/LulElf.cpp	2019-01-29 12:08:02.480400845 +0100
+@@ -469,10 +469,10 @@
+ // 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) {
-   // Lots of copies!  basename's behavior is less than ideal.
+-  // 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();
++  // basename's behavior is less than ideal so avoid it
++  const char *c_filename = filename.c_str();
 +  const char *p = strrchr(c_filename, '/');
 +  string base = p ? p+1 : c_filename;
    return base;
  }
  
---- tools/profiler/core/platform-linux-android.cpp	2019-01-24 18:31:43.000000000 +0100
-+++ -	2019-01-31 11:23:07.911772317 +0100
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-01-29 12:09:40.980448579 +0100
++++ tools/profiler/core/platform-linux-android.cpp	2019-01-29 12:11:09.689590967 +0100
 @@ -253,7 +253,11 @@
-
+ 
    // Request profiling signals.
    struct sigaction sa;
 +#if defined(GP_ARCH_arm)
@@ -38,7 +29,7 @@
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART | SA_SIGINFO;
    if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
-@@ -497,8 +497,10 @@
+@@ -497,8 +501,10 @@
  ucontext_t sSyncUContext;
  
  void Registers::SyncPopulate() {
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
new file mode 100644
index 00000000000..e6ad61c9f44
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
@@ -0,0 +1,15 @@
+--- js/src/wasm/WasmSignalHandlers.cpp
++++ js/src/wasm/WasmSignalHandlers.cpp
+@@ -243,9 +243,9 @@
+ // If you run into compile problems on a tier-3 platform, you can disable the
+ // emulation here.
+ 
+-#if defined(__linux__) && defined(__arm__)
+-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-#endif
++// #if defined(__linux__) && defined(__arm__)
++// #  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
++// #endif
+ 
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #  include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
deleted file mode 100644
index 222be5f9e21..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc	2019-01-24 18:31:10.000000000 +0100
-+++ -	2019-02-01 00:13:35.690776711 +0100
-@@ -67,7 +67,7 @@
-   return 0;
- }
- 
--#if !defined(ANDROID)
-+#if !defined(ANDROID) && !defined(__linux__)
- #ifdef WEBRTC_ARCH_ARM_V7
- uint64_t WebRtc_GetCPUFeaturesARM(void) {
-   return kCPUFeatureARMv7
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 3ff2570b12b..cf895dd8448 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,18 +1,15 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-02-01 00:49:18.472382771 +0100
-+++ -	2019-02-01 00:50:25.928007236 +0100
-@@ -11,7 +11,10 @@
- #include <stdlib.h>
- #include <string.h>
- #include <features.h>
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2019-01-29 11:20:52.298793223 +0100
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-01-29 11:21:48.250250850 +0100
+@@ -14,7 +14,7 @@
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(a, b) 0
+ #endif
 -#if __GLIBC_PREREQ(2, 16)
-+#ifndef __GLIBC_PREREQ
-+#define __GLIBC_PREREQ(a, b) 0
-+#endif
 +#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
  #include <sys/auxv.h>
  #else
  #include <fcntl.h>
-@@ -29,7 +32,7 @@
+@@ -32,7 +32,7 @@
    int architecture = 0;
    unsigned long hwcap = 0;
    const char* platform = NULL;
diff --git a/srcpkgs/firefox-esr/patches/fix-xpcom.patch b/srcpkgs/firefox-esr/patches/fix-xpcom.patch
deleted file mode 100644
index 38dd582d96b..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-xpcom.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- xpcom/base/nsMemoryReporterManager.cpp.orig	2015-12-16 11:53:14.211144456 +0100
-+++ xpcom/base/nsMemoryReporterManager.cpp	2015-12-16 11:55:26.859476381 +0100
-@@ -46,7 +46,7 @@ using namespace mozilla;
- #  include "mozmemory.h"
- #endif  // MOZ_MEMORY
- 
--#if defined(XP_LINUX)
-+#if defined(XP_LINUX) && defined(__GLIBC__)
- 
- #include <malloc.h>
- #include <string.h>
diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch
new file mode 100644
index 00000000000..c1cb99bf651
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/gettid-musl.patch
@@ -0,0 +1,11 @@
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-07-09 22:58:30.039475686 +0200
++++ tools/profiler/core/platform-linux-android.cpp	2019-07-09 22:58:39.331437677 +0200
+@@ -73,7 +73,7 @@
+ 
+ int profiler_current_thread_id() {
+   // glibc doesn't provide a wrapper for gettid().
+-#if defined(__GLIBC__)
++#if defined(__linux__)
+   return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
+ #else
+   return static_cast<int>(gettid());
diff --git a/srcpkgs/firefox-esr/patches/mallinfo.patch b/srcpkgs/firefox-esr/patches/mallinfo.patch
index c9a38d45bdf..afea86c0a2c 100644
--- a/srcpkgs/firefox-esr/patches/mallinfo.patch
+++ b/srcpkgs/firefox-esr/patches/mallinfo.patch
@@ -1,18 +1,34 @@
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
+--- xpcom/base/nsMemoryReporterManager.cpp.orig	2019-03-19 17:12:20.844810044 +0100
++++ xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:13:32.505133615 +0100
+@@ -123,6 +123,7 @@
    return GetProcSelfSmapsPrivate(aN);
  }
  
 +#ifdef __GLIBC__
- #define HAVE_SYSTEM_HEAP_REPORTER 1
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
-@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
-     *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
-     return NS_OK;
+ #  ifdef HAVE_MALLINFO
+ #    define HAVE_SYSTEM_HEAP_REPORTER 1
+ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
+@@ -142,6 +143,7 @@
+   return NS_OK;
  }
-+#endif
+ #  endif
++#endif // __GLIBC__
  
- #elif defined(__DragonFly__) || defined(__FreeBSD__) \
-     || defined(__NetBSD__) || defined(__OpenBSD__) \
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+     defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+@@ -642,6 +644,7 @@
+   return NS_OK;
+ }
+ 
++#ifdef __GLIBC__
+ #  define HAVE_SYSTEM_HEAP_REPORTER 1
+ // Windows can have multiple separate heaps. During testing there were multiple
+ // heaps present but the non-default ones had sizes no more than a few 10s of
+@@ -698,6 +701,7 @@
+   *aSizeOut = heapsSize;
+   return NS_OK;
+ }
++#endif // __GLIBC__
+ 
+ struct SegmentKind {
+   DWORD mState;
diff --git a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
deleted file mode 100644
index 3f77023bb5f..00000000000
--- a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# Parent b735e618c2a860972197942f6680c941e3c9a67f
-# User Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
-Bug 997353 - Do not use compile-time page size for PowerPC.
-
-The PowerPC architecture allows various memory page sizes, making it impossible
-to predict the runtime page size.
-
---- memory/build/mozjemalloc.cpp
-+++ memory/build/mozjemalloc.cpp
-@@ -369,7 +369,7 @@
- // Debug builds are opted out too, for test coverage.
- #ifndef MOZ_DEBUG
- #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) &&         \
--  !defined(__aarch64__)
-+  !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
- #define MALLOC_STATIC_PAGESIZE 1
- #endif
- #endif
diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
index f6bebc8aab1..84077f4fc88 100644
--- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
@@ -1,8 +1,19 @@
 Mozilla rustc check does not support crossbuild: let's remove it
+Remove calls to unwrap_rustup, they fail if rustup isn't present
 
---- build/moz.configure/rust.configure	2018-10-01 16:28:31.000000000 +0200
-+++ build/moz.configure/rust.configure	2018-10-20 14:21:35.510000000 +0200
-@@ -204,26 +204,6 @@
+--- build/moz.configure/rust.configure	2019-07-06 03:48:30.000000000 +0200
++++ build/moz.configure/rust.configure	2019-07-09 22:35:23.326851798 +0200
+@@ -79,9 +79,6 @@
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -294,26 +291,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
@@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it
          finally:
              os.remove(in_path)
              os.remove(out_path)
-
diff --git a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch b/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
deleted file mode 100644
index 67ef3a02ab8..00000000000
--- a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
-+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
-@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
-                 return Err(Error::NoSpace);
-             }
- 
--            let cmsghdr = cmsghdr {
--                cmsg_len: cmsg_len as _,
--                cmsg_level: level,
--                cmsg_type: kind,
--            };
-+            use std::mem;
-+            let mut cmsghdr: cmsghdr =  unsafe { mem::zeroed() };
-+            cmsghdr.cmsg_len = cmsg_len as _;
-+            cmsghdr.cmsg_level = level;
-+            cmsghdr.cmsg_type = kind;
- 
-             let cmsghdr = unsafe {
-                 slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::<cmsghdr>())
diff --git a/srcpkgs/firefox-esr/patches/rust133.patch b/srcpkgs/firefox-esr/patches/rust133.patch
deleted file mode 100644
index ebdcac7e3a3..00000000000
--- a/srcpkgs/firefox-esr/patches/rust133.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-This fixes build errors under recent Rust.
-
---- servo/components/style_traits/lib.rs
-+++ servo/components/style_traits/lib.rs
-@@ -9,7 +9,7 @@
- #![crate_name = "style_traits"]
- #![crate_type = "rlib"]
- 
--#![deny(unsafe_code, missing_docs)]
-+#![deny(unsafe_code)]
- 
- extern crate app_units;
- #[macro_use] extern crate bitflags;
---- servo/components/style/lib.rs
-+++ servo/components/style/lib.rs
-@@ -23,8 +23,6 @@
- //! [cssparser]: ../cssparser/index.html
- //! [selectors]: ../selectors/index.html
- 
--#![deny(missing_docs)]
--
- extern crate app_units;
- extern crate arrayvec;
- extern crate atomic_refcell;
diff --git a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch b/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
deleted file mode 100644
index fa303f6d1e9..00000000000
--- a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1519822672 -3600
-# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6
-# Parent  223c97459e96183eb616aed39147207bdb953ba8
-Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor.  r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/800abe66894d
----
- js/src/vm/UnboxedObject.cpp | 30 ++++++++++++++++++++++++++----
- 1 file changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
-index 35ca20d7405f..1c20a1093d13 100644
---- js/src/vm/UnboxedObject.cpp
-+++ js/src/vm/UnboxedObject.cpp
-@@ -86,9 +86,16 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
- #endif
-
- #ifdef JS_CODEGEN_ARM64
--  // ARM64 communicates stack address via sp, but uses a pseudo-sp for
--  // addressing.
--  masm.initStackPtr();
-+    // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-+    masm.initStackPtr();
- #endif
-
-   MOZ_ASSERT(propertiesReg.volatile_());
-@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
-   if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
-   masm.PopRegsInMask(savedNonVolatileRegisters);
-
--  masm.abiret();
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-+    masm.abiret();
-+#endif
-
-   masm.bind(&failureStoreOther);
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch b/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
deleted file mode 100644
index aa2dcc6ba8d..00000000000
--- a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1521449886 -3600
-# Node ID 903a79a1efff18fc7cc50db09a3fe5d768adc9a8
-# Parent  4d2955a9ca7e30ca4c3af9c214ccc77fb2fe7fb8
-Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/903a79a1efff
----
-diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp
---- js/src/irregexp/NativeRegExpMacroAssembler.cpp
-+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
-@@ -118,17 +118,25 @@ NativeRegExpMacroAssembler::GenerateCode
-
-     Label return_temp0;
-
-     // Finalize code - write the entry point code now we know how many
-     // registers we need.
-     masm.bind(&entry_label_);
-
- #ifdef JS_CODEGEN_ARM64
--    // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
-+    // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-     masm.initStackPtr();
- #endif
-
-     // Push non-volatile registers which might be modified by jitcode.
-     size_t pushedNonVolatileRegisters = 0;
-     for (GeneralRegisterForwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) {
-         masm.Push(*iter);
-         pushedNonVolatileRegisters++;
-@@ -416,17 +424,32 @@ NativeRegExpMacroAssembler::GenerateCode
-     masm.pop(temp0);
-     masm.movePtr(temp0, StackPointer);
- #endif
-
-     // Restore non-volatile registers which were saved on entry.
-     for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
-         masm.Pop(*iter);
-
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-     masm.abiret();
-+#endif
-
-     // Backtrack code (branch target for conditional backtracks).
-     if (backtrack_label_.used()) {
-         masm.bind(&backtrack_label_);
-         Backtrack();
-     }
-
-     // Backtrack stack overflow code.
-diff --git a/js/src/jit-test/tests/regexp/bug1445907.js b/js/src/jit-test/tests/regexp/bug1445907.js
-new file mode 100644
---- /dev/null
-+++ js/src/jit-test/tests/regexp/bug1445907.js
-@@ -0,0 +1,15 @@
-+// On ARM64, we failed to save x28 properly when generating code for the regexp
-+// matcher.
-+//
-+// There's wasm and Debugger code here because the combination forces the use of
-+// x28 and exposes the bug when running on the simulator.
-+
-+if (!wasmIsSupported())
-+    quit();
-+
-+var g = newGlobal('');
-+var dbg = new Debugger(g);
-+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
-+var re = /./;
-+dbg.onEnterFrame = function(frame) { re.exec("x") };
-+result = g.eval("m.exports.test()");
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 097b313e90b..6c72284c19b 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -51,14 +51,14 @@
      ]
 --- build/moz.configure/old.configure.orig
 +++ build/moz.configure/old.configure
-@@ -159,6 +159,7 @@
-     '--enable-accessibility',
-     '--enable-address-sanitizer',
-     '--enable-alsa',
+@@ -169,6 +169,7 @@
+ @old_configure_options(
+     '--cache-file',
+     '--datadir',
 +    '--enable-sndio',
-     '--enable-bundled-fonts',
-     '--enable-clang-plugin',
      '--enable-content-sandbox',
+     '--enable-cookies',
+     '--enable-cpp-rtti',
 --- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig
 +++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
 @@ -349,6 +349,21 @@
diff --git a/srcpkgs/firefox-esr/patches/yuv-be.patch b/srcpkgs/firefox-esr/patches/yuv-be.patch
new file mode 100644
index 00000000000..1c26f2ecced
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/yuv-be.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User A. Wilcox <AWilcox@Wilcox-Tech.com>
+# Date 1543674229 0
+#      Sat Dec 01 14:23:49 2018 +0000
+# Node ID 0309ff19e46b126c527e633518d7de8570442114
+# Parent  53107afbc21ec78e7ac46d37af212505f2032d5d
+Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
+
+diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp
+--- gfx/ycbcr/YCbCrUtils.cpp	Wed Nov 07 04:50:21 2018 +0000
++++ gfx/ycbcr/YCbCrUtils.cpp	Sat Dec 01 14:23:49 2018 +0000
+@@ -3,7 +3,9 @@
+  * 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 "mozilla/EndianUtils.h"
+ #include "gfx2DGlue.h"
++#include "mozilla/gfx/Swizzle.h"
+ 
+ #include "YCbCrUtils.h"
+ #include "yuv_convert.h"
+@@ -236,6 +238,13 @@
+                           yuvtype,
+                           srcData.mYUVColorSpace);
+   }
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRX
++  if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
++    gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
++                     aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
++                     srcData.mPicSize);
++#endif
+ }
+ 
+ void
+@@ -257,6 +266,12 @@
+                         aSrcStrideYA,
+                         aSrcStrideUV,
+                         aDstStrideARGB);
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRA
++  gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
++                   aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
++                   IntSize(aWidth, aHeight));
++#endif
+ }
+ 
+ } // namespace gfx
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 05a0a521341..b29f90524db 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,8 +3,8 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
 #
 pkgname=firefox-esr
-version=60.8.0
-revision=2
+version=68.1.0
+revision=1
 build_helper="rust"
 wrksrc="firefox-${version}"
 short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
@@ -12,11 +12,11 @@ maintainer="Eivind Uggedal <eivind@uggedal.com>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.mozilla.org/firefox/organizations/"
 distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe
+checksum=f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac
 
 lib32disabled=yes
 hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
- cargo llvm clang rust cbindgen"
+ cargo llvm clang rust cbindgen nasm nodejs"
 makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
  pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
  libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std

From 2bdab821db51bfc28b79c9eef0ee78a1fff9bb1e Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:37 +0700
Subject: [PATCH 2/2] firefox-esr-i18n: update to 68.1.0.

[skip ci]
---
 ...irefox-esr-i18n-as => firefox-esr-i18n-bn} |   0
 ...-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} |   0
 ...fox-esr-i18n-bn-IN => firefox-esr-i18n-ia} |   0
 ...-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} |   0
 ...refox-esr-i18n-mai => firefox-esr-i18n-oc} |   0
 srcpkgs/firefox-esr-i18n-or                   |   1 -
 ...irefox-esr-i18n-ml => firefox-esr-i18n-ur} |   0
 srcpkgs/firefox-esr-i18n/template             | 202 +++++++++---------
 8 files changed, 100 insertions(+), 103 deletions(-)
 rename srcpkgs/{firefox-esr-i18n-as => firefox-esr-i18n-bn} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-IN => firefox-esr-i18n-ia} (100%)
 rename srcpkgs/{firefox-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} (100%)
 rename srcpkgs/{firefox-esr-i18n-mai => firefox-esr-i18n-oc} (100%)
 delete mode 120000 srcpkgs/firefox-esr-i18n-or
 rename srcpkgs/{firefox-esr-i18n-ml => firefox-esr-i18n-ur} (100%)

diff --git a/srcpkgs/firefox-esr-i18n-as b/srcpkgs/firefox-esr-i18n-bn
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-as
rename to srcpkgs/firefox-esr-i18n-bn
diff --git a/srcpkgs/firefox-esr-i18n-bn-BD b/srcpkgs/firefox-esr-i18n-en-CA
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-BD
rename to srcpkgs/firefox-esr-i18n-en-CA
diff --git a/srcpkgs/firefox-esr-i18n-bn-IN b/srcpkgs/firefox-esr-i18n-ia
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-IN
rename to srcpkgs/firefox-esr-i18n-ia
diff --git a/srcpkgs/firefox-esr-i18n-en-ZA b/srcpkgs/firefox-esr-i18n-ne-NP
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-en-ZA
rename to srcpkgs/firefox-esr-i18n-ne-NP
diff --git a/srcpkgs/firefox-esr-i18n-mai b/srcpkgs/firefox-esr-i18n-oc
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-mai
rename to srcpkgs/firefox-esr-i18n-oc
diff --git a/srcpkgs/firefox-esr-i18n-or b/srcpkgs/firefox-esr-i18n-or
deleted file mode 120000
index 0707c37f205..00000000000
--- a/srcpkgs/firefox-esr-i18n-or
+++ /dev/null
@@ -1 +0,0 @@
-firefox-esr-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-esr-i18n-ml b/srcpkgs/firefox-esr-i18n-ur
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-ml
rename to srcpkgs/firefox-esr-i18n-ur
diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 8c43a8ace7c..b4e17fb16f0 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'firefox-esr-i18n'
 pkgname=firefox-esr-i18n
-version=60.8.0
+version=68.1.0
 revision=1
 build_style=meta
 homepage="https://www.mozilla.org/firefox/"
@@ -19,13 +19,11 @@ _languages=(
 	'af     "Afrikaans"'
 	'an     "Aragonese"'
 	'ar     "Arabic"'
-	'as     "Assamese"'
 	'ast    "Asturian"'
 	'az     "Azerbaijani"'
 	'be     "Belarusian"'
 	'bg     "Bulgarian"'
-	'bn-BD  "Bengali (Bangladesh)"'
-	'bn-IN  "Bengali (India)"'
+	'bn     "Bengali"'
 	'br     "Breton"'
 	'bs     "Bosnian"'
 	'ca     "Catalan"'
@@ -36,9 +34,9 @@ _languages=(
 	'de     "German"'
 	'dsb    "Lower Sorbian"'
 	'el     "Greek"'
+	'en-CA  "English (Canada)"'
 	'en-GB  "English (British)"'
 	'en-US  "English (US)"'
-	'en-ZA  "English (South African)"'
 	'eo     "Esperanto"'
 	'es-AR  "Spanish (Argentina)"'
 	'es-CL  "Spanish (Chile)"'
@@ -62,6 +60,7 @@ _languages=(
 	'hsb    "Upper Sorbian"'
 	'hu     "Hungarian"'
 	'hy-AM  "Armenian"'
+	'ia     "Interlingua"'
 	'id     "Indonesian"'
 	'is     "Icelandic"'
 	'it     "Italian"'
@@ -75,16 +74,15 @@ _languages=(
 	'lij    "Ligurian"'
 	'lt     "Lithuanian"'
 	'lv     "Latvian"'
-	'mai    "Maithili"'
 	'mk     "Macedonian"'
-	'ml     "Malayalam"'
 	'mr     "Marathi"'
 	'ms     "Malay"'
 	'my     "Burmese"'
 	'nb-NO  "Norwegian (Bokmål)"'
+	'ne-NP  "Nepali"'
 	'nl     "Dutch"'
 	'nn-NO  "Norwegian (Nynorsk)"'
-	'or     "Oriya"'
+	'oc     "Occitan"'
 	'pa-IN  "Punjabi"'
 	'pl     "Polish"'
 	'pt-BR  "Portuguese (Brazilian)"'
@@ -104,6 +102,7 @@ _languages=(
 	'th     "Thai"'
 	'tr     "Turkish"'
 	'uk     "Ukrainian"'
+	'ur     "Urdu"'
 	'uz     "Uzbek"'
 	'vi     "Vietnamese"'
 	'xh     "Xhosa"'
@@ -136,97 +135,96 @@ _pkgtmpl() {
 	}
 }
 
-checksum="ff8a0e5081e1bf6f1794ea47dab8f32f5b28580c423bccc149e16f4749e36c50
- eb86ab716a1d6a32bd102952f3ac13b7708ac9fdb947e72e0f66891f872c1cb0
- beb35664f371716cebd1a4a4c84b44129c381a1dc9a38dea19684fd5f15e407c
- 25e8cdd8d22a1073143e2c88e5d3c4d96b505edbe9c18bf29fb5fbf4c68db620
- 7a05659ee866abc198bd55169b189f8e1f4daa1259b28bef78918ee0e84ed669
- 610f0c658af4d93eb7d70a459317323845a641b229f1dd42c4ee66ee660067d9
- 021d5f86239831892335f8d4b434bff3e129b774588e8b49758b3ff97534b055
- b3d75d79148ef5000aaca5d6948e09dcc43673f9d51a91bd21c51eaee34a4bf0
- 6481896744f2a0e596f425de2590ab78e153463a8bd16fc9398bb0e6a2278f3c
- a03b62fe0dba6a9aaf080505299d632dec7eb98d2973c42b53330ec25695d9c7
- db332375bf0224ac90a0aec2475c70d0262f52a0f856ef5d244ba7ab8d89bb90
- ff234f75fe294bf4278d7976a7c44815f5aa9e981e9742fb322f19726a38dcbc
- 5f0d36853f12f5fc3d8a85874718bcef77103903cb732c370b4e301dffb38a51
- 6b336951b07e1dd63472027d7603439ee5384b3f6a814c7be34d0cdeac1bd4d0
- 21e196147819aab031a733a4ad78b4c67d77120cd8976e7aa0b364823a3beb01
- 4edbad866270ef310932149188d4e4b0d786abc22db3196430d9db9b9113e992
- 0acf0db94b5e56fd81c14a763e2b4dd32c10f21824464195e30adc7ed9e4c021
- 440ac13c8d241d537c7de382a10ca1da1716cc302dc200ac5039ac43efcfd8a6
- bb7fc4aeffeca0c89a2ba33a7c762f4764cd70334f74cfa5d4b51fc4449aabed
- feebf56ff307f191ebd2af9990840db9e3e447c0cfbdea3219320b108838202a
- 9ced74783c6e21ae934243b3558ba1ecbe2858b6cfe57a031389d4c91b4887dc
- 958ff950724abf9c593685991246325ff6d04f73ea9c518dcefe24e289770c9e
- d8f5ef61b8a2bbe021fef63d09cb8e83a848a8100331acecdd70c47cf0cf9d43
- db9f3432a6a364791e0c4c8e47516c60182a0640a8ef795e24b7fc2465c7a7b3
- 7558f05cc6319ef57cf54a176b41bb9ac6d4650de9099998d3d4ad83163d07cf
- 8f8ef308c6c5d06f20feae2e4f6b29aa0db271f1a91f1d3ad097aa7a51948384
- 987c9758f4a71bd3e7602cfd977a611fe28d58ae28f324ba1325382958735aa7
- 1ac4c54b7ed0bc407711c589328d192b1b49a4b23417d294bd3608bbc5f40581
- 71d5f764c000ad31f252fa36a94d6a178b552c1a9e4815ae883e7c490ed4d401
- 74441cfbfdbd111ab87318598dd4a3c8aaa4c4db2b86a12bc6cf41fa05881ea8
- 43bffe371b4cb25f21bf767f618631a96b24e72a658a72759f4bb6a06bc5bf32
- 50fa12cc74afb9faca4ebb8ae47d2e22756f4cae70e3c8169fbf0f568dc64fc8
- 85e3332ce6656d8df3a492ed837192df3991aab1314c1c5ef25a67bf61360cbf
- a3dadeaca0193cb249b087b165e1d6fbbd322cf06485a7cf1a35c090b4adeb31
- 55cbc207ea34d61519f48946c077cc9dfa17d24eed5310f58838af289ea0b60f
- 31c6f72f72743a4b085eb699627a3917e92531066388343a40ffc6412277027a
- 38f1b0d8091f864256464cec0e7f78f474020feb7c4748b84160c6e074088b60
- cf2c4efce1203eb8c8f8a984b90c61672cfe9a6d05da3cfecee52e12189301a0
- ca8e8da872f5053cfa15d8395d8f10a66794589833714538b0c67fd83c340466
- c15707031179223c545a4299306b3df107ded62b685363a5e3274e318b88f219
- c1699a128003f23ef5662919ed1b33c5d61caf914985e39853df29a1ba35828c
- 3fb4a2283723b2ef3709c88baeb99e77bbba33c9e835c2dfedf28c6b2ecad2fa
- 344b3b3149aa3b77f10f49b86a76c6ff0179043048093c541944058f620e8845
- b43880065a4a92aeff823e4913eabe953e88cafb9cd414b2f616475cd7af69af
- 94b414e2f89f030c131742de0d9ba48f13b16b40e06dd568c10cea417b57b5ba
- 177ca8c3883d9c5d7e4a84b79dbc7b64e430fabaa247b0cee78f9ef65e2b5aa0
- a2a071c6e3604287a99e78042b34d02d4d91b27d3b23b9ea90945da7d9456012
- ae57f94246c078f8e2d4b8c297b281115bb008a811bf2a783278deb916007da4
- a222763e7d2d5eda8a15869f85c19765111841a2ccf4d18993eb83f20bdf4933
- 7771989dad60a20756517a6f696d939039cf5f10aa47d271e2ff5c465bd7b4c0
- 389b3c1b09e744c8fe843e3784088ea72214571b975ea9d69aaeb7c4264a990b
- d5fea97921089f0b4a6a8667ddf19a430eca78223118818480a202e563088943
- 617b9daf4d828bc66fc8061601adc9c40b25f1338c5f527d9fbf83dfa3e8770b
- 87d2ec6cadb2a61909888af5cc80a4dacd64493d82d0282679ba3c597918fb07
- 1afe05f69af9bc0b0e37d1c6d0942073349b173433a41a83b3a732e6fa026511
- 68b80d99dc3ff2c2828622cdf7d21c32e6f00904a239eef3f5eedb8fb8476386
- 853ec1ad7ef319a60586902c5b3dec73e0800c7af2d94e44b549d4f03f114fd7
- d0c9e3dfd07994ebf26d4ad98ef997cb62c90c07f9d0e70c8b2f7771f39b1b95
- f5b14095e891af078ef256460a41b19e00fbcd81eba66e0331af8bc096288963
- bec28861d16cf418fa06d650765c3be8fbc02b69b41b079d3907bb01c3d8096a
- b042d80a54dbc7cd0fdf24ba3599404632d84635ae73204235dbf66ef7a35a26
- 7b791bfc3bd843a291d74d86f88c0a5a31af13d9da9f135841fd7859c442f733
- f12eb8be3a7ef93146c161f6ba02b9d9b892b792d0c190adb92398802f5365fe
- 49addce322b6020d69b65f72ee4e82a140cd0e712c647127f6fac5b66e6f51b5
- acdc9ae4ae7397ade4c4053dc3b1f22ef42cc844bf853e5e846d1f6b0c5d5cab
- 02ac07e226734f1f693283784816b3c96a48b4e592c676673901104c5dcc72b2
- b102cf97790415b804182743426e8eb1304675fb4bf360e64ae9055cce87b2f1
- f8988dfc783c4b39d8a3a44e1000c6376bc211ab6297a49eddf5194b71fdfbde
- 58cad897f3bd51b9a1fcb7d4e4d3fc6bac47e5b2d4c6c19096732556eaec1314
- 23af8e26632da7c5d791a8891295eb2a83cde54390d9cd17692525f6e32ff6ed
- 0d38ca007291146731793d1a2c7e07bad2d2ed82668dfbd5be14daacf7abdce7
- a5957711b3fd9665dd2fed5fdbbb0a2fcbce54ad43ccd6800ddf7ccf5be731e5
- fcc2580a8ab3e95d23af7ee373a9bfcdce52e2a5ce59bb59d1ba1dca75772239
- bc3a8480ff73c752cc1cbfa80c327b155b194553c3568534b9d20f7e2176df1e
- 196abc6109092f326b387f5cffad880e5b6a857203127cf1f76622ca5a823ad2
- 002109cec6f2e40fb4ffc07b04c72a8debd128357925e8d51e5a84614004a086
- 83be2c2c9f9c93c0c31c5d30c0e6fdef3df2381f7c62c64a8313066f64c98b0f
- c7c83b2c405c432c3de1c187cfc800025502b1931e07ff1108648e77279441ab
- 8156b74896fd7b69fc306f90f1fd5291316d3c9b4c5ab4df620cab8d782b466e
- 27ff153a51f800ea9620042acc47aad6b2392c3551a4be30e982652ef89fcdf2
- abbbd74fb4e2ce5cfb254837c8383c9cca637bbdfd05d403526a50b08806c050
- 0c6ada2d7bf26be43d4f3fa8f37581a1f1a3113c3399ebd328736802dbe7623f
- b8c50654545a923e7ad7ef43bb1f2ea56b845b3443ffa0410b9bb7a6be9b8b91
- 4e49460bd3cd763e9527c771c4030237700e2eb73a359fefce3bd2146db7d56e
- 82bab7b006ab019d2bf2d6b3ed9aa85796f8dc1f827ed7350b0286dbd19bbc78
- 9b6adcd828ed3c2bb4950df6a2634bc943768b3d852e2e258e52c7e2da7a5ca7
- ccd0aa23ba2662e766e2adcab201076dfdcfc5cf288e4c4bbeff6d0d3c451abb
- f3709e35f5d4d317733f943aec9e977fd83acc1eaa9a35cf149dbf05e345146c
- 282d60e14be013a29ba09611f7ebe37d1fa5fe6dd8e441a1f10270d4e10323d6
- 742960a8b13cab9901267237accfcbcded21018aff9b6fc1bfd0ab37b7c8b607
- 0ae68434908b9512c46f22a6f3149b0f611f77306887a7641527d5df55725517
- 432353f98d29dbec0bc0eb50f0316220f155dee755ea0b4cb45b0636a0fcffde
- 8c1bbca429dd81d9180639ed1e526892908d26c1784f5f9c37093577b82d25fe
- c9651a78d2d2395711d320f6fac1ffd37048d4bffc544a2f2e182cedd237d090"
+checksum="c3fafda87192d9b98dc9b2b99d62b7109dbd72f73e8d5de1ea2a418ed086317b
+ 93af0702aae30332eecdc0f407dc29080923660508018fca14fe1307fdf375a1
+ a40baf64e7376e4916fa96d7199bad099edc7e897d65b5ecc4a2dc9fdbba2e75
+ 1e915f6a0860f2f7f583a70a5668ec5033969fbba177c3d3da4e244d01ba5cb4
+ d6c45490cec27609f43fb9af406ba15e25fff544f10d038e650a5b25d2ba5a69
+ 2b5d84d3f7800d162b095d0ee77da8264af9eac3a98dfff7e14b26510c92be1e
+ f317a73af579bbb42bc6635900e5b529f5198daaf54c5a7f51756b7707747444
+ 6e65702a500ef4d2841eacbd9e16ca692d25a9aa3fcf38be2603657bfb03a80d
+ 7b056d739b64407e92a6738c8e3a5f6fe070380196c057d3f832be4015e7957c
+ 6bdd5ab6efd06bd384e227d78de6cffeac4c828ce6254d152e0137c70eb7b2e9
+ b60364c109f3fe94387bfb27258c65c09b7761248e309adb8f92eda0c6c1dddb
+ 3b91a27432306a6152f6cee7b19d684476c4282743259eb0e5f90db6483216e6
+ a17149908edf9a173b9d7ca3eac644cf45cd0e35ba40c565903ea9af9580e41e
+ b404f670ce1f3cc7fbdb170e9f0286e0a7608d779c5dae83ce5adee911876e6d
+ b41236a8ce2e96edf02165bd1ad91de967d8605ed7a9c77f079027ea0b13a7cf
+ 1f444a10561108bdfb98d43531c33d377a2565763d1299c96ef3c1f746b10555
+ f15e57588ccdf2a6be3b51fba066dc030e2808071b29957c3da844b272d1dd25
+ d51b8bdbc415fcdf5df587e364b8a3edb6296a988c38dbfb0fbec40b5dec856e
+ bcfbd612f55efff2dc98cdf9ff6ddf3d8e91274ead7d8d8bf1023cb28b815623
+ f711d9206635ac98b3eec788791089d1a64316dc55ad4be2f6043acca79317b8
+ a48efe9f0a885060fe2844ae056fb9de8932e45cfda399959ff8a4f54c99dc3f
+ c919c3557a66188ea7ab58210f6fe629f5e111bd73c0f94f298e4635c21b5f05
+ edf74a83a03f85dfb2172053cf1816736fdfb4c42fbacdf4626b128186fb15db
+ 76bc68c806add52aa205f9f6a55dd6c141ecfaa29ce5b63fe06cb8bf1ce0c567
+ af3763e63550893a001a651c5d89e4bb529004de98d58f2dc2a49336239171bf
+ 979725bd9b1b8aade54e0e24efdc2c716381130559615f45c007f0d68a0b0b69
+ db96fd8658bc75f4813ddaf457c888e3f0656dc407b12d7799dbdebb7cc1a9ae
+ ba5e81b435217c15e2d55a42d34e3313e9ad1302b34599a25b48a23846dfc920
+ fd3988b0ddcfa721fd702c126dd531f5b77f1f5af8ac61e8b23307c5b84e8e72
+ a58a245d30efb8ad6553166dd2469da504d6cf3c773e52da15c3677899f37c4e
+ 3fd377be34a8786a726a13c88d28b2b73155b1f527b2909e6841474631ce8226
+ 790af48c82bf520bcd8f915af77d1e0c8f156ae6c028b1fa0f39c3c991865d1c
+ 46b8071a1e23d8c5af1ced98cfbdb1a2258f679425434e092fbe1c42dfa26066
+ a4eefa1ff84e33059d055c984dbb47283d117cb63ad9e39d7cc4c4e61ea9c11a
+ 5a91be294ac35aac472c4ba8324221551abb2e8cb66f995806606c191dca0428
+ 9a4a582673dc466a684fd2beacbe77a152047e6023b1e247f5eda7b513e5e30d
+ 039af250c8b2dc6254b2f24975704095406c70090de9d21ecc73975d8d874675
+ 3c77fd2a4cfc49ff94994b46a9b80ea24e534299838dd64a11a5dc2ef110f901
+ feaeb14a016d732b3ec0be6266bd078fdf220c48c38683a4dd7315e076839b82
+ a4756471f45168ff28fdc0e87c65b33288ca1f7fd2eedb7e31a726ee4766fb3c
+ 4eb62cbed52d1cdad08551a38d1f7656c71ef986df49eee0381e9aec7b11c0ba
+ 8e967ef8ff1f1a2fc21ea537d629d40a38d6b8789ce344e79d7a3b3b78138968
+ e008e241c41900d6df1128d5dd55d41e1ed43d7c60d48329a321716968397b09
+ 7011776c661b07bc3fd7d24b62765aeee10ba2a72ea4112862989f759aceb466
+ 760c44d1512be5f10264d195785e45d47c46595ef57c24de81c070a81ba65456
+ 531ec7550a9ab4e2410e9c69495852eaa0e7df43e022ed7ec0f0c50e148a4506
+ c46413f7aa225147712fb634483f64c9368f43d03ba6f66405e4c9dc281421b4
+ 42debde9c9341fc910ff382e94fade233b3ad23e4f474d89426648c659a99a12
+ 50f1088649f77e0f83dffe3e81dd8ac993d1d8f06d8f231acdf98a69cda9147a
+ 2a4f6162bfbf5ea44c832c0d5896079b0ce69e590dc377e3bbd37a92f9780e6c
+ 60aa95eb50d59ddb2bf57d5cfacf860d4cc2c8b86a219f35ceaa30d82fd6e593
+ 73a416254d022b051bb38ebf085772c031ecba18ab4896634ba8599fcb396f7b
+ ae3aa802087754458465af30a4ddafc8baa08e101a4e177b144b4f606a78b941
+ 30c7498935e0d4529ccbe3a5c7671aec9505d0132cd6123f97c0680c80cbb917
+ 99b76ac0f7cf4c5d5ae8b66ae3e54e3932c6a6f101aba8b156cf8d78a67e3f0b
+ 1bcb69081c99b27781c81becce86baaf2f1da54ceba009904ad2a5a8614eaa68
+ bb3152472d5582b365722a83972b416d78b8bddfc6dbea40d1c778c37eb86623
+ 426115a07ce25b7d2ae89024bf81e8b5957df9d8709bd6e5c1da704633af3c85
+ 24918b9cd56f5fe12c7e02b0cedcdaf2abeeb7ec3cdb75a4aee3ca2d4aaaa961
+ 8497c47c4f151966538836b0dfa312a044d8496ffc4647fcf62c8ed19b2337d9
+ e160dd5b88f37562d7cbace3f46b8fd8edc5b9211f4240d8e38aec3dd81d915d
+ 298ab33911b8c425e6032eba867bc31925ea24b2457298bbf965bd6b194edc3f
+ 4c53367e4ddcff92733a95139baf9610390bf3eaf78ef5a5d10b4530c359e8eb
+ f340c62b77eaaa6bde0e61944c508b32785619ad4ca54b7dfbf281fcb986eac0
+ 99201be46e35f22312a27da2a2afc54f46043342a1c577fa64696ef365198329
+ 41e4d2d255435d2b50a8e0c4c59b13a0a0aafae925cd32e20bf9005cd066d11e
+ 266141c6c9a6729da904dfa040ae20d80a6b5c39efc31fcf2d039ed65e9c2b28
+ 33daee0ac659ec7d1fb1cb101798dae2ed0077653fc9170bcbb5bc554ee3e433
+ 23b74270aef1c6a4bff5194103a430e6854fe4c460e5c684769bd7c59d1afa0d
+ 9405687dbb0a81e8be8f842824f2fe65830b70a0dd0dcde84cc8a21d6637f841
+ 40a608e720136044f4b95728474fcb82764e61d649551be438e330b63753635f
+ 0ef710447a36e81a6c86b17ee28d2cf463242834936af2578074df6e11c2baea
+ 3f0d0d33abda068465d7747149cdf11a4b1dc819f7da7f1f7a3d9c2a45307231
+ 9d2c3438776531077e379e97a449e714882896c53dbb87052de7e7ac77ea3d67
+ de9b4ec945265f5539025fb73b713322924da2d1a51b5bd6ad1baba4584c76e1
+ 7b66c7d5e1b9eb6959295a76416271220e84ecc43a97a5f5f07ec99986579cb1
+ 4404f5fe56868f5c551208d72630b91a88c68f78d7463e8e1d221fd7406c0783
+ 3f55ec2730a870951759961c83d6654c7122a3114e136a6e2bce7c05d6062d89
+ 873819bc254911aa3a443d0a9db306b472f7f31af8d986d54c535bce67a4b1c0
+ 07326e95015601946706f50333c32b0919025376abcdf88dc225dae2c167b19a
+ bfdd58d9f0f0e809e6b801f65c722c61b4dbb5e6635cecd7390d1403f1dd6f42
+ 8c2d716291a28cc64f93078d2bdf8d756a6521e3b0107815788c48452eac95f0
+ 9b07735b4d8e8359e38d671ed054b373c4ed50a232013807d09ca4fae31e8223
+ 5592ee66611515f8583a48211d70764fdb28c54b1ad4de5b4b87a9d3b101a182
+ d36e2c9a894beb94b62855bd07d4b54e41fc96c0736b5e2e702422e75b3cf21e
+ caf7dd282fb6dc065eb6a0c124cd458716d877a500c094ff650c4d40302dd49e
+ 80bd3c70433f6b3aacdbd370b70d4fe0eab13547d1f6368b80eb5c28a759141a
+ 67b359947cbe15b2be1ad2567d74a36cfe5f27665a058b0fab19ed37ddd63a30
+ b3347d5cec7f9f6e3aa4b5ccdd49350fd0879c20938bfc22664782c377dd73a6
+ 79b512427977c359ec8f93e4880cd5397ccddb013676d2d39837f06433fe4041
+ 883d5daa5b041778b0984a7e86ecfc4892af1aed1ec09285ac031e335075524c
+ bc1981c7cb2e6d5aecec7fb0f370c1da52895f00d238c1afa2b4e31b93580eb6
+ 6278e5c054f50d3de62de9d070d21d2842d4d0ff9212d852af8eb672fad7ecea"

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
@ 2019-09-06 17:26 ` voidlinux-github
  2019-09-07 11:12 ` [PR PATCH] [Updated] " voidlinux-github
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-06 17:26 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 175 bytes --]

New comment by Chocimier on void-packages repository

https://github.com/void-linux/void-packages/pull/14229#issuecomment-528941608

Comment:
You can put script into files/ .

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PR PATCH] [Updated] Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
  2019-09-06 17:26 ` voidlinux-github
  2019-09-07 11:12 ` [PR PATCH] [Updated] " voidlinux-github
@ 2019-09-07 11:12 ` voidlinux-github
  2019-09-08  9:02 ` voidlinux-github
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-07 11:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 505 bytes --]

There is an updated pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages firefox-esr
https://github.com/void-linux/void-packages/pull/14229

Firefox esr
Built and tested for:
- x86_64

Building in progress for:
- x86_64-musl

The language list is updated by this script, and some manual removal:
- https://github.com/zdtcd/xtools/blob/master/xgenlang

A patch file from https://github.com/void-linux/void-packages/pull/14229.patch is attached

[-- Warning: decoded text below may be mangled --]
[-- Attachment #2: github-pr-firefox-esr-14229.patch --]
[-- Type: text/x-diff, Size: 50446 bytes --]

From 0157b6b97f4e9ea6c8b9bcd6f91da9bebd4fce15 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:17 +0700
Subject: [PATCH 1/3] firefox-esr: update to 68.1.0.

---
 srcpkgs/firefox-esr/files/mozconfig           |  6 --
 .../disable-image-format-warning.patch        | 15 +++
 .../patches/fix-arm-opus-include.patch        | 11 +++
 .../firefox-esr/patches/fix-i686-musl.patch   |  9 --
 srcpkgs/firefox-esr/patches/fix-musl.patch    | 11 ---
 srcpkgs/firefox-esr/patches/fix-toolkit.patch | 35 ++++---
 srcpkgs/firefox-esr/patches/fix-tools.patch   | 31 +++---
 .../firefox-esr/patches/fix-wasm-arm.patch    | 15 +++
 .../firefox-esr/patches/fix-webrtc-arm.patch  | 11 ---
 .../patches/fix-webrtc-glibcisms.patch        | 17 ++--
 srcpkgs/firefox-esr/patches/fix-xpcom.patch   | 11 ---
 srcpkgs/firefox-esr/patches/gettid-musl.patch | 11 +++
 srcpkgs/firefox-esr/patches/mallinfo.patch    | 40 +++++---
 .../patches/ppc-no-static-sizes.patch         | 19 ----
 .../patches/remove-rustc-check.patch          | 18 +++-
 .../patches/rust-unitialized-field.patch      | 19 ----
 srcpkgs/firefox-esr/patches/rust133.patch     | 24 -----
 ...nd-restore-non-volatile-x28-on-arm64.patch | 64 ------------
 ...-clobbering-it-in-the-regex-compiler.patch | 97 -------------------
 srcpkgs/firefox-esr/patches/sndio.patch       | 12 +--
 srcpkgs/firefox-esr/patches/yuv-be.patch      | 48 +++++++++
 srcpkgs/firefox-esr/template                  |  8 +-
 22 files changed, 187 insertions(+), 345 deletions(-)
 create mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-musl.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-xpcom.patch
 create mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust133.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
 create mode 100644 srcpkgs/firefox-esr/patches/yuv-be.patch

diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 5b3c6e46d6f..0798fdd40ef 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -1,11 +1,6 @@
 ac_add_options --prefix=/usr
 ac_add_options --libdir=/usr/lib
 
-ac_add_options --with-pthreads
-# XXX build without system cairo see:
-# - https://github.com/voidlinux/void-packages/issues/2308#issuecomment-135426813
-# - https://bugs.gentoo.org/show_bug.cgi?id=558150
-# ac_add_options --with-system-cairo
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
 ac_add_options --with-system-bz2
@@ -39,7 +34,6 @@ ac_add_options --disable-install-strip
 ac_add_options --disable-strip
 ac_add_options --disable-profiling
 ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-pie
 
 ac_add_options --enable-official-branding
 ac_add_options --enable-application=browser
diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
new file mode 100644
index 00000000000..bd56e6bc37c
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
@@ -0,0 +1,15 @@
+Imported from Adélie. Firefox is prone to this warning on BE and
+it leads to huge .xsession-errors, and the warning is not very
+important or meaningful, so just disable it.
+
+--- gfx/2d/HelpersCairo.h
++++ gfx/2d/HelpersCairo.h
+@@ -147,7 +147,7 @@
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
+-      gfxCriticalError() << "Unknown image format " << (int)format;
++      //gfxCriticalError() << "Unknown image format " << (int)format;
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }
diff --git a/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
new file mode 100644
index 00000000000..6e0c5875da3
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
@@ -0,0 +1,11 @@
+--- media/libopus/silk/arm/arm_silk_map.c.orig	2019-03-19 20:55:01.249609964 +0100
++++ media/libopus/silk/arm/arm_silk_map.c	2019-03-19 20:55:25.769400255 +0100
+@@ -28,7 +28,7 @@
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "../fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
+
diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
index 5345a3cd3df..6df609bbf16 100644
--- a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
+++ b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
@@ -9,12 +9,3 @@
       ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
        defined(HAVE__UNWIND_BACKTRACE)))
  #define MOZ_STACKWALK_SUPPORTS_LINUX 1
-@@ -911,7 +911,7 @@
- }
- 
- // {x86, ppc} x {Linux, Mac} stackwalking code.
--#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-      (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX))
- 
- MFBT_API bool
diff --git a/srcpkgs/firefox-esr/patches/fix-musl.patch b/srcpkgs/firefox-esr/patches/fix-musl.patch
deleted file mode 100644
index c32921d39e1..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/profiler/core/platform.h.orig
-+++ tools/profiler/core/platform.h
-@@ -56,7 +56,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/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
index ce4d7d01f82..86e8ef47855 100644
--- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch
+++ b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
@@ -47,18 +47,28 @@
  #include <a.out.h>
  #endif
 
+--- toolkit.orig/mozapps/update/common/updatedefines.h	2019-01-29 11:34:36.416804577 +0100
++++ toolkit/mozapps/update/common/updatedefines.h	2019-01-29 11:34:59.193583777 +0100
+@@ -102,7 +102,7 @@
 
+ #  ifdef SOLARIS
+ #    include <sys/stat.h>
+-#  else
++#  elif !(defined(__linux__)) || defined(__GLIBC__)
+ #    include <fts.h>
+ #  endif
+ #  include <dirent.h>
 --- toolkit.orig/mozapps/update/updater/updater.cpp	2014-03-15 05:19:37.000000000 +0000
 +++ toolkit/mozapps/update/updater/updater.cpp	2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
+@@ -3978,6 +3978,7 @@
+ 
+ int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
    int rv = OK;
 +#if !defined(__linux__) || defined(__GLIBC__)
-   FTS *ftsdir;
-   FTSENT *ftsdirEntry;
-   NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+   FTS* ftsdir;
+   FTSENT* ftsdirEntry;
+   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
+@@ -4085,6 +4086,7 @@
    }
  
    fts_close(ftsdir);
@@ -66,14 +76,3 @@
  
    return rv;
  }
---- toolkit/mozapps/update/common/updatedefines.h	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:15:53.946747750 +0100
-@@ -100,7 +100,7 @@
- 
- #ifdef SOLARIS
- #include <sys/stat.h>
--#else
-+#elif !defined(__linux__) || defined(__GLIBC__)
- #include <fts.h>
- #endif
- #include <dirent.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch
index 1e2fc4f7d39..0ed043fb5b5 100644
--- a/srcpkgs/firefox-esr/patches/fix-tools.patch
+++ b/srcpkgs/firefox-esr/patches/fix-tools.patch
@@ -1,33 +1,24 @@
---- tools/profiler/core/platform.h
-+++ tools/profiler/core/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
-
-+#include <sys/types.h>
-+
- #include <stdint.h>
- #include <math.h>
- #include "MainThreadUtils.h"
---- tools/profiler/lul/LulElf.cpp	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:19:53.198257189 +0100
-@@ -460,9 +460,9 @@
+--- tools/profiler/lul/LulElf.cpp.orig	2019-01-29 12:05:34.223834130 +0100
++++ tools/profiler/lul/LulElf.cpp	2019-01-29 12:08:02.480400845 +0100
+@@ -469,10 +469,10 @@
+ // 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) {
-   // Lots of copies!  basename's behavior is less than ideal.
+-  // 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();
++  // basename's behavior is less than ideal so avoid it
++  const char *c_filename = filename.c_str();
 +  const char *p = strrchr(c_filename, '/');
 +  string base = p ? p+1 : c_filename;
    return base;
  }
  
---- tools/profiler/core/platform-linux-android.cpp	2019-01-24 18:31:43.000000000 +0100
-+++ -	2019-01-31 11:23:07.911772317 +0100
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-01-29 12:09:40.980448579 +0100
++++ tools/profiler/core/platform-linux-android.cpp	2019-01-29 12:11:09.689590967 +0100
 @@ -253,7 +253,11 @@
-
+ 
    // Request profiling signals.
    struct sigaction sa;
 +#if defined(GP_ARCH_arm)
@@ -38,7 +29,7 @@
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART | SA_SIGINFO;
    if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
-@@ -497,8 +497,10 @@
+@@ -497,8 +501,10 @@
  ucontext_t sSyncUContext;
  
  void Registers::SyncPopulate() {
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
new file mode 100644
index 00000000000..e6ad61c9f44
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
@@ -0,0 +1,15 @@
+--- js/src/wasm/WasmSignalHandlers.cpp
++++ js/src/wasm/WasmSignalHandlers.cpp
+@@ -243,9 +243,9 @@
+ // If you run into compile problems on a tier-3 platform, you can disable the
+ // emulation here.
+ 
+-#if defined(__linux__) && defined(__arm__)
+-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-#endif
++// #if defined(__linux__) && defined(__arm__)
++// #  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
++// #endif
+ 
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #  include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
deleted file mode 100644
index 222be5f9e21..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc	2019-01-24 18:31:10.000000000 +0100
-+++ -	2019-02-01 00:13:35.690776711 +0100
-@@ -67,7 +67,7 @@
-   return 0;
- }
- 
--#if !defined(ANDROID)
-+#if !defined(ANDROID) && !defined(__linux__)
- #ifdef WEBRTC_ARCH_ARM_V7
- uint64_t WebRtc_GetCPUFeaturesARM(void) {
-   return kCPUFeatureARMv7
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 3ff2570b12b..cf895dd8448 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,18 +1,15 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-02-01 00:49:18.472382771 +0100
-+++ -	2019-02-01 00:50:25.928007236 +0100
-@@ -11,7 +11,10 @@
- #include <stdlib.h>
- #include <string.h>
- #include <features.h>
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2019-01-29 11:20:52.298793223 +0100
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-01-29 11:21:48.250250850 +0100
+@@ -14,7 +14,7 @@
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(a, b) 0
+ #endif
 -#if __GLIBC_PREREQ(2, 16)
-+#ifndef __GLIBC_PREREQ
-+#define __GLIBC_PREREQ(a, b) 0
-+#endif
 +#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
  #include <sys/auxv.h>
  #else
  #include <fcntl.h>
-@@ -29,7 +32,7 @@
+@@ -32,7 +32,7 @@
    int architecture = 0;
    unsigned long hwcap = 0;
    const char* platform = NULL;
diff --git a/srcpkgs/firefox-esr/patches/fix-xpcom.patch b/srcpkgs/firefox-esr/patches/fix-xpcom.patch
deleted file mode 100644
index 38dd582d96b..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-xpcom.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- xpcom/base/nsMemoryReporterManager.cpp.orig	2015-12-16 11:53:14.211144456 +0100
-+++ xpcom/base/nsMemoryReporterManager.cpp	2015-12-16 11:55:26.859476381 +0100
-@@ -46,7 +46,7 @@ using namespace mozilla;
- #  include "mozmemory.h"
- #endif  // MOZ_MEMORY
- 
--#if defined(XP_LINUX)
-+#if defined(XP_LINUX) && defined(__GLIBC__)
- 
- #include <malloc.h>
- #include <string.h>
diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch
new file mode 100644
index 00000000000..c1cb99bf651
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/gettid-musl.patch
@@ -0,0 +1,11 @@
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-07-09 22:58:30.039475686 +0200
++++ tools/profiler/core/platform-linux-android.cpp	2019-07-09 22:58:39.331437677 +0200
+@@ -73,7 +73,7 @@
+ 
+ int profiler_current_thread_id() {
+   // glibc doesn't provide a wrapper for gettid().
+-#if defined(__GLIBC__)
++#if defined(__linux__)
+   return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
+ #else
+   return static_cast<int>(gettid());
diff --git a/srcpkgs/firefox-esr/patches/mallinfo.patch b/srcpkgs/firefox-esr/patches/mallinfo.patch
index c9a38d45bdf..afea86c0a2c 100644
--- a/srcpkgs/firefox-esr/patches/mallinfo.patch
+++ b/srcpkgs/firefox-esr/patches/mallinfo.patch
@@ -1,18 +1,34 @@
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
+--- xpcom/base/nsMemoryReporterManager.cpp.orig	2019-03-19 17:12:20.844810044 +0100
++++ xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:13:32.505133615 +0100
+@@ -123,6 +123,7 @@
    return GetProcSelfSmapsPrivate(aN);
  }
  
 +#ifdef __GLIBC__
- #define HAVE_SYSTEM_HEAP_REPORTER 1
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
-@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
-     *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
-     return NS_OK;
+ #  ifdef HAVE_MALLINFO
+ #    define HAVE_SYSTEM_HEAP_REPORTER 1
+ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
+@@ -142,6 +143,7 @@
+   return NS_OK;
  }
-+#endif
+ #  endif
++#endif // __GLIBC__
  
- #elif defined(__DragonFly__) || defined(__FreeBSD__) \
-     || defined(__NetBSD__) || defined(__OpenBSD__) \
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+     defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+@@ -642,6 +644,7 @@
+   return NS_OK;
+ }
+ 
++#ifdef __GLIBC__
+ #  define HAVE_SYSTEM_HEAP_REPORTER 1
+ // Windows can have multiple separate heaps. During testing there were multiple
+ // heaps present but the non-default ones had sizes no more than a few 10s of
+@@ -698,6 +701,7 @@
+   *aSizeOut = heapsSize;
+   return NS_OK;
+ }
++#endif // __GLIBC__
+ 
+ struct SegmentKind {
+   DWORD mState;
diff --git a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
deleted file mode 100644
index 3f77023bb5f..00000000000
--- a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# Parent b735e618c2a860972197942f6680c941e3c9a67f
-# User Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
-Bug 997353 - Do not use compile-time page size for PowerPC.
-
-The PowerPC architecture allows various memory page sizes, making it impossible
-to predict the runtime page size.
-
---- memory/build/mozjemalloc.cpp
-+++ memory/build/mozjemalloc.cpp
-@@ -369,7 +369,7 @@
- // Debug builds are opted out too, for test coverage.
- #ifndef MOZ_DEBUG
- #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) &&         \
--  !defined(__aarch64__)
-+  !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
- #define MALLOC_STATIC_PAGESIZE 1
- #endif
- #endif
diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
index f6bebc8aab1..84077f4fc88 100644
--- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
@@ -1,8 +1,19 @@
 Mozilla rustc check does not support crossbuild: let's remove it
+Remove calls to unwrap_rustup, they fail if rustup isn't present
 
---- build/moz.configure/rust.configure	2018-10-01 16:28:31.000000000 +0200
-+++ build/moz.configure/rust.configure	2018-10-20 14:21:35.510000000 +0200
-@@ -204,26 +204,6 @@
+--- build/moz.configure/rust.configure	2019-07-06 03:48:30.000000000 +0200
++++ build/moz.configure/rust.configure	2019-07-09 22:35:23.326851798 +0200
+@@ -79,9 +79,6 @@
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -294,26 +291,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
@@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it
          finally:
              os.remove(in_path)
              os.remove(out_path)
-
diff --git a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch b/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
deleted file mode 100644
index 67ef3a02ab8..00000000000
--- a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
-+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
-@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
-                 return Err(Error::NoSpace);
-             }
- 
--            let cmsghdr = cmsghdr {
--                cmsg_len: cmsg_len as _,
--                cmsg_level: level,
--                cmsg_type: kind,
--            };
-+            use std::mem;
-+            let mut cmsghdr: cmsghdr =  unsafe { mem::zeroed() };
-+            cmsghdr.cmsg_len = cmsg_len as _;
-+            cmsghdr.cmsg_level = level;
-+            cmsghdr.cmsg_type = kind;
- 
-             let cmsghdr = unsafe {
-                 slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::<cmsghdr>())
diff --git a/srcpkgs/firefox-esr/patches/rust133.patch b/srcpkgs/firefox-esr/patches/rust133.patch
deleted file mode 100644
index ebdcac7e3a3..00000000000
--- a/srcpkgs/firefox-esr/patches/rust133.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-This fixes build errors under recent Rust.
-
---- servo/components/style_traits/lib.rs
-+++ servo/components/style_traits/lib.rs
-@@ -9,7 +9,7 @@
- #![crate_name = "style_traits"]
- #![crate_type = "rlib"]
- 
--#![deny(unsafe_code, missing_docs)]
-+#![deny(unsafe_code)]
- 
- extern crate app_units;
- #[macro_use] extern crate bitflags;
---- servo/components/style/lib.rs
-+++ servo/components/style/lib.rs
-@@ -23,8 +23,6 @@
- //! [cssparser]: ../cssparser/index.html
- //! [selectors]: ../selectors/index.html
- 
--#![deny(missing_docs)]
--
- extern crate app_units;
- extern crate arrayvec;
- extern crate atomic_refcell;
diff --git a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch b/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
deleted file mode 100644
index fa303f6d1e9..00000000000
--- a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1519822672 -3600
-# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6
-# Parent  223c97459e96183eb616aed39147207bdb953ba8
-Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor.  r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/800abe66894d
----
- js/src/vm/UnboxedObject.cpp | 30 ++++++++++++++++++++++++++----
- 1 file changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
-index 35ca20d7405f..1c20a1093d13 100644
---- js/src/vm/UnboxedObject.cpp
-+++ js/src/vm/UnboxedObject.cpp
-@@ -86,9 +86,16 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
- #endif
-
- #ifdef JS_CODEGEN_ARM64
--  // ARM64 communicates stack address via sp, but uses a pseudo-sp for
--  // addressing.
--  masm.initStackPtr();
-+    // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-+    masm.initStackPtr();
- #endif
-
-   MOZ_ASSERT(propertiesReg.volatile_());
-@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
-   if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
-   masm.PopRegsInMask(savedNonVolatileRegisters);
-
--  masm.abiret();
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-+    masm.abiret();
-+#endif
-
-   masm.bind(&failureStoreOther);
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch b/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
deleted file mode 100644
index aa2dcc6ba8d..00000000000
--- a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1521449886 -3600
-# Node ID 903a79a1efff18fc7cc50db09a3fe5d768adc9a8
-# Parent  4d2955a9ca7e30ca4c3af9c214ccc77fb2fe7fb8
-Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/903a79a1efff
----
-diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp
---- js/src/irregexp/NativeRegExpMacroAssembler.cpp
-+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
-@@ -118,17 +118,25 @@ NativeRegExpMacroAssembler::GenerateCode
-
-     Label return_temp0;
-
-     // Finalize code - write the entry point code now we know how many
-     // registers we need.
-     masm.bind(&entry_label_);
-
- #ifdef JS_CODEGEN_ARM64
--    // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
-+    // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-     masm.initStackPtr();
- #endif
-
-     // Push non-volatile registers which might be modified by jitcode.
-     size_t pushedNonVolatileRegisters = 0;
-     for (GeneralRegisterForwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) {
-         masm.Push(*iter);
-         pushedNonVolatileRegisters++;
-@@ -416,17 +424,32 @@ NativeRegExpMacroAssembler::GenerateCode
-     masm.pop(temp0);
-     masm.movePtr(temp0, StackPointer);
- #endif
-
-     // Restore non-volatile registers which were saved on entry.
-     for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
-         masm.Pop(*iter);
-
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-     masm.abiret();
-+#endif
-
-     // Backtrack code (branch target for conditional backtracks).
-     if (backtrack_label_.used()) {
-         masm.bind(&backtrack_label_);
-         Backtrack();
-     }
-
-     // Backtrack stack overflow code.
-diff --git a/js/src/jit-test/tests/regexp/bug1445907.js b/js/src/jit-test/tests/regexp/bug1445907.js
-new file mode 100644
---- /dev/null
-+++ js/src/jit-test/tests/regexp/bug1445907.js
-@@ -0,0 +1,15 @@
-+// On ARM64, we failed to save x28 properly when generating code for the regexp
-+// matcher.
-+//
-+// There's wasm and Debugger code here because the combination forces the use of
-+// x28 and exposes the bug when running on the simulator.
-+
-+if (!wasmIsSupported())
-+    quit();
-+
-+var g = newGlobal('');
-+var dbg = new Debugger(g);
-+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
-+var re = /./;
-+dbg.onEnterFrame = function(frame) { re.exec("x") };
-+result = g.eval("m.exports.test()");
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 097b313e90b..6c72284c19b 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -51,14 +51,14 @@
      ]
 --- build/moz.configure/old.configure.orig
 +++ build/moz.configure/old.configure
-@@ -159,6 +159,7 @@
-     '--enable-accessibility',
-     '--enable-address-sanitizer',
-     '--enable-alsa',
+@@ -169,6 +169,7 @@
+ @old_configure_options(
+     '--cache-file',
+     '--datadir',
 +    '--enable-sndio',
-     '--enable-bundled-fonts',
-     '--enable-clang-plugin',
      '--enable-content-sandbox',
+     '--enable-cookies',
+     '--enable-cpp-rtti',
 --- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig
 +++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
 @@ -349,6 +349,21 @@
diff --git a/srcpkgs/firefox-esr/patches/yuv-be.patch b/srcpkgs/firefox-esr/patches/yuv-be.patch
new file mode 100644
index 00000000000..1c26f2ecced
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/yuv-be.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User A. Wilcox <AWilcox@Wilcox-Tech.com>
+# Date 1543674229 0
+#      Sat Dec 01 14:23:49 2018 +0000
+# Node ID 0309ff19e46b126c527e633518d7de8570442114
+# Parent  53107afbc21ec78e7ac46d37af212505f2032d5d
+Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
+
+diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp
+--- gfx/ycbcr/YCbCrUtils.cpp	Wed Nov 07 04:50:21 2018 +0000
++++ gfx/ycbcr/YCbCrUtils.cpp	Sat Dec 01 14:23:49 2018 +0000
+@@ -3,7 +3,9 @@
+  * 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 "mozilla/EndianUtils.h"
+ #include "gfx2DGlue.h"
++#include "mozilla/gfx/Swizzle.h"
+ 
+ #include "YCbCrUtils.h"
+ #include "yuv_convert.h"
+@@ -236,6 +238,13 @@
+                           yuvtype,
+                           srcData.mYUVColorSpace);
+   }
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRX
++  if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
++    gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
++                     aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
++                     srcData.mPicSize);
++#endif
+ }
+ 
+ void
+@@ -257,6 +266,12 @@
+                         aSrcStrideYA,
+                         aSrcStrideUV,
+                         aDstStrideARGB);
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRA
++  gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
++                   aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
++                   IntSize(aWidth, aHeight));
++#endif
+ }
+ 
+ } // namespace gfx
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 05a0a521341..b29f90524db 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,8 +3,8 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
 #
 pkgname=firefox-esr
-version=60.8.0
-revision=2
+version=68.1.0
+revision=1
 build_helper="rust"
 wrksrc="firefox-${version}"
 short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
@@ -12,11 +12,11 @@ maintainer="Eivind Uggedal <eivind@uggedal.com>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.mozilla.org/firefox/organizations/"
 distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe
+checksum=f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac
 
 lib32disabled=yes
 hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
- cargo llvm clang rust cbindgen"
+ cargo llvm clang rust cbindgen nasm nodejs"
 makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
  pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
  libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std

From 5b8cb694117735e6acc0cfead4bbfea9d2fb0f1c Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:37 +0700
Subject: [PATCH 2/3] firefox-esr-i18n: update to 68.1.0.

[skip ci]
---
 ...irefox-esr-i18n-as => firefox-esr-i18n-bn} |   0
 ...-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} |   0
 ...fox-esr-i18n-bn-IN => firefox-esr-i18n-ia} |   0
 ...-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} |   0
 ...refox-esr-i18n-mai => firefox-esr-i18n-oc} |   0
 srcpkgs/firefox-esr-i18n-or                   |   1 -
 ...irefox-esr-i18n-ml => firefox-esr-i18n-ur} |   0
 srcpkgs/firefox-esr-i18n/template             | 202 +++++++++---------
 8 files changed, 100 insertions(+), 103 deletions(-)
 rename srcpkgs/{firefox-esr-i18n-as => firefox-esr-i18n-bn} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-IN => firefox-esr-i18n-ia} (100%)
 rename srcpkgs/{firefox-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} (100%)
 rename srcpkgs/{firefox-esr-i18n-mai => firefox-esr-i18n-oc} (100%)
 delete mode 120000 srcpkgs/firefox-esr-i18n-or
 rename srcpkgs/{firefox-esr-i18n-ml => firefox-esr-i18n-ur} (100%)

diff --git a/srcpkgs/firefox-esr-i18n-as b/srcpkgs/firefox-esr-i18n-bn
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-as
rename to srcpkgs/firefox-esr-i18n-bn
diff --git a/srcpkgs/firefox-esr-i18n-bn-BD b/srcpkgs/firefox-esr-i18n-en-CA
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-BD
rename to srcpkgs/firefox-esr-i18n-en-CA
diff --git a/srcpkgs/firefox-esr-i18n-bn-IN b/srcpkgs/firefox-esr-i18n-ia
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-IN
rename to srcpkgs/firefox-esr-i18n-ia
diff --git a/srcpkgs/firefox-esr-i18n-en-ZA b/srcpkgs/firefox-esr-i18n-ne-NP
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-en-ZA
rename to srcpkgs/firefox-esr-i18n-ne-NP
diff --git a/srcpkgs/firefox-esr-i18n-mai b/srcpkgs/firefox-esr-i18n-oc
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-mai
rename to srcpkgs/firefox-esr-i18n-oc
diff --git a/srcpkgs/firefox-esr-i18n-or b/srcpkgs/firefox-esr-i18n-or
deleted file mode 120000
index 0707c37f205..00000000000
--- a/srcpkgs/firefox-esr-i18n-or
+++ /dev/null
@@ -1 +0,0 @@
-firefox-esr-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-esr-i18n-ml b/srcpkgs/firefox-esr-i18n-ur
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-ml
rename to srcpkgs/firefox-esr-i18n-ur
diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 8c43a8ace7c..b4e17fb16f0 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'firefox-esr-i18n'
 pkgname=firefox-esr-i18n
-version=60.8.0
+version=68.1.0
 revision=1
 build_style=meta
 homepage="https://www.mozilla.org/firefox/"
@@ -19,13 +19,11 @@ _languages=(
 	'af     "Afrikaans"'
 	'an     "Aragonese"'
 	'ar     "Arabic"'
-	'as     "Assamese"'
 	'ast    "Asturian"'
 	'az     "Azerbaijani"'
 	'be     "Belarusian"'
 	'bg     "Bulgarian"'
-	'bn-BD  "Bengali (Bangladesh)"'
-	'bn-IN  "Bengali (India)"'
+	'bn     "Bengali"'
 	'br     "Breton"'
 	'bs     "Bosnian"'
 	'ca     "Catalan"'
@@ -36,9 +34,9 @@ _languages=(
 	'de     "German"'
 	'dsb    "Lower Sorbian"'
 	'el     "Greek"'
+	'en-CA  "English (Canada)"'
 	'en-GB  "English (British)"'
 	'en-US  "English (US)"'
-	'en-ZA  "English (South African)"'
 	'eo     "Esperanto"'
 	'es-AR  "Spanish (Argentina)"'
 	'es-CL  "Spanish (Chile)"'
@@ -62,6 +60,7 @@ _languages=(
 	'hsb    "Upper Sorbian"'
 	'hu     "Hungarian"'
 	'hy-AM  "Armenian"'
+	'ia     "Interlingua"'
 	'id     "Indonesian"'
 	'is     "Icelandic"'
 	'it     "Italian"'
@@ -75,16 +74,15 @@ _languages=(
 	'lij    "Ligurian"'
 	'lt     "Lithuanian"'
 	'lv     "Latvian"'
-	'mai    "Maithili"'
 	'mk     "Macedonian"'
-	'ml     "Malayalam"'
 	'mr     "Marathi"'
 	'ms     "Malay"'
 	'my     "Burmese"'
 	'nb-NO  "Norwegian (Bokmål)"'
+	'ne-NP  "Nepali"'
 	'nl     "Dutch"'
 	'nn-NO  "Norwegian (Nynorsk)"'
-	'or     "Oriya"'
+	'oc     "Occitan"'
 	'pa-IN  "Punjabi"'
 	'pl     "Polish"'
 	'pt-BR  "Portuguese (Brazilian)"'
@@ -104,6 +102,7 @@ _languages=(
 	'th     "Thai"'
 	'tr     "Turkish"'
 	'uk     "Ukrainian"'
+	'ur     "Urdu"'
 	'uz     "Uzbek"'
 	'vi     "Vietnamese"'
 	'xh     "Xhosa"'
@@ -136,97 +135,96 @@ _pkgtmpl() {
 	}
 }
 
-checksum="ff8a0e5081e1bf6f1794ea47dab8f32f5b28580c423bccc149e16f4749e36c50
- eb86ab716a1d6a32bd102952f3ac13b7708ac9fdb947e72e0f66891f872c1cb0
- beb35664f371716cebd1a4a4c84b44129c381a1dc9a38dea19684fd5f15e407c
- 25e8cdd8d22a1073143e2c88e5d3c4d96b505edbe9c18bf29fb5fbf4c68db620
- 7a05659ee866abc198bd55169b189f8e1f4daa1259b28bef78918ee0e84ed669
- 610f0c658af4d93eb7d70a459317323845a641b229f1dd42c4ee66ee660067d9
- 021d5f86239831892335f8d4b434bff3e129b774588e8b49758b3ff97534b055
- b3d75d79148ef5000aaca5d6948e09dcc43673f9d51a91bd21c51eaee34a4bf0
- 6481896744f2a0e596f425de2590ab78e153463a8bd16fc9398bb0e6a2278f3c
- a03b62fe0dba6a9aaf080505299d632dec7eb98d2973c42b53330ec25695d9c7
- db332375bf0224ac90a0aec2475c70d0262f52a0f856ef5d244ba7ab8d89bb90
- ff234f75fe294bf4278d7976a7c44815f5aa9e981e9742fb322f19726a38dcbc
- 5f0d36853f12f5fc3d8a85874718bcef77103903cb732c370b4e301dffb38a51
- 6b336951b07e1dd63472027d7603439ee5384b3f6a814c7be34d0cdeac1bd4d0
- 21e196147819aab031a733a4ad78b4c67d77120cd8976e7aa0b364823a3beb01
- 4edbad866270ef310932149188d4e4b0d786abc22db3196430d9db9b9113e992
- 0acf0db94b5e56fd81c14a763e2b4dd32c10f21824464195e30adc7ed9e4c021
- 440ac13c8d241d537c7de382a10ca1da1716cc302dc200ac5039ac43efcfd8a6
- bb7fc4aeffeca0c89a2ba33a7c762f4764cd70334f74cfa5d4b51fc4449aabed
- feebf56ff307f191ebd2af9990840db9e3e447c0cfbdea3219320b108838202a
- 9ced74783c6e21ae934243b3558ba1ecbe2858b6cfe57a031389d4c91b4887dc
- 958ff950724abf9c593685991246325ff6d04f73ea9c518dcefe24e289770c9e
- d8f5ef61b8a2bbe021fef63d09cb8e83a848a8100331acecdd70c47cf0cf9d43
- db9f3432a6a364791e0c4c8e47516c60182a0640a8ef795e24b7fc2465c7a7b3
- 7558f05cc6319ef57cf54a176b41bb9ac6d4650de9099998d3d4ad83163d07cf
- 8f8ef308c6c5d06f20feae2e4f6b29aa0db271f1a91f1d3ad097aa7a51948384
- 987c9758f4a71bd3e7602cfd977a611fe28d58ae28f324ba1325382958735aa7
- 1ac4c54b7ed0bc407711c589328d192b1b49a4b23417d294bd3608bbc5f40581
- 71d5f764c000ad31f252fa36a94d6a178b552c1a9e4815ae883e7c490ed4d401
- 74441cfbfdbd111ab87318598dd4a3c8aaa4c4db2b86a12bc6cf41fa05881ea8
- 43bffe371b4cb25f21bf767f618631a96b24e72a658a72759f4bb6a06bc5bf32
- 50fa12cc74afb9faca4ebb8ae47d2e22756f4cae70e3c8169fbf0f568dc64fc8
- 85e3332ce6656d8df3a492ed837192df3991aab1314c1c5ef25a67bf61360cbf
- a3dadeaca0193cb249b087b165e1d6fbbd322cf06485a7cf1a35c090b4adeb31
- 55cbc207ea34d61519f48946c077cc9dfa17d24eed5310f58838af289ea0b60f
- 31c6f72f72743a4b085eb699627a3917e92531066388343a40ffc6412277027a
- 38f1b0d8091f864256464cec0e7f78f474020feb7c4748b84160c6e074088b60
- cf2c4efce1203eb8c8f8a984b90c61672cfe9a6d05da3cfecee52e12189301a0
- ca8e8da872f5053cfa15d8395d8f10a66794589833714538b0c67fd83c340466
- c15707031179223c545a4299306b3df107ded62b685363a5e3274e318b88f219
- c1699a128003f23ef5662919ed1b33c5d61caf914985e39853df29a1ba35828c
- 3fb4a2283723b2ef3709c88baeb99e77bbba33c9e835c2dfedf28c6b2ecad2fa
- 344b3b3149aa3b77f10f49b86a76c6ff0179043048093c541944058f620e8845
- b43880065a4a92aeff823e4913eabe953e88cafb9cd414b2f616475cd7af69af
- 94b414e2f89f030c131742de0d9ba48f13b16b40e06dd568c10cea417b57b5ba
- 177ca8c3883d9c5d7e4a84b79dbc7b64e430fabaa247b0cee78f9ef65e2b5aa0
- a2a071c6e3604287a99e78042b34d02d4d91b27d3b23b9ea90945da7d9456012
- ae57f94246c078f8e2d4b8c297b281115bb008a811bf2a783278deb916007da4
- a222763e7d2d5eda8a15869f85c19765111841a2ccf4d18993eb83f20bdf4933
- 7771989dad60a20756517a6f696d939039cf5f10aa47d271e2ff5c465bd7b4c0
- 389b3c1b09e744c8fe843e3784088ea72214571b975ea9d69aaeb7c4264a990b
- d5fea97921089f0b4a6a8667ddf19a430eca78223118818480a202e563088943
- 617b9daf4d828bc66fc8061601adc9c40b25f1338c5f527d9fbf83dfa3e8770b
- 87d2ec6cadb2a61909888af5cc80a4dacd64493d82d0282679ba3c597918fb07
- 1afe05f69af9bc0b0e37d1c6d0942073349b173433a41a83b3a732e6fa026511
- 68b80d99dc3ff2c2828622cdf7d21c32e6f00904a239eef3f5eedb8fb8476386
- 853ec1ad7ef319a60586902c5b3dec73e0800c7af2d94e44b549d4f03f114fd7
- d0c9e3dfd07994ebf26d4ad98ef997cb62c90c07f9d0e70c8b2f7771f39b1b95
- f5b14095e891af078ef256460a41b19e00fbcd81eba66e0331af8bc096288963
- bec28861d16cf418fa06d650765c3be8fbc02b69b41b079d3907bb01c3d8096a
- b042d80a54dbc7cd0fdf24ba3599404632d84635ae73204235dbf66ef7a35a26
- 7b791bfc3bd843a291d74d86f88c0a5a31af13d9da9f135841fd7859c442f733
- f12eb8be3a7ef93146c161f6ba02b9d9b892b792d0c190adb92398802f5365fe
- 49addce322b6020d69b65f72ee4e82a140cd0e712c647127f6fac5b66e6f51b5
- acdc9ae4ae7397ade4c4053dc3b1f22ef42cc844bf853e5e846d1f6b0c5d5cab
- 02ac07e226734f1f693283784816b3c96a48b4e592c676673901104c5dcc72b2
- b102cf97790415b804182743426e8eb1304675fb4bf360e64ae9055cce87b2f1
- f8988dfc783c4b39d8a3a44e1000c6376bc211ab6297a49eddf5194b71fdfbde
- 58cad897f3bd51b9a1fcb7d4e4d3fc6bac47e5b2d4c6c19096732556eaec1314
- 23af8e26632da7c5d791a8891295eb2a83cde54390d9cd17692525f6e32ff6ed
- 0d38ca007291146731793d1a2c7e07bad2d2ed82668dfbd5be14daacf7abdce7
- a5957711b3fd9665dd2fed5fdbbb0a2fcbce54ad43ccd6800ddf7ccf5be731e5
- fcc2580a8ab3e95d23af7ee373a9bfcdce52e2a5ce59bb59d1ba1dca75772239
- bc3a8480ff73c752cc1cbfa80c327b155b194553c3568534b9d20f7e2176df1e
- 196abc6109092f326b387f5cffad880e5b6a857203127cf1f76622ca5a823ad2
- 002109cec6f2e40fb4ffc07b04c72a8debd128357925e8d51e5a84614004a086
- 83be2c2c9f9c93c0c31c5d30c0e6fdef3df2381f7c62c64a8313066f64c98b0f
- c7c83b2c405c432c3de1c187cfc800025502b1931e07ff1108648e77279441ab
- 8156b74896fd7b69fc306f90f1fd5291316d3c9b4c5ab4df620cab8d782b466e
- 27ff153a51f800ea9620042acc47aad6b2392c3551a4be30e982652ef89fcdf2
- abbbd74fb4e2ce5cfb254837c8383c9cca637bbdfd05d403526a50b08806c050
- 0c6ada2d7bf26be43d4f3fa8f37581a1f1a3113c3399ebd328736802dbe7623f
- b8c50654545a923e7ad7ef43bb1f2ea56b845b3443ffa0410b9bb7a6be9b8b91
- 4e49460bd3cd763e9527c771c4030237700e2eb73a359fefce3bd2146db7d56e
- 82bab7b006ab019d2bf2d6b3ed9aa85796f8dc1f827ed7350b0286dbd19bbc78
- 9b6adcd828ed3c2bb4950df6a2634bc943768b3d852e2e258e52c7e2da7a5ca7
- ccd0aa23ba2662e766e2adcab201076dfdcfc5cf288e4c4bbeff6d0d3c451abb
- f3709e35f5d4d317733f943aec9e977fd83acc1eaa9a35cf149dbf05e345146c
- 282d60e14be013a29ba09611f7ebe37d1fa5fe6dd8e441a1f10270d4e10323d6
- 742960a8b13cab9901267237accfcbcded21018aff9b6fc1bfd0ab37b7c8b607
- 0ae68434908b9512c46f22a6f3149b0f611f77306887a7641527d5df55725517
- 432353f98d29dbec0bc0eb50f0316220f155dee755ea0b4cb45b0636a0fcffde
- 8c1bbca429dd81d9180639ed1e526892908d26c1784f5f9c37093577b82d25fe
- c9651a78d2d2395711d320f6fac1ffd37048d4bffc544a2f2e182cedd237d090"
+checksum="c3fafda87192d9b98dc9b2b99d62b7109dbd72f73e8d5de1ea2a418ed086317b
+ 93af0702aae30332eecdc0f407dc29080923660508018fca14fe1307fdf375a1
+ a40baf64e7376e4916fa96d7199bad099edc7e897d65b5ecc4a2dc9fdbba2e75
+ 1e915f6a0860f2f7f583a70a5668ec5033969fbba177c3d3da4e244d01ba5cb4
+ d6c45490cec27609f43fb9af406ba15e25fff544f10d038e650a5b25d2ba5a69
+ 2b5d84d3f7800d162b095d0ee77da8264af9eac3a98dfff7e14b26510c92be1e
+ f317a73af579bbb42bc6635900e5b529f5198daaf54c5a7f51756b7707747444
+ 6e65702a500ef4d2841eacbd9e16ca692d25a9aa3fcf38be2603657bfb03a80d
+ 7b056d739b64407e92a6738c8e3a5f6fe070380196c057d3f832be4015e7957c
+ 6bdd5ab6efd06bd384e227d78de6cffeac4c828ce6254d152e0137c70eb7b2e9
+ b60364c109f3fe94387bfb27258c65c09b7761248e309adb8f92eda0c6c1dddb
+ 3b91a27432306a6152f6cee7b19d684476c4282743259eb0e5f90db6483216e6
+ a17149908edf9a173b9d7ca3eac644cf45cd0e35ba40c565903ea9af9580e41e
+ b404f670ce1f3cc7fbdb170e9f0286e0a7608d779c5dae83ce5adee911876e6d
+ b41236a8ce2e96edf02165bd1ad91de967d8605ed7a9c77f079027ea0b13a7cf
+ 1f444a10561108bdfb98d43531c33d377a2565763d1299c96ef3c1f746b10555
+ f15e57588ccdf2a6be3b51fba066dc030e2808071b29957c3da844b272d1dd25
+ d51b8bdbc415fcdf5df587e364b8a3edb6296a988c38dbfb0fbec40b5dec856e
+ bcfbd612f55efff2dc98cdf9ff6ddf3d8e91274ead7d8d8bf1023cb28b815623
+ f711d9206635ac98b3eec788791089d1a64316dc55ad4be2f6043acca79317b8
+ a48efe9f0a885060fe2844ae056fb9de8932e45cfda399959ff8a4f54c99dc3f
+ c919c3557a66188ea7ab58210f6fe629f5e111bd73c0f94f298e4635c21b5f05
+ edf74a83a03f85dfb2172053cf1816736fdfb4c42fbacdf4626b128186fb15db
+ 76bc68c806add52aa205f9f6a55dd6c141ecfaa29ce5b63fe06cb8bf1ce0c567
+ af3763e63550893a001a651c5d89e4bb529004de98d58f2dc2a49336239171bf
+ 979725bd9b1b8aade54e0e24efdc2c716381130559615f45c007f0d68a0b0b69
+ db96fd8658bc75f4813ddaf457c888e3f0656dc407b12d7799dbdebb7cc1a9ae
+ ba5e81b435217c15e2d55a42d34e3313e9ad1302b34599a25b48a23846dfc920
+ fd3988b0ddcfa721fd702c126dd531f5b77f1f5af8ac61e8b23307c5b84e8e72
+ a58a245d30efb8ad6553166dd2469da504d6cf3c773e52da15c3677899f37c4e
+ 3fd377be34a8786a726a13c88d28b2b73155b1f527b2909e6841474631ce8226
+ 790af48c82bf520bcd8f915af77d1e0c8f156ae6c028b1fa0f39c3c991865d1c
+ 46b8071a1e23d8c5af1ced98cfbdb1a2258f679425434e092fbe1c42dfa26066
+ a4eefa1ff84e33059d055c984dbb47283d117cb63ad9e39d7cc4c4e61ea9c11a
+ 5a91be294ac35aac472c4ba8324221551abb2e8cb66f995806606c191dca0428
+ 9a4a582673dc466a684fd2beacbe77a152047e6023b1e247f5eda7b513e5e30d
+ 039af250c8b2dc6254b2f24975704095406c70090de9d21ecc73975d8d874675
+ 3c77fd2a4cfc49ff94994b46a9b80ea24e534299838dd64a11a5dc2ef110f901
+ feaeb14a016d732b3ec0be6266bd078fdf220c48c38683a4dd7315e076839b82
+ a4756471f45168ff28fdc0e87c65b33288ca1f7fd2eedb7e31a726ee4766fb3c
+ 4eb62cbed52d1cdad08551a38d1f7656c71ef986df49eee0381e9aec7b11c0ba
+ 8e967ef8ff1f1a2fc21ea537d629d40a38d6b8789ce344e79d7a3b3b78138968
+ e008e241c41900d6df1128d5dd55d41e1ed43d7c60d48329a321716968397b09
+ 7011776c661b07bc3fd7d24b62765aeee10ba2a72ea4112862989f759aceb466
+ 760c44d1512be5f10264d195785e45d47c46595ef57c24de81c070a81ba65456
+ 531ec7550a9ab4e2410e9c69495852eaa0e7df43e022ed7ec0f0c50e148a4506
+ c46413f7aa225147712fb634483f64c9368f43d03ba6f66405e4c9dc281421b4
+ 42debde9c9341fc910ff382e94fade233b3ad23e4f474d89426648c659a99a12
+ 50f1088649f77e0f83dffe3e81dd8ac993d1d8f06d8f231acdf98a69cda9147a
+ 2a4f6162bfbf5ea44c832c0d5896079b0ce69e590dc377e3bbd37a92f9780e6c
+ 60aa95eb50d59ddb2bf57d5cfacf860d4cc2c8b86a219f35ceaa30d82fd6e593
+ 73a416254d022b051bb38ebf085772c031ecba18ab4896634ba8599fcb396f7b
+ ae3aa802087754458465af30a4ddafc8baa08e101a4e177b144b4f606a78b941
+ 30c7498935e0d4529ccbe3a5c7671aec9505d0132cd6123f97c0680c80cbb917
+ 99b76ac0f7cf4c5d5ae8b66ae3e54e3932c6a6f101aba8b156cf8d78a67e3f0b
+ 1bcb69081c99b27781c81becce86baaf2f1da54ceba009904ad2a5a8614eaa68
+ bb3152472d5582b365722a83972b416d78b8bddfc6dbea40d1c778c37eb86623
+ 426115a07ce25b7d2ae89024bf81e8b5957df9d8709bd6e5c1da704633af3c85
+ 24918b9cd56f5fe12c7e02b0cedcdaf2abeeb7ec3cdb75a4aee3ca2d4aaaa961
+ 8497c47c4f151966538836b0dfa312a044d8496ffc4647fcf62c8ed19b2337d9
+ e160dd5b88f37562d7cbace3f46b8fd8edc5b9211f4240d8e38aec3dd81d915d
+ 298ab33911b8c425e6032eba867bc31925ea24b2457298bbf965bd6b194edc3f
+ 4c53367e4ddcff92733a95139baf9610390bf3eaf78ef5a5d10b4530c359e8eb
+ f340c62b77eaaa6bde0e61944c508b32785619ad4ca54b7dfbf281fcb986eac0
+ 99201be46e35f22312a27da2a2afc54f46043342a1c577fa64696ef365198329
+ 41e4d2d255435d2b50a8e0c4c59b13a0a0aafae925cd32e20bf9005cd066d11e
+ 266141c6c9a6729da904dfa040ae20d80a6b5c39efc31fcf2d039ed65e9c2b28
+ 33daee0ac659ec7d1fb1cb101798dae2ed0077653fc9170bcbb5bc554ee3e433
+ 23b74270aef1c6a4bff5194103a430e6854fe4c460e5c684769bd7c59d1afa0d
+ 9405687dbb0a81e8be8f842824f2fe65830b70a0dd0dcde84cc8a21d6637f841
+ 40a608e720136044f4b95728474fcb82764e61d649551be438e330b63753635f
+ 0ef710447a36e81a6c86b17ee28d2cf463242834936af2578074df6e11c2baea
+ 3f0d0d33abda068465d7747149cdf11a4b1dc819f7da7f1f7a3d9c2a45307231
+ 9d2c3438776531077e379e97a449e714882896c53dbb87052de7e7ac77ea3d67
+ de9b4ec945265f5539025fb73b713322924da2d1a51b5bd6ad1baba4584c76e1
+ 7b66c7d5e1b9eb6959295a76416271220e84ecc43a97a5f5f07ec99986579cb1
+ 4404f5fe56868f5c551208d72630b91a88c68f78d7463e8e1d221fd7406c0783
+ 3f55ec2730a870951759961c83d6654c7122a3114e136a6e2bce7c05d6062d89
+ 873819bc254911aa3a443d0a9db306b472f7f31af8d986d54c535bce67a4b1c0
+ 07326e95015601946706f50333c32b0919025376abcdf88dc225dae2c167b19a
+ bfdd58d9f0f0e809e6b801f65c722c61b4dbb5e6635cecd7390d1403f1dd6f42
+ 8c2d716291a28cc64f93078d2bdf8d756a6521e3b0107815788c48452eac95f0
+ 9b07735b4d8e8359e38d671ed054b373c4ed50a232013807d09ca4fae31e8223
+ 5592ee66611515f8583a48211d70764fdb28c54b1ad4de5b4b87a9d3b101a182
+ d36e2c9a894beb94b62855bd07d4b54e41fc96c0736b5e2e702422e75b3cf21e
+ caf7dd282fb6dc065eb6a0c124cd458716d877a500c094ff650c4d40302dd49e
+ 80bd3c70433f6b3aacdbd370b70d4fe0eab13547d1f6368b80eb5c28a759141a
+ 67b359947cbe15b2be1ad2567d74a36cfe5f27665a058b0fab19ed37ddd63a30
+ b3347d5cec7f9f6e3aa4b5ccdd49350fd0879c20938bfc22664782c377dd73a6
+ 79b512427977c359ec8f93e4880cd5397ccddb013676d2d39837f06433fe4041
+ 883d5daa5b041778b0984a7e86ecfc4892af1aed1ec09285ac031e335075524c
+ bc1981c7cb2e6d5aecec7fb0f370c1da52895f00d238c1afa2b4e31b93580eb6
+ 6278e5c054f50d3de62de9d070d21d2842d4d0ff9212d852af8eb672fad7ecea"

From 51e4878a234a8580a67a58e8061ddd8e4c76504b Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Sat, 7 Sep 2019 18:09:55 +0700
Subject: [PATCH 3/3] firefox{,-esr}-i18n: add script to update firefox locale

[skip ci]

Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
---
 .../firefox-esr-i18n/files/update-lang-list   |  1 +
 srcpkgs/firefox-i18n/files/update-lang-list   | 71 +++++++++++++++++++
 2 files changed, 72 insertions(+)
 create mode 120000 srcpkgs/firefox-esr-i18n/files/update-lang-list
 create mode 100755 srcpkgs/firefox-i18n/files/update-lang-list

diff --git a/srcpkgs/firefox-esr-i18n/files/update-lang-list b/srcpkgs/firefox-esr-i18n/files/update-lang-list
new file mode 120000
index 00000000000..d6e91286846
--- /dev/null
+++ b/srcpkgs/firefox-esr-i18n/files/update-lang-list
@@ -0,0 +1 @@
+../../firefox-i18n/files/update-lang-list
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n/files/update-lang-list b/srcpkgs/firefox-i18n/files/update-lang-list
new file mode 100755
index 00000000000..cc3f6c70700
--- /dev/null
+++ b/srcpkgs/firefox-i18n/files/update-lang-list
@@ -0,0 +1,71 @@
+#!/bin/bash
+# Copyright (c) by Danh Doan
+# All rights reserved
+# Released under 2 clause BSD license
+
+version=$1
+
+esr=""
+[[ $version =~ esr$ ]] && esr="-esr"
+
+tmpldir="firefox${esr}-i18n"
+
+tmpoldfile="$(mktemp)"
+tmpnewfile="$(mktemp)"
+
+xoldlangexpr="^_languages="
+
+xlistold() {
+	source "${tmpldir}/template"
+	for _lang in "${_languages[@]}"; do
+		_locale="${_lang%%\"*}"
+		[ $_locale ] && echo "$_locale"
+	done
+}
+
+xlink () {
+	ln -sf "$tmpldir" "$tmpldir-$1"
+}
+
+xnewlang () {
+	lang=$1
+	padded=$(printf '%-7s' $lang)
+	xoldexpr=$xoldlangexpr
+	xoldlangexpr="'$lang \+\""
+	grep -q "'$lang \+\"" "$tmpldir/template" && return 0
+	sed -i "/$xoldexpr/a\\
+	'$padded\"Unknown\"'
+	/checksum=/a\\
+ badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb" \
+	"$tmpldir/template"
+}
+
+xprocessnew() {
+	while read lang; do
+		printf '%-7s\n' $lang >&3
+		xlink $lang
+		xnewlang $lang
+	done
+}
+
+xcleanlang() {
+	while read lang; do
+		padded=$(printf '%-7s' $lang)
+		sed -i "/'$padded\"/d" $tmpldir/template
+		unlink "$tmpldir-$lang" || true
+	done
+}
+
+cd $(xdistdir)/srcpkgs
+
+xlistold >| "$tmpoldfile"
+
+curl "https://ftp.mozilla.org/pub/firefox/releases/$1/linux-i686/xpi/" \
+	| grep -o 'xpi/[a-z]\+\(-[A-Z]\+\)\?' \
+	| cut -d/ -f2 \
+	| xprocessnew 3>$tmpnewfile
+
+grep -vF -f $tmpnewfile $tmpoldfile \
+	| xcleanlang
+
+rm -rf $tmpoldfile $tmpnewfile

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PR PATCH] [Updated] Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
  2019-09-06 17:26 ` voidlinux-github
@ 2019-09-07 11:12 ` " voidlinux-github
  2019-09-07 11:12 ` voidlinux-github
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-07 11:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 505 bytes --]

There is an updated pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages firefox-esr
https://github.com/void-linux/void-packages/pull/14229

Firefox esr
Built and tested for:
- x86_64

Building in progress for:
- x86_64-musl

The language list is updated by this script, and some manual removal:
- https://github.com/zdtcd/xtools/blob/master/xgenlang

A patch file from https://github.com/void-linux/void-packages/pull/14229.patch is attached

[-- Warning: decoded text below may be mangled --]
[-- Attachment #2: github-pr-firefox-esr-14229.patch --]
[-- Type: text/x-diff, Size: 50446 bytes --]

From 0157b6b97f4e9ea6c8b9bcd6f91da9bebd4fce15 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:17 +0700
Subject: [PATCH 1/3] firefox-esr: update to 68.1.0.

---
 srcpkgs/firefox-esr/files/mozconfig           |  6 --
 .../disable-image-format-warning.patch        | 15 +++
 .../patches/fix-arm-opus-include.patch        | 11 +++
 .../firefox-esr/patches/fix-i686-musl.patch   |  9 --
 srcpkgs/firefox-esr/patches/fix-musl.patch    | 11 ---
 srcpkgs/firefox-esr/patches/fix-toolkit.patch | 35 ++++---
 srcpkgs/firefox-esr/patches/fix-tools.patch   | 31 +++---
 .../firefox-esr/patches/fix-wasm-arm.patch    | 15 +++
 .../firefox-esr/patches/fix-webrtc-arm.patch  | 11 ---
 .../patches/fix-webrtc-glibcisms.patch        | 17 ++--
 srcpkgs/firefox-esr/patches/fix-xpcom.patch   | 11 ---
 srcpkgs/firefox-esr/patches/gettid-musl.patch | 11 +++
 srcpkgs/firefox-esr/patches/mallinfo.patch    | 40 +++++---
 .../patches/ppc-no-static-sizes.patch         | 19 ----
 .../patches/remove-rustc-check.patch          | 18 +++-
 .../patches/rust-unitialized-field.patch      | 19 ----
 srcpkgs/firefox-esr/patches/rust133.patch     | 24 -----
 ...nd-restore-non-volatile-x28-on-arm64.patch | 64 ------------
 ...-clobbering-it-in-the-regex-compiler.patch | 97 -------------------
 srcpkgs/firefox-esr/patches/sndio.patch       | 12 +--
 srcpkgs/firefox-esr/patches/yuv-be.patch      | 48 +++++++++
 srcpkgs/firefox-esr/template                  |  8 +-
 22 files changed, 187 insertions(+), 345 deletions(-)
 create mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-musl.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-xpcom.patch
 create mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust133.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
 create mode 100644 srcpkgs/firefox-esr/patches/yuv-be.patch

diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 5b3c6e46d6f..0798fdd40ef 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -1,11 +1,6 @@
 ac_add_options --prefix=/usr
 ac_add_options --libdir=/usr/lib
 
-ac_add_options --with-pthreads
-# XXX build without system cairo see:
-# - https://github.com/voidlinux/void-packages/issues/2308#issuecomment-135426813
-# - https://bugs.gentoo.org/show_bug.cgi?id=558150
-# ac_add_options --with-system-cairo
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
 ac_add_options --with-system-bz2
@@ -39,7 +34,6 @@ ac_add_options --disable-install-strip
 ac_add_options --disable-strip
 ac_add_options --disable-profiling
 ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-pie
 
 ac_add_options --enable-official-branding
 ac_add_options --enable-application=browser
diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
new file mode 100644
index 00000000000..bd56e6bc37c
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
@@ -0,0 +1,15 @@
+Imported from Adélie. Firefox is prone to this warning on BE and
+it leads to huge .xsession-errors, and the warning is not very
+important or meaningful, so just disable it.
+
+--- gfx/2d/HelpersCairo.h
++++ gfx/2d/HelpersCairo.h
+@@ -147,7 +147,7 @@
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
+-      gfxCriticalError() << "Unknown image format " << (int)format;
++      //gfxCriticalError() << "Unknown image format " << (int)format;
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }
diff --git a/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
new file mode 100644
index 00000000000..6e0c5875da3
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
@@ -0,0 +1,11 @@
+--- media/libopus/silk/arm/arm_silk_map.c.orig	2019-03-19 20:55:01.249609964 +0100
++++ media/libopus/silk/arm/arm_silk_map.c	2019-03-19 20:55:25.769400255 +0100
+@@ -28,7 +28,7 @@
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "../fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
+
diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
index 5345a3cd3df..6df609bbf16 100644
--- a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
+++ b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
@@ -9,12 +9,3 @@
       ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
        defined(HAVE__UNWIND_BACKTRACE)))
  #define MOZ_STACKWALK_SUPPORTS_LINUX 1
-@@ -911,7 +911,7 @@
- }
- 
- // {x86, ppc} x {Linux, Mac} stackwalking code.
--#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-      (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX))
- 
- MFBT_API bool
diff --git a/srcpkgs/firefox-esr/patches/fix-musl.patch b/srcpkgs/firefox-esr/patches/fix-musl.patch
deleted file mode 100644
index c32921d39e1..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/profiler/core/platform.h.orig
-+++ tools/profiler/core/platform.h
-@@ -56,7 +56,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/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
index ce4d7d01f82..86e8ef47855 100644
--- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch
+++ b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
@@ -47,18 +47,28 @@
  #include <a.out.h>
  #endif
 
+--- toolkit.orig/mozapps/update/common/updatedefines.h	2019-01-29 11:34:36.416804577 +0100
++++ toolkit/mozapps/update/common/updatedefines.h	2019-01-29 11:34:59.193583777 +0100
+@@ -102,7 +102,7 @@
 
+ #  ifdef SOLARIS
+ #    include <sys/stat.h>
+-#  else
++#  elif !(defined(__linux__)) || defined(__GLIBC__)
+ #    include <fts.h>
+ #  endif
+ #  include <dirent.h>
 --- toolkit.orig/mozapps/update/updater/updater.cpp	2014-03-15 05:19:37.000000000 +0000
 +++ toolkit/mozapps/update/updater/updater.cpp	2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
+@@ -3978,6 +3978,7 @@
+ 
+ int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
    int rv = OK;
 +#if !defined(__linux__) || defined(__GLIBC__)
-   FTS *ftsdir;
-   FTSENT *ftsdirEntry;
-   NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+   FTS* ftsdir;
+   FTSENT* ftsdirEntry;
+   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
+@@ -4085,6 +4086,7 @@
    }
  
    fts_close(ftsdir);
@@ -66,14 +76,3 @@
  
    return rv;
  }
---- toolkit/mozapps/update/common/updatedefines.h	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:15:53.946747750 +0100
-@@ -100,7 +100,7 @@
- 
- #ifdef SOLARIS
- #include <sys/stat.h>
--#else
-+#elif !defined(__linux__) || defined(__GLIBC__)
- #include <fts.h>
- #endif
- #include <dirent.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch
index 1e2fc4f7d39..0ed043fb5b5 100644
--- a/srcpkgs/firefox-esr/patches/fix-tools.patch
+++ b/srcpkgs/firefox-esr/patches/fix-tools.patch
@@ -1,33 +1,24 @@
---- tools/profiler/core/platform.h
-+++ tools/profiler/core/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
-
-+#include <sys/types.h>
-+
- #include <stdint.h>
- #include <math.h>
- #include "MainThreadUtils.h"
---- tools/profiler/lul/LulElf.cpp	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:19:53.198257189 +0100
-@@ -460,9 +460,9 @@
+--- tools/profiler/lul/LulElf.cpp.orig	2019-01-29 12:05:34.223834130 +0100
++++ tools/profiler/lul/LulElf.cpp	2019-01-29 12:08:02.480400845 +0100
+@@ -469,10 +469,10 @@
+ // 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) {
-   // Lots of copies!  basename's behavior is less than ideal.
+-  // 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();
++  // basename's behavior is less than ideal so avoid it
++  const char *c_filename = filename.c_str();
 +  const char *p = strrchr(c_filename, '/');
 +  string base = p ? p+1 : c_filename;
    return base;
  }
  
---- tools/profiler/core/platform-linux-android.cpp	2019-01-24 18:31:43.000000000 +0100
-+++ -	2019-01-31 11:23:07.911772317 +0100
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-01-29 12:09:40.980448579 +0100
++++ tools/profiler/core/platform-linux-android.cpp	2019-01-29 12:11:09.689590967 +0100
 @@ -253,7 +253,11 @@
-
+ 
    // Request profiling signals.
    struct sigaction sa;
 +#if defined(GP_ARCH_arm)
@@ -38,7 +29,7 @@
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART | SA_SIGINFO;
    if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
-@@ -497,8 +497,10 @@
+@@ -497,8 +501,10 @@
  ucontext_t sSyncUContext;
  
  void Registers::SyncPopulate() {
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
new file mode 100644
index 00000000000..e6ad61c9f44
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
@@ -0,0 +1,15 @@
+--- js/src/wasm/WasmSignalHandlers.cpp
++++ js/src/wasm/WasmSignalHandlers.cpp
+@@ -243,9 +243,9 @@
+ // If you run into compile problems on a tier-3 platform, you can disable the
+ // emulation here.
+ 
+-#if defined(__linux__) && defined(__arm__)
+-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-#endif
++// #if defined(__linux__) && defined(__arm__)
++// #  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
++// #endif
+ 
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #  include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
deleted file mode 100644
index 222be5f9e21..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc	2019-01-24 18:31:10.000000000 +0100
-+++ -	2019-02-01 00:13:35.690776711 +0100
-@@ -67,7 +67,7 @@
-   return 0;
- }
- 
--#if !defined(ANDROID)
-+#if !defined(ANDROID) && !defined(__linux__)
- #ifdef WEBRTC_ARCH_ARM_V7
- uint64_t WebRtc_GetCPUFeaturesARM(void) {
-   return kCPUFeatureARMv7
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 3ff2570b12b..cf895dd8448 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,18 +1,15 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-02-01 00:49:18.472382771 +0100
-+++ -	2019-02-01 00:50:25.928007236 +0100
-@@ -11,7 +11,10 @@
- #include <stdlib.h>
- #include <string.h>
- #include <features.h>
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2019-01-29 11:20:52.298793223 +0100
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-01-29 11:21:48.250250850 +0100
+@@ -14,7 +14,7 @@
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(a, b) 0
+ #endif
 -#if __GLIBC_PREREQ(2, 16)
-+#ifndef __GLIBC_PREREQ
-+#define __GLIBC_PREREQ(a, b) 0
-+#endif
 +#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
  #include <sys/auxv.h>
  #else
  #include <fcntl.h>
-@@ -29,7 +32,7 @@
+@@ -32,7 +32,7 @@
    int architecture = 0;
    unsigned long hwcap = 0;
    const char* platform = NULL;
diff --git a/srcpkgs/firefox-esr/patches/fix-xpcom.patch b/srcpkgs/firefox-esr/patches/fix-xpcom.patch
deleted file mode 100644
index 38dd582d96b..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-xpcom.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- xpcom/base/nsMemoryReporterManager.cpp.orig	2015-12-16 11:53:14.211144456 +0100
-+++ xpcom/base/nsMemoryReporterManager.cpp	2015-12-16 11:55:26.859476381 +0100
-@@ -46,7 +46,7 @@ using namespace mozilla;
- #  include "mozmemory.h"
- #endif  // MOZ_MEMORY
- 
--#if defined(XP_LINUX)
-+#if defined(XP_LINUX) && defined(__GLIBC__)
- 
- #include <malloc.h>
- #include <string.h>
diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch
new file mode 100644
index 00000000000..c1cb99bf651
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/gettid-musl.patch
@@ -0,0 +1,11 @@
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-07-09 22:58:30.039475686 +0200
++++ tools/profiler/core/platform-linux-android.cpp	2019-07-09 22:58:39.331437677 +0200
+@@ -73,7 +73,7 @@
+ 
+ int profiler_current_thread_id() {
+   // glibc doesn't provide a wrapper for gettid().
+-#if defined(__GLIBC__)
++#if defined(__linux__)
+   return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
+ #else
+   return static_cast<int>(gettid());
diff --git a/srcpkgs/firefox-esr/patches/mallinfo.patch b/srcpkgs/firefox-esr/patches/mallinfo.patch
index c9a38d45bdf..afea86c0a2c 100644
--- a/srcpkgs/firefox-esr/patches/mallinfo.patch
+++ b/srcpkgs/firefox-esr/patches/mallinfo.patch
@@ -1,18 +1,34 @@
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
+--- xpcom/base/nsMemoryReporterManager.cpp.orig	2019-03-19 17:12:20.844810044 +0100
++++ xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:13:32.505133615 +0100
+@@ -123,6 +123,7 @@
    return GetProcSelfSmapsPrivate(aN);
  }
  
 +#ifdef __GLIBC__
- #define HAVE_SYSTEM_HEAP_REPORTER 1
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
-@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
-     *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
-     return NS_OK;
+ #  ifdef HAVE_MALLINFO
+ #    define HAVE_SYSTEM_HEAP_REPORTER 1
+ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
+@@ -142,6 +143,7 @@
+   return NS_OK;
  }
-+#endif
+ #  endif
++#endif // __GLIBC__
  
- #elif defined(__DragonFly__) || defined(__FreeBSD__) \
-     || defined(__NetBSD__) || defined(__OpenBSD__) \
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+     defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+@@ -642,6 +644,7 @@
+   return NS_OK;
+ }
+ 
++#ifdef __GLIBC__
+ #  define HAVE_SYSTEM_HEAP_REPORTER 1
+ // Windows can have multiple separate heaps. During testing there were multiple
+ // heaps present but the non-default ones had sizes no more than a few 10s of
+@@ -698,6 +701,7 @@
+   *aSizeOut = heapsSize;
+   return NS_OK;
+ }
++#endif // __GLIBC__
+ 
+ struct SegmentKind {
+   DWORD mState;
diff --git a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
deleted file mode 100644
index 3f77023bb5f..00000000000
--- a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# Parent b735e618c2a860972197942f6680c941e3c9a67f
-# User Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
-Bug 997353 - Do not use compile-time page size for PowerPC.
-
-The PowerPC architecture allows various memory page sizes, making it impossible
-to predict the runtime page size.
-
---- memory/build/mozjemalloc.cpp
-+++ memory/build/mozjemalloc.cpp
-@@ -369,7 +369,7 @@
- // Debug builds are opted out too, for test coverage.
- #ifndef MOZ_DEBUG
- #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) &&         \
--  !defined(__aarch64__)
-+  !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
- #define MALLOC_STATIC_PAGESIZE 1
- #endif
- #endif
diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
index f6bebc8aab1..84077f4fc88 100644
--- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
@@ -1,8 +1,19 @@
 Mozilla rustc check does not support crossbuild: let's remove it
+Remove calls to unwrap_rustup, they fail if rustup isn't present
 
---- build/moz.configure/rust.configure	2018-10-01 16:28:31.000000000 +0200
-+++ build/moz.configure/rust.configure	2018-10-20 14:21:35.510000000 +0200
-@@ -204,26 +204,6 @@
+--- build/moz.configure/rust.configure	2019-07-06 03:48:30.000000000 +0200
++++ build/moz.configure/rust.configure	2019-07-09 22:35:23.326851798 +0200
+@@ -79,9 +79,6 @@
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -294,26 +291,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
@@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it
          finally:
              os.remove(in_path)
              os.remove(out_path)
-
diff --git a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch b/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
deleted file mode 100644
index 67ef3a02ab8..00000000000
--- a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
-+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
-@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
-                 return Err(Error::NoSpace);
-             }
- 
--            let cmsghdr = cmsghdr {
--                cmsg_len: cmsg_len as _,
--                cmsg_level: level,
--                cmsg_type: kind,
--            };
-+            use std::mem;
-+            let mut cmsghdr: cmsghdr =  unsafe { mem::zeroed() };
-+            cmsghdr.cmsg_len = cmsg_len as _;
-+            cmsghdr.cmsg_level = level;
-+            cmsghdr.cmsg_type = kind;
- 
-             let cmsghdr = unsafe {
-                 slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::<cmsghdr>())
diff --git a/srcpkgs/firefox-esr/patches/rust133.patch b/srcpkgs/firefox-esr/patches/rust133.patch
deleted file mode 100644
index ebdcac7e3a3..00000000000
--- a/srcpkgs/firefox-esr/patches/rust133.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-This fixes build errors under recent Rust.
-
---- servo/components/style_traits/lib.rs
-+++ servo/components/style_traits/lib.rs
-@@ -9,7 +9,7 @@
- #![crate_name = "style_traits"]
- #![crate_type = "rlib"]
- 
--#![deny(unsafe_code, missing_docs)]
-+#![deny(unsafe_code)]
- 
- extern crate app_units;
- #[macro_use] extern crate bitflags;
---- servo/components/style/lib.rs
-+++ servo/components/style/lib.rs
-@@ -23,8 +23,6 @@
- //! [cssparser]: ../cssparser/index.html
- //! [selectors]: ../selectors/index.html
- 
--#![deny(missing_docs)]
--
- extern crate app_units;
- extern crate arrayvec;
- extern crate atomic_refcell;
diff --git a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch b/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
deleted file mode 100644
index fa303f6d1e9..00000000000
--- a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1519822672 -3600
-# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6
-# Parent  223c97459e96183eb616aed39147207bdb953ba8
-Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor.  r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/800abe66894d
----
- js/src/vm/UnboxedObject.cpp | 30 ++++++++++++++++++++++++++----
- 1 file changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
-index 35ca20d7405f..1c20a1093d13 100644
---- js/src/vm/UnboxedObject.cpp
-+++ js/src/vm/UnboxedObject.cpp
-@@ -86,9 +86,16 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
- #endif
-
- #ifdef JS_CODEGEN_ARM64
--  // ARM64 communicates stack address via sp, but uses a pseudo-sp for
--  // addressing.
--  masm.initStackPtr();
-+    // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-+    masm.initStackPtr();
- #endif
-
-   MOZ_ASSERT(propertiesReg.volatile_());
-@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
-   if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
-   masm.PopRegsInMask(savedNonVolatileRegisters);
-
--  masm.abiret();
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-+    masm.abiret();
-+#endif
-
-   masm.bind(&failureStoreOther);
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch b/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
deleted file mode 100644
index aa2dcc6ba8d..00000000000
--- a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1521449886 -3600
-# Node ID 903a79a1efff18fc7cc50db09a3fe5d768adc9a8
-# Parent  4d2955a9ca7e30ca4c3af9c214ccc77fb2fe7fb8
-Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/903a79a1efff
----
-diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp
---- js/src/irregexp/NativeRegExpMacroAssembler.cpp
-+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
-@@ -118,17 +118,25 @@ NativeRegExpMacroAssembler::GenerateCode
-
-     Label return_temp0;
-
-     // Finalize code - write the entry point code now we know how many
-     // registers we need.
-     masm.bind(&entry_label_);
-
- #ifdef JS_CODEGEN_ARM64
--    // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
-+    // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-     masm.initStackPtr();
- #endif
-
-     // Push non-volatile registers which might be modified by jitcode.
-     size_t pushedNonVolatileRegisters = 0;
-     for (GeneralRegisterForwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) {
-         masm.Push(*iter);
-         pushedNonVolatileRegisters++;
-@@ -416,17 +424,32 @@ NativeRegExpMacroAssembler::GenerateCode
-     masm.pop(temp0);
-     masm.movePtr(temp0, StackPointer);
- #endif
-
-     // Restore non-volatile registers which were saved on entry.
-     for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
-         masm.Pop(*iter);
-
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-     masm.abiret();
-+#endif
-
-     // Backtrack code (branch target for conditional backtracks).
-     if (backtrack_label_.used()) {
-         masm.bind(&backtrack_label_);
-         Backtrack();
-     }
-
-     // Backtrack stack overflow code.
-diff --git a/js/src/jit-test/tests/regexp/bug1445907.js b/js/src/jit-test/tests/regexp/bug1445907.js
-new file mode 100644
---- /dev/null
-+++ js/src/jit-test/tests/regexp/bug1445907.js
-@@ -0,0 +1,15 @@
-+// On ARM64, we failed to save x28 properly when generating code for the regexp
-+// matcher.
-+//
-+// There's wasm and Debugger code here because the combination forces the use of
-+// x28 and exposes the bug when running on the simulator.
-+
-+if (!wasmIsSupported())
-+    quit();
-+
-+var g = newGlobal('');
-+var dbg = new Debugger(g);
-+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
-+var re = /./;
-+dbg.onEnterFrame = function(frame) { re.exec("x") };
-+result = g.eval("m.exports.test()");
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 097b313e90b..6c72284c19b 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -51,14 +51,14 @@
      ]
 --- build/moz.configure/old.configure.orig
 +++ build/moz.configure/old.configure
-@@ -159,6 +159,7 @@
-     '--enable-accessibility',
-     '--enable-address-sanitizer',
-     '--enable-alsa',
+@@ -169,6 +169,7 @@
+ @old_configure_options(
+     '--cache-file',
+     '--datadir',
 +    '--enable-sndio',
-     '--enable-bundled-fonts',
-     '--enable-clang-plugin',
      '--enable-content-sandbox',
+     '--enable-cookies',
+     '--enable-cpp-rtti',
 --- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig
 +++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
 @@ -349,6 +349,21 @@
diff --git a/srcpkgs/firefox-esr/patches/yuv-be.patch b/srcpkgs/firefox-esr/patches/yuv-be.patch
new file mode 100644
index 00000000000..1c26f2ecced
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/yuv-be.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User A. Wilcox <AWilcox@Wilcox-Tech.com>
+# Date 1543674229 0
+#      Sat Dec 01 14:23:49 2018 +0000
+# Node ID 0309ff19e46b126c527e633518d7de8570442114
+# Parent  53107afbc21ec78e7ac46d37af212505f2032d5d
+Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
+
+diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp
+--- gfx/ycbcr/YCbCrUtils.cpp	Wed Nov 07 04:50:21 2018 +0000
++++ gfx/ycbcr/YCbCrUtils.cpp	Sat Dec 01 14:23:49 2018 +0000
+@@ -3,7 +3,9 @@
+  * 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 "mozilla/EndianUtils.h"
+ #include "gfx2DGlue.h"
++#include "mozilla/gfx/Swizzle.h"
+ 
+ #include "YCbCrUtils.h"
+ #include "yuv_convert.h"
+@@ -236,6 +238,13 @@
+                           yuvtype,
+                           srcData.mYUVColorSpace);
+   }
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRX
++  if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
++    gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
++                     aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
++                     srcData.mPicSize);
++#endif
+ }
+ 
+ void
+@@ -257,6 +266,12 @@
+                         aSrcStrideYA,
+                         aSrcStrideUV,
+                         aDstStrideARGB);
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRA
++  gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
++                   aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
++                   IntSize(aWidth, aHeight));
++#endif
+ }
+ 
+ } // namespace gfx
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 05a0a521341..b29f90524db 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,8 +3,8 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
 #
 pkgname=firefox-esr
-version=60.8.0
-revision=2
+version=68.1.0
+revision=1
 build_helper="rust"
 wrksrc="firefox-${version}"
 short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
@@ -12,11 +12,11 @@ maintainer="Eivind Uggedal <eivind@uggedal.com>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.mozilla.org/firefox/organizations/"
 distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe
+checksum=f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac
 
 lib32disabled=yes
 hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
- cargo llvm clang rust cbindgen"
+ cargo llvm clang rust cbindgen nasm nodejs"
 makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
  pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
  libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std

From 5b8cb694117735e6acc0cfead4bbfea9d2fb0f1c Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:37 +0700
Subject: [PATCH 2/3] firefox-esr-i18n: update to 68.1.0.

[skip ci]
---
 ...irefox-esr-i18n-as => firefox-esr-i18n-bn} |   0
 ...-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} |   0
 ...fox-esr-i18n-bn-IN => firefox-esr-i18n-ia} |   0
 ...-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} |   0
 ...refox-esr-i18n-mai => firefox-esr-i18n-oc} |   0
 srcpkgs/firefox-esr-i18n-or                   |   1 -
 ...irefox-esr-i18n-ml => firefox-esr-i18n-ur} |   0
 srcpkgs/firefox-esr-i18n/template             | 202 +++++++++---------
 8 files changed, 100 insertions(+), 103 deletions(-)
 rename srcpkgs/{firefox-esr-i18n-as => firefox-esr-i18n-bn} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-IN => firefox-esr-i18n-ia} (100%)
 rename srcpkgs/{firefox-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} (100%)
 rename srcpkgs/{firefox-esr-i18n-mai => firefox-esr-i18n-oc} (100%)
 delete mode 120000 srcpkgs/firefox-esr-i18n-or
 rename srcpkgs/{firefox-esr-i18n-ml => firefox-esr-i18n-ur} (100%)

diff --git a/srcpkgs/firefox-esr-i18n-as b/srcpkgs/firefox-esr-i18n-bn
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-as
rename to srcpkgs/firefox-esr-i18n-bn
diff --git a/srcpkgs/firefox-esr-i18n-bn-BD b/srcpkgs/firefox-esr-i18n-en-CA
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-BD
rename to srcpkgs/firefox-esr-i18n-en-CA
diff --git a/srcpkgs/firefox-esr-i18n-bn-IN b/srcpkgs/firefox-esr-i18n-ia
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-IN
rename to srcpkgs/firefox-esr-i18n-ia
diff --git a/srcpkgs/firefox-esr-i18n-en-ZA b/srcpkgs/firefox-esr-i18n-ne-NP
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-en-ZA
rename to srcpkgs/firefox-esr-i18n-ne-NP
diff --git a/srcpkgs/firefox-esr-i18n-mai b/srcpkgs/firefox-esr-i18n-oc
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-mai
rename to srcpkgs/firefox-esr-i18n-oc
diff --git a/srcpkgs/firefox-esr-i18n-or b/srcpkgs/firefox-esr-i18n-or
deleted file mode 120000
index 0707c37f205..00000000000
--- a/srcpkgs/firefox-esr-i18n-or
+++ /dev/null
@@ -1 +0,0 @@
-firefox-esr-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-esr-i18n-ml b/srcpkgs/firefox-esr-i18n-ur
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-ml
rename to srcpkgs/firefox-esr-i18n-ur
diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 8c43a8ace7c..b4e17fb16f0 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'firefox-esr-i18n'
 pkgname=firefox-esr-i18n
-version=60.8.0
+version=68.1.0
 revision=1
 build_style=meta
 homepage="https://www.mozilla.org/firefox/"
@@ -19,13 +19,11 @@ _languages=(
 	'af     "Afrikaans"'
 	'an     "Aragonese"'
 	'ar     "Arabic"'
-	'as     "Assamese"'
 	'ast    "Asturian"'
 	'az     "Azerbaijani"'
 	'be     "Belarusian"'
 	'bg     "Bulgarian"'
-	'bn-BD  "Bengali (Bangladesh)"'
-	'bn-IN  "Bengali (India)"'
+	'bn     "Bengali"'
 	'br     "Breton"'
 	'bs     "Bosnian"'
 	'ca     "Catalan"'
@@ -36,9 +34,9 @@ _languages=(
 	'de     "German"'
 	'dsb    "Lower Sorbian"'
 	'el     "Greek"'
+	'en-CA  "English (Canada)"'
 	'en-GB  "English (British)"'
 	'en-US  "English (US)"'
-	'en-ZA  "English (South African)"'
 	'eo     "Esperanto"'
 	'es-AR  "Spanish (Argentina)"'
 	'es-CL  "Spanish (Chile)"'
@@ -62,6 +60,7 @@ _languages=(
 	'hsb    "Upper Sorbian"'
 	'hu     "Hungarian"'
 	'hy-AM  "Armenian"'
+	'ia     "Interlingua"'
 	'id     "Indonesian"'
 	'is     "Icelandic"'
 	'it     "Italian"'
@@ -75,16 +74,15 @@ _languages=(
 	'lij    "Ligurian"'
 	'lt     "Lithuanian"'
 	'lv     "Latvian"'
-	'mai    "Maithili"'
 	'mk     "Macedonian"'
-	'ml     "Malayalam"'
 	'mr     "Marathi"'
 	'ms     "Malay"'
 	'my     "Burmese"'
 	'nb-NO  "Norwegian (Bokmål)"'
+	'ne-NP  "Nepali"'
 	'nl     "Dutch"'
 	'nn-NO  "Norwegian (Nynorsk)"'
-	'or     "Oriya"'
+	'oc     "Occitan"'
 	'pa-IN  "Punjabi"'
 	'pl     "Polish"'
 	'pt-BR  "Portuguese (Brazilian)"'
@@ -104,6 +102,7 @@ _languages=(
 	'th     "Thai"'
 	'tr     "Turkish"'
 	'uk     "Ukrainian"'
+	'ur     "Urdu"'
 	'uz     "Uzbek"'
 	'vi     "Vietnamese"'
 	'xh     "Xhosa"'
@@ -136,97 +135,96 @@ _pkgtmpl() {
 	}
 }
 
-checksum="ff8a0e5081e1bf6f1794ea47dab8f32f5b28580c423bccc149e16f4749e36c50
- eb86ab716a1d6a32bd102952f3ac13b7708ac9fdb947e72e0f66891f872c1cb0
- beb35664f371716cebd1a4a4c84b44129c381a1dc9a38dea19684fd5f15e407c
- 25e8cdd8d22a1073143e2c88e5d3c4d96b505edbe9c18bf29fb5fbf4c68db620
- 7a05659ee866abc198bd55169b189f8e1f4daa1259b28bef78918ee0e84ed669
- 610f0c658af4d93eb7d70a459317323845a641b229f1dd42c4ee66ee660067d9
- 021d5f86239831892335f8d4b434bff3e129b774588e8b49758b3ff97534b055
- b3d75d79148ef5000aaca5d6948e09dcc43673f9d51a91bd21c51eaee34a4bf0
- 6481896744f2a0e596f425de2590ab78e153463a8bd16fc9398bb0e6a2278f3c
- a03b62fe0dba6a9aaf080505299d632dec7eb98d2973c42b53330ec25695d9c7
- db332375bf0224ac90a0aec2475c70d0262f52a0f856ef5d244ba7ab8d89bb90
- ff234f75fe294bf4278d7976a7c44815f5aa9e981e9742fb322f19726a38dcbc
- 5f0d36853f12f5fc3d8a85874718bcef77103903cb732c370b4e301dffb38a51
- 6b336951b07e1dd63472027d7603439ee5384b3f6a814c7be34d0cdeac1bd4d0
- 21e196147819aab031a733a4ad78b4c67d77120cd8976e7aa0b364823a3beb01
- 4edbad866270ef310932149188d4e4b0d786abc22db3196430d9db9b9113e992
- 0acf0db94b5e56fd81c14a763e2b4dd32c10f21824464195e30adc7ed9e4c021
- 440ac13c8d241d537c7de382a10ca1da1716cc302dc200ac5039ac43efcfd8a6
- bb7fc4aeffeca0c89a2ba33a7c762f4764cd70334f74cfa5d4b51fc4449aabed
- feebf56ff307f191ebd2af9990840db9e3e447c0cfbdea3219320b108838202a
- 9ced74783c6e21ae934243b3558ba1ecbe2858b6cfe57a031389d4c91b4887dc
- 958ff950724abf9c593685991246325ff6d04f73ea9c518dcefe24e289770c9e
- d8f5ef61b8a2bbe021fef63d09cb8e83a848a8100331acecdd70c47cf0cf9d43
- db9f3432a6a364791e0c4c8e47516c60182a0640a8ef795e24b7fc2465c7a7b3
- 7558f05cc6319ef57cf54a176b41bb9ac6d4650de9099998d3d4ad83163d07cf
- 8f8ef308c6c5d06f20feae2e4f6b29aa0db271f1a91f1d3ad097aa7a51948384
- 987c9758f4a71bd3e7602cfd977a611fe28d58ae28f324ba1325382958735aa7
- 1ac4c54b7ed0bc407711c589328d192b1b49a4b23417d294bd3608bbc5f40581
- 71d5f764c000ad31f252fa36a94d6a178b552c1a9e4815ae883e7c490ed4d401
- 74441cfbfdbd111ab87318598dd4a3c8aaa4c4db2b86a12bc6cf41fa05881ea8
- 43bffe371b4cb25f21bf767f618631a96b24e72a658a72759f4bb6a06bc5bf32
- 50fa12cc74afb9faca4ebb8ae47d2e22756f4cae70e3c8169fbf0f568dc64fc8
- 85e3332ce6656d8df3a492ed837192df3991aab1314c1c5ef25a67bf61360cbf
- a3dadeaca0193cb249b087b165e1d6fbbd322cf06485a7cf1a35c090b4adeb31
- 55cbc207ea34d61519f48946c077cc9dfa17d24eed5310f58838af289ea0b60f
- 31c6f72f72743a4b085eb699627a3917e92531066388343a40ffc6412277027a
- 38f1b0d8091f864256464cec0e7f78f474020feb7c4748b84160c6e074088b60
- cf2c4efce1203eb8c8f8a984b90c61672cfe9a6d05da3cfecee52e12189301a0
- ca8e8da872f5053cfa15d8395d8f10a66794589833714538b0c67fd83c340466
- c15707031179223c545a4299306b3df107ded62b685363a5e3274e318b88f219
- c1699a128003f23ef5662919ed1b33c5d61caf914985e39853df29a1ba35828c
- 3fb4a2283723b2ef3709c88baeb99e77bbba33c9e835c2dfedf28c6b2ecad2fa
- 344b3b3149aa3b77f10f49b86a76c6ff0179043048093c541944058f620e8845
- b43880065a4a92aeff823e4913eabe953e88cafb9cd414b2f616475cd7af69af
- 94b414e2f89f030c131742de0d9ba48f13b16b40e06dd568c10cea417b57b5ba
- 177ca8c3883d9c5d7e4a84b79dbc7b64e430fabaa247b0cee78f9ef65e2b5aa0
- a2a071c6e3604287a99e78042b34d02d4d91b27d3b23b9ea90945da7d9456012
- ae57f94246c078f8e2d4b8c297b281115bb008a811bf2a783278deb916007da4
- a222763e7d2d5eda8a15869f85c19765111841a2ccf4d18993eb83f20bdf4933
- 7771989dad60a20756517a6f696d939039cf5f10aa47d271e2ff5c465bd7b4c0
- 389b3c1b09e744c8fe843e3784088ea72214571b975ea9d69aaeb7c4264a990b
- d5fea97921089f0b4a6a8667ddf19a430eca78223118818480a202e563088943
- 617b9daf4d828bc66fc8061601adc9c40b25f1338c5f527d9fbf83dfa3e8770b
- 87d2ec6cadb2a61909888af5cc80a4dacd64493d82d0282679ba3c597918fb07
- 1afe05f69af9bc0b0e37d1c6d0942073349b173433a41a83b3a732e6fa026511
- 68b80d99dc3ff2c2828622cdf7d21c32e6f00904a239eef3f5eedb8fb8476386
- 853ec1ad7ef319a60586902c5b3dec73e0800c7af2d94e44b549d4f03f114fd7
- d0c9e3dfd07994ebf26d4ad98ef997cb62c90c07f9d0e70c8b2f7771f39b1b95
- f5b14095e891af078ef256460a41b19e00fbcd81eba66e0331af8bc096288963
- bec28861d16cf418fa06d650765c3be8fbc02b69b41b079d3907bb01c3d8096a
- b042d80a54dbc7cd0fdf24ba3599404632d84635ae73204235dbf66ef7a35a26
- 7b791bfc3bd843a291d74d86f88c0a5a31af13d9da9f135841fd7859c442f733
- f12eb8be3a7ef93146c161f6ba02b9d9b892b792d0c190adb92398802f5365fe
- 49addce322b6020d69b65f72ee4e82a140cd0e712c647127f6fac5b66e6f51b5
- acdc9ae4ae7397ade4c4053dc3b1f22ef42cc844bf853e5e846d1f6b0c5d5cab
- 02ac07e226734f1f693283784816b3c96a48b4e592c676673901104c5dcc72b2
- b102cf97790415b804182743426e8eb1304675fb4bf360e64ae9055cce87b2f1
- f8988dfc783c4b39d8a3a44e1000c6376bc211ab6297a49eddf5194b71fdfbde
- 58cad897f3bd51b9a1fcb7d4e4d3fc6bac47e5b2d4c6c19096732556eaec1314
- 23af8e26632da7c5d791a8891295eb2a83cde54390d9cd17692525f6e32ff6ed
- 0d38ca007291146731793d1a2c7e07bad2d2ed82668dfbd5be14daacf7abdce7
- a5957711b3fd9665dd2fed5fdbbb0a2fcbce54ad43ccd6800ddf7ccf5be731e5
- fcc2580a8ab3e95d23af7ee373a9bfcdce52e2a5ce59bb59d1ba1dca75772239
- bc3a8480ff73c752cc1cbfa80c327b155b194553c3568534b9d20f7e2176df1e
- 196abc6109092f326b387f5cffad880e5b6a857203127cf1f76622ca5a823ad2
- 002109cec6f2e40fb4ffc07b04c72a8debd128357925e8d51e5a84614004a086
- 83be2c2c9f9c93c0c31c5d30c0e6fdef3df2381f7c62c64a8313066f64c98b0f
- c7c83b2c405c432c3de1c187cfc800025502b1931e07ff1108648e77279441ab
- 8156b74896fd7b69fc306f90f1fd5291316d3c9b4c5ab4df620cab8d782b466e
- 27ff153a51f800ea9620042acc47aad6b2392c3551a4be30e982652ef89fcdf2
- abbbd74fb4e2ce5cfb254837c8383c9cca637bbdfd05d403526a50b08806c050
- 0c6ada2d7bf26be43d4f3fa8f37581a1f1a3113c3399ebd328736802dbe7623f
- b8c50654545a923e7ad7ef43bb1f2ea56b845b3443ffa0410b9bb7a6be9b8b91
- 4e49460bd3cd763e9527c771c4030237700e2eb73a359fefce3bd2146db7d56e
- 82bab7b006ab019d2bf2d6b3ed9aa85796f8dc1f827ed7350b0286dbd19bbc78
- 9b6adcd828ed3c2bb4950df6a2634bc943768b3d852e2e258e52c7e2da7a5ca7
- ccd0aa23ba2662e766e2adcab201076dfdcfc5cf288e4c4bbeff6d0d3c451abb
- f3709e35f5d4d317733f943aec9e977fd83acc1eaa9a35cf149dbf05e345146c
- 282d60e14be013a29ba09611f7ebe37d1fa5fe6dd8e441a1f10270d4e10323d6
- 742960a8b13cab9901267237accfcbcded21018aff9b6fc1bfd0ab37b7c8b607
- 0ae68434908b9512c46f22a6f3149b0f611f77306887a7641527d5df55725517
- 432353f98d29dbec0bc0eb50f0316220f155dee755ea0b4cb45b0636a0fcffde
- 8c1bbca429dd81d9180639ed1e526892908d26c1784f5f9c37093577b82d25fe
- c9651a78d2d2395711d320f6fac1ffd37048d4bffc544a2f2e182cedd237d090"
+checksum="c3fafda87192d9b98dc9b2b99d62b7109dbd72f73e8d5de1ea2a418ed086317b
+ 93af0702aae30332eecdc0f407dc29080923660508018fca14fe1307fdf375a1
+ a40baf64e7376e4916fa96d7199bad099edc7e897d65b5ecc4a2dc9fdbba2e75
+ 1e915f6a0860f2f7f583a70a5668ec5033969fbba177c3d3da4e244d01ba5cb4
+ d6c45490cec27609f43fb9af406ba15e25fff544f10d038e650a5b25d2ba5a69
+ 2b5d84d3f7800d162b095d0ee77da8264af9eac3a98dfff7e14b26510c92be1e
+ f317a73af579bbb42bc6635900e5b529f5198daaf54c5a7f51756b7707747444
+ 6e65702a500ef4d2841eacbd9e16ca692d25a9aa3fcf38be2603657bfb03a80d
+ 7b056d739b64407e92a6738c8e3a5f6fe070380196c057d3f832be4015e7957c
+ 6bdd5ab6efd06bd384e227d78de6cffeac4c828ce6254d152e0137c70eb7b2e9
+ b60364c109f3fe94387bfb27258c65c09b7761248e309adb8f92eda0c6c1dddb
+ 3b91a27432306a6152f6cee7b19d684476c4282743259eb0e5f90db6483216e6
+ a17149908edf9a173b9d7ca3eac644cf45cd0e35ba40c565903ea9af9580e41e
+ b404f670ce1f3cc7fbdb170e9f0286e0a7608d779c5dae83ce5adee911876e6d
+ b41236a8ce2e96edf02165bd1ad91de967d8605ed7a9c77f079027ea0b13a7cf
+ 1f444a10561108bdfb98d43531c33d377a2565763d1299c96ef3c1f746b10555
+ f15e57588ccdf2a6be3b51fba066dc030e2808071b29957c3da844b272d1dd25
+ d51b8bdbc415fcdf5df587e364b8a3edb6296a988c38dbfb0fbec40b5dec856e
+ bcfbd612f55efff2dc98cdf9ff6ddf3d8e91274ead7d8d8bf1023cb28b815623
+ f711d9206635ac98b3eec788791089d1a64316dc55ad4be2f6043acca79317b8
+ a48efe9f0a885060fe2844ae056fb9de8932e45cfda399959ff8a4f54c99dc3f
+ c919c3557a66188ea7ab58210f6fe629f5e111bd73c0f94f298e4635c21b5f05
+ edf74a83a03f85dfb2172053cf1816736fdfb4c42fbacdf4626b128186fb15db
+ 76bc68c806add52aa205f9f6a55dd6c141ecfaa29ce5b63fe06cb8bf1ce0c567
+ af3763e63550893a001a651c5d89e4bb529004de98d58f2dc2a49336239171bf
+ 979725bd9b1b8aade54e0e24efdc2c716381130559615f45c007f0d68a0b0b69
+ db96fd8658bc75f4813ddaf457c888e3f0656dc407b12d7799dbdebb7cc1a9ae
+ ba5e81b435217c15e2d55a42d34e3313e9ad1302b34599a25b48a23846dfc920
+ fd3988b0ddcfa721fd702c126dd531f5b77f1f5af8ac61e8b23307c5b84e8e72
+ a58a245d30efb8ad6553166dd2469da504d6cf3c773e52da15c3677899f37c4e
+ 3fd377be34a8786a726a13c88d28b2b73155b1f527b2909e6841474631ce8226
+ 790af48c82bf520bcd8f915af77d1e0c8f156ae6c028b1fa0f39c3c991865d1c
+ 46b8071a1e23d8c5af1ced98cfbdb1a2258f679425434e092fbe1c42dfa26066
+ a4eefa1ff84e33059d055c984dbb47283d117cb63ad9e39d7cc4c4e61ea9c11a
+ 5a91be294ac35aac472c4ba8324221551abb2e8cb66f995806606c191dca0428
+ 9a4a582673dc466a684fd2beacbe77a152047e6023b1e247f5eda7b513e5e30d
+ 039af250c8b2dc6254b2f24975704095406c70090de9d21ecc73975d8d874675
+ 3c77fd2a4cfc49ff94994b46a9b80ea24e534299838dd64a11a5dc2ef110f901
+ feaeb14a016d732b3ec0be6266bd078fdf220c48c38683a4dd7315e076839b82
+ a4756471f45168ff28fdc0e87c65b33288ca1f7fd2eedb7e31a726ee4766fb3c
+ 4eb62cbed52d1cdad08551a38d1f7656c71ef986df49eee0381e9aec7b11c0ba
+ 8e967ef8ff1f1a2fc21ea537d629d40a38d6b8789ce344e79d7a3b3b78138968
+ e008e241c41900d6df1128d5dd55d41e1ed43d7c60d48329a321716968397b09
+ 7011776c661b07bc3fd7d24b62765aeee10ba2a72ea4112862989f759aceb466
+ 760c44d1512be5f10264d195785e45d47c46595ef57c24de81c070a81ba65456
+ 531ec7550a9ab4e2410e9c69495852eaa0e7df43e022ed7ec0f0c50e148a4506
+ c46413f7aa225147712fb634483f64c9368f43d03ba6f66405e4c9dc281421b4
+ 42debde9c9341fc910ff382e94fade233b3ad23e4f474d89426648c659a99a12
+ 50f1088649f77e0f83dffe3e81dd8ac993d1d8f06d8f231acdf98a69cda9147a
+ 2a4f6162bfbf5ea44c832c0d5896079b0ce69e590dc377e3bbd37a92f9780e6c
+ 60aa95eb50d59ddb2bf57d5cfacf860d4cc2c8b86a219f35ceaa30d82fd6e593
+ 73a416254d022b051bb38ebf085772c031ecba18ab4896634ba8599fcb396f7b
+ ae3aa802087754458465af30a4ddafc8baa08e101a4e177b144b4f606a78b941
+ 30c7498935e0d4529ccbe3a5c7671aec9505d0132cd6123f97c0680c80cbb917
+ 99b76ac0f7cf4c5d5ae8b66ae3e54e3932c6a6f101aba8b156cf8d78a67e3f0b
+ 1bcb69081c99b27781c81becce86baaf2f1da54ceba009904ad2a5a8614eaa68
+ bb3152472d5582b365722a83972b416d78b8bddfc6dbea40d1c778c37eb86623
+ 426115a07ce25b7d2ae89024bf81e8b5957df9d8709bd6e5c1da704633af3c85
+ 24918b9cd56f5fe12c7e02b0cedcdaf2abeeb7ec3cdb75a4aee3ca2d4aaaa961
+ 8497c47c4f151966538836b0dfa312a044d8496ffc4647fcf62c8ed19b2337d9
+ e160dd5b88f37562d7cbace3f46b8fd8edc5b9211f4240d8e38aec3dd81d915d
+ 298ab33911b8c425e6032eba867bc31925ea24b2457298bbf965bd6b194edc3f
+ 4c53367e4ddcff92733a95139baf9610390bf3eaf78ef5a5d10b4530c359e8eb
+ f340c62b77eaaa6bde0e61944c508b32785619ad4ca54b7dfbf281fcb986eac0
+ 99201be46e35f22312a27da2a2afc54f46043342a1c577fa64696ef365198329
+ 41e4d2d255435d2b50a8e0c4c59b13a0a0aafae925cd32e20bf9005cd066d11e
+ 266141c6c9a6729da904dfa040ae20d80a6b5c39efc31fcf2d039ed65e9c2b28
+ 33daee0ac659ec7d1fb1cb101798dae2ed0077653fc9170bcbb5bc554ee3e433
+ 23b74270aef1c6a4bff5194103a430e6854fe4c460e5c684769bd7c59d1afa0d
+ 9405687dbb0a81e8be8f842824f2fe65830b70a0dd0dcde84cc8a21d6637f841
+ 40a608e720136044f4b95728474fcb82764e61d649551be438e330b63753635f
+ 0ef710447a36e81a6c86b17ee28d2cf463242834936af2578074df6e11c2baea
+ 3f0d0d33abda068465d7747149cdf11a4b1dc819f7da7f1f7a3d9c2a45307231
+ 9d2c3438776531077e379e97a449e714882896c53dbb87052de7e7ac77ea3d67
+ de9b4ec945265f5539025fb73b713322924da2d1a51b5bd6ad1baba4584c76e1
+ 7b66c7d5e1b9eb6959295a76416271220e84ecc43a97a5f5f07ec99986579cb1
+ 4404f5fe56868f5c551208d72630b91a88c68f78d7463e8e1d221fd7406c0783
+ 3f55ec2730a870951759961c83d6654c7122a3114e136a6e2bce7c05d6062d89
+ 873819bc254911aa3a443d0a9db306b472f7f31af8d986d54c535bce67a4b1c0
+ 07326e95015601946706f50333c32b0919025376abcdf88dc225dae2c167b19a
+ bfdd58d9f0f0e809e6b801f65c722c61b4dbb5e6635cecd7390d1403f1dd6f42
+ 8c2d716291a28cc64f93078d2bdf8d756a6521e3b0107815788c48452eac95f0
+ 9b07735b4d8e8359e38d671ed054b373c4ed50a232013807d09ca4fae31e8223
+ 5592ee66611515f8583a48211d70764fdb28c54b1ad4de5b4b87a9d3b101a182
+ d36e2c9a894beb94b62855bd07d4b54e41fc96c0736b5e2e702422e75b3cf21e
+ caf7dd282fb6dc065eb6a0c124cd458716d877a500c094ff650c4d40302dd49e
+ 80bd3c70433f6b3aacdbd370b70d4fe0eab13547d1f6368b80eb5c28a759141a
+ 67b359947cbe15b2be1ad2567d74a36cfe5f27665a058b0fab19ed37ddd63a30
+ b3347d5cec7f9f6e3aa4b5ccdd49350fd0879c20938bfc22664782c377dd73a6
+ 79b512427977c359ec8f93e4880cd5397ccddb013676d2d39837f06433fe4041
+ 883d5daa5b041778b0984a7e86ecfc4892af1aed1ec09285ac031e335075524c
+ bc1981c7cb2e6d5aecec7fb0f370c1da52895f00d238c1afa2b4e31b93580eb6
+ 6278e5c054f50d3de62de9d070d21d2842d4d0ff9212d852af8eb672fad7ecea"

From 51e4878a234a8580a67a58e8061ddd8e4c76504b Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Sat, 7 Sep 2019 18:09:55 +0700
Subject: [PATCH 3/3] firefox{,-esr}-i18n: add script to update firefox locale

[skip ci]

Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
---
 .../firefox-esr-i18n/files/update-lang-list   |  1 +
 srcpkgs/firefox-i18n/files/update-lang-list   | 71 +++++++++++++++++++
 2 files changed, 72 insertions(+)
 create mode 120000 srcpkgs/firefox-esr-i18n/files/update-lang-list
 create mode 100755 srcpkgs/firefox-i18n/files/update-lang-list

diff --git a/srcpkgs/firefox-esr-i18n/files/update-lang-list b/srcpkgs/firefox-esr-i18n/files/update-lang-list
new file mode 120000
index 00000000000..d6e91286846
--- /dev/null
+++ b/srcpkgs/firefox-esr-i18n/files/update-lang-list
@@ -0,0 +1 @@
+../../firefox-i18n/files/update-lang-list
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n/files/update-lang-list b/srcpkgs/firefox-i18n/files/update-lang-list
new file mode 100755
index 00000000000..cc3f6c70700
--- /dev/null
+++ b/srcpkgs/firefox-i18n/files/update-lang-list
@@ -0,0 +1,71 @@
+#!/bin/bash
+# Copyright (c) by Danh Doan
+# All rights reserved
+# Released under 2 clause BSD license
+
+version=$1
+
+esr=""
+[[ $version =~ esr$ ]] && esr="-esr"
+
+tmpldir="firefox${esr}-i18n"
+
+tmpoldfile="$(mktemp)"
+tmpnewfile="$(mktemp)"
+
+xoldlangexpr="^_languages="
+
+xlistold() {
+	source "${tmpldir}/template"
+	for _lang in "${_languages[@]}"; do
+		_locale="${_lang%%\"*}"
+		[ $_locale ] && echo "$_locale"
+	done
+}
+
+xlink () {
+	ln -sf "$tmpldir" "$tmpldir-$1"
+}
+
+xnewlang () {
+	lang=$1
+	padded=$(printf '%-7s' $lang)
+	xoldexpr=$xoldlangexpr
+	xoldlangexpr="'$lang \+\""
+	grep -q "'$lang \+\"" "$tmpldir/template" && return 0
+	sed -i "/$xoldexpr/a\\
+	'$padded\"Unknown\"'
+	/checksum=/a\\
+ badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb" \
+	"$tmpldir/template"
+}
+
+xprocessnew() {
+	while read lang; do
+		printf '%-7s\n' $lang >&3
+		xlink $lang
+		xnewlang $lang
+	done
+}
+
+xcleanlang() {
+	while read lang; do
+		padded=$(printf '%-7s' $lang)
+		sed -i "/'$padded\"/d" $tmpldir/template
+		unlink "$tmpldir-$lang" || true
+	done
+}
+
+cd $(xdistdir)/srcpkgs
+
+xlistold >| "$tmpoldfile"
+
+curl "https://ftp.mozilla.org/pub/firefox/releases/$1/linux-i686/xpi/" \
+	| grep -o 'xpi/[a-z]\+\(-[A-Z]\+\)\?' \
+	| cut -d/ -f2 \
+	| xprocessnew 3>$tmpnewfile
+
+grep -vF -f $tmpnewfile $tmpoldfile \
+	| xcleanlang
+
+rm -rf $tmpoldfile $tmpnewfile

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (2 preceding siblings ...)
  2019-09-07 11:12 ` voidlinux-github
@ 2019-09-08  9:02 ` voidlinux-github
  2019-09-08  9:43 ` voidlinux-github
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-08  9:02 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 307 bytes --]

New comment by Hoshpak on void-packages repository

https://github.com/void-linux/void-packages/pull/14229#issuecomment-529184163

Comment:
Could you also test building for i686 and at least one supported cross architecture? These thinks tend to fail a lot so I would like to have it tested before merging.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (3 preceding siblings ...)
  2019-09-08  9:02 ` voidlinux-github
@ 2019-09-08  9:43 ` voidlinux-github
  2019-09-08  9:47 ` voidlinux-github
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-08  9:43 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 511 bytes --]

New comment by zdtcd on void-packages repository

https://github.com/void-linux/void-packages/pull/14229#issuecomment-529186790

Comment:
On September 8, 2019 9:02:33 AM UTC, Helmut Pozimski <notifications@github.com> wrote:
>Could you also test building for i686 and at least one supported cross
>architecture? These thinks tend to fail a lot so I would like to have
>it tested before merging.

I'll try to build for i686, ppc and arch64.

It would take time since my build machine is not very fast.
-- 
Danh


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (4 preceding siblings ...)
  2019-09-08  9:43 ` voidlinux-github
@ 2019-09-08  9:47 ` voidlinux-github
  2019-09-08 10:11 ` [PR PATCH] [Updated] " voidlinux-github
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-08  9:47 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 307 bytes --]

New comment by Hoshpak on void-packages repository

https://github.com/void-linux/void-packages/pull/14229#issuecomment-529184163

Comment:
Could you also test building for i686 and at least one supported cross architecture? These things tend to fail a lot so I would like to have it tested before merging.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PR PATCH] [Updated] Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (6 preceding siblings ...)
  2019-09-08 10:11 ` [PR PATCH] [Updated] " voidlinux-github
@ 2019-09-08 10:11 ` voidlinux-github
  2019-09-08 10:12 ` voidlinux-github
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-08 10:11 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 347 bytes --]

There is an updated pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages firefox-esr
https://github.com/void-linux/void-packages/pull/14229

Firefox esr
Built and tested for:
- x86_64
- x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/14229.patch is attached

[-- Warning: decoded text below may be mangled --]
[-- Attachment #2: github-pr-firefox-esr-14229.patch --]
[-- Type: text/x-diff, Size: 51055 bytes --]

From f4d806dd409cebe038a1e70c9a2cfa52449d72d5 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:17 +0700
Subject: [PATCH 1/3] firefox-esr: update to 68.1.0.

---
 srcpkgs/firefox-esr/files/mozconfig           |  6 --
 .../disable-image-format-warning.patch        | 15 +++
 .../patches/fix-arm-opus-include.patch        | 11 +++
 .../firefox-esr/patches/fix-i686-musl.patch   |  9 --
 srcpkgs/firefox-esr/patches/fix-musl.patch    | 11 ---
 srcpkgs/firefox-esr/patches/fix-toolkit.patch | 35 ++++---
 srcpkgs/firefox-esr/patches/fix-tools.patch   | 31 +++---
 .../firefox-esr/patches/fix-wasm-arm.patch    | 15 +++
 .../firefox-esr/patches/fix-webrtc-arm.patch  | 11 ---
 .../patches/fix-webrtc-glibcisms.patch        | 17 ++--
 srcpkgs/firefox-esr/patches/fix-xpcom.patch   | 11 ---
 srcpkgs/firefox-esr/patches/gettid-musl.patch | 11 +++
 srcpkgs/firefox-esr/patches/mallinfo.patch    | 40 +++++---
 .../patches/ppc-no-static-sizes.patch         | 19 ----
 .../patches/remove-rustc-check.patch          | 18 +++-
 .../patches/rust-unitialized-field.patch      | 19 ----
 srcpkgs/firefox-esr/patches/rust133.patch     | 24 -----
 ...nd-restore-non-volatile-x28-on-arm64.patch | 64 ------------
 ...-clobbering-it-in-the-regex-compiler.patch | 97 -------------------
 srcpkgs/firefox-esr/patches/sndio.patch       | 12 +--
 srcpkgs/firefox-esr/patches/yuv-be.patch      | 48 +++++++++
 srcpkgs/firefox-esr/template                  |  8 +-
 22 files changed, 187 insertions(+), 345 deletions(-)
 create mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-musl.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-xpcom.patch
 create mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust133.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
 create mode 100644 srcpkgs/firefox-esr/patches/yuv-be.patch

diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 5b3c6e46d6f..0798fdd40ef 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -1,11 +1,6 @@
 ac_add_options --prefix=/usr
 ac_add_options --libdir=/usr/lib
 
-ac_add_options --with-pthreads
-# XXX build without system cairo see:
-# - https://github.com/voidlinux/void-packages/issues/2308#issuecomment-135426813
-# - https://bugs.gentoo.org/show_bug.cgi?id=558150
-# ac_add_options --with-system-cairo
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
 ac_add_options --with-system-bz2
@@ -39,7 +34,6 @@ ac_add_options --disable-install-strip
 ac_add_options --disable-strip
 ac_add_options --disable-profiling
 ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-pie
 
 ac_add_options --enable-official-branding
 ac_add_options --enable-application=browser
diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
new file mode 100644
index 00000000000..bd56e6bc37c
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
@@ -0,0 +1,15 @@
+Imported from Adélie. Firefox is prone to this warning on BE and
+it leads to huge .xsession-errors, and the warning is not very
+important or meaningful, so just disable it.
+
+--- gfx/2d/HelpersCairo.h
++++ gfx/2d/HelpersCairo.h
+@@ -147,7 +147,7 @@
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
+-      gfxCriticalError() << "Unknown image format " << (int)format;
++      //gfxCriticalError() << "Unknown image format " << (int)format;
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }
diff --git a/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
new file mode 100644
index 00000000000..6e0c5875da3
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
@@ -0,0 +1,11 @@
+--- media/libopus/silk/arm/arm_silk_map.c.orig	2019-03-19 20:55:01.249609964 +0100
++++ media/libopus/silk/arm/arm_silk_map.c	2019-03-19 20:55:25.769400255 +0100
+@@ -28,7 +28,7 @@
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "../fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
+
diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
index 5345a3cd3df..6df609bbf16 100644
--- a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
+++ b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
@@ -9,12 +9,3 @@
       ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
        defined(HAVE__UNWIND_BACKTRACE)))
  #define MOZ_STACKWALK_SUPPORTS_LINUX 1
-@@ -911,7 +911,7 @@
- }
- 
- // {x86, ppc} x {Linux, Mac} stackwalking code.
--#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-      (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX))
- 
- MFBT_API bool
diff --git a/srcpkgs/firefox-esr/patches/fix-musl.patch b/srcpkgs/firefox-esr/patches/fix-musl.patch
deleted file mode 100644
index c32921d39e1..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/profiler/core/platform.h.orig
-+++ tools/profiler/core/platform.h
-@@ -56,7 +56,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/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
index ce4d7d01f82..86e8ef47855 100644
--- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch
+++ b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
@@ -47,18 +47,28 @@
  #include <a.out.h>
  #endif
 
+--- toolkit.orig/mozapps/update/common/updatedefines.h	2019-01-29 11:34:36.416804577 +0100
++++ toolkit/mozapps/update/common/updatedefines.h	2019-01-29 11:34:59.193583777 +0100
+@@ -102,7 +102,7 @@
 
+ #  ifdef SOLARIS
+ #    include <sys/stat.h>
+-#  else
++#  elif !(defined(__linux__)) || defined(__GLIBC__)
+ #    include <fts.h>
+ #  endif
+ #  include <dirent.h>
 --- toolkit.orig/mozapps/update/updater/updater.cpp	2014-03-15 05:19:37.000000000 +0000
 +++ toolkit/mozapps/update/updater/updater.cpp	2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
+@@ -3978,6 +3978,7 @@
+ 
+ int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
    int rv = OK;
 +#if !defined(__linux__) || defined(__GLIBC__)
-   FTS *ftsdir;
-   FTSENT *ftsdirEntry;
-   NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+   FTS* ftsdir;
+   FTSENT* ftsdirEntry;
+   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
+@@ -4085,6 +4086,7 @@
    }
  
    fts_close(ftsdir);
@@ -66,14 +76,3 @@
  
    return rv;
  }
---- toolkit/mozapps/update/common/updatedefines.h	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:15:53.946747750 +0100
-@@ -100,7 +100,7 @@
- 
- #ifdef SOLARIS
- #include <sys/stat.h>
--#else
-+#elif !defined(__linux__) || defined(__GLIBC__)
- #include <fts.h>
- #endif
- #include <dirent.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch
index 1e2fc4f7d39..0ed043fb5b5 100644
--- a/srcpkgs/firefox-esr/patches/fix-tools.patch
+++ b/srcpkgs/firefox-esr/patches/fix-tools.patch
@@ -1,33 +1,24 @@
---- tools/profiler/core/platform.h
-+++ tools/profiler/core/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
-
-+#include <sys/types.h>
-+
- #include <stdint.h>
- #include <math.h>
- #include "MainThreadUtils.h"
---- tools/profiler/lul/LulElf.cpp	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:19:53.198257189 +0100
-@@ -460,9 +460,9 @@
+--- tools/profiler/lul/LulElf.cpp.orig	2019-01-29 12:05:34.223834130 +0100
++++ tools/profiler/lul/LulElf.cpp	2019-01-29 12:08:02.480400845 +0100
+@@ -469,10 +469,10 @@
+ // 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) {
-   // Lots of copies!  basename's behavior is less than ideal.
+-  // 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();
++  // basename's behavior is less than ideal so avoid it
++  const char *c_filename = filename.c_str();
 +  const char *p = strrchr(c_filename, '/');
 +  string base = p ? p+1 : c_filename;
    return base;
  }
  
---- tools/profiler/core/platform-linux-android.cpp	2019-01-24 18:31:43.000000000 +0100
-+++ -	2019-01-31 11:23:07.911772317 +0100
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-01-29 12:09:40.980448579 +0100
++++ tools/profiler/core/platform-linux-android.cpp	2019-01-29 12:11:09.689590967 +0100
 @@ -253,7 +253,11 @@
-
+ 
    // Request profiling signals.
    struct sigaction sa;
 +#if defined(GP_ARCH_arm)
@@ -38,7 +29,7 @@
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART | SA_SIGINFO;
    if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
-@@ -497,8 +497,10 @@
+@@ -497,8 +501,10 @@
  ucontext_t sSyncUContext;
  
  void Registers::SyncPopulate() {
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
new file mode 100644
index 00000000000..e6ad61c9f44
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
@@ -0,0 +1,15 @@
+--- js/src/wasm/WasmSignalHandlers.cpp
++++ js/src/wasm/WasmSignalHandlers.cpp
+@@ -243,9 +243,9 @@
+ // If you run into compile problems on a tier-3 platform, you can disable the
+ // emulation here.
+ 
+-#if defined(__linux__) && defined(__arm__)
+-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-#endif
++// #if defined(__linux__) && defined(__arm__)
++// #  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
++// #endif
+ 
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #  include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
deleted file mode 100644
index 222be5f9e21..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc	2019-01-24 18:31:10.000000000 +0100
-+++ -	2019-02-01 00:13:35.690776711 +0100
-@@ -67,7 +67,7 @@
-   return 0;
- }
- 
--#if !defined(ANDROID)
-+#if !defined(ANDROID) && !defined(__linux__)
- #ifdef WEBRTC_ARCH_ARM_V7
- uint64_t WebRtc_GetCPUFeaturesARM(void) {
-   return kCPUFeatureARMv7
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 3ff2570b12b..cf895dd8448 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,18 +1,15 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-02-01 00:49:18.472382771 +0100
-+++ -	2019-02-01 00:50:25.928007236 +0100
-@@ -11,7 +11,10 @@
- #include <stdlib.h>
- #include <string.h>
- #include <features.h>
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2019-01-29 11:20:52.298793223 +0100
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-01-29 11:21:48.250250850 +0100
+@@ -14,7 +14,7 @@
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(a, b) 0
+ #endif
 -#if __GLIBC_PREREQ(2, 16)
-+#ifndef __GLIBC_PREREQ
-+#define __GLIBC_PREREQ(a, b) 0
-+#endif
 +#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
  #include <sys/auxv.h>
  #else
  #include <fcntl.h>
-@@ -29,7 +32,7 @@
+@@ -32,7 +32,7 @@
    int architecture = 0;
    unsigned long hwcap = 0;
    const char* platform = NULL;
diff --git a/srcpkgs/firefox-esr/patches/fix-xpcom.patch b/srcpkgs/firefox-esr/patches/fix-xpcom.patch
deleted file mode 100644
index 38dd582d96b..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-xpcom.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- xpcom/base/nsMemoryReporterManager.cpp.orig	2015-12-16 11:53:14.211144456 +0100
-+++ xpcom/base/nsMemoryReporterManager.cpp	2015-12-16 11:55:26.859476381 +0100
-@@ -46,7 +46,7 @@ using namespace mozilla;
- #  include "mozmemory.h"
- #endif  // MOZ_MEMORY
- 
--#if defined(XP_LINUX)
-+#if defined(XP_LINUX) && defined(__GLIBC__)
- 
- #include <malloc.h>
- #include <string.h>
diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch
new file mode 100644
index 00000000000..c1cb99bf651
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/gettid-musl.patch
@@ -0,0 +1,11 @@
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-07-09 22:58:30.039475686 +0200
++++ tools/profiler/core/platform-linux-android.cpp	2019-07-09 22:58:39.331437677 +0200
+@@ -73,7 +73,7 @@
+ 
+ int profiler_current_thread_id() {
+   // glibc doesn't provide a wrapper for gettid().
+-#if defined(__GLIBC__)
++#if defined(__linux__)
+   return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
+ #else
+   return static_cast<int>(gettid());
diff --git a/srcpkgs/firefox-esr/patches/mallinfo.patch b/srcpkgs/firefox-esr/patches/mallinfo.patch
index c9a38d45bdf..afea86c0a2c 100644
--- a/srcpkgs/firefox-esr/patches/mallinfo.patch
+++ b/srcpkgs/firefox-esr/patches/mallinfo.patch
@@ -1,18 +1,34 @@
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
+--- xpcom/base/nsMemoryReporterManager.cpp.orig	2019-03-19 17:12:20.844810044 +0100
++++ xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:13:32.505133615 +0100
+@@ -123,6 +123,7 @@
    return GetProcSelfSmapsPrivate(aN);
  }
  
 +#ifdef __GLIBC__
- #define HAVE_SYSTEM_HEAP_REPORTER 1
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
-@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
-     *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
-     return NS_OK;
+ #  ifdef HAVE_MALLINFO
+ #    define HAVE_SYSTEM_HEAP_REPORTER 1
+ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
+@@ -142,6 +143,7 @@
+   return NS_OK;
  }
-+#endif
+ #  endif
++#endif // __GLIBC__
  
- #elif defined(__DragonFly__) || defined(__FreeBSD__) \
-     || defined(__NetBSD__) || defined(__OpenBSD__) \
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+     defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+@@ -642,6 +644,7 @@
+   return NS_OK;
+ }
+ 
++#ifdef __GLIBC__
+ #  define HAVE_SYSTEM_HEAP_REPORTER 1
+ // Windows can have multiple separate heaps. During testing there were multiple
+ // heaps present but the non-default ones had sizes no more than a few 10s of
+@@ -698,6 +701,7 @@
+   *aSizeOut = heapsSize;
+   return NS_OK;
+ }
++#endif // __GLIBC__
+ 
+ struct SegmentKind {
+   DWORD mState;
diff --git a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
deleted file mode 100644
index 3f77023bb5f..00000000000
--- a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# Parent b735e618c2a860972197942f6680c941e3c9a67f
-# User Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
-Bug 997353 - Do not use compile-time page size for PowerPC.
-
-The PowerPC architecture allows various memory page sizes, making it impossible
-to predict the runtime page size.
-
---- memory/build/mozjemalloc.cpp
-+++ memory/build/mozjemalloc.cpp
-@@ -369,7 +369,7 @@
- // Debug builds are opted out too, for test coverage.
- #ifndef MOZ_DEBUG
- #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) &&         \
--  !defined(__aarch64__)
-+  !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
- #define MALLOC_STATIC_PAGESIZE 1
- #endif
- #endif
diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
index f6bebc8aab1..84077f4fc88 100644
--- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
@@ -1,8 +1,19 @@
 Mozilla rustc check does not support crossbuild: let's remove it
+Remove calls to unwrap_rustup, they fail if rustup isn't present
 
---- build/moz.configure/rust.configure	2018-10-01 16:28:31.000000000 +0200
-+++ build/moz.configure/rust.configure	2018-10-20 14:21:35.510000000 +0200
-@@ -204,26 +204,6 @@
+--- build/moz.configure/rust.configure	2019-07-06 03:48:30.000000000 +0200
++++ build/moz.configure/rust.configure	2019-07-09 22:35:23.326851798 +0200
+@@ -79,9 +79,6 @@
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -294,26 +291,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
@@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it
          finally:
              os.remove(in_path)
              os.remove(out_path)
-
diff --git a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch b/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
deleted file mode 100644
index 67ef3a02ab8..00000000000
--- a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
-+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
-@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
-                 return Err(Error::NoSpace);
-             }
- 
--            let cmsghdr = cmsghdr {
--                cmsg_len: cmsg_len as _,
--                cmsg_level: level,
--                cmsg_type: kind,
--            };
-+            use std::mem;
-+            let mut cmsghdr: cmsghdr =  unsafe { mem::zeroed() };
-+            cmsghdr.cmsg_len = cmsg_len as _;
-+            cmsghdr.cmsg_level = level;
-+            cmsghdr.cmsg_type = kind;
- 
-             let cmsghdr = unsafe {
-                 slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::<cmsghdr>())
diff --git a/srcpkgs/firefox-esr/patches/rust133.patch b/srcpkgs/firefox-esr/patches/rust133.patch
deleted file mode 100644
index ebdcac7e3a3..00000000000
--- a/srcpkgs/firefox-esr/patches/rust133.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-This fixes build errors under recent Rust.
-
---- servo/components/style_traits/lib.rs
-+++ servo/components/style_traits/lib.rs
-@@ -9,7 +9,7 @@
- #![crate_name = "style_traits"]
- #![crate_type = "rlib"]
- 
--#![deny(unsafe_code, missing_docs)]
-+#![deny(unsafe_code)]
- 
- extern crate app_units;
- #[macro_use] extern crate bitflags;
---- servo/components/style/lib.rs
-+++ servo/components/style/lib.rs
-@@ -23,8 +23,6 @@
- //! [cssparser]: ../cssparser/index.html
- //! [selectors]: ../selectors/index.html
- 
--#![deny(missing_docs)]
--
- extern crate app_units;
- extern crate arrayvec;
- extern crate atomic_refcell;
diff --git a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch b/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
deleted file mode 100644
index fa303f6d1e9..00000000000
--- a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1519822672 -3600
-# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6
-# Parent  223c97459e96183eb616aed39147207bdb953ba8
-Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor.  r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/800abe66894d
----
- js/src/vm/UnboxedObject.cpp | 30 ++++++++++++++++++++++++++----
- 1 file changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
-index 35ca20d7405f..1c20a1093d13 100644
---- js/src/vm/UnboxedObject.cpp
-+++ js/src/vm/UnboxedObject.cpp
-@@ -86,9 +86,16 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
- #endif
-
- #ifdef JS_CODEGEN_ARM64
--  // ARM64 communicates stack address via sp, but uses a pseudo-sp for
--  // addressing.
--  masm.initStackPtr();
-+    // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-+    masm.initStackPtr();
- #endif
-
-   MOZ_ASSERT(propertiesReg.volatile_());
-@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
-   if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
-   masm.PopRegsInMask(savedNonVolatileRegisters);
-
--  masm.abiret();
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-+    masm.abiret();
-+#endif
-
-   masm.bind(&failureStoreOther);
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch b/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
deleted file mode 100644
index aa2dcc6ba8d..00000000000
--- a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1521449886 -3600
-# Node ID 903a79a1efff18fc7cc50db09a3fe5d768adc9a8
-# Parent  4d2955a9ca7e30ca4c3af9c214ccc77fb2fe7fb8
-Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/903a79a1efff
----
-diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp
---- js/src/irregexp/NativeRegExpMacroAssembler.cpp
-+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
-@@ -118,17 +118,25 @@ NativeRegExpMacroAssembler::GenerateCode
-
-     Label return_temp0;
-
-     // Finalize code - write the entry point code now we know how many
-     // registers we need.
-     masm.bind(&entry_label_);
-
- #ifdef JS_CODEGEN_ARM64
--    // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
-+    // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-     masm.initStackPtr();
- #endif
-
-     // Push non-volatile registers which might be modified by jitcode.
-     size_t pushedNonVolatileRegisters = 0;
-     for (GeneralRegisterForwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) {
-         masm.Push(*iter);
-         pushedNonVolatileRegisters++;
-@@ -416,17 +424,32 @@ NativeRegExpMacroAssembler::GenerateCode
-     masm.pop(temp0);
-     masm.movePtr(temp0, StackPointer);
- #endif
-
-     // Restore non-volatile registers which were saved on entry.
-     for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
-         masm.Pop(*iter);
-
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-     masm.abiret();
-+#endif
-
-     // Backtrack code (branch target for conditional backtracks).
-     if (backtrack_label_.used()) {
-         masm.bind(&backtrack_label_);
-         Backtrack();
-     }
-
-     // Backtrack stack overflow code.
-diff --git a/js/src/jit-test/tests/regexp/bug1445907.js b/js/src/jit-test/tests/regexp/bug1445907.js
-new file mode 100644
---- /dev/null
-+++ js/src/jit-test/tests/regexp/bug1445907.js
-@@ -0,0 +1,15 @@
-+// On ARM64, we failed to save x28 properly when generating code for the regexp
-+// matcher.
-+//
-+// There's wasm and Debugger code here because the combination forces the use of
-+// x28 and exposes the bug when running on the simulator.
-+
-+if (!wasmIsSupported())
-+    quit();
-+
-+var g = newGlobal('');
-+var dbg = new Debugger(g);
-+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
-+var re = /./;
-+dbg.onEnterFrame = function(frame) { re.exec("x") };
-+result = g.eval("m.exports.test()");
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 097b313e90b..6c72284c19b 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -51,14 +51,14 @@
      ]
 --- build/moz.configure/old.configure.orig
 +++ build/moz.configure/old.configure
-@@ -159,6 +159,7 @@
-     '--enable-accessibility',
-     '--enable-address-sanitizer',
-     '--enable-alsa',
+@@ -169,6 +169,7 @@
+ @old_configure_options(
+     '--cache-file',
+     '--datadir',
 +    '--enable-sndio',
-     '--enable-bundled-fonts',
-     '--enable-clang-plugin',
      '--enable-content-sandbox',
+     '--enable-cookies',
+     '--enable-cpp-rtti',
 --- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig
 +++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
 @@ -349,6 +349,21 @@
diff --git a/srcpkgs/firefox-esr/patches/yuv-be.patch b/srcpkgs/firefox-esr/patches/yuv-be.patch
new file mode 100644
index 00000000000..1c26f2ecced
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/yuv-be.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User A. Wilcox <AWilcox@Wilcox-Tech.com>
+# Date 1543674229 0
+#      Sat Dec 01 14:23:49 2018 +0000
+# Node ID 0309ff19e46b126c527e633518d7de8570442114
+# Parent  53107afbc21ec78e7ac46d37af212505f2032d5d
+Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
+
+diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp
+--- gfx/ycbcr/YCbCrUtils.cpp	Wed Nov 07 04:50:21 2018 +0000
++++ gfx/ycbcr/YCbCrUtils.cpp	Sat Dec 01 14:23:49 2018 +0000
+@@ -3,7 +3,9 @@
+  * 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 "mozilla/EndianUtils.h"
+ #include "gfx2DGlue.h"
++#include "mozilla/gfx/Swizzle.h"
+ 
+ #include "YCbCrUtils.h"
+ #include "yuv_convert.h"
+@@ -236,6 +238,13 @@
+                           yuvtype,
+                           srcData.mYUVColorSpace);
+   }
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRX
++  if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
++    gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
++                     aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
++                     srcData.mPicSize);
++#endif
+ }
+ 
+ void
+@@ -257,6 +266,12 @@
+                         aSrcStrideYA,
+                         aSrcStrideUV,
+                         aDstStrideARGB);
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRA
++  gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
++                   aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
++                   IntSize(aWidth, aHeight));
++#endif
+ }
+ 
+ } // namespace gfx
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 05a0a521341..def96276d3b 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,8 +3,8 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
 #
 pkgname=firefox-esr
-version=60.8.0
-revision=2
+version=68.1.0
+revision=1
 build_helper="rust"
 wrksrc="firefox-${version}"
 short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
@@ -12,11 +12,11 @@ maintainer="Eivind Uggedal <eivind@uggedal.com>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.mozilla.org/firefox/organizations/"
 distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe
+checksum=f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac
 
 lib32disabled=yes
 hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
- cargo llvm clang rust cbindgen"
+ python3 cargo llvm clang rust cbindgen nasm nodejs"
 makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
  pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
  libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std

From d44bf5453a84e084c37b1ed98803dffa36ce6758 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:37 +0700
Subject: [PATCH 2/3] firefox-esr-i18n: update to 68.1.0.

[skip ci]
---
 ...irefox-esr-i18n-as => firefox-esr-i18n-bn} |   0
 ...-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} |   0
 ...fox-esr-i18n-bn-IN => firefox-esr-i18n-ia} |   0
 ...-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} |   0
 ...refox-esr-i18n-mai => firefox-esr-i18n-oc} |   0
 srcpkgs/firefox-esr-i18n-or                   |   1 -
 ...irefox-esr-i18n-ml => firefox-esr-i18n-ur} |   0
 srcpkgs/firefox-esr-i18n/template             | 202 +++++++++---------
 8 files changed, 100 insertions(+), 103 deletions(-)
 rename srcpkgs/{firefox-esr-i18n-as => firefox-esr-i18n-bn} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-IN => firefox-esr-i18n-ia} (100%)
 rename srcpkgs/{firefox-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} (100%)
 rename srcpkgs/{firefox-esr-i18n-mai => firefox-esr-i18n-oc} (100%)
 delete mode 120000 srcpkgs/firefox-esr-i18n-or
 rename srcpkgs/{firefox-esr-i18n-ml => firefox-esr-i18n-ur} (100%)

diff --git a/srcpkgs/firefox-esr-i18n-as b/srcpkgs/firefox-esr-i18n-bn
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-as
rename to srcpkgs/firefox-esr-i18n-bn
diff --git a/srcpkgs/firefox-esr-i18n-bn-BD b/srcpkgs/firefox-esr-i18n-en-CA
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-BD
rename to srcpkgs/firefox-esr-i18n-en-CA
diff --git a/srcpkgs/firefox-esr-i18n-bn-IN b/srcpkgs/firefox-esr-i18n-ia
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-IN
rename to srcpkgs/firefox-esr-i18n-ia
diff --git a/srcpkgs/firefox-esr-i18n-en-ZA b/srcpkgs/firefox-esr-i18n-ne-NP
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-en-ZA
rename to srcpkgs/firefox-esr-i18n-ne-NP
diff --git a/srcpkgs/firefox-esr-i18n-mai b/srcpkgs/firefox-esr-i18n-oc
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-mai
rename to srcpkgs/firefox-esr-i18n-oc
diff --git a/srcpkgs/firefox-esr-i18n-or b/srcpkgs/firefox-esr-i18n-or
deleted file mode 120000
index 0707c37f205..00000000000
--- a/srcpkgs/firefox-esr-i18n-or
+++ /dev/null
@@ -1 +0,0 @@
-firefox-esr-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-esr-i18n-ml b/srcpkgs/firefox-esr-i18n-ur
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-ml
rename to srcpkgs/firefox-esr-i18n-ur
diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 8c43a8ace7c..b4e17fb16f0 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'firefox-esr-i18n'
 pkgname=firefox-esr-i18n
-version=60.8.0
+version=68.1.0
 revision=1
 build_style=meta
 homepage="https://www.mozilla.org/firefox/"
@@ -19,13 +19,11 @@ _languages=(
 	'af     "Afrikaans"'
 	'an     "Aragonese"'
 	'ar     "Arabic"'
-	'as     "Assamese"'
 	'ast    "Asturian"'
 	'az     "Azerbaijani"'
 	'be     "Belarusian"'
 	'bg     "Bulgarian"'
-	'bn-BD  "Bengali (Bangladesh)"'
-	'bn-IN  "Bengali (India)"'
+	'bn     "Bengali"'
 	'br     "Breton"'
 	'bs     "Bosnian"'
 	'ca     "Catalan"'
@@ -36,9 +34,9 @@ _languages=(
 	'de     "German"'
 	'dsb    "Lower Sorbian"'
 	'el     "Greek"'
+	'en-CA  "English (Canada)"'
 	'en-GB  "English (British)"'
 	'en-US  "English (US)"'
-	'en-ZA  "English (South African)"'
 	'eo     "Esperanto"'
 	'es-AR  "Spanish (Argentina)"'
 	'es-CL  "Spanish (Chile)"'
@@ -62,6 +60,7 @@ _languages=(
 	'hsb    "Upper Sorbian"'
 	'hu     "Hungarian"'
 	'hy-AM  "Armenian"'
+	'ia     "Interlingua"'
 	'id     "Indonesian"'
 	'is     "Icelandic"'
 	'it     "Italian"'
@@ -75,16 +74,15 @@ _languages=(
 	'lij    "Ligurian"'
 	'lt     "Lithuanian"'
 	'lv     "Latvian"'
-	'mai    "Maithili"'
 	'mk     "Macedonian"'
-	'ml     "Malayalam"'
 	'mr     "Marathi"'
 	'ms     "Malay"'
 	'my     "Burmese"'
 	'nb-NO  "Norwegian (Bokmål)"'
+	'ne-NP  "Nepali"'
 	'nl     "Dutch"'
 	'nn-NO  "Norwegian (Nynorsk)"'
-	'or     "Oriya"'
+	'oc     "Occitan"'
 	'pa-IN  "Punjabi"'
 	'pl     "Polish"'
 	'pt-BR  "Portuguese (Brazilian)"'
@@ -104,6 +102,7 @@ _languages=(
 	'th     "Thai"'
 	'tr     "Turkish"'
 	'uk     "Ukrainian"'
+	'ur     "Urdu"'
 	'uz     "Uzbek"'
 	'vi     "Vietnamese"'
 	'xh     "Xhosa"'
@@ -136,97 +135,96 @@ _pkgtmpl() {
 	}
 }
 
-checksum="ff8a0e5081e1bf6f1794ea47dab8f32f5b28580c423bccc149e16f4749e36c50
- eb86ab716a1d6a32bd102952f3ac13b7708ac9fdb947e72e0f66891f872c1cb0
- beb35664f371716cebd1a4a4c84b44129c381a1dc9a38dea19684fd5f15e407c
- 25e8cdd8d22a1073143e2c88e5d3c4d96b505edbe9c18bf29fb5fbf4c68db620
- 7a05659ee866abc198bd55169b189f8e1f4daa1259b28bef78918ee0e84ed669
- 610f0c658af4d93eb7d70a459317323845a641b229f1dd42c4ee66ee660067d9
- 021d5f86239831892335f8d4b434bff3e129b774588e8b49758b3ff97534b055
- b3d75d79148ef5000aaca5d6948e09dcc43673f9d51a91bd21c51eaee34a4bf0
- 6481896744f2a0e596f425de2590ab78e153463a8bd16fc9398bb0e6a2278f3c
- a03b62fe0dba6a9aaf080505299d632dec7eb98d2973c42b53330ec25695d9c7
- db332375bf0224ac90a0aec2475c70d0262f52a0f856ef5d244ba7ab8d89bb90
- ff234f75fe294bf4278d7976a7c44815f5aa9e981e9742fb322f19726a38dcbc
- 5f0d36853f12f5fc3d8a85874718bcef77103903cb732c370b4e301dffb38a51
- 6b336951b07e1dd63472027d7603439ee5384b3f6a814c7be34d0cdeac1bd4d0
- 21e196147819aab031a733a4ad78b4c67d77120cd8976e7aa0b364823a3beb01
- 4edbad866270ef310932149188d4e4b0d786abc22db3196430d9db9b9113e992
- 0acf0db94b5e56fd81c14a763e2b4dd32c10f21824464195e30adc7ed9e4c021
- 440ac13c8d241d537c7de382a10ca1da1716cc302dc200ac5039ac43efcfd8a6
- bb7fc4aeffeca0c89a2ba33a7c762f4764cd70334f74cfa5d4b51fc4449aabed
- feebf56ff307f191ebd2af9990840db9e3e447c0cfbdea3219320b108838202a
- 9ced74783c6e21ae934243b3558ba1ecbe2858b6cfe57a031389d4c91b4887dc
- 958ff950724abf9c593685991246325ff6d04f73ea9c518dcefe24e289770c9e
- d8f5ef61b8a2bbe021fef63d09cb8e83a848a8100331acecdd70c47cf0cf9d43
- db9f3432a6a364791e0c4c8e47516c60182a0640a8ef795e24b7fc2465c7a7b3
- 7558f05cc6319ef57cf54a176b41bb9ac6d4650de9099998d3d4ad83163d07cf
- 8f8ef308c6c5d06f20feae2e4f6b29aa0db271f1a91f1d3ad097aa7a51948384
- 987c9758f4a71bd3e7602cfd977a611fe28d58ae28f324ba1325382958735aa7
- 1ac4c54b7ed0bc407711c589328d192b1b49a4b23417d294bd3608bbc5f40581
- 71d5f764c000ad31f252fa36a94d6a178b552c1a9e4815ae883e7c490ed4d401
- 74441cfbfdbd111ab87318598dd4a3c8aaa4c4db2b86a12bc6cf41fa05881ea8
- 43bffe371b4cb25f21bf767f618631a96b24e72a658a72759f4bb6a06bc5bf32
- 50fa12cc74afb9faca4ebb8ae47d2e22756f4cae70e3c8169fbf0f568dc64fc8
- 85e3332ce6656d8df3a492ed837192df3991aab1314c1c5ef25a67bf61360cbf
- a3dadeaca0193cb249b087b165e1d6fbbd322cf06485a7cf1a35c090b4adeb31
- 55cbc207ea34d61519f48946c077cc9dfa17d24eed5310f58838af289ea0b60f
- 31c6f72f72743a4b085eb699627a3917e92531066388343a40ffc6412277027a
- 38f1b0d8091f864256464cec0e7f78f474020feb7c4748b84160c6e074088b60
- cf2c4efce1203eb8c8f8a984b90c61672cfe9a6d05da3cfecee52e12189301a0
- ca8e8da872f5053cfa15d8395d8f10a66794589833714538b0c67fd83c340466
- c15707031179223c545a4299306b3df107ded62b685363a5e3274e318b88f219
- c1699a128003f23ef5662919ed1b33c5d61caf914985e39853df29a1ba35828c
- 3fb4a2283723b2ef3709c88baeb99e77bbba33c9e835c2dfedf28c6b2ecad2fa
- 344b3b3149aa3b77f10f49b86a76c6ff0179043048093c541944058f620e8845
- b43880065a4a92aeff823e4913eabe953e88cafb9cd414b2f616475cd7af69af
- 94b414e2f89f030c131742de0d9ba48f13b16b40e06dd568c10cea417b57b5ba
- 177ca8c3883d9c5d7e4a84b79dbc7b64e430fabaa247b0cee78f9ef65e2b5aa0
- a2a071c6e3604287a99e78042b34d02d4d91b27d3b23b9ea90945da7d9456012
- ae57f94246c078f8e2d4b8c297b281115bb008a811bf2a783278deb916007da4
- a222763e7d2d5eda8a15869f85c19765111841a2ccf4d18993eb83f20bdf4933
- 7771989dad60a20756517a6f696d939039cf5f10aa47d271e2ff5c465bd7b4c0
- 389b3c1b09e744c8fe843e3784088ea72214571b975ea9d69aaeb7c4264a990b
- d5fea97921089f0b4a6a8667ddf19a430eca78223118818480a202e563088943
- 617b9daf4d828bc66fc8061601adc9c40b25f1338c5f527d9fbf83dfa3e8770b
- 87d2ec6cadb2a61909888af5cc80a4dacd64493d82d0282679ba3c597918fb07
- 1afe05f69af9bc0b0e37d1c6d0942073349b173433a41a83b3a732e6fa026511
- 68b80d99dc3ff2c2828622cdf7d21c32e6f00904a239eef3f5eedb8fb8476386
- 853ec1ad7ef319a60586902c5b3dec73e0800c7af2d94e44b549d4f03f114fd7
- d0c9e3dfd07994ebf26d4ad98ef997cb62c90c07f9d0e70c8b2f7771f39b1b95
- f5b14095e891af078ef256460a41b19e00fbcd81eba66e0331af8bc096288963
- bec28861d16cf418fa06d650765c3be8fbc02b69b41b079d3907bb01c3d8096a
- b042d80a54dbc7cd0fdf24ba3599404632d84635ae73204235dbf66ef7a35a26
- 7b791bfc3bd843a291d74d86f88c0a5a31af13d9da9f135841fd7859c442f733
- f12eb8be3a7ef93146c161f6ba02b9d9b892b792d0c190adb92398802f5365fe
- 49addce322b6020d69b65f72ee4e82a140cd0e712c647127f6fac5b66e6f51b5
- acdc9ae4ae7397ade4c4053dc3b1f22ef42cc844bf853e5e846d1f6b0c5d5cab
- 02ac07e226734f1f693283784816b3c96a48b4e592c676673901104c5dcc72b2
- b102cf97790415b804182743426e8eb1304675fb4bf360e64ae9055cce87b2f1
- f8988dfc783c4b39d8a3a44e1000c6376bc211ab6297a49eddf5194b71fdfbde
- 58cad897f3bd51b9a1fcb7d4e4d3fc6bac47e5b2d4c6c19096732556eaec1314
- 23af8e26632da7c5d791a8891295eb2a83cde54390d9cd17692525f6e32ff6ed
- 0d38ca007291146731793d1a2c7e07bad2d2ed82668dfbd5be14daacf7abdce7
- a5957711b3fd9665dd2fed5fdbbb0a2fcbce54ad43ccd6800ddf7ccf5be731e5
- fcc2580a8ab3e95d23af7ee373a9bfcdce52e2a5ce59bb59d1ba1dca75772239
- bc3a8480ff73c752cc1cbfa80c327b155b194553c3568534b9d20f7e2176df1e
- 196abc6109092f326b387f5cffad880e5b6a857203127cf1f76622ca5a823ad2
- 002109cec6f2e40fb4ffc07b04c72a8debd128357925e8d51e5a84614004a086
- 83be2c2c9f9c93c0c31c5d30c0e6fdef3df2381f7c62c64a8313066f64c98b0f
- c7c83b2c405c432c3de1c187cfc800025502b1931e07ff1108648e77279441ab
- 8156b74896fd7b69fc306f90f1fd5291316d3c9b4c5ab4df620cab8d782b466e
- 27ff153a51f800ea9620042acc47aad6b2392c3551a4be30e982652ef89fcdf2
- abbbd74fb4e2ce5cfb254837c8383c9cca637bbdfd05d403526a50b08806c050
- 0c6ada2d7bf26be43d4f3fa8f37581a1f1a3113c3399ebd328736802dbe7623f
- b8c50654545a923e7ad7ef43bb1f2ea56b845b3443ffa0410b9bb7a6be9b8b91
- 4e49460bd3cd763e9527c771c4030237700e2eb73a359fefce3bd2146db7d56e
- 82bab7b006ab019d2bf2d6b3ed9aa85796f8dc1f827ed7350b0286dbd19bbc78
- 9b6adcd828ed3c2bb4950df6a2634bc943768b3d852e2e258e52c7e2da7a5ca7
- ccd0aa23ba2662e766e2adcab201076dfdcfc5cf288e4c4bbeff6d0d3c451abb
- f3709e35f5d4d317733f943aec9e977fd83acc1eaa9a35cf149dbf05e345146c
- 282d60e14be013a29ba09611f7ebe37d1fa5fe6dd8e441a1f10270d4e10323d6
- 742960a8b13cab9901267237accfcbcded21018aff9b6fc1bfd0ab37b7c8b607
- 0ae68434908b9512c46f22a6f3149b0f611f77306887a7641527d5df55725517
- 432353f98d29dbec0bc0eb50f0316220f155dee755ea0b4cb45b0636a0fcffde
- 8c1bbca429dd81d9180639ed1e526892908d26c1784f5f9c37093577b82d25fe
- c9651a78d2d2395711d320f6fac1ffd37048d4bffc544a2f2e182cedd237d090"
+checksum="c3fafda87192d9b98dc9b2b99d62b7109dbd72f73e8d5de1ea2a418ed086317b
+ 93af0702aae30332eecdc0f407dc29080923660508018fca14fe1307fdf375a1
+ a40baf64e7376e4916fa96d7199bad099edc7e897d65b5ecc4a2dc9fdbba2e75
+ 1e915f6a0860f2f7f583a70a5668ec5033969fbba177c3d3da4e244d01ba5cb4
+ d6c45490cec27609f43fb9af406ba15e25fff544f10d038e650a5b25d2ba5a69
+ 2b5d84d3f7800d162b095d0ee77da8264af9eac3a98dfff7e14b26510c92be1e
+ f317a73af579bbb42bc6635900e5b529f5198daaf54c5a7f51756b7707747444
+ 6e65702a500ef4d2841eacbd9e16ca692d25a9aa3fcf38be2603657bfb03a80d
+ 7b056d739b64407e92a6738c8e3a5f6fe070380196c057d3f832be4015e7957c
+ 6bdd5ab6efd06bd384e227d78de6cffeac4c828ce6254d152e0137c70eb7b2e9
+ b60364c109f3fe94387bfb27258c65c09b7761248e309adb8f92eda0c6c1dddb
+ 3b91a27432306a6152f6cee7b19d684476c4282743259eb0e5f90db6483216e6
+ a17149908edf9a173b9d7ca3eac644cf45cd0e35ba40c565903ea9af9580e41e
+ b404f670ce1f3cc7fbdb170e9f0286e0a7608d779c5dae83ce5adee911876e6d
+ b41236a8ce2e96edf02165bd1ad91de967d8605ed7a9c77f079027ea0b13a7cf
+ 1f444a10561108bdfb98d43531c33d377a2565763d1299c96ef3c1f746b10555
+ f15e57588ccdf2a6be3b51fba066dc030e2808071b29957c3da844b272d1dd25
+ d51b8bdbc415fcdf5df587e364b8a3edb6296a988c38dbfb0fbec40b5dec856e
+ bcfbd612f55efff2dc98cdf9ff6ddf3d8e91274ead7d8d8bf1023cb28b815623
+ f711d9206635ac98b3eec788791089d1a64316dc55ad4be2f6043acca79317b8
+ a48efe9f0a885060fe2844ae056fb9de8932e45cfda399959ff8a4f54c99dc3f
+ c919c3557a66188ea7ab58210f6fe629f5e111bd73c0f94f298e4635c21b5f05
+ edf74a83a03f85dfb2172053cf1816736fdfb4c42fbacdf4626b128186fb15db
+ 76bc68c806add52aa205f9f6a55dd6c141ecfaa29ce5b63fe06cb8bf1ce0c567
+ af3763e63550893a001a651c5d89e4bb529004de98d58f2dc2a49336239171bf
+ 979725bd9b1b8aade54e0e24efdc2c716381130559615f45c007f0d68a0b0b69
+ db96fd8658bc75f4813ddaf457c888e3f0656dc407b12d7799dbdebb7cc1a9ae
+ ba5e81b435217c15e2d55a42d34e3313e9ad1302b34599a25b48a23846dfc920
+ fd3988b0ddcfa721fd702c126dd531f5b77f1f5af8ac61e8b23307c5b84e8e72
+ a58a245d30efb8ad6553166dd2469da504d6cf3c773e52da15c3677899f37c4e
+ 3fd377be34a8786a726a13c88d28b2b73155b1f527b2909e6841474631ce8226
+ 790af48c82bf520bcd8f915af77d1e0c8f156ae6c028b1fa0f39c3c991865d1c
+ 46b8071a1e23d8c5af1ced98cfbdb1a2258f679425434e092fbe1c42dfa26066
+ a4eefa1ff84e33059d055c984dbb47283d117cb63ad9e39d7cc4c4e61ea9c11a
+ 5a91be294ac35aac472c4ba8324221551abb2e8cb66f995806606c191dca0428
+ 9a4a582673dc466a684fd2beacbe77a152047e6023b1e247f5eda7b513e5e30d
+ 039af250c8b2dc6254b2f24975704095406c70090de9d21ecc73975d8d874675
+ 3c77fd2a4cfc49ff94994b46a9b80ea24e534299838dd64a11a5dc2ef110f901
+ feaeb14a016d732b3ec0be6266bd078fdf220c48c38683a4dd7315e076839b82
+ a4756471f45168ff28fdc0e87c65b33288ca1f7fd2eedb7e31a726ee4766fb3c
+ 4eb62cbed52d1cdad08551a38d1f7656c71ef986df49eee0381e9aec7b11c0ba
+ 8e967ef8ff1f1a2fc21ea537d629d40a38d6b8789ce344e79d7a3b3b78138968
+ e008e241c41900d6df1128d5dd55d41e1ed43d7c60d48329a321716968397b09
+ 7011776c661b07bc3fd7d24b62765aeee10ba2a72ea4112862989f759aceb466
+ 760c44d1512be5f10264d195785e45d47c46595ef57c24de81c070a81ba65456
+ 531ec7550a9ab4e2410e9c69495852eaa0e7df43e022ed7ec0f0c50e148a4506
+ c46413f7aa225147712fb634483f64c9368f43d03ba6f66405e4c9dc281421b4
+ 42debde9c9341fc910ff382e94fade233b3ad23e4f474d89426648c659a99a12
+ 50f1088649f77e0f83dffe3e81dd8ac993d1d8f06d8f231acdf98a69cda9147a
+ 2a4f6162bfbf5ea44c832c0d5896079b0ce69e590dc377e3bbd37a92f9780e6c
+ 60aa95eb50d59ddb2bf57d5cfacf860d4cc2c8b86a219f35ceaa30d82fd6e593
+ 73a416254d022b051bb38ebf085772c031ecba18ab4896634ba8599fcb396f7b
+ ae3aa802087754458465af30a4ddafc8baa08e101a4e177b144b4f606a78b941
+ 30c7498935e0d4529ccbe3a5c7671aec9505d0132cd6123f97c0680c80cbb917
+ 99b76ac0f7cf4c5d5ae8b66ae3e54e3932c6a6f101aba8b156cf8d78a67e3f0b
+ 1bcb69081c99b27781c81becce86baaf2f1da54ceba009904ad2a5a8614eaa68
+ bb3152472d5582b365722a83972b416d78b8bddfc6dbea40d1c778c37eb86623
+ 426115a07ce25b7d2ae89024bf81e8b5957df9d8709bd6e5c1da704633af3c85
+ 24918b9cd56f5fe12c7e02b0cedcdaf2abeeb7ec3cdb75a4aee3ca2d4aaaa961
+ 8497c47c4f151966538836b0dfa312a044d8496ffc4647fcf62c8ed19b2337d9
+ e160dd5b88f37562d7cbace3f46b8fd8edc5b9211f4240d8e38aec3dd81d915d
+ 298ab33911b8c425e6032eba867bc31925ea24b2457298bbf965bd6b194edc3f
+ 4c53367e4ddcff92733a95139baf9610390bf3eaf78ef5a5d10b4530c359e8eb
+ f340c62b77eaaa6bde0e61944c508b32785619ad4ca54b7dfbf281fcb986eac0
+ 99201be46e35f22312a27da2a2afc54f46043342a1c577fa64696ef365198329
+ 41e4d2d255435d2b50a8e0c4c59b13a0a0aafae925cd32e20bf9005cd066d11e
+ 266141c6c9a6729da904dfa040ae20d80a6b5c39efc31fcf2d039ed65e9c2b28
+ 33daee0ac659ec7d1fb1cb101798dae2ed0077653fc9170bcbb5bc554ee3e433
+ 23b74270aef1c6a4bff5194103a430e6854fe4c460e5c684769bd7c59d1afa0d
+ 9405687dbb0a81e8be8f842824f2fe65830b70a0dd0dcde84cc8a21d6637f841
+ 40a608e720136044f4b95728474fcb82764e61d649551be438e330b63753635f
+ 0ef710447a36e81a6c86b17ee28d2cf463242834936af2578074df6e11c2baea
+ 3f0d0d33abda068465d7747149cdf11a4b1dc819f7da7f1f7a3d9c2a45307231
+ 9d2c3438776531077e379e97a449e714882896c53dbb87052de7e7ac77ea3d67
+ de9b4ec945265f5539025fb73b713322924da2d1a51b5bd6ad1baba4584c76e1
+ 7b66c7d5e1b9eb6959295a76416271220e84ecc43a97a5f5f07ec99986579cb1
+ 4404f5fe56868f5c551208d72630b91a88c68f78d7463e8e1d221fd7406c0783
+ 3f55ec2730a870951759961c83d6654c7122a3114e136a6e2bce7c05d6062d89
+ 873819bc254911aa3a443d0a9db306b472f7f31af8d986d54c535bce67a4b1c0
+ 07326e95015601946706f50333c32b0919025376abcdf88dc225dae2c167b19a
+ bfdd58d9f0f0e809e6b801f65c722c61b4dbb5e6635cecd7390d1403f1dd6f42
+ 8c2d716291a28cc64f93078d2bdf8d756a6521e3b0107815788c48452eac95f0
+ 9b07735b4d8e8359e38d671ed054b373c4ed50a232013807d09ca4fae31e8223
+ 5592ee66611515f8583a48211d70764fdb28c54b1ad4de5b4b87a9d3b101a182
+ d36e2c9a894beb94b62855bd07d4b54e41fc96c0736b5e2e702422e75b3cf21e
+ caf7dd282fb6dc065eb6a0c124cd458716d877a500c094ff650c4d40302dd49e
+ 80bd3c70433f6b3aacdbd370b70d4fe0eab13547d1f6368b80eb5c28a759141a
+ 67b359947cbe15b2be1ad2567d74a36cfe5f27665a058b0fab19ed37ddd63a30
+ b3347d5cec7f9f6e3aa4b5ccdd49350fd0879c20938bfc22664782c377dd73a6
+ 79b512427977c359ec8f93e4880cd5397ccddb013676d2d39837f06433fe4041
+ 883d5daa5b041778b0984a7e86ecfc4892af1aed1ec09285ac031e335075524c
+ bc1981c7cb2e6d5aecec7fb0f370c1da52895f00d238c1afa2b4e31b93580eb6
+ 6278e5c054f50d3de62de9d070d21d2842d4d0ff9212d852af8eb672fad7ecea"

From 33d5d1eba341b9d093bb580f7a5369fb0e2a2128 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Sat, 7 Sep 2019 18:09:55 +0700
Subject: [PATCH 3/3] firefox{,-esr}-i18n: add script to update firefox locale

[skip ci]

Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
---
 .../firefox-esr-i18n/files/update-lang-list   |  1 +
 srcpkgs/firefox-i18n/files/update-lang-list   | 81 +++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 120000 srcpkgs/firefox-esr-i18n/files/update-lang-list
 create mode 100755 srcpkgs/firefox-i18n/files/update-lang-list

diff --git a/srcpkgs/firefox-esr-i18n/files/update-lang-list b/srcpkgs/firefox-esr-i18n/files/update-lang-list
new file mode 120000
index 00000000000..d6e91286846
--- /dev/null
+++ b/srcpkgs/firefox-esr-i18n/files/update-lang-list
@@ -0,0 +1 @@
+../../firefox-i18n/files/update-lang-list
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n/files/update-lang-list b/srcpkgs/firefox-i18n/files/update-lang-list
new file mode 100755
index 00000000000..65d076b4870
--- /dev/null
+++ b/srcpkgs/firefox-i18n/files/update-lang-list
@@ -0,0 +1,81 @@
+#!/bin/bash
+# Copyright (c) by Danh Doan
+# All rights reserved.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+version=$1
+
+esr=""
+[[ $version =~ esr$ ]] && esr="-esr"
+
+tmpldir="firefox${esr}-i18n"
+
+tmpoldfile="$(mktemp)"
+tmpnewfile="$(mktemp)"
+
+xoldlangexpr="^_languages="
+
+xlistold() {
+	source "${tmpldir}/template"
+	for _lang in "${_languages[@]}"; do
+		_locale="${_lang%%\"*}"
+		[ $_locale ] && echo "$_locale"
+	done
+}
+
+xlink () {
+	ln -sf "$tmpldir" "$tmpldir-$1"
+}
+
+xnewlang () {
+	lang=$1
+	padded=$(printf '%-7s' $lang)
+	xoldexpr=$xoldlangexpr
+	xoldlangexpr="'$lang \+\""
+	grep -q "'$lang \+\"" "$tmpldir/template" && return 0
+	sed -i "/$xoldexpr/a\\
+	'$padded\"Unknown\"'
+	/checksum=/a\\
+ badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb" \
+	"$tmpldir/template"
+}
+
+xprocessnew() {
+	while read lang; do
+		printf '%-7s\n' $lang >&3
+		xlink $lang
+		xnewlang $lang
+	done
+}
+
+xcleanlang() {
+	while read lang; do
+		padded=$(printf '%-7s' $lang)
+		sed -i "/'$padded\"/d" $tmpldir/template
+		unlink "$tmpldir-$lang" || true
+	done
+}
+
+cd $(xdistdir)/srcpkgs
+
+xlistold >| "$tmpoldfile"
+
+curl "https://ftp.mozilla.org/pub/firefox/releases/$1/linux-i686/xpi/" \
+	| grep -o 'xpi/[a-z]\+\(-[A-Z]\+\)\?' \
+	| cut -d/ -f2 \
+	| xprocessnew 3>$tmpnewfile
+
+grep -vF -f $tmpnewfile $tmpoldfile \
+	| xcleanlang
+
+rm -rf $tmpoldfile $tmpnewfile

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PR PATCH] [Updated] Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (5 preceding siblings ...)
  2019-09-08  9:47 ` voidlinux-github
@ 2019-09-08 10:11 ` " voidlinux-github
  2019-09-08 10:11 ` voidlinux-github
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-08 10:11 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 347 bytes --]

There is an updated pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages firefox-esr
https://github.com/void-linux/void-packages/pull/14229

Firefox esr
Built and tested for:
- x86_64
- x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/14229.patch is attached

[-- Warning: decoded text below may be mangled --]
[-- Attachment #2: github-pr-firefox-esr-14229.patch --]
[-- Type: text/x-diff, Size: 51055 bytes --]

From f4d806dd409cebe038a1e70c9a2cfa52449d72d5 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:17 +0700
Subject: [PATCH 1/3] firefox-esr: update to 68.1.0.

---
 srcpkgs/firefox-esr/files/mozconfig           |  6 --
 .../disable-image-format-warning.patch        | 15 +++
 .../patches/fix-arm-opus-include.patch        | 11 +++
 .../firefox-esr/patches/fix-i686-musl.patch   |  9 --
 srcpkgs/firefox-esr/patches/fix-musl.patch    | 11 ---
 srcpkgs/firefox-esr/patches/fix-toolkit.patch | 35 ++++---
 srcpkgs/firefox-esr/patches/fix-tools.patch   | 31 +++---
 .../firefox-esr/patches/fix-wasm-arm.patch    | 15 +++
 .../firefox-esr/patches/fix-webrtc-arm.patch  | 11 ---
 .../patches/fix-webrtc-glibcisms.patch        | 17 ++--
 srcpkgs/firefox-esr/patches/fix-xpcom.patch   | 11 ---
 srcpkgs/firefox-esr/patches/gettid-musl.patch | 11 +++
 srcpkgs/firefox-esr/patches/mallinfo.patch    | 40 +++++---
 .../patches/ppc-no-static-sizes.patch         | 19 ----
 .../patches/remove-rustc-check.patch          | 18 +++-
 .../patches/rust-unitialized-field.patch      | 19 ----
 srcpkgs/firefox-esr/patches/rust133.patch     | 24 -----
 ...nd-restore-non-volatile-x28-on-arm64.patch | 64 ------------
 ...-clobbering-it-in-the-regex-compiler.patch | 97 -------------------
 srcpkgs/firefox-esr/patches/sndio.patch       | 12 +--
 srcpkgs/firefox-esr/patches/yuv-be.patch      | 48 +++++++++
 srcpkgs/firefox-esr/template                  |  8 +-
 22 files changed, 187 insertions(+), 345 deletions(-)
 create mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-musl.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-xpcom.patch
 create mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust133.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
 create mode 100644 srcpkgs/firefox-esr/patches/yuv-be.patch

diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 5b3c6e46d6f..0798fdd40ef 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -1,11 +1,6 @@
 ac_add_options --prefix=/usr
 ac_add_options --libdir=/usr/lib
 
-ac_add_options --with-pthreads
-# XXX build without system cairo see:
-# - https://github.com/voidlinux/void-packages/issues/2308#issuecomment-135426813
-# - https://bugs.gentoo.org/show_bug.cgi?id=558150
-# ac_add_options --with-system-cairo
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
 ac_add_options --with-system-bz2
@@ -39,7 +34,6 @@ ac_add_options --disable-install-strip
 ac_add_options --disable-strip
 ac_add_options --disable-profiling
 ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-pie
 
 ac_add_options --enable-official-branding
 ac_add_options --enable-application=browser
diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
new file mode 100644
index 00000000000..bd56e6bc37c
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
@@ -0,0 +1,15 @@
+Imported from Adélie. Firefox is prone to this warning on BE and
+it leads to huge .xsession-errors, and the warning is not very
+important or meaningful, so just disable it.
+
+--- gfx/2d/HelpersCairo.h
++++ gfx/2d/HelpersCairo.h
+@@ -147,7 +147,7 @@
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
+-      gfxCriticalError() << "Unknown image format " << (int)format;
++      //gfxCriticalError() << "Unknown image format " << (int)format;
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }
diff --git a/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
new file mode 100644
index 00000000000..6e0c5875da3
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
@@ -0,0 +1,11 @@
+--- media/libopus/silk/arm/arm_silk_map.c.orig	2019-03-19 20:55:01.249609964 +0100
++++ media/libopus/silk/arm/arm_silk_map.c	2019-03-19 20:55:25.769400255 +0100
+@@ -28,7 +28,7 @@
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "../fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
+
diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
index 5345a3cd3df..6df609bbf16 100644
--- a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
+++ b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
@@ -9,12 +9,3 @@
       ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
        defined(HAVE__UNWIND_BACKTRACE)))
  #define MOZ_STACKWALK_SUPPORTS_LINUX 1
-@@ -911,7 +911,7 @@
- }
- 
- // {x86, ppc} x {Linux, Mac} stackwalking code.
--#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-      (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX))
- 
- MFBT_API bool
diff --git a/srcpkgs/firefox-esr/patches/fix-musl.patch b/srcpkgs/firefox-esr/patches/fix-musl.patch
deleted file mode 100644
index c32921d39e1..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/profiler/core/platform.h.orig
-+++ tools/profiler/core/platform.h
-@@ -56,7 +56,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/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
index ce4d7d01f82..86e8ef47855 100644
--- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch
+++ b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
@@ -47,18 +47,28 @@
  #include <a.out.h>
  #endif
 
+--- toolkit.orig/mozapps/update/common/updatedefines.h	2019-01-29 11:34:36.416804577 +0100
++++ toolkit/mozapps/update/common/updatedefines.h	2019-01-29 11:34:59.193583777 +0100
+@@ -102,7 +102,7 @@
 
+ #  ifdef SOLARIS
+ #    include <sys/stat.h>
+-#  else
++#  elif !(defined(__linux__)) || defined(__GLIBC__)
+ #    include <fts.h>
+ #  endif
+ #  include <dirent.h>
 --- toolkit.orig/mozapps/update/updater/updater.cpp	2014-03-15 05:19:37.000000000 +0000
 +++ toolkit/mozapps/update/updater/updater.cpp	2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
+@@ -3978,6 +3978,7 @@
+ 
+ int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
    int rv = OK;
 +#if !defined(__linux__) || defined(__GLIBC__)
-   FTS *ftsdir;
-   FTSENT *ftsdirEntry;
-   NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+   FTS* ftsdir;
+   FTSENT* ftsdirEntry;
+   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
+@@ -4085,6 +4086,7 @@
    }
  
    fts_close(ftsdir);
@@ -66,14 +76,3 @@
  
    return rv;
  }
---- toolkit/mozapps/update/common/updatedefines.h	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:15:53.946747750 +0100
-@@ -100,7 +100,7 @@
- 
- #ifdef SOLARIS
- #include <sys/stat.h>
--#else
-+#elif !defined(__linux__) || defined(__GLIBC__)
- #include <fts.h>
- #endif
- #include <dirent.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch
index 1e2fc4f7d39..0ed043fb5b5 100644
--- a/srcpkgs/firefox-esr/patches/fix-tools.patch
+++ b/srcpkgs/firefox-esr/patches/fix-tools.patch
@@ -1,33 +1,24 @@
---- tools/profiler/core/platform.h
-+++ tools/profiler/core/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
-
-+#include <sys/types.h>
-+
- #include <stdint.h>
- #include <math.h>
- #include "MainThreadUtils.h"
---- tools/profiler/lul/LulElf.cpp	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:19:53.198257189 +0100
-@@ -460,9 +460,9 @@
+--- tools/profiler/lul/LulElf.cpp.orig	2019-01-29 12:05:34.223834130 +0100
++++ tools/profiler/lul/LulElf.cpp	2019-01-29 12:08:02.480400845 +0100
+@@ -469,10 +469,10 @@
+ // 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) {
-   // Lots of copies!  basename's behavior is less than ideal.
+-  // 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();
++  // basename's behavior is less than ideal so avoid it
++  const char *c_filename = filename.c_str();
 +  const char *p = strrchr(c_filename, '/');
 +  string base = p ? p+1 : c_filename;
    return base;
  }
  
---- tools/profiler/core/platform-linux-android.cpp	2019-01-24 18:31:43.000000000 +0100
-+++ -	2019-01-31 11:23:07.911772317 +0100
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-01-29 12:09:40.980448579 +0100
++++ tools/profiler/core/platform-linux-android.cpp	2019-01-29 12:11:09.689590967 +0100
 @@ -253,7 +253,11 @@
-
+ 
    // Request profiling signals.
    struct sigaction sa;
 +#if defined(GP_ARCH_arm)
@@ -38,7 +29,7 @@
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART | SA_SIGINFO;
    if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
-@@ -497,8 +497,10 @@
+@@ -497,8 +501,10 @@
  ucontext_t sSyncUContext;
  
  void Registers::SyncPopulate() {
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
new file mode 100644
index 00000000000..e6ad61c9f44
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
@@ -0,0 +1,15 @@
+--- js/src/wasm/WasmSignalHandlers.cpp
++++ js/src/wasm/WasmSignalHandlers.cpp
+@@ -243,9 +243,9 @@
+ // If you run into compile problems on a tier-3 platform, you can disable the
+ // emulation here.
+ 
+-#if defined(__linux__) && defined(__arm__)
+-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-#endif
++// #if defined(__linux__) && defined(__arm__)
++// #  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
++// #endif
+ 
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #  include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
deleted file mode 100644
index 222be5f9e21..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc	2019-01-24 18:31:10.000000000 +0100
-+++ -	2019-02-01 00:13:35.690776711 +0100
-@@ -67,7 +67,7 @@
-   return 0;
- }
- 
--#if !defined(ANDROID)
-+#if !defined(ANDROID) && !defined(__linux__)
- #ifdef WEBRTC_ARCH_ARM_V7
- uint64_t WebRtc_GetCPUFeaturesARM(void) {
-   return kCPUFeatureARMv7
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 3ff2570b12b..cf895dd8448 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,18 +1,15 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-02-01 00:49:18.472382771 +0100
-+++ -	2019-02-01 00:50:25.928007236 +0100
-@@ -11,7 +11,10 @@
- #include <stdlib.h>
- #include <string.h>
- #include <features.h>
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2019-01-29 11:20:52.298793223 +0100
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-01-29 11:21:48.250250850 +0100
+@@ -14,7 +14,7 @@
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(a, b) 0
+ #endif
 -#if __GLIBC_PREREQ(2, 16)
-+#ifndef __GLIBC_PREREQ
-+#define __GLIBC_PREREQ(a, b) 0
-+#endif
 +#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
  #include <sys/auxv.h>
  #else
  #include <fcntl.h>
-@@ -29,7 +32,7 @@
+@@ -32,7 +32,7 @@
    int architecture = 0;
    unsigned long hwcap = 0;
    const char* platform = NULL;
diff --git a/srcpkgs/firefox-esr/patches/fix-xpcom.patch b/srcpkgs/firefox-esr/patches/fix-xpcom.patch
deleted file mode 100644
index 38dd582d96b..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-xpcom.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- xpcom/base/nsMemoryReporterManager.cpp.orig	2015-12-16 11:53:14.211144456 +0100
-+++ xpcom/base/nsMemoryReporterManager.cpp	2015-12-16 11:55:26.859476381 +0100
-@@ -46,7 +46,7 @@ using namespace mozilla;
- #  include "mozmemory.h"
- #endif  // MOZ_MEMORY
- 
--#if defined(XP_LINUX)
-+#if defined(XP_LINUX) && defined(__GLIBC__)
- 
- #include <malloc.h>
- #include <string.h>
diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch
new file mode 100644
index 00000000000..c1cb99bf651
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/gettid-musl.patch
@@ -0,0 +1,11 @@
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-07-09 22:58:30.039475686 +0200
++++ tools/profiler/core/platform-linux-android.cpp	2019-07-09 22:58:39.331437677 +0200
+@@ -73,7 +73,7 @@
+ 
+ int profiler_current_thread_id() {
+   // glibc doesn't provide a wrapper for gettid().
+-#if defined(__GLIBC__)
++#if defined(__linux__)
+   return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
+ #else
+   return static_cast<int>(gettid());
diff --git a/srcpkgs/firefox-esr/patches/mallinfo.patch b/srcpkgs/firefox-esr/patches/mallinfo.patch
index c9a38d45bdf..afea86c0a2c 100644
--- a/srcpkgs/firefox-esr/patches/mallinfo.patch
+++ b/srcpkgs/firefox-esr/patches/mallinfo.patch
@@ -1,18 +1,34 @@
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
+--- xpcom/base/nsMemoryReporterManager.cpp.orig	2019-03-19 17:12:20.844810044 +0100
++++ xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:13:32.505133615 +0100
+@@ -123,6 +123,7 @@
    return GetProcSelfSmapsPrivate(aN);
  }
  
 +#ifdef __GLIBC__
- #define HAVE_SYSTEM_HEAP_REPORTER 1
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
-@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
-     *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
-     return NS_OK;
+ #  ifdef HAVE_MALLINFO
+ #    define HAVE_SYSTEM_HEAP_REPORTER 1
+ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
+@@ -142,6 +143,7 @@
+   return NS_OK;
  }
-+#endif
+ #  endif
++#endif // __GLIBC__
  
- #elif defined(__DragonFly__) || defined(__FreeBSD__) \
-     || defined(__NetBSD__) || defined(__OpenBSD__) \
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+     defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+@@ -642,6 +644,7 @@
+   return NS_OK;
+ }
+ 
++#ifdef __GLIBC__
+ #  define HAVE_SYSTEM_HEAP_REPORTER 1
+ // Windows can have multiple separate heaps. During testing there were multiple
+ // heaps present but the non-default ones had sizes no more than a few 10s of
+@@ -698,6 +701,7 @@
+   *aSizeOut = heapsSize;
+   return NS_OK;
+ }
++#endif // __GLIBC__
+ 
+ struct SegmentKind {
+   DWORD mState;
diff --git a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
deleted file mode 100644
index 3f77023bb5f..00000000000
--- a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# Parent b735e618c2a860972197942f6680c941e3c9a67f
-# User Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
-Bug 997353 - Do not use compile-time page size for PowerPC.
-
-The PowerPC architecture allows various memory page sizes, making it impossible
-to predict the runtime page size.
-
---- memory/build/mozjemalloc.cpp
-+++ memory/build/mozjemalloc.cpp
-@@ -369,7 +369,7 @@
- // Debug builds are opted out too, for test coverage.
- #ifndef MOZ_DEBUG
- #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) &&         \
--  !defined(__aarch64__)
-+  !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
- #define MALLOC_STATIC_PAGESIZE 1
- #endif
- #endif
diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
index f6bebc8aab1..84077f4fc88 100644
--- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
@@ -1,8 +1,19 @@
 Mozilla rustc check does not support crossbuild: let's remove it
+Remove calls to unwrap_rustup, they fail if rustup isn't present
 
---- build/moz.configure/rust.configure	2018-10-01 16:28:31.000000000 +0200
-+++ build/moz.configure/rust.configure	2018-10-20 14:21:35.510000000 +0200
-@@ -204,26 +204,6 @@
+--- build/moz.configure/rust.configure	2019-07-06 03:48:30.000000000 +0200
++++ build/moz.configure/rust.configure	2019-07-09 22:35:23.326851798 +0200
+@@ -79,9 +79,6 @@
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -294,26 +291,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
@@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it
          finally:
              os.remove(in_path)
              os.remove(out_path)
-
diff --git a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch b/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
deleted file mode 100644
index 67ef3a02ab8..00000000000
--- a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
-+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
-@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
-                 return Err(Error::NoSpace);
-             }
- 
--            let cmsghdr = cmsghdr {
--                cmsg_len: cmsg_len as _,
--                cmsg_level: level,
--                cmsg_type: kind,
--            };
-+            use std::mem;
-+            let mut cmsghdr: cmsghdr =  unsafe { mem::zeroed() };
-+            cmsghdr.cmsg_len = cmsg_len as _;
-+            cmsghdr.cmsg_level = level;
-+            cmsghdr.cmsg_type = kind;
- 
-             let cmsghdr = unsafe {
-                 slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::<cmsghdr>())
diff --git a/srcpkgs/firefox-esr/patches/rust133.patch b/srcpkgs/firefox-esr/patches/rust133.patch
deleted file mode 100644
index ebdcac7e3a3..00000000000
--- a/srcpkgs/firefox-esr/patches/rust133.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-This fixes build errors under recent Rust.
-
---- servo/components/style_traits/lib.rs
-+++ servo/components/style_traits/lib.rs
-@@ -9,7 +9,7 @@
- #![crate_name = "style_traits"]
- #![crate_type = "rlib"]
- 
--#![deny(unsafe_code, missing_docs)]
-+#![deny(unsafe_code)]
- 
- extern crate app_units;
- #[macro_use] extern crate bitflags;
---- servo/components/style/lib.rs
-+++ servo/components/style/lib.rs
-@@ -23,8 +23,6 @@
- //! [cssparser]: ../cssparser/index.html
- //! [selectors]: ../selectors/index.html
- 
--#![deny(missing_docs)]
--
- extern crate app_units;
- extern crate arrayvec;
- extern crate atomic_refcell;
diff --git a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch b/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
deleted file mode 100644
index fa303f6d1e9..00000000000
--- a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1519822672 -3600
-# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6
-# Parent  223c97459e96183eb616aed39147207bdb953ba8
-Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor.  r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/800abe66894d
----
- js/src/vm/UnboxedObject.cpp | 30 ++++++++++++++++++++++++++----
- 1 file changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
-index 35ca20d7405f..1c20a1093d13 100644
---- js/src/vm/UnboxedObject.cpp
-+++ js/src/vm/UnboxedObject.cpp
-@@ -86,9 +86,16 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
- #endif
-
- #ifdef JS_CODEGEN_ARM64
--  // ARM64 communicates stack address via sp, but uses a pseudo-sp for
--  // addressing.
--  masm.initStackPtr();
-+    // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-+    masm.initStackPtr();
- #endif
-
-   MOZ_ASSERT(propertiesReg.volatile_());
-@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
-   if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
-   masm.PopRegsInMask(savedNonVolatileRegisters);
-
--  masm.abiret();
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-+    masm.abiret();
-+#endif
-
-   masm.bind(&failureStoreOther);
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch b/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
deleted file mode 100644
index aa2dcc6ba8d..00000000000
--- a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1521449886 -3600
-# Node ID 903a79a1efff18fc7cc50db09a3fe5d768adc9a8
-# Parent  4d2955a9ca7e30ca4c3af9c214ccc77fb2fe7fb8
-Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/903a79a1efff
----
-diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp
---- js/src/irregexp/NativeRegExpMacroAssembler.cpp
-+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
-@@ -118,17 +118,25 @@ NativeRegExpMacroAssembler::GenerateCode
-
-     Label return_temp0;
-
-     // Finalize code - write the entry point code now we know how many
-     // registers we need.
-     masm.bind(&entry_label_);
-
- #ifdef JS_CODEGEN_ARM64
--    // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
-+    // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-     masm.initStackPtr();
- #endif
-
-     // Push non-volatile registers which might be modified by jitcode.
-     size_t pushedNonVolatileRegisters = 0;
-     for (GeneralRegisterForwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) {
-         masm.Push(*iter);
-         pushedNonVolatileRegisters++;
-@@ -416,17 +424,32 @@ NativeRegExpMacroAssembler::GenerateCode
-     masm.pop(temp0);
-     masm.movePtr(temp0, StackPointer);
- #endif
-
-     // Restore non-volatile registers which were saved on entry.
-     for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
-         masm.Pop(*iter);
-
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-     masm.abiret();
-+#endif
-
-     // Backtrack code (branch target for conditional backtracks).
-     if (backtrack_label_.used()) {
-         masm.bind(&backtrack_label_);
-         Backtrack();
-     }
-
-     // Backtrack stack overflow code.
-diff --git a/js/src/jit-test/tests/regexp/bug1445907.js b/js/src/jit-test/tests/regexp/bug1445907.js
-new file mode 100644
---- /dev/null
-+++ js/src/jit-test/tests/regexp/bug1445907.js
-@@ -0,0 +1,15 @@
-+// On ARM64, we failed to save x28 properly when generating code for the regexp
-+// matcher.
-+//
-+// There's wasm and Debugger code here because the combination forces the use of
-+// x28 and exposes the bug when running on the simulator.
-+
-+if (!wasmIsSupported())
-+    quit();
-+
-+var g = newGlobal('');
-+var dbg = new Debugger(g);
-+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
-+var re = /./;
-+dbg.onEnterFrame = function(frame) { re.exec("x") };
-+result = g.eval("m.exports.test()");
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 097b313e90b..6c72284c19b 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -51,14 +51,14 @@
      ]
 --- build/moz.configure/old.configure.orig
 +++ build/moz.configure/old.configure
-@@ -159,6 +159,7 @@
-     '--enable-accessibility',
-     '--enable-address-sanitizer',
-     '--enable-alsa',
+@@ -169,6 +169,7 @@
+ @old_configure_options(
+     '--cache-file',
+     '--datadir',
 +    '--enable-sndio',
-     '--enable-bundled-fonts',
-     '--enable-clang-plugin',
      '--enable-content-sandbox',
+     '--enable-cookies',
+     '--enable-cpp-rtti',
 --- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig
 +++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
 @@ -349,6 +349,21 @@
diff --git a/srcpkgs/firefox-esr/patches/yuv-be.patch b/srcpkgs/firefox-esr/patches/yuv-be.patch
new file mode 100644
index 00000000000..1c26f2ecced
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/yuv-be.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User A. Wilcox <AWilcox@Wilcox-Tech.com>
+# Date 1543674229 0
+#      Sat Dec 01 14:23:49 2018 +0000
+# Node ID 0309ff19e46b126c527e633518d7de8570442114
+# Parent  53107afbc21ec78e7ac46d37af212505f2032d5d
+Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
+
+diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp
+--- gfx/ycbcr/YCbCrUtils.cpp	Wed Nov 07 04:50:21 2018 +0000
++++ gfx/ycbcr/YCbCrUtils.cpp	Sat Dec 01 14:23:49 2018 +0000
+@@ -3,7 +3,9 @@
+  * 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 "mozilla/EndianUtils.h"
+ #include "gfx2DGlue.h"
++#include "mozilla/gfx/Swizzle.h"
+ 
+ #include "YCbCrUtils.h"
+ #include "yuv_convert.h"
+@@ -236,6 +238,13 @@
+                           yuvtype,
+                           srcData.mYUVColorSpace);
+   }
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRX
++  if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
++    gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
++                     aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
++                     srcData.mPicSize);
++#endif
+ }
+ 
+ void
+@@ -257,6 +266,12 @@
+                         aSrcStrideYA,
+                         aSrcStrideUV,
+                         aDstStrideARGB);
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRA
++  gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
++                   aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
++                   IntSize(aWidth, aHeight));
++#endif
+ }
+ 
+ } // namespace gfx
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 05a0a521341..def96276d3b 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,8 +3,8 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
 #
 pkgname=firefox-esr
-version=60.8.0
-revision=2
+version=68.1.0
+revision=1
 build_helper="rust"
 wrksrc="firefox-${version}"
 short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
@@ -12,11 +12,11 @@ maintainer="Eivind Uggedal <eivind@uggedal.com>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.mozilla.org/firefox/organizations/"
 distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe
+checksum=f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac
 
 lib32disabled=yes
 hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
- cargo llvm clang rust cbindgen"
+ python3 cargo llvm clang rust cbindgen nasm nodejs"
 makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
  pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
  libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std

From d44bf5453a84e084c37b1ed98803dffa36ce6758 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:37 +0700
Subject: [PATCH 2/3] firefox-esr-i18n: update to 68.1.0.

[skip ci]
---
 ...irefox-esr-i18n-as => firefox-esr-i18n-bn} |   0
 ...-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} |   0
 ...fox-esr-i18n-bn-IN => firefox-esr-i18n-ia} |   0
 ...-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} |   0
 ...refox-esr-i18n-mai => firefox-esr-i18n-oc} |   0
 srcpkgs/firefox-esr-i18n-or                   |   1 -
 ...irefox-esr-i18n-ml => firefox-esr-i18n-ur} |   0
 srcpkgs/firefox-esr-i18n/template             | 202 +++++++++---------
 8 files changed, 100 insertions(+), 103 deletions(-)
 rename srcpkgs/{firefox-esr-i18n-as => firefox-esr-i18n-bn} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-IN => firefox-esr-i18n-ia} (100%)
 rename srcpkgs/{firefox-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} (100%)
 rename srcpkgs/{firefox-esr-i18n-mai => firefox-esr-i18n-oc} (100%)
 delete mode 120000 srcpkgs/firefox-esr-i18n-or
 rename srcpkgs/{firefox-esr-i18n-ml => firefox-esr-i18n-ur} (100%)

diff --git a/srcpkgs/firefox-esr-i18n-as b/srcpkgs/firefox-esr-i18n-bn
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-as
rename to srcpkgs/firefox-esr-i18n-bn
diff --git a/srcpkgs/firefox-esr-i18n-bn-BD b/srcpkgs/firefox-esr-i18n-en-CA
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-BD
rename to srcpkgs/firefox-esr-i18n-en-CA
diff --git a/srcpkgs/firefox-esr-i18n-bn-IN b/srcpkgs/firefox-esr-i18n-ia
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-IN
rename to srcpkgs/firefox-esr-i18n-ia
diff --git a/srcpkgs/firefox-esr-i18n-en-ZA b/srcpkgs/firefox-esr-i18n-ne-NP
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-en-ZA
rename to srcpkgs/firefox-esr-i18n-ne-NP
diff --git a/srcpkgs/firefox-esr-i18n-mai b/srcpkgs/firefox-esr-i18n-oc
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-mai
rename to srcpkgs/firefox-esr-i18n-oc
diff --git a/srcpkgs/firefox-esr-i18n-or b/srcpkgs/firefox-esr-i18n-or
deleted file mode 120000
index 0707c37f205..00000000000
--- a/srcpkgs/firefox-esr-i18n-or
+++ /dev/null
@@ -1 +0,0 @@
-firefox-esr-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-esr-i18n-ml b/srcpkgs/firefox-esr-i18n-ur
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-ml
rename to srcpkgs/firefox-esr-i18n-ur
diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 8c43a8ace7c..b4e17fb16f0 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'firefox-esr-i18n'
 pkgname=firefox-esr-i18n
-version=60.8.0
+version=68.1.0
 revision=1
 build_style=meta
 homepage="https://www.mozilla.org/firefox/"
@@ -19,13 +19,11 @@ _languages=(
 	'af     "Afrikaans"'
 	'an     "Aragonese"'
 	'ar     "Arabic"'
-	'as     "Assamese"'
 	'ast    "Asturian"'
 	'az     "Azerbaijani"'
 	'be     "Belarusian"'
 	'bg     "Bulgarian"'
-	'bn-BD  "Bengali (Bangladesh)"'
-	'bn-IN  "Bengali (India)"'
+	'bn     "Bengali"'
 	'br     "Breton"'
 	'bs     "Bosnian"'
 	'ca     "Catalan"'
@@ -36,9 +34,9 @@ _languages=(
 	'de     "German"'
 	'dsb    "Lower Sorbian"'
 	'el     "Greek"'
+	'en-CA  "English (Canada)"'
 	'en-GB  "English (British)"'
 	'en-US  "English (US)"'
-	'en-ZA  "English (South African)"'
 	'eo     "Esperanto"'
 	'es-AR  "Spanish (Argentina)"'
 	'es-CL  "Spanish (Chile)"'
@@ -62,6 +60,7 @@ _languages=(
 	'hsb    "Upper Sorbian"'
 	'hu     "Hungarian"'
 	'hy-AM  "Armenian"'
+	'ia     "Interlingua"'
 	'id     "Indonesian"'
 	'is     "Icelandic"'
 	'it     "Italian"'
@@ -75,16 +74,15 @@ _languages=(
 	'lij    "Ligurian"'
 	'lt     "Lithuanian"'
 	'lv     "Latvian"'
-	'mai    "Maithili"'
 	'mk     "Macedonian"'
-	'ml     "Malayalam"'
 	'mr     "Marathi"'
 	'ms     "Malay"'
 	'my     "Burmese"'
 	'nb-NO  "Norwegian (Bokmål)"'
+	'ne-NP  "Nepali"'
 	'nl     "Dutch"'
 	'nn-NO  "Norwegian (Nynorsk)"'
-	'or     "Oriya"'
+	'oc     "Occitan"'
 	'pa-IN  "Punjabi"'
 	'pl     "Polish"'
 	'pt-BR  "Portuguese (Brazilian)"'
@@ -104,6 +102,7 @@ _languages=(
 	'th     "Thai"'
 	'tr     "Turkish"'
 	'uk     "Ukrainian"'
+	'ur     "Urdu"'
 	'uz     "Uzbek"'
 	'vi     "Vietnamese"'
 	'xh     "Xhosa"'
@@ -136,97 +135,96 @@ _pkgtmpl() {
 	}
 }
 
-checksum="ff8a0e5081e1bf6f1794ea47dab8f32f5b28580c423bccc149e16f4749e36c50
- eb86ab716a1d6a32bd102952f3ac13b7708ac9fdb947e72e0f66891f872c1cb0
- beb35664f371716cebd1a4a4c84b44129c381a1dc9a38dea19684fd5f15e407c
- 25e8cdd8d22a1073143e2c88e5d3c4d96b505edbe9c18bf29fb5fbf4c68db620
- 7a05659ee866abc198bd55169b189f8e1f4daa1259b28bef78918ee0e84ed669
- 610f0c658af4d93eb7d70a459317323845a641b229f1dd42c4ee66ee660067d9
- 021d5f86239831892335f8d4b434bff3e129b774588e8b49758b3ff97534b055
- b3d75d79148ef5000aaca5d6948e09dcc43673f9d51a91bd21c51eaee34a4bf0
- 6481896744f2a0e596f425de2590ab78e153463a8bd16fc9398bb0e6a2278f3c
- a03b62fe0dba6a9aaf080505299d632dec7eb98d2973c42b53330ec25695d9c7
- db332375bf0224ac90a0aec2475c70d0262f52a0f856ef5d244ba7ab8d89bb90
- ff234f75fe294bf4278d7976a7c44815f5aa9e981e9742fb322f19726a38dcbc
- 5f0d36853f12f5fc3d8a85874718bcef77103903cb732c370b4e301dffb38a51
- 6b336951b07e1dd63472027d7603439ee5384b3f6a814c7be34d0cdeac1bd4d0
- 21e196147819aab031a733a4ad78b4c67d77120cd8976e7aa0b364823a3beb01
- 4edbad866270ef310932149188d4e4b0d786abc22db3196430d9db9b9113e992
- 0acf0db94b5e56fd81c14a763e2b4dd32c10f21824464195e30adc7ed9e4c021
- 440ac13c8d241d537c7de382a10ca1da1716cc302dc200ac5039ac43efcfd8a6
- bb7fc4aeffeca0c89a2ba33a7c762f4764cd70334f74cfa5d4b51fc4449aabed
- feebf56ff307f191ebd2af9990840db9e3e447c0cfbdea3219320b108838202a
- 9ced74783c6e21ae934243b3558ba1ecbe2858b6cfe57a031389d4c91b4887dc
- 958ff950724abf9c593685991246325ff6d04f73ea9c518dcefe24e289770c9e
- d8f5ef61b8a2bbe021fef63d09cb8e83a848a8100331acecdd70c47cf0cf9d43
- db9f3432a6a364791e0c4c8e47516c60182a0640a8ef795e24b7fc2465c7a7b3
- 7558f05cc6319ef57cf54a176b41bb9ac6d4650de9099998d3d4ad83163d07cf
- 8f8ef308c6c5d06f20feae2e4f6b29aa0db271f1a91f1d3ad097aa7a51948384
- 987c9758f4a71bd3e7602cfd977a611fe28d58ae28f324ba1325382958735aa7
- 1ac4c54b7ed0bc407711c589328d192b1b49a4b23417d294bd3608bbc5f40581
- 71d5f764c000ad31f252fa36a94d6a178b552c1a9e4815ae883e7c490ed4d401
- 74441cfbfdbd111ab87318598dd4a3c8aaa4c4db2b86a12bc6cf41fa05881ea8
- 43bffe371b4cb25f21bf767f618631a96b24e72a658a72759f4bb6a06bc5bf32
- 50fa12cc74afb9faca4ebb8ae47d2e22756f4cae70e3c8169fbf0f568dc64fc8
- 85e3332ce6656d8df3a492ed837192df3991aab1314c1c5ef25a67bf61360cbf
- a3dadeaca0193cb249b087b165e1d6fbbd322cf06485a7cf1a35c090b4adeb31
- 55cbc207ea34d61519f48946c077cc9dfa17d24eed5310f58838af289ea0b60f
- 31c6f72f72743a4b085eb699627a3917e92531066388343a40ffc6412277027a
- 38f1b0d8091f864256464cec0e7f78f474020feb7c4748b84160c6e074088b60
- cf2c4efce1203eb8c8f8a984b90c61672cfe9a6d05da3cfecee52e12189301a0
- ca8e8da872f5053cfa15d8395d8f10a66794589833714538b0c67fd83c340466
- c15707031179223c545a4299306b3df107ded62b685363a5e3274e318b88f219
- c1699a128003f23ef5662919ed1b33c5d61caf914985e39853df29a1ba35828c
- 3fb4a2283723b2ef3709c88baeb99e77bbba33c9e835c2dfedf28c6b2ecad2fa
- 344b3b3149aa3b77f10f49b86a76c6ff0179043048093c541944058f620e8845
- b43880065a4a92aeff823e4913eabe953e88cafb9cd414b2f616475cd7af69af
- 94b414e2f89f030c131742de0d9ba48f13b16b40e06dd568c10cea417b57b5ba
- 177ca8c3883d9c5d7e4a84b79dbc7b64e430fabaa247b0cee78f9ef65e2b5aa0
- a2a071c6e3604287a99e78042b34d02d4d91b27d3b23b9ea90945da7d9456012
- ae57f94246c078f8e2d4b8c297b281115bb008a811bf2a783278deb916007da4
- a222763e7d2d5eda8a15869f85c19765111841a2ccf4d18993eb83f20bdf4933
- 7771989dad60a20756517a6f696d939039cf5f10aa47d271e2ff5c465bd7b4c0
- 389b3c1b09e744c8fe843e3784088ea72214571b975ea9d69aaeb7c4264a990b
- d5fea97921089f0b4a6a8667ddf19a430eca78223118818480a202e563088943
- 617b9daf4d828bc66fc8061601adc9c40b25f1338c5f527d9fbf83dfa3e8770b
- 87d2ec6cadb2a61909888af5cc80a4dacd64493d82d0282679ba3c597918fb07
- 1afe05f69af9bc0b0e37d1c6d0942073349b173433a41a83b3a732e6fa026511
- 68b80d99dc3ff2c2828622cdf7d21c32e6f00904a239eef3f5eedb8fb8476386
- 853ec1ad7ef319a60586902c5b3dec73e0800c7af2d94e44b549d4f03f114fd7
- d0c9e3dfd07994ebf26d4ad98ef997cb62c90c07f9d0e70c8b2f7771f39b1b95
- f5b14095e891af078ef256460a41b19e00fbcd81eba66e0331af8bc096288963
- bec28861d16cf418fa06d650765c3be8fbc02b69b41b079d3907bb01c3d8096a
- b042d80a54dbc7cd0fdf24ba3599404632d84635ae73204235dbf66ef7a35a26
- 7b791bfc3bd843a291d74d86f88c0a5a31af13d9da9f135841fd7859c442f733
- f12eb8be3a7ef93146c161f6ba02b9d9b892b792d0c190adb92398802f5365fe
- 49addce322b6020d69b65f72ee4e82a140cd0e712c647127f6fac5b66e6f51b5
- acdc9ae4ae7397ade4c4053dc3b1f22ef42cc844bf853e5e846d1f6b0c5d5cab
- 02ac07e226734f1f693283784816b3c96a48b4e592c676673901104c5dcc72b2
- b102cf97790415b804182743426e8eb1304675fb4bf360e64ae9055cce87b2f1
- f8988dfc783c4b39d8a3a44e1000c6376bc211ab6297a49eddf5194b71fdfbde
- 58cad897f3bd51b9a1fcb7d4e4d3fc6bac47e5b2d4c6c19096732556eaec1314
- 23af8e26632da7c5d791a8891295eb2a83cde54390d9cd17692525f6e32ff6ed
- 0d38ca007291146731793d1a2c7e07bad2d2ed82668dfbd5be14daacf7abdce7
- a5957711b3fd9665dd2fed5fdbbb0a2fcbce54ad43ccd6800ddf7ccf5be731e5
- fcc2580a8ab3e95d23af7ee373a9bfcdce52e2a5ce59bb59d1ba1dca75772239
- bc3a8480ff73c752cc1cbfa80c327b155b194553c3568534b9d20f7e2176df1e
- 196abc6109092f326b387f5cffad880e5b6a857203127cf1f76622ca5a823ad2
- 002109cec6f2e40fb4ffc07b04c72a8debd128357925e8d51e5a84614004a086
- 83be2c2c9f9c93c0c31c5d30c0e6fdef3df2381f7c62c64a8313066f64c98b0f
- c7c83b2c405c432c3de1c187cfc800025502b1931e07ff1108648e77279441ab
- 8156b74896fd7b69fc306f90f1fd5291316d3c9b4c5ab4df620cab8d782b466e
- 27ff153a51f800ea9620042acc47aad6b2392c3551a4be30e982652ef89fcdf2
- abbbd74fb4e2ce5cfb254837c8383c9cca637bbdfd05d403526a50b08806c050
- 0c6ada2d7bf26be43d4f3fa8f37581a1f1a3113c3399ebd328736802dbe7623f
- b8c50654545a923e7ad7ef43bb1f2ea56b845b3443ffa0410b9bb7a6be9b8b91
- 4e49460bd3cd763e9527c771c4030237700e2eb73a359fefce3bd2146db7d56e
- 82bab7b006ab019d2bf2d6b3ed9aa85796f8dc1f827ed7350b0286dbd19bbc78
- 9b6adcd828ed3c2bb4950df6a2634bc943768b3d852e2e258e52c7e2da7a5ca7
- ccd0aa23ba2662e766e2adcab201076dfdcfc5cf288e4c4bbeff6d0d3c451abb
- f3709e35f5d4d317733f943aec9e977fd83acc1eaa9a35cf149dbf05e345146c
- 282d60e14be013a29ba09611f7ebe37d1fa5fe6dd8e441a1f10270d4e10323d6
- 742960a8b13cab9901267237accfcbcded21018aff9b6fc1bfd0ab37b7c8b607
- 0ae68434908b9512c46f22a6f3149b0f611f77306887a7641527d5df55725517
- 432353f98d29dbec0bc0eb50f0316220f155dee755ea0b4cb45b0636a0fcffde
- 8c1bbca429dd81d9180639ed1e526892908d26c1784f5f9c37093577b82d25fe
- c9651a78d2d2395711d320f6fac1ffd37048d4bffc544a2f2e182cedd237d090"
+checksum="c3fafda87192d9b98dc9b2b99d62b7109dbd72f73e8d5de1ea2a418ed086317b
+ 93af0702aae30332eecdc0f407dc29080923660508018fca14fe1307fdf375a1
+ a40baf64e7376e4916fa96d7199bad099edc7e897d65b5ecc4a2dc9fdbba2e75
+ 1e915f6a0860f2f7f583a70a5668ec5033969fbba177c3d3da4e244d01ba5cb4
+ d6c45490cec27609f43fb9af406ba15e25fff544f10d038e650a5b25d2ba5a69
+ 2b5d84d3f7800d162b095d0ee77da8264af9eac3a98dfff7e14b26510c92be1e
+ f317a73af579bbb42bc6635900e5b529f5198daaf54c5a7f51756b7707747444
+ 6e65702a500ef4d2841eacbd9e16ca692d25a9aa3fcf38be2603657bfb03a80d
+ 7b056d739b64407e92a6738c8e3a5f6fe070380196c057d3f832be4015e7957c
+ 6bdd5ab6efd06bd384e227d78de6cffeac4c828ce6254d152e0137c70eb7b2e9
+ b60364c109f3fe94387bfb27258c65c09b7761248e309adb8f92eda0c6c1dddb
+ 3b91a27432306a6152f6cee7b19d684476c4282743259eb0e5f90db6483216e6
+ a17149908edf9a173b9d7ca3eac644cf45cd0e35ba40c565903ea9af9580e41e
+ b404f670ce1f3cc7fbdb170e9f0286e0a7608d779c5dae83ce5adee911876e6d
+ b41236a8ce2e96edf02165bd1ad91de967d8605ed7a9c77f079027ea0b13a7cf
+ 1f444a10561108bdfb98d43531c33d377a2565763d1299c96ef3c1f746b10555
+ f15e57588ccdf2a6be3b51fba066dc030e2808071b29957c3da844b272d1dd25
+ d51b8bdbc415fcdf5df587e364b8a3edb6296a988c38dbfb0fbec40b5dec856e
+ bcfbd612f55efff2dc98cdf9ff6ddf3d8e91274ead7d8d8bf1023cb28b815623
+ f711d9206635ac98b3eec788791089d1a64316dc55ad4be2f6043acca79317b8
+ a48efe9f0a885060fe2844ae056fb9de8932e45cfda399959ff8a4f54c99dc3f
+ c919c3557a66188ea7ab58210f6fe629f5e111bd73c0f94f298e4635c21b5f05
+ edf74a83a03f85dfb2172053cf1816736fdfb4c42fbacdf4626b128186fb15db
+ 76bc68c806add52aa205f9f6a55dd6c141ecfaa29ce5b63fe06cb8bf1ce0c567
+ af3763e63550893a001a651c5d89e4bb529004de98d58f2dc2a49336239171bf
+ 979725bd9b1b8aade54e0e24efdc2c716381130559615f45c007f0d68a0b0b69
+ db96fd8658bc75f4813ddaf457c888e3f0656dc407b12d7799dbdebb7cc1a9ae
+ ba5e81b435217c15e2d55a42d34e3313e9ad1302b34599a25b48a23846dfc920
+ fd3988b0ddcfa721fd702c126dd531f5b77f1f5af8ac61e8b23307c5b84e8e72
+ a58a245d30efb8ad6553166dd2469da504d6cf3c773e52da15c3677899f37c4e
+ 3fd377be34a8786a726a13c88d28b2b73155b1f527b2909e6841474631ce8226
+ 790af48c82bf520bcd8f915af77d1e0c8f156ae6c028b1fa0f39c3c991865d1c
+ 46b8071a1e23d8c5af1ced98cfbdb1a2258f679425434e092fbe1c42dfa26066
+ a4eefa1ff84e33059d055c984dbb47283d117cb63ad9e39d7cc4c4e61ea9c11a
+ 5a91be294ac35aac472c4ba8324221551abb2e8cb66f995806606c191dca0428
+ 9a4a582673dc466a684fd2beacbe77a152047e6023b1e247f5eda7b513e5e30d
+ 039af250c8b2dc6254b2f24975704095406c70090de9d21ecc73975d8d874675
+ 3c77fd2a4cfc49ff94994b46a9b80ea24e534299838dd64a11a5dc2ef110f901
+ feaeb14a016d732b3ec0be6266bd078fdf220c48c38683a4dd7315e076839b82
+ a4756471f45168ff28fdc0e87c65b33288ca1f7fd2eedb7e31a726ee4766fb3c
+ 4eb62cbed52d1cdad08551a38d1f7656c71ef986df49eee0381e9aec7b11c0ba
+ 8e967ef8ff1f1a2fc21ea537d629d40a38d6b8789ce344e79d7a3b3b78138968
+ e008e241c41900d6df1128d5dd55d41e1ed43d7c60d48329a321716968397b09
+ 7011776c661b07bc3fd7d24b62765aeee10ba2a72ea4112862989f759aceb466
+ 760c44d1512be5f10264d195785e45d47c46595ef57c24de81c070a81ba65456
+ 531ec7550a9ab4e2410e9c69495852eaa0e7df43e022ed7ec0f0c50e148a4506
+ c46413f7aa225147712fb634483f64c9368f43d03ba6f66405e4c9dc281421b4
+ 42debde9c9341fc910ff382e94fade233b3ad23e4f474d89426648c659a99a12
+ 50f1088649f77e0f83dffe3e81dd8ac993d1d8f06d8f231acdf98a69cda9147a
+ 2a4f6162bfbf5ea44c832c0d5896079b0ce69e590dc377e3bbd37a92f9780e6c
+ 60aa95eb50d59ddb2bf57d5cfacf860d4cc2c8b86a219f35ceaa30d82fd6e593
+ 73a416254d022b051bb38ebf085772c031ecba18ab4896634ba8599fcb396f7b
+ ae3aa802087754458465af30a4ddafc8baa08e101a4e177b144b4f606a78b941
+ 30c7498935e0d4529ccbe3a5c7671aec9505d0132cd6123f97c0680c80cbb917
+ 99b76ac0f7cf4c5d5ae8b66ae3e54e3932c6a6f101aba8b156cf8d78a67e3f0b
+ 1bcb69081c99b27781c81becce86baaf2f1da54ceba009904ad2a5a8614eaa68
+ bb3152472d5582b365722a83972b416d78b8bddfc6dbea40d1c778c37eb86623
+ 426115a07ce25b7d2ae89024bf81e8b5957df9d8709bd6e5c1da704633af3c85
+ 24918b9cd56f5fe12c7e02b0cedcdaf2abeeb7ec3cdb75a4aee3ca2d4aaaa961
+ 8497c47c4f151966538836b0dfa312a044d8496ffc4647fcf62c8ed19b2337d9
+ e160dd5b88f37562d7cbace3f46b8fd8edc5b9211f4240d8e38aec3dd81d915d
+ 298ab33911b8c425e6032eba867bc31925ea24b2457298bbf965bd6b194edc3f
+ 4c53367e4ddcff92733a95139baf9610390bf3eaf78ef5a5d10b4530c359e8eb
+ f340c62b77eaaa6bde0e61944c508b32785619ad4ca54b7dfbf281fcb986eac0
+ 99201be46e35f22312a27da2a2afc54f46043342a1c577fa64696ef365198329
+ 41e4d2d255435d2b50a8e0c4c59b13a0a0aafae925cd32e20bf9005cd066d11e
+ 266141c6c9a6729da904dfa040ae20d80a6b5c39efc31fcf2d039ed65e9c2b28
+ 33daee0ac659ec7d1fb1cb101798dae2ed0077653fc9170bcbb5bc554ee3e433
+ 23b74270aef1c6a4bff5194103a430e6854fe4c460e5c684769bd7c59d1afa0d
+ 9405687dbb0a81e8be8f842824f2fe65830b70a0dd0dcde84cc8a21d6637f841
+ 40a608e720136044f4b95728474fcb82764e61d649551be438e330b63753635f
+ 0ef710447a36e81a6c86b17ee28d2cf463242834936af2578074df6e11c2baea
+ 3f0d0d33abda068465d7747149cdf11a4b1dc819f7da7f1f7a3d9c2a45307231
+ 9d2c3438776531077e379e97a449e714882896c53dbb87052de7e7ac77ea3d67
+ de9b4ec945265f5539025fb73b713322924da2d1a51b5bd6ad1baba4584c76e1
+ 7b66c7d5e1b9eb6959295a76416271220e84ecc43a97a5f5f07ec99986579cb1
+ 4404f5fe56868f5c551208d72630b91a88c68f78d7463e8e1d221fd7406c0783
+ 3f55ec2730a870951759961c83d6654c7122a3114e136a6e2bce7c05d6062d89
+ 873819bc254911aa3a443d0a9db306b472f7f31af8d986d54c535bce67a4b1c0
+ 07326e95015601946706f50333c32b0919025376abcdf88dc225dae2c167b19a
+ bfdd58d9f0f0e809e6b801f65c722c61b4dbb5e6635cecd7390d1403f1dd6f42
+ 8c2d716291a28cc64f93078d2bdf8d756a6521e3b0107815788c48452eac95f0
+ 9b07735b4d8e8359e38d671ed054b373c4ed50a232013807d09ca4fae31e8223
+ 5592ee66611515f8583a48211d70764fdb28c54b1ad4de5b4b87a9d3b101a182
+ d36e2c9a894beb94b62855bd07d4b54e41fc96c0736b5e2e702422e75b3cf21e
+ caf7dd282fb6dc065eb6a0c124cd458716d877a500c094ff650c4d40302dd49e
+ 80bd3c70433f6b3aacdbd370b70d4fe0eab13547d1f6368b80eb5c28a759141a
+ 67b359947cbe15b2be1ad2567d74a36cfe5f27665a058b0fab19ed37ddd63a30
+ b3347d5cec7f9f6e3aa4b5ccdd49350fd0879c20938bfc22664782c377dd73a6
+ 79b512427977c359ec8f93e4880cd5397ccddb013676d2d39837f06433fe4041
+ 883d5daa5b041778b0984a7e86ecfc4892af1aed1ec09285ac031e335075524c
+ bc1981c7cb2e6d5aecec7fb0f370c1da52895f00d238c1afa2b4e31b93580eb6
+ 6278e5c054f50d3de62de9d070d21d2842d4d0ff9212d852af8eb672fad7ecea"

From 33d5d1eba341b9d093bb580f7a5369fb0e2a2128 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Sat, 7 Sep 2019 18:09:55 +0700
Subject: [PATCH 3/3] firefox{,-esr}-i18n: add script to update firefox locale

[skip ci]

Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
---
 .../firefox-esr-i18n/files/update-lang-list   |  1 +
 srcpkgs/firefox-i18n/files/update-lang-list   | 81 +++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 120000 srcpkgs/firefox-esr-i18n/files/update-lang-list
 create mode 100755 srcpkgs/firefox-i18n/files/update-lang-list

diff --git a/srcpkgs/firefox-esr-i18n/files/update-lang-list b/srcpkgs/firefox-esr-i18n/files/update-lang-list
new file mode 120000
index 00000000000..d6e91286846
--- /dev/null
+++ b/srcpkgs/firefox-esr-i18n/files/update-lang-list
@@ -0,0 +1 @@
+../../firefox-i18n/files/update-lang-list
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n/files/update-lang-list b/srcpkgs/firefox-i18n/files/update-lang-list
new file mode 100755
index 00000000000..65d076b4870
--- /dev/null
+++ b/srcpkgs/firefox-i18n/files/update-lang-list
@@ -0,0 +1,81 @@
+#!/bin/bash
+# Copyright (c) by Danh Doan
+# All rights reserved.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+version=$1
+
+esr=""
+[[ $version =~ esr$ ]] && esr="-esr"
+
+tmpldir="firefox${esr}-i18n"
+
+tmpoldfile="$(mktemp)"
+tmpnewfile="$(mktemp)"
+
+xoldlangexpr="^_languages="
+
+xlistold() {
+	source "${tmpldir}/template"
+	for _lang in "${_languages[@]}"; do
+		_locale="${_lang%%\"*}"
+		[ $_locale ] && echo "$_locale"
+	done
+}
+
+xlink () {
+	ln -sf "$tmpldir" "$tmpldir-$1"
+}
+
+xnewlang () {
+	lang=$1
+	padded=$(printf '%-7s' $lang)
+	xoldexpr=$xoldlangexpr
+	xoldlangexpr="'$lang \+\""
+	grep -q "'$lang \+\"" "$tmpldir/template" && return 0
+	sed -i "/$xoldexpr/a\\
+	'$padded\"Unknown\"'
+	/checksum=/a\\
+ badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb" \
+	"$tmpldir/template"
+}
+
+xprocessnew() {
+	while read lang; do
+		printf '%-7s\n' $lang >&3
+		xlink $lang
+		xnewlang $lang
+	done
+}
+
+xcleanlang() {
+	while read lang; do
+		padded=$(printf '%-7s' $lang)
+		sed -i "/'$padded\"/d" $tmpldir/template
+		unlink "$tmpldir-$lang" || true
+	done
+}
+
+cd $(xdistdir)/srcpkgs
+
+xlistold >| "$tmpoldfile"
+
+curl "https://ftp.mozilla.org/pub/firefox/releases/$1/linux-i686/xpi/" \
+	| grep -o 'xpi/[a-z]\+\(-[A-Z]\+\)\?' \
+	| cut -d/ -f2 \
+	| xprocessnew 3>$tmpnewfile
+
+grep -vF -f $tmpnewfile $tmpoldfile \
+	| xcleanlang
+
+rm -rf $tmpoldfile $tmpnewfile

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PR PATCH] [Updated] Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (7 preceding siblings ...)
  2019-09-08 10:11 ` voidlinux-github
@ 2019-09-08 10:12 ` voidlinux-github
  2019-09-08 10:12 ` voidlinux-github
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-08 10:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 347 bytes --]

There is an updated pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages firefox-esr
https://github.com/void-linux/void-packages/pull/14229

Firefox esr
Built and tested for:
- x86_64
- x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/14229.patch is attached

[-- Warning: decoded text below may be mangled --]
[-- Attachment #2: github-pr-firefox-esr-14229.patch --]
[-- Type: text/x-diff, Size: 51057 bytes --]

From f4d806dd409cebe038a1e70c9a2cfa52449d72d5 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:17 +0700
Subject: [PATCH 1/3] firefox-esr: update to 68.1.0.

---
 srcpkgs/firefox-esr/files/mozconfig           |  6 --
 .../disable-image-format-warning.patch        | 15 +++
 .../patches/fix-arm-opus-include.patch        | 11 +++
 .../firefox-esr/patches/fix-i686-musl.patch   |  9 --
 srcpkgs/firefox-esr/patches/fix-musl.patch    | 11 ---
 srcpkgs/firefox-esr/patches/fix-toolkit.patch | 35 ++++---
 srcpkgs/firefox-esr/patches/fix-tools.patch   | 31 +++---
 .../firefox-esr/patches/fix-wasm-arm.patch    | 15 +++
 .../firefox-esr/patches/fix-webrtc-arm.patch  | 11 ---
 .../patches/fix-webrtc-glibcisms.patch        | 17 ++--
 srcpkgs/firefox-esr/patches/fix-xpcom.patch   | 11 ---
 srcpkgs/firefox-esr/patches/gettid-musl.patch | 11 +++
 srcpkgs/firefox-esr/patches/mallinfo.patch    | 40 +++++---
 .../patches/ppc-no-static-sizes.patch         | 19 ----
 .../patches/remove-rustc-check.patch          | 18 +++-
 .../patches/rust-unitialized-field.patch      | 19 ----
 srcpkgs/firefox-esr/patches/rust133.patch     | 24 -----
 ...nd-restore-non-volatile-x28-on-arm64.patch | 64 ------------
 ...-clobbering-it-in-the-regex-compiler.patch | 97 -------------------
 srcpkgs/firefox-esr/patches/sndio.patch       | 12 +--
 srcpkgs/firefox-esr/patches/yuv-be.patch      | 48 +++++++++
 srcpkgs/firefox-esr/template                  |  8 +-
 22 files changed, 187 insertions(+), 345 deletions(-)
 create mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-musl.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-xpcom.patch
 create mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust133.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
 create mode 100644 srcpkgs/firefox-esr/patches/yuv-be.patch

diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 5b3c6e46d6f..0798fdd40ef 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -1,11 +1,6 @@
 ac_add_options --prefix=/usr
 ac_add_options --libdir=/usr/lib
 
-ac_add_options --with-pthreads
-# XXX build without system cairo see:
-# - https://github.com/voidlinux/void-packages/issues/2308#issuecomment-135426813
-# - https://bugs.gentoo.org/show_bug.cgi?id=558150
-# ac_add_options --with-system-cairo
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
 ac_add_options --with-system-bz2
@@ -39,7 +34,6 @@ ac_add_options --disable-install-strip
 ac_add_options --disable-strip
 ac_add_options --disable-profiling
 ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-pie
 
 ac_add_options --enable-official-branding
 ac_add_options --enable-application=browser
diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
new file mode 100644
index 00000000000..bd56e6bc37c
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
@@ -0,0 +1,15 @@
+Imported from Adélie. Firefox is prone to this warning on BE and
+it leads to huge .xsession-errors, and the warning is not very
+important or meaningful, so just disable it.
+
+--- gfx/2d/HelpersCairo.h
++++ gfx/2d/HelpersCairo.h
+@@ -147,7 +147,7 @@
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
+-      gfxCriticalError() << "Unknown image format " << (int)format;
++      //gfxCriticalError() << "Unknown image format " << (int)format;
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }
diff --git a/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
new file mode 100644
index 00000000000..6e0c5875da3
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
@@ -0,0 +1,11 @@
+--- media/libopus/silk/arm/arm_silk_map.c.orig	2019-03-19 20:55:01.249609964 +0100
++++ media/libopus/silk/arm/arm_silk_map.c	2019-03-19 20:55:25.769400255 +0100
+@@ -28,7 +28,7 @@
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "../fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
+
diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
index 5345a3cd3df..6df609bbf16 100644
--- a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
+++ b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
@@ -9,12 +9,3 @@
       ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
        defined(HAVE__UNWIND_BACKTRACE)))
  #define MOZ_STACKWALK_SUPPORTS_LINUX 1
-@@ -911,7 +911,7 @@
- }
- 
- // {x86, ppc} x {Linux, Mac} stackwalking code.
--#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-      (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX))
- 
- MFBT_API bool
diff --git a/srcpkgs/firefox-esr/patches/fix-musl.patch b/srcpkgs/firefox-esr/patches/fix-musl.patch
deleted file mode 100644
index c32921d39e1..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/profiler/core/platform.h.orig
-+++ tools/profiler/core/platform.h
-@@ -56,7 +56,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/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
index ce4d7d01f82..86e8ef47855 100644
--- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch
+++ b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
@@ -47,18 +47,28 @@
  #include <a.out.h>
  #endif
 
+--- toolkit.orig/mozapps/update/common/updatedefines.h	2019-01-29 11:34:36.416804577 +0100
++++ toolkit/mozapps/update/common/updatedefines.h	2019-01-29 11:34:59.193583777 +0100
+@@ -102,7 +102,7 @@
 
+ #  ifdef SOLARIS
+ #    include <sys/stat.h>
+-#  else
++#  elif !(defined(__linux__)) || defined(__GLIBC__)
+ #    include <fts.h>
+ #  endif
+ #  include <dirent.h>
 --- toolkit.orig/mozapps/update/updater/updater.cpp	2014-03-15 05:19:37.000000000 +0000
 +++ toolkit/mozapps/update/updater/updater.cpp	2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
+@@ -3978,6 +3978,7 @@
+ 
+ int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
    int rv = OK;
 +#if !defined(__linux__) || defined(__GLIBC__)
-   FTS *ftsdir;
-   FTSENT *ftsdirEntry;
-   NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+   FTS* ftsdir;
+   FTSENT* ftsdirEntry;
+   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
+@@ -4085,6 +4086,7 @@
    }
  
    fts_close(ftsdir);
@@ -66,14 +76,3 @@
  
    return rv;
  }
---- toolkit/mozapps/update/common/updatedefines.h	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:15:53.946747750 +0100
-@@ -100,7 +100,7 @@
- 
- #ifdef SOLARIS
- #include <sys/stat.h>
--#else
-+#elif !defined(__linux__) || defined(__GLIBC__)
- #include <fts.h>
- #endif
- #include <dirent.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch
index 1e2fc4f7d39..0ed043fb5b5 100644
--- a/srcpkgs/firefox-esr/patches/fix-tools.patch
+++ b/srcpkgs/firefox-esr/patches/fix-tools.patch
@@ -1,33 +1,24 @@
---- tools/profiler/core/platform.h
-+++ tools/profiler/core/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
-
-+#include <sys/types.h>
-+
- #include <stdint.h>
- #include <math.h>
- #include "MainThreadUtils.h"
---- tools/profiler/lul/LulElf.cpp	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:19:53.198257189 +0100
-@@ -460,9 +460,9 @@
+--- tools/profiler/lul/LulElf.cpp.orig	2019-01-29 12:05:34.223834130 +0100
++++ tools/profiler/lul/LulElf.cpp	2019-01-29 12:08:02.480400845 +0100
+@@ -469,10 +469,10 @@
+ // 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) {
-   // Lots of copies!  basename's behavior is less than ideal.
+-  // 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();
++  // basename's behavior is less than ideal so avoid it
++  const char *c_filename = filename.c_str();
 +  const char *p = strrchr(c_filename, '/');
 +  string base = p ? p+1 : c_filename;
    return base;
  }
  
---- tools/profiler/core/platform-linux-android.cpp	2019-01-24 18:31:43.000000000 +0100
-+++ -	2019-01-31 11:23:07.911772317 +0100
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-01-29 12:09:40.980448579 +0100
++++ tools/profiler/core/platform-linux-android.cpp	2019-01-29 12:11:09.689590967 +0100
 @@ -253,7 +253,11 @@
-
+ 
    // Request profiling signals.
    struct sigaction sa;
 +#if defined(GP_ARCH_arm)
@@ -38,7 +29,7 @@
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART | SA_SIGINFO;
    if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
-@@ -497,8 +497,10 @@
+@@ -497,8 +501,10 @@
  ucontext_t sSyncUContext;
  
  void Registers::SyncPopulate() {
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
new file mode 100644
index 00000000000..e6ad61c9f44
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
@@ -0,0 +1,15 @@
+--- js/src/wasm/WasmSignalHandlers.cpp
++++ js/src/wasm/WasmSignalHandlers.cpp
+@@ -243,9 +243,9 @@
+ // If you run into compile problems on a tier-3 platform, you can disable the
+ // emulation here.
+ 
+-#if defined(__linux__) && defined(__arm__)
+-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-#endif
++// #if defined(__linux__) && defined(__arm__)
++// #  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
++// #endif
+ 
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #  include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
deleted file mode 100644
index 222be5f9e21..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc	2019-01-24 18:31:10.000000000 +0100
-+++ -	2019-02-01 00:13:35.690776711 +0100
-@@ -67,7 +67,7 @@
-   return 0;
- }
- 
--#if !defined(ANDROID)
-+#if !defined(ANDROID) && !defined(__linux__)
- #ifdef WEBRTC_ARCH_ARM_V7
- uint64_t WebRtc_GetCPUFeaturesARM(void) {
-   return kCPUFeatureARMv7
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 3ff2570b12b..cf895dd8448 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,18 +1,15 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-02-01 00:49:18.472382771 +0100
-+++ -	2019-02-01 00:50:25.928007236 +0100
-@@ -11,7 +11,10 @@
- #include <stdlib.h>
- #include <string.h>
- #include <features.h>
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2019-01-29 11:20:52.298793223 +0100
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-01-29 11:21:48.250250850 +0100
+@@ -14,7 +14,7 @@
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(a, b) 0
+ #endif
 -#if __GLIBC_PREREQ(2, 16)
-+#ifndef __GLIBC_PREREQ
-+#define __GLIBC_PREREQ(a, b) 0
-+#endif
 +#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
  #include <sys/auxv.h>
  #else
  #include <fcntl.h>
-@@ -29,7 +32,7 @@
+@@ -32,7 +32,7 @@
    int architecture = 0;
    unsigned long hwcap = 0;
    const char* platform = NULL;
diff --git a/srcpkgs/firefox-esr/patches/fix-xpcom.patch b/srcpkgs/firefox-esr/patches/fix-xpcom.patch
deleted file mode 100644
index 38dd582d96b..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-xpcom.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- xpcom/base/nsMemoryReporterManager.cpp.orig	2015-12-16 11:53:14.211144456 +0100
-+++ xpcom/base/nsMemoryReporterManager.cpp	2015-12-16 11:55:26.859476381 +0100
-@@ -46,7 +46,7 @@ using namespace mozilla;
- #  include "mozmemory.h"
- #endif  // MOZ_MEMORY
- 
--#if defined(XP_LINUX)
-+#if defined(XP_LINUX) && defined(__GLIBC__)
- 
- #include <malloc.h>
- #include <string.h>
diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch
new file mode 100644
index 00000000000..c1cb99bf651
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/gettid-musl.patch
@@ -0,0 +1,11 @@
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-07-09 22:58:30.039475686 +0200
++++ tools/profiler/core/platform-linux-android.cpp	2019-07-09 22:58:39.331437677 +0200
+@@ -73,7 +73,7 @@
+ 
+ int profiler_current_thread_id() {
+   // glibc doesn't provide a wrapper for gettid().
+-#if defined(__GLIBC__)
++#if defined(__linux__)
+   return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
+ #else
+   return static_cast<int>(gettid());
diff --git a/srcpkgs/firefox-esr/patches/mallinfo.patch b/srcpkgs/firefox-esr/patches/mallinfo.patch
index c9a38d45bdf..afea86c0a2c 100644
--- a/srcpkgs/firefox-esr/patches/mallinfo.patch
+++ b/srcpkgs/firefox-esr/patches/mallinfo.patch
@@ -1,18 +1,34 @@
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
+--- xpcom/base/nsMemoryReporterManager.cpp.orig	2019-03-19 17:12:20.844810044 +0100
++++ xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:13:32.505133615 +0100
+@@ -123,6 +123,7 @@
    return GetProcSelfSmapsPrivate(aN);
  }
  
 +#ifdef __GLIBC__
- #define HAVE_SYSTEM_HEAP_REPORTER 1
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
-@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
-     *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
-     return NS_OK;
+ #  ifdef HAVE_MALLINFO
+ #    define HAVE_SYSTEM_HEAP_REPORTER 1
+ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
+@@ -142,6 +143,7 @@
+   return NS_OK;
  }
-+#endif
+ #  endif
++#endif // __GLIBC__
  
- #elif defined(__DragonFly__) || defined(__FreeBSD__) \
-     || defined(__NetBSD__) || defined(__OpenBSD__) \
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+     defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+@@ -642,6 +644,7 @@
+   return NS_OK;
+ }
+ 
++#ifdef __GLIBC__
+ #  define HAVE_SYSTEM_HEAP_REPORTER 1
+ // Windows can have multiple separate heaps. During testing there were multiple
+ // heaps present but the non-default ones had sizes no more than a few 10s of
+@@ -698,6 +701,7 @@
+   *aSizeOut = heapsSize;
+   return NS_OK;
+ }
++#endif // __GLIBC__
+ 
+ struct SegmentKind {
+   DWORD mState;
diff --git a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
deleted file mode 100644
index 3f77023bb5f..00000000000
--- a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# Parent b735e618c2a860972197942f6680c941e3c9a67f
-# User Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
-Bug 997353 - Do not use compile-time page size for PowerPC.
-
-The PowerPC architecture allows various memory page sizes, making it impossible
-to predict the runtime page size.
-
---- memory/build/mozjemalloc.cpp
-+++ memory/build/mozjemalloc.cpp
-@@ -369,7 +369,7 @@
- // Debug builds are opted out too, for test coverage.
- #ifndef MOZ_DEBUG
- #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) &&         \
--  !defined(__aarch64__)
-+  !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
- #define MALLOC_STATIC_PAGESIZE 1
- #endif
- #endif
diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
index f6bebc8aab1..84077f4fc88 100644
--- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
@@ -1,8 +1,19 @@
 Mozilla rustc check does not support crossbuild: let's remove it
+Remove calls to unwrap_rustup, they fail if rustup isn't present
 
---- build/moz.configure/rust.configure	2018-10-01 16:28:31.000000000 +0200
-+++ build/moz.configure/rust.configure	2018-10-20 14:21:35.510000000 +0200
-@@ -204,26 +204,6 @@
+--- build/moz.configure/rust.configure	2019-07-06 03:48:30.000000000 +0200
++++ build/moz.configure/rust.configure	2019-07-09 22:35:23.326851798 +0200
+@@ -79,9 +79,6 @@
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -294,26 +291,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
@@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it
          finally:
              os.remove(in_path)
              os.remove(out_path)
-
diff --git a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch b/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
deleted file mode 100644
index 67ef3a02ab8..00000000000
--- a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
-+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
-@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
-                 return Err(Error::NoSpace);
-             }
- 
--            let cmsghdr = cmsghdr {
--                cmsg_len: cmsg_len as _,
--                cmsg_level: level,
--                cmsg_type: kind,
--            };
-+            use std::mem;
-+            let mut cmsghdr: cmsghdr =  unsafe { mem::zeroed() };
-+            cmsghdr.cmsg_len = cmsg_len as _;
-+            cmsghdr.cmsg_level = level;
-+            cmsghdr.cmsg_type = kind;
- 
-             let cmsghdr = unsafe {
-                 slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::<cmsghdr>())
diff --git a/srcpkgs/firefox-esr/patches/rust133.patch b/srcpkgs/firefox-esr/patches/rust133.patch
deleted file mode 100644
index ebdcac7e3a3..00000000000
--- a/srcpkgs/firefox-esr/patches/rust133.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-This fixes build errors under recent Rust.
-
---- servo/components/style_traits/lib.rs
-+++ servo/components/style_traits/lib.rs
-@@ -9,7 +9,7 @@
- #![crate_name = "style_traits"]
- #![crate_type = "rlib"]
- 
--#![deny(unsafe_code, missing_docs)]
-+#![deny(unsafe_code)]
- 
- extern crate app_units;
- #[macro_use] extern crate bitflags;
---- servo/components/style/lib.rs
-+++ servo/components/style/lib.rs
-@@ -23,8 +23,6 @@
- //! [cssparser]: ../cssparser/index.html
- //! [selectors]: ../selectors/index.html
- 
--#![deny(missing_docs)]
--
- extern crate app_units;
- extern crate arrayvec;
- extern crate atomic_refcell;
diff --git a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch b/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
deleted file mode 100644
index fa303f6d1e9..00000000000
--- a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1519822672 -3600
-# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6
-# Parent  223c97459e96183eb616aed39147207bdb953ba8
-Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor.  r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/800abe66894d
----
- js/src/vm/UnboxedObject.cpp | 30 ++++++++++++++++++++++++++----
- 1 file changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
-index 35ca20d7405f..1c20a1093d13 100644
---- js/src/vm/UnboxedObject.cpp
-+++ js/src/vm/UnboxedObject.cpp
-@@ -86,9 +86,16 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
- #endif
-
- #ifdef JS_CODEGEN_ARM64
--  // ARM64 communicates stack address via sp, but uses a pseudo-sp for
--  // addressing.
--  masm.initStackPtr();
-+    // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-+    masm.initStackPtr();
- #endif
-
-   MOZ_ASSERT(propertiesReg.volatile_());
-@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
-   if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
-   masm.PopRegsInMask(savedNonVolatileRegisters);
-
--  masm.abiret();
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-+    masm.abiret();
-+#endif
-
-   masm.bind(&failureStoreOther);
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch b/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
deleted file mode 100644
index aa2dcc6ba8d..00000000000
--- a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1521449886 -3600
-# Node ID 903a79a1efff18fc7cc50db09a3fe5d768adc9a8
-# Parent  4d2955a9ca7e30ca4c3af9c214ccc77fb2fe7fb8
-Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/903a79a1efff
----
-diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp
---- js/src/irregexp/NativeRegExpMacroAssembler.cpp
-+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
-@@ -118,17 +118,25 @@ NativeRegExpMacroAssembler::GenerateCode
-
-     Label return_temp0;
-
-     // Finalize code - write the entry point code now we know how many
-     // registers we need.
-     masm.bind(&entry_label_);
-
- #ifdef JS_CODEGEN_ARM64
--    // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
-+    // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-     masm.initStackPtr();
- #endif
-
-     // Push non-volatile registers which might be modified by jitcode.
-     size_t pushedNonVolatileRegisters = 0;
-     for (GeneralRegisterForwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) {
-         masm.Push(*iter);
-         pushedNonVolatileRegisters++;
-@@ -416,17 +424,32 @@ NativeRegExpMacroAssembler::GenerateCode
-     masm.pop(temp0);
-     masm.movePtr(temp0, StackPointer);
- #endif
-
-     // Restore non-volatile registers which were saved on entry.
-     for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
-         masm.Pop(*iter);
-
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-     masm.abiret();
-+#endif
-
-     // Backtrack code (branch target for conditional backtracks).
-     if (backtrack_label_.used()) {
-         masm.bind(&backtrack_label_);
-         Backtrack();
-     }
-
-     // Backtrack stack overflow code.
-diff --git a/js/src/jit-test/tests/regexp/bug1445907.js b/js/src/jit-test/tests/regexp/bug1445907.js
-new file mode 100644
---- /dev/null
-+++ js/src/jit-test/tests/regexp/bug1445907.js
-@@ -0,0 +1,15 @@
-+// On ARM64, we failed to save x28 properly when generating code for the regexp
-+// matcher.
-+//
-+// There's wasm and Debugger code here because the combination forces the use of
-+// x28 and exposes the bug when running on the simulator.
-+
-+if (!wasmIsSupported())
-+    quit();
-+
-+var g = newGlobal('');
-+var dbg = new Debugger(g);
-+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
-+var re = /./;
-+dbg.onEnterFrame = function(frame) { re.exec("x") };
-+result = g.eval("m.exports.test()");
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 097b313e90b..6c72284c19b 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -51,14 +51,14 @@
      ]
 --- build/moz.configure/old.configure.orig
 +++ build/moz.configure/old.configure
-@@ -159,6 +159,7 @@
-     '--enable-accessibility',
-     '--enable-address-sanitizer',
-     '--enable-alsa',
+@@ -169,6 +169,7 @@
+ @old_configure_options(
+     '--cache-file',
+     '--datadir',
 +    '--enable-sndio',
-     '--enable-bundled-fonts',
-     '--enable-clang-plugin',
      '--enable-content-sandbox',
+     '--enable-cookies',
+     '--enable-cpp-rtti',
 --- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig
 +++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
 @@ -349,6 +349,21 @@
diff --git a/srcpkgs/firefox-esr/patches/yuv-be.patch b/srcpkgs/firefox-esr/patches/yuv-be.patch
new file mode 100644
index 00000000000..1c26f2ecced
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/yuv-be.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User A. Wilcox <AWilcox@Wilcox-Tech.com>
+# Date 1543674229 0
+#      Sat Dec 01 14:23:49 2018 +0000
+# Node ID 0309ff19e46b126c527e633518d7de8570442114
+# Parent  53107afbc21ec78e7ac46d37af212505f2032d5d
+Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
+
+diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp
+--- gfx/ycbcr/YCbCrUtils.cpp	Wed Nov 07 04:50:21 2018 +0000
++++ gfx/ycbcr/YCbCrUtils.cpp	Sat Dec 01 14:23:49 2018 +0000
+@@ -3,7 +3,9 @@
+  * 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 "mozilla/EndianUtils.h"
+ #include "gfx2DGlue.h"
++#include "mozilla/gfx/Swizzle.h"
+ 
+ #include "YCbCrUtils.h"
+ #include "yuv_convert.h"
+@@ -236,6 +238,13 @@
+                           yuvtype,
+                           srcData.mYUVColorSpace);
+   }
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRX
++  if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
++    gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
++                     aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
++                     srcData.mPicSize);
++#endif
+ }
+ 
+ void
+@@ -257,6 +266,12 @@
+                         aSrcStrideYA,
+                         aSrcStrideUV,
+                         aDstStrideARGB);
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRA
++  gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
++                   aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
++                   IntSize(aWidth, aHeight));
++#endif
+ }
+ 
+ } // namespace gfx
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 05a0a521341..def96276d3b 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,8 +3,8 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
 #
 pkgname=firefox-esr
-version=60.8.0
-revision=2
+version=68.1.0
+revision=1
 build_helper="rust"
 wrksrc="firefox-${version}"
 short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
@@ -12,11 +12,11 @@ maintainer="Eivind Uggedal <eivind@uggedal.com>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.mozilla.org/firefox/organizations/"
 distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe
+checksum=f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac
 
 lib32disabled=yes
 hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
- cargo llvm clang rust cbindgen"
+ python3 cargo llvm clang rust cbindgen nasm nodejs"
 makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
  pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
  libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std

From d44bf5453a84e084c37b1ed98803dffa36ce6758 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:37 +0700
Subject: [PATCH 2/3] firefox-esr-i18n: update to 68.1.0.

[skip ci]
---
 ...irefox-esr-i18n-as => firefox-esr-i18n-bn} |   0
 ...-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} |   0
 ...fox-esr-i18n-bn-IN => firefox-esr-i18n-ia} |   0
 ...-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} |   0
 ...refox-esr-i18n-mai => firefox-esr-i18n-oc} |   0
 srcpkgs/firefox-esr-i18n-or                   |   1 -
 ...irefox-esr-i18n-ml => firefox-esr-i18n-ur} |   0
 srcpkgs/firefox-esr-i18n/template             | 202 +++++++++---------
 8 files changed, 100 insertions(+), 103 deletions(-)
 rename srcpkgs/{firefox-esr-i18n-as => firefox-esr-i18n-bn} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-IN => firefox-esr-i18n-ia} (100%)
 rename srcpkgs/{firefox-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} (100%)
 rename srcpkgs/{firefox-esr-i18n-mai => firefox-esr-i18n-oc} (100%)
 delete mode 120000 srcpkgs/firefox-esr-i18n-or
 rename srcpkgs/{firefox-esr-i18n-ml => firefox-esr-i18n-ur} (100%)

diff --git a/srcpkgs/firefox-esr-i18n-as b/srcpkgs/firefox-esr-i18n-bn
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-as
rename to srcpkgs/firefox-esr-i18n-bn
diff --git a/srcpkgs/firefox-esr-i18n-bn-BD b/srcpkgs/firefox-esr-i18n-en-CA
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-BD
rename to srcpkgs/firefox-esr-i18n-en-CA
diff --git a/srcpkgs/firefox-esr-i18n-bn-IN b/srcpkgs/firefox-esr-i18n-ia
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-IN
rename to srcpkgs/firefox-esr-i18n-ia
diff --git a/srcpkgs/firefox-esr-i18n-en-ZA b/srcpkgs/firefox-esr-i18n-ne-NP
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-en-ZA
rename to srcpkgs/firefox-esr-i18n-ne-NP
diff --git a/srcpkgs/firefox-esr-i18n-mai b/srcpkgs/firefox-esr-i18n-oc
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-mai
rename to srcpkgs/firefox-esr-i18n-oc
diff --git a/srcpkgs/firefox-esr-i18n-or b/srcpkgs/firefox-esr-i18n-or
deleted file mode 120000
index 0707c37f205..00000000000
--- a/srcpkgs/firefox-esr-i18n-or
+++ /dev/null
@@ -1 +0,0 @@
-firefox-esr-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-esr-i18n-ml b/srcpkgs/firefox-esr-i18n-ur
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-ml
rename to srcpkgs/firefox-esr-i18n-ur
diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 8c43a8ace7c..b4e17fb16f0 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'firefox-esr-i18n'
 pkgname=firefox-esr-i18n
-version=60.8.0
+version=68.1.0
 revision=1
 build_style=meta
 homepage="https://www.mozilla.org/firefox/"
@@ -19,13 +19,11 @@ _languages=(
 	'af     "Afrikaans"'
 	'an     "Aragonese"'
 	'ar     "Arabic"'
-	'as     "Assamese"'
 	'ast    "Asturian"'
 	'az     "Azerbaijani"'
 	'be     "Belarusian"'
 	'bg     "Bulgarian"'
-	'bn-BD  "Bengali (Bangladesh)"'
-	'bn-IN  "Bengali (India)"'
+	'bn     "Bengali"'
 	'br     "Breton"'
 	'bs     "Bosnian"'
 	'ca     "Catalan"'
@@ -36,9 +34,9 @@ _languages=(
 	'de     "German"'
 	'dsb    "Lower Sorbian"'
 	'el     "Greek"'
+	'en-CA  "English (Canada)"'
 	'en-GB  "English (British)"'
 	'en-US  "English (US)"'
-	'en-ZA  "English (South African)"'
 	'eo     "Esperanto"'
 	'es-AR  "Spanish (Argentina)"'
 	'es-CL  "Spanish (Chile)"'
@@ -62,6 +60,7 @@ _languages=(
 	'hsb    "Upper Sorbian"'
 	'hu     "Hungarian"'
 	'hy-AM  "Armenian"'
+	'ia     "Interlingua"'
 	'id     "Indonesian"'
 	'is     "Icelandic"'
 	'it     "Italian"'
@@ -75,16 +74,15 @@ _languages=(
 	'lij    "Ligurian"'
 	'lt     "Lithuanian"'
 	'lv     "Latvian"'
-	'mai    "Maithili"'
 	'mk     "Macedonian"'
-	'ml     "Malayalam"'
 	'mr     "Marathi"'
 	'ms     "Malay"'
 	'my     "Burmese"'
 	'nb-NO  "Norwegian (Bokmål)"'
+	'ne-NP  "Nepali"'
 	'nl     "Dutch"'
 	'nn-NO  "Norwegian (Nynorsk)"'
-	'or     "Oriya"'
+	'oc     "Occitan"'
 	'pa-IN  "Punjabi"'
 	'pl     "Polish"'
 	'pt-BR  "Portuguese (Brazilian)"'
@@ -104,6 +102,7 @@ _languages=(
 	'th     "Thai"'
 	'tr     "Turkish"'
 	'uk     "Ukrainian"'
+	'ur     "Urdu"'
 	'uz     "Uzbek"'
 	'vi     "Vietnamese"'
 	'xh     "Xhosa"'
@@ -136,97 +135,96 @@ _pkgtmpl() {
 	}
 }
 
-checksum="ff8a0e5081e1bf6f1794ea47dab8f32f5b28580c423bccc149e16f4749e36c50
- eb86ab716a1d6a32bd102952f3ac13b7708ac9fdb947e72e0f66891f872c1cb0
- beb35664f371716cebd1a4a4c84b44129c381a1dc9a38dea19684fd5f15e407c
- 25e8cdd8d22a1073143e2c88e5d3c4d96b505edbe9c18bf29fb5fbf4c68db620
- 7a05659ee866abc198bd55169b189f8e1f4daa1259b28bef78918ee0e84ed669
- 610f0c658af4d93eb7d70a459317323845a641b229f1dd42c4ee66ee660067d9
- 021d5f86239831892335f8d4b434bff3e129b774588e8b49758b3ff97534b055
- b3d75d79148ef5000aaca5d6948e09dcc43673f9d51a91bd21c51eaee34a4bf0
- 6481896744f2a0e596f425de2590ab78e153463a8bd16fc9398bb0e6a2278f3c
- a03b62fe0dba6a9aaf080505299d632dec7eb98d2973c42b53330ec25695d9c7
- db332375bf0224ac90a0aec2475c70d0262f52a0f856ef5d244ba7ab8d89bb90
- ff234f75fe294bf4278d7976a7c44815f5aa9e981e9742fb322f19726a38dcbc
- 5f0d36853f12f5fc3d8a85874718bcef77103903cb732c370b4e301dffb38a51
- 6b336951b07e1dd63472027d7603439ee5384b3f6a814c7be34d0cdeac1bd4d0
- 21e196147819aab031a733a4ad78b4c67d77120cd8976e7aa0b364823a3beb01
- 4edbad866270ef310932149188d4e4b0d786abc22db3196430d9db9b9113e992
- 0acf0db94b5e56fd81c14a763e2b4dd32c10f21824464195e30adc7ed9e4c021
- 440ac13c8d241d537c7de382a10ca1da1716cc302dc200ac5039ac43efcfd8a6
- bb7fc4aeffeca0c89a2ba33a7c762f4764cd70334f74cfa5d4b51fc4449aabed
- feebf56ff307f191ebd2af9990840db9e3e447c0cfbdea3219320b108838202a
- 9ced74783c6e21ae934243b3558ba1ecbe2858b6cfe57a031389d4c91b4887dc
- 958ff950724abf9c593685991246325ff6d04f73ea9c518dcefe24e289770c9e
- d8f5ef61b8a2bbe021fef63d09cb8e83a848a8100331acecdd70c47cf0cf9d43
- db9f3432a6a364791e0c4c8e47516c60182a0640a8ef795e24b7fc2465c7a7b3
- 7558f05cc6319ef57cf54a176b41bb9ac6d4650de9099998d3d4ad83163d07cf
- 8f8ef308c6c5d06f20feae2e4f6b29aa0db271f1a91f1d3ad097aa7a51948384
- 987c9758f4a71bd3e7602cfd977a611fe28d58ae28f324ba1325382958735aa7
- 1ac4c54b7ed0bc407711c589328d192b1b49a4b23417d294bd3608bbc5f40581
- 71d5f764c000ad31f252fa36a94d6a178b552c1a9e4815ae883e7c490ed4d401
- 74441cfbfdbd111ab87318598dd4a3c8aaa4c4db2b86a12bc6cf41fa05881ea8
- 43bffe371b4cb25f21bf767f618631a96b24e72a658a72759f4bb6a06bc5bf32
- 50fa12cc74afb9faca4ebb8ae47d2e22756f4cae70e3c8169fbf0f568dc64fc8
- 85e3332ce6656d8df3a492ed837192df3991aab1314c1c5ef25a67bf61360cbf
- a3dadeaca0193cb249b087b165e1d6fbbd322cf06485a7cf1a35c090b4adeb31
- 55cbc207ea34d61519f48946c077cc9dfa17d24eed5310f58838af289ea0b60f
- 31c6f72f72743a4b085eb699627a3917e92531066388343a40ffc6412277027a
- 38f1b0d8091f864256464cec0e7f78f474020feb7c4748b84160c6e074088b60
- cf2c4efce1203eb8c8f8a984b90c61672cfe9a6d05da3cfecee52e12189301a0
- ca8e8da872f5053cfa15d8395d8f10a66794589833714538b0c67fd83c340466
- c15707031179223c545a4299306b3df107ded62b685363a5e3274e318b88f219
- c1699a128003f23ef5662919ed1b33c5d61caf914985e39853df29a1ba35828c
- 3fb4a2283723b2ef3709c88baeb99e77bbba33c9e835c2dfedf28c6b2ecad2fa
- 344b3b3149aa3b77f10f49b86a76c6ff0179043048093c541944058f620e8845
- b43880065a4a92aeff823e4913eabe953e88cafb9cd414b2f616475cd7af69af
- 94b414e2f89f030c131742de0d9ba48f13b16b40e06dd568c10cea417b57b5ba
- 177ca8c3883d9c5d7e4a84b79dbc7b64e430fabaa247b0cee78f9ef65e2b5aa0
- a2a071c6e3604287a99e78042b34d02d4d91b27d3b23b9ea90945da7d9456012
- ae57f94246c078f8e2d4b8c297b281115bb008a811bf2a783278deb916007da4
- a222763e7d2d5eda8a15869f85c19765111841a2ccf4d18993eb83f20bdf4933
- 7771989dad60a20756517a6f696d939039cf5f10aa47d271e2ff5c465bd7b4c0
- 389b3c1b09e744c8fe843e3784088ea72214571b975ea9d69aaeb7c4264a990b
- d5fea97921089f0b4a6a8667ddf19a430eca78223118818480a202e563088943
- 617b9daf4d828bc66fc8061601adc9c40b25f1338c5f527d9fbf83dfa3e8770b
- 87d2ec6cadb2a61909888af5cc80a4dacd64493d82d0282679ba3c597918fb07
- 1afe05f69af9bc0b0e37d1c6d0942073349b173433a41a83b3a732e6fa026511
- 68b80d99dc3ff2c2828622cdf7d21c32e6f00904a239eef3f5eedb8fb8476386
- 853ec1ad7ef319a60586902c5b3dec73e0800c7af2d94e44b549d4f03f114fd7
- d0c9e3dfd07994ebf26d4ad98ef997cb62c90c07f9d0e70c8b2f7771f39b1b95
- f5b14095e891af078ef256460a41b19e00fbcd81eba66e0331af8bc096288963
- bec28861d16cf418fa06d650765c3be8fbc02b69b41b079d3907bb01c3d8096a
- b042d80a54dbc7cd0fdf24ba3599404632d84635ae73204235dbf66ef7a35a26
- 7b791bfc3bd843a291d74d86f88c0a5a31af13d9da9f135841fd7859c442f733
- f12eb8be3a7ef93146c161f6ba02b9d9b892b792d0c190adb92398802f5365fe
- 49addce322b6020d69b65f72ee4e82a140cd0e712c647127f6fac5b66e6f51b5
- acdc9ae4ae7397ade4c4053dc3b1f22ef42cc844bf853e5e846d1f6b0c5d5cab
- 02ac07e226734f1f693283784816b3c96a48b4e592c676673901104c5dcc72b2
- b102cf97790415b804182743426e8eb1304675fb4bf360e64ae9055cce87b2f1
- f8988dfc783c4b39d8a3a44e1000c6376bc211ab6297a49eddf5194b71fdfbde
- 58cad897f3bd51b9a1fcb7d4e4d3fc6bac47e5b2d4c6c19096732556eaec1314
- 23af8e26632da7c5d791a8891295eb2a83cde54390d9cd17692525f6e32ff6ed
- 0d38ca007291146731793d1a2c7e07bad2d2ed82668dfbd5be14daacf7abdce7
- a5957711b3fd9665dd2fed5fdbbb0a2fcbce54ad43ccd6800ddf7ccf5be731e5
- fcc2580a8ab3e95d23af7ee373a9bfcdce52e2a5ce59bb59d1ba1dca75772239
- bc3a8480ff73c752cc1cbfa80c327b155b194553c3568534b9d20f7e2176df1e
- 196abc6109092f326b387f5cffad880e5b6a857203127cf1f76622ca5a823ad2
- 002109cec6f2e40fb4ffc07b04c72a8debd128357925e8d51e5a84614004a086
- 83be2c2c9f9c93c0c31c5d30c0e6fdef3df2381f7c62c64a8313066f64c98b0f
- c7c83b2c405c432c3de1c187cfc800025502b1931e07ff1108648e77279441ab
- 8156b74896fd7b69fc306f90f1fd5291316d3c9b4c5ab4df620cab8d782b466e
- 27ff153a51f800ea9620042acc47aad6b2392c3551a4be30e982652ef89fcdf2
- abbbd74fb4e2ce5cfb254837c8383c9cca637bbdfd05d403526a50b08806c050
- 0c6ada2d7bf26be43d4f3fa8f37581a1f1a3113c3399ebd328736802dbe7623f
- b8c50654545a923e7ad7ef43bb1f2ea56b845b3443ffa0410b9bb7a6be9b8b91
- 4e49460bd3cd763e9527c771c4030237700e2eb73a359fefce3bd2146db7d56e
- 82bab7b006ab019d2bf2d6b3ed9aa85796f8dc1f827ed7350b0286dbd19bbc78
- 9b6adcd828ed3c2bb4950df6a2634bc943768b3d852e2e258e52c7e2da7a5ca7
- ccd0aa23ba2662e766e2adcab201076dfdcfc5cf288e4c4bbeff6d0d3c451abb
- f3709e35f5d4d317733f943aec9e977fd83acc1eaa9a35cf149dbf05e345146c
- 282d60e14be013a29ba09611f7ebe37d1fa5fe6dd8e441a1f10270d4e10323d6
- 742960a8b13cab9901267237accfcbcded21018aff9b6fc1bfd0ab37b7c8b607
- 0ae68434908b9512c46f22a6f3149b0f611f77306887a7641527d5df55725517
- 432353f98d29dbec0bc0eb50f0316220f155dee755ea0b4cb45b0636a0fcffde
- 8c1bbca429dd81d9180639ed1e526892908d26c1784f5f9c37093577b82d25fe
- c9651a78d2d2395711d320f6fac1ffd37048d4bffc544a2f2e182cedd237d090"
+checksum="c3fafda87192d9b98dc9b2b99d62b7109dbd72f73e8d5de1ea2a418ed086317b
+ 93af0702aae30332eecdc0f407dc29080923660508018fca14fe1307fdf375a1
+ a40baf64e7376e4916fa96d7199bad099edc7e897d65b5ecc4a2dc9fdbba2e75
+ 1e915f6a0860f2f7f583a70a5668ec5033969fbba177c3d3da4e244d01ba5cb4
+ d6c45490cec27609f43fb9af406ba15e25fff544f10d038e650a5b25d2ba5a69
+ 2b5d84d3f7800d162b095d0ee77da8264af9eac3a98dfff7e14b26510c92be1e
+ f317a73af579bbb42bc6635900e5b529f5198daaf54c5a7f51756b7707747444
+ 6e65702a500ef4d2841eacbd9e16ca692d25a9aa3fcf38be2603657bfb03a80d
+ 7b056d739b64407e92a6738c8e3a5f6fe070380196c057d3f832be4015e7957c
+ 6bdd5ab6efd06bd384e227d78de6cffeac4c828ce6254d152e0137c70eb7b2e9
+ b60364c109f3fe94387bfb27258c65c09b7761248e309adb8f92eda0c6c1dddb
+ 3b91a27432306a6152f6cee7b19d684476c4282743259eb0e5f90db6483216e6
+ a17149908edf9a173b9d7ca3eac644cf45cd0e35ba40c565903ea9af9580e41e
+ b404f670ce1f3cc7fbdb170e9f0286e0a7608d779c5dae83ce5adee911876e6d
+ b41236a8ce2e96edf02165bd1ad91de967d8605ed7a9c77f079027ea0b13a7cf
+ 1f444a10561108bdfb98d43531c33d377a2565763d1299c96ef3c1f746b10555
+ f15e57588ccdf2a6be3b51fba066dc030e2808071b29957c3da844b272d1dd25
+ d51b8bdbc415fcdf5df587e364b8a3edb6296a988c38dbfb0fbec40b5dec856e
+ bcfbd612f55efff2dc98cdf9ff6ddf3d8e91274ead7d8d8bf1023cb28b815623
+ f711d9206635ac98b3eec788791089d1a64316dc55ad4be2f6043acca79317b8
+ a48efe9f0a885060fe2844ae056fb9de8932e45cfda399959ff8a4f54c99dc3f
+ c919c3557a66188ea7ab58210f6fe629f5e111bd73c0f94f298e4635c21b5f05
+ edf74a83a03f85dfb2172053cf1816736fdfb4c42fbacdf4626b128186fb15db
+ 76bc68c806add52aa205f9f6a55dd6c141ecfaa29ce5b63fe06cb8bf1ce0c567
+ af3763e63550893a001a651c5d89e4bb529004de98d58f2dc2a49336239171bf
+ 979725bd9b1b8aade54e0e24efdc2c716381130559615f45c007f0d68a0b0b69
+ db96fd8658bc75f4813ddaf457c888e3f0656dc407b12d7799dbdebb7cc1a9ae
+ ba5e81b435217c15e2d55a42d34e3313e9ad1302b34599a25b48a23846dfc920
+ fd3988b0ddcfa721fd702c126dd531f5b77f1f5af8ac61e8b23307c5b84e8e72
+ a58a245d30efb8ad6553166dd2469da504d6cf3c773e52da15c3677899f37c4e
+ 3fd377be34a8786a726a13c88d28b2b73155b1f527b2909e6841474631ce8226
+ 790af48c82bf520bcd8f915af77d1e0c8f156ae6c028b1fa0f39c3c991865d1c
+ 46b8071a1e23d8c5af1ced98cfbdb1a2258f679425434e092fbe1c42dfa26066
+ a4eefa1ff84e33059d055c984dbb47283d117cb63ad9e39d7cc4c4e61ea9c11a
+ 5a91be294ac35aac472c4ba8324221551abb2e8cb66f995806606c191dca0428
+ 9a4a582673dc466a684fd2beacbe77a152047e6023b1e247f5eda7b513e5e30d
+ 039af250c8b2dc6254b2f24975704095406c70090de9d21ecc73975d8d874675
+ 3c77fd2a4cfc49ff94994b46a9b80ea24e534299838dd64a11a5dc2ef110f901
+ feaeb14a016d732b3ec0be6266bd078fdf220c48c38683a4dd7315e076839b82
+ a4756471f45168ff28fdc0e87c65b33288ca1f7fd2eedb7e31a726ee4766fb3c
+ 4eb62cbed52d1cdad08551a38d1f7656c71ef986df49eee0381e9aec7b11c0ba
+ 8e967ef8ff1f1a2fc21ea537d629d40a38d6b8789ce344e79d7a3b3b78138968
+ e008e241c41900d6df1128d5dd55d41e1ed43d7c60d48329a321716968397b09
+ 7011776c661b07bc3fd7d24b62765aeee10ba2a72ea4112862989f759aceb466
+ 760c44d1512be5f10264d195785e45d47c46595ef57c24de81c070a81ba65456
+ 531ec7550a9ab4e2410e9c69495852eaa0e7df43e022ed7ec0f0c50e148a4506
+ c46413f7aa225147712fb634483f64c9368f43d03ba6f66405e4c9dc281421b4
+ 42debde9c9341fc910ff382e94fade233b3ad23e4f474d89426648c659a99a12
+ 50f1088649f77e0f83dffe3e81dd8ac993d1d8f06d8f231acdf98a69cda9147a
+ 2a4f6162bfbf5ea44c832c0d5896079b0ce69e590dc377e3bbd37a92f9780e6c
+ 60aa95eb50d59ddb2bf57d5cfacf860d4cc2c8b86a219f35ceaa30d82fd6e593
+ 73a416254d022b051bb38ebf085772c031ecba18ab4896634ba8599fcb396f7b
+ ae3aa802087754458465af30a4ddafc8baa08e101a4e177b144b4f606a78b941
+ 30c7498935e0d4529ccbe3a5c7671aec9505d0132cd6123f97c0680c80cbb917
+ 99b76ac0f7cf4c5d5ae8b66ae3e54e3932c6a6f101aba8b156cf8d78a67e3f0b
+ 1bcb69081c99b27781c81becce86baaf2f1da54ceba009904ad2a5a8614eaa68
+ bb3152472d5582b365722a83972b416d78b8bddfc6dbea40d1c778c37eb86623
+ 426115a07ce25b7d2ae89024bf81e8b5957df9d8709bd6e5c1da704633af3c85
+ 24918b9cd56f5fe12c7e02b0cedcdaf2abeeb7ec3cdb75a4aee3ca2d4aaaa961
+ 8497c47c4f151966538836b0dfa312a044d8496ffc4647fcf62c8ed19b2337d9
+ e160dd5b88f37562d7cbace3f46b8fd8edc5b9211f4240d8e38aec3dd81d915d
+ 298ab33911b8c425e6032eba867bc31925ea24b2457298bbf965bd6b194edc3f
+ 4c53367e4ddcff92733a95139baf9610390bf3eaf78ef5a5d10b4530c359e8eb
+ f340c62b77eaaa6bde0e61944c508b32785619ad4ca54b7dfbf281fcb986eac0
+ 99201be46e35f22312a27da2a2afc54f46043342a1c577fa64696ef365198329
+ 41e4d2d255435d2b50a8e0c4c59b13a0a0aafae925cd32e20bf9005cd066d11e
+ 266141c6c9a6729da904dfa040ae20d80a6b5c39efc31fcf2d039ed65e9c2b28
+ 33daee0ac659ec7d1fb1cb101798dae2ed0077653fc9170bcbb5bc554ee3e433
+ 23b74270aef1c6a4bff5194103a430e6854fe4c460e5c684769bd7c59d1afa0d
+ 9405687dbb0a81e8be8f842824f2fe65830b70a0dd0dcde84cc8a21d6637f841
+ 40a608e720136044f4b95728474fcb82764e61d649551be438e330b63753635f
+ 0ef710447a36e81a6c86b17ee28d2cf463242834936af2578074df6e11c2baea
+ 3f0d0d33abda068465d7747149cdf11a4b1dc819f7da7f1f7a3d9c2a45307231
+ 9d2c3438776531077e379e97a449e714882896c53dbb87052de7e7ac77ea3d67
+ de9b4ec945265f5539025fb73b713322924da2d1a51b5bd6ad1baba4584c76e1
+ 7b66c7d5e1b9eb6959295a76416271220e84ecc43a97a5f5f07ec99986579cb1
+ 4404f5fe56868f5c551208d72630b91a88c68f78d7463e8e1d221fd7406c0783
+ 3f55ec2730a870951759961c83d6654c7122a3114e136a6e2bce7c05d6062d89
+ 873819bc254911aa3a443d0a9db306b472f7f31af8d986d54c535bce67a4b1c0
+ 07326e95015601946706f50333c32b0919025376abcdf88dc225dae2c167b19a
+ bfdd58d9f0f0e809e6b801f65c722c61b4dbb5e6635cecd7390d1403f1dd6f42
+ 8c2d716291a28cc64f93078d2bdf8d756a6521e3b0107815788c48452eac95f0
+ 9b07735b4d8e8359e38d671ed054b373c4ed50a232013807d09ca4fae31e8223
+ 5592ee66611515f8583a48211d70764fdb28c54b1ad4de5b4b87a9d3b101a182
+ d36e2c9a894beb94b62855bd07d4b54e41fc96c0736b5e2e702422e75b3cf21e
+ caf7dd282fb6dc065eb6a0c124cd458716d877a500c094ff650c4d40302dd49e
+ 80bd3c70433f6b3aacdbd370b70d4fe0eab13547d1f6368b80eb5c28a759141a
+ 67b359947cbe15b2be1ad2567d74a36cfe5f27665a058b0fab19ed37ddd63a30
+ b3347d5cec7f9f6e3aa4b5ccdd49350fd0879c20938bfc22664782c377dd73a6
+ 79b512427977c359ec8f93e4880cd5397ccddb013676d2d39837f06433fe4041
+ 883d5daa5b041778b0984a7e86ecfc4892af1aed1ec09285ac031e335075524c
+ bc1981c7cb2e6d5aecec7fb0f370c1da52895f00d238c1afa2b4e31b93580eb6
+ 6278e5c054f50d3de62de9d070d21d2842d4d0ff9212d852af8eb672fad7ecea"

From 08224aca8afc3de17ed124c1b155039207e71c69 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Sat, 7 Sep 2019 18:09:55 +0700
Subject: [PATCH 3/3] firefox{,-esr}-i18n: add script to update firefox locale

[skip ci]

Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
---
 .../firefox-esr-i18n/files/update-lang-list   |  1 +
 srcpkgs/firefox-i18n/files/update-lang-list   | 81 +++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 120000 srcpkgs/firefox-esr-i18n/files/update-lang-list
 create mode 100755 srcpkgs/firefox-i18n/files/update-lang-list

diff --git a/srcpkgs/firefox-esr-i18n/files/update-lang-list b/srcpkgs/firefox-esr-i18n/files/update-lang-list
new file mode 120000
index 00000000000..d6e91286846
--- /dev/null
+++ b/srcpkgs/firefox-esr-i18n/files/update-lang-list
@@ -0,0 +1 @@
+../../firefox-i18n/files/update-lang-list
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n/files/update-lang-list b/srcpkgs/firefox-i18n/files/update-lang-list
new file mode 100755
index 00000000000..ff8042113bf
--- /dev/null
+++ b/srcpkgs/firefox-i18n/files/update-lang-list
@@ -0,0 +1,81 @@
+#!/bin/bash
+# Copyright (c) 2019 Danh Doan
+# All rights reserved.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+version=$1
+
+esr=""
+[[ $version =~ esr$ ]] && esr="-esr"
+
+tmpldir="firefox${esr}-i18n"
+
+tmpoldfile="$(mktemp)"
+tmpnewfile="$(mktemp)"
+
+xoldlangexpr="^_languages="
+
+xlistold() {
+	source "${tmpldir}/template"
+	for _lang in "${_languages[@]}"; do
+		_locale="${_lang%%\"*}"
+		[ $_locale ] && echo "$_locale"
+	done
+}
+
+xlink () {
+	ln -sf "$tmpldir" "$tmpldir-$1"
+}
+
+xnewlang () {
+	lang=$1
+	padded=$(printf '%-7s' $lang)
+	xoldexpr=$xoldlangexpr
+	xoldlangexpr="'$lang \+\""
+	grep -q "'$lang \+\"" "$tmpldir/template" && return 0
+	sed -i "/$xoldexpr/a\\
+	'$padded\"Unknown\"'
+	/checksum=/a\\
+ badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb" \
+	"$tmpldir/template"
+}
+
+xprocessnew() {
+	while read lang; do
+		printf '%-7s\n' $lang >&3
+		xlink $lang
+		xnewlang $lang
+	done
+}
+
+xcleanlang() {
+	while read lang; do
+		padded=$(printf '%-7s' $lang)
+		sed -i "/'$padded\"/d" $tmpldir/template
+		unlink "$tmpldir-$lang" || true
+	done
+}
+
+cd $(xdistdir)/srcpkgs
+
+xlistold >| "$tmpoldfile"
+
+curl "https://ftp.mozilla.org/pub/firefox/releases/$1/linux-i686/xpi/" \
+	| grep -o 'xpi/[a-z]\+\(-[A-Z]\+\)\?' \
+	| cut -d/ -f2 \
+	| xprocessnew 3>$tmpnewfile
+
+grep -vF -f $tmpnewfile $tmpoldfile \
+	| xcleanlang
+
+rm -rf $tmpoldfile $tmpnewfile

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PR PATCH] [Updated] Firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (8 preceding siblings ...)
  2019-09-08 10:12 ` voidlinux-github
@ 2019-09-08 10:12 ` voidlinux-github
  2019-09-09  8:06 ` [wip] firefox esr voidlinux-github
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-08 10:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 347 bytes --]

There is an updated pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages firefox-esr
https://github.com/void-linux/void-packages/pull/14229

Firefox esr
Built and tested for:
- x86_64
- x86_64-musl

A patch file from https://github.com/void-linux/void-packages/pull/14229.patch is attached

[-- Warning: decoded text below may be mangled --]
[-- Attachment #2: github-pr-firefox-esr-14229.patch --]
[-- Type: text/x-diff, Size: 51057 bytes --]

From f4d806dd409cebe038a1e70c9a2cfa52449d72d5 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:17 +0700
Subject: [PATCH 1/3] firefox-esr: update to 68.1.0.

---
 srcpkgs/firefox-esr/files/mozconfig           |  6 --
 .../disable-image-format-warning.patch        | 15 +++
 .../patches/fix-arm-opus-include.patch        | 11 +++
 .../firefox-esr/patches/fix-i686-musl.patch   |  9 --
 srcpkgs/firefox-esr/patches/fix-musl.patch    | 11 ---
 srcpkgs/firefox-esr/patches/fix-toolkit.patch | 35 ++++---
 srcpkgs/firefox-esr/patches/fix-tools.patch   | 31 +++---
 .../firefox-esr/patches/fix-wasm-arm.patch    | 15 +++
 .../firefox-esr/patches/fix-webrtc-arm.patch  | 11 ---
 .../patches/fix-webrtc-glibcisms.patch        | 17 ++--
 srcpkgs/firefox-esr/patches/fix-xpcom.patch   | 11 ---
 srcpkgs/firefox-esr/patches/gettid-musl.patch | 11 +++
 srcpkgs/firefox-esr/patches/mallinfo.patch    | 40 +++++---
 .../patches/ppc-no-static-sizes.patch         | 19 ----
 .../patches/remove-rustc-check.patch          | 18 +++-
 .../patches/rust-unitialized-field.patch      | 19 ----
 srcpkgs/firefox-esr/patches/rust133.patch     | 24 -----
 ...nd-restore-non-volatile-x28-on-arm64.patch | 64 ------------
 ...-clobbering-it-in-the-regex-compiler.patch | 97 -------------------
 srcpkgs/firefox-esr/patches/sndio.patch       | 12 +--
 srcpkgs/firefox-esr/patches/yuv-be.patch      | 48 +++++++++
 srcpkgs/firefox-esr/template                  |  8 +-
 22 files changed, 187 insertions(+), 345 deletions(-)
 create mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-musl.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-xpcom.patch
 create mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/rust133.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
 create mode 100644 srcpkgs/firefox-esr/patches/yuv-be.patch

diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 5b3c6e46d6f..0798fdd40ef 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -1,11 +1,6 @@
 ac_add_options --prefix=/usr
 ac_add_options --libdir=/usr/lib
 
-ac_add_options --with-pthreads
-# XXX build without system cairo see:
-# - https://github.com/voidlinux/void-packages/issues/2308#issuecomment-135426813
-# - https://bugs.gentoo.org/show_bug.cgi?id=558150
-# ac_add_options --with-system-cairo
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
 ac_add_options --with-system-bz2
@@ -39,7 +34,6 @@ ac_add_options --disable-install-strip
 ac_add_options --disable-strip
 ac_add_options --disable-profiling
 ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-pie
 
 ac_add_options --enable-official-branding
 ac_add_options --enable-application=browser
diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
new file mode 100644
index 00000000000..bd56e6bc37c
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
@@ -0,0 +1,15 @@
+Imported from Adélie. Firefox is prone to this warning on BE and
+it leads to huge .xsession-errors, and the warning is not very
+important or meaningful, so just disable it.
+
+--- gfx/2d/HelpersCairo.h
++++ gfx/2d/HelpersCairo.h
+@@ -147,7 +147,7 @@
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
+-      gfxCriticalError() << "Unknown image format " << (int)format;
++      //gfxCriticalError() << "Unknown image format " << (int)format;
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }
diff --git a/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
new file mode 100644
index 00000000000..6e0c5875da3
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-arm-opus-include.patch
@@ -0,0 +1,11 @@
+--- media/libopus/silk/arm/arm_silk_map.c.orig	2019-03-19 20:55:01.249609964 +0100
++++ media/libopus/silk/arm/arm_silk_map.c	2019-03-19 20:55:25.769400255 +0100
+@@ -28,7 +28,7 @@
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "../fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
+
diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
index 5345a3cd3df..6df609bbf16 100644
--- a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
+++ b/srcpkgs/firefox-esr/patches/fix-i686-musl.patch
@@ -9,12 +9,3 @@
       ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
        defined(HAVE__UNWIND_BACKTRACE)))
  #define MOZ_STACKWALK_SUPPORTS_LINUX 1
-@@ -911,7 +911,7 @@
- }
- 
- // {x86, ppc} x {Linux, Mac} stackwalking code.
--#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-      (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX))
- 
- MFBT_API bool
diff --git a/srcpkgs/firefox-esr/patches/fix-musl.patch b/srcpkgs/firefox-esr/patches/fix-musl.patch
deleted file mode 100644
index c32921d39e1..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/profiler/core/platform.h.orig
-+++ tools/profiler/core/platform.h
-@@ -56,7 +56,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/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
index ce4d7d01f82..86e8ef47855 100644
--- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch
+++ b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
@@ -47,18 +47,28 @@
  #include <a.out.h>
  #endif
 
+--- toolkit.orig/mozapps/update/common/updatedefines.h	2019-01-29 11:34:36.416804577 +0100
++++ toolkit/mozapps/update/common/updatedefines.h	2019-01-29 11:34:59.193583777 +0100
+@@ -102,7 +102,7 @@
 
+ #  ifdef SOLARIS
+ #    include <sys/stat.h>
+-#  else
++#  elif !(defined(__linux__)) || defined(__GLIBC__)
+ #    include <fts.h>
+ #  endif
+ #  include <dirent.h>
 --- toolkit.orig/mozapps/update/updater/updater.cpp	2014-03-15 05:19:37.000000000 +0000
 +++ toolkit/mozapps/update/updater/updater.cpp	2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
+@@ -3978,6 +3978,7 @@
+ 
+ int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
    int rv = OK;
 +#if !defined(__linux__) || defined(__GLIBC__)
-   FTS *ftsdir;
-   FTSENT *ftsdirEntry;
-   NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+   FTS* ftsdir;
+   FTSENT* ftsdirEntry;
+   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
+@@ -4085,6 +4086,7 @@
    }
  
    fts_close(ftsdir);
@@ -66,14 +76,3 @@
  
    return rv;
  }
---- toolkit/mozapps/update/common/updatedefines.h	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:15:53.946747750 +0100
-@@ -100,7 +100,7 @@
- 
- #ifdef SOLARIS
- #include <sys/stat.h>
--#else
-+#elif !defined(__linux__) || defined(__GLIBC__)
- #include <fts.h>
- #endif
- #include <dirent.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch
index 1e2fc4f7d39..0ed043fb5b5 100644
--- a/srcpkgs/firefox-esr/patches/fix-tools.patch
+++ b/srcpkgs/firefox-esr/patches/fix-tools.patch
@@ -1,33 +1,24 @@
---- tools/profiler/core/platform.h
-+++ tools/profiler/core/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
-
-+#include <sys/types.h>
-+
- #include <stdint.h>
- #include <math.h>
- #include "MainThreadUtils.h"
---- tools/profiler/lul/LulElf.cpp	2019-01-24 18:31:42.000000000 +0100
-+++ -	2019-01-31 11:19:53.198257189 +0100
-@@ -460,9 +460,9 @@
+--- tools/profiler/lul/LulElf.cpp.orig	2019-01-29 12:05:34.223834130 +0100
++++ tools/profiler/lul/LulElf.cpp	2019-01-29 12:08:02.480400845 +0100
+@@ -469,10 +469,10 @@
+ // 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) {
-   // Lots of copies!  basename's behavior is less than ideal.
+-  // 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();
++  // basename's behavior is less than ideal so avoid it
++  const char *c_filename = filename.c_str();
 +  const char *p = strrchr(c_filename, '/');
 +  string base = p ? p+1 : c_filename;
    return base;
  }
  
---- tools/profiler/core/platform-linux-android.cpp	2019-01-24 18:31:43.000000000 +0100
-+++ -	2019-01-31 11:23:07.911772317 +0100
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-01-29 12:09:40.980448579 +0100
++++ tools/profiler/core/platform-linux-android.cpp	2019-01-29 12:11:09.689590967 +0100
 @@ -253,7 +253,11 @@
-
+ 
    // Request profiling signals.
    struct sigaction sa;
 +#if defined(GP_ARCH_arm)
@@ -38,7 +29,7 @@
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART | SA_SIGINFO;
    if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
-@@ -497,8 +497,10 @@
+@@ -497,8 +501,10 @@
  ucontext_t sSyncUContext;
  
  void Registers::SyncPopulate() {
diff --git a/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
new file mode 100644
index 00000000000..e6ad61c9f44
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-wasm-arm.patch
@@ -0,0 +1,15 @@
+--- js/src/wasm/WasmSignalHandlers.cpp
++++ js/src/wasm/WasmSignalHandlers.cpp
+@@ -243,9 +243,9 @@
+ // If you run into compile problems on a tier-3 platform, you can disable the
+ // emulation here.
+ 
+-#if defined(__linux__) && defined(__arm__)
+-#  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+-#endif
++// #if defined(__linux__) && defined(__arm__)
++// #  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
++// #endif
+ 
+ #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #  include <sys/user.h>
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
deleted file mode 100644
index 222be5f9e21..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc	2019-01-24 18:31:10.000000000 +0100
-+++ -	2019-02-01 00:13:35.690776711 +0100
-@@ -67,7 +67,7 @@
-   return 0;
- }
- 
--#if !defined(ANDROID)
-+#if !defined(ANDROID) && !defined(__linux__)
- #ifdef WEBRTC_ARCH_ARM_V7
- uint64_t WebRtc_GetCPUFeaturesARM(void) {
-   return kCPUFeatureARMv7
diff --git a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
index 3ff2570b12b..cf895dd8448 100644
--- a/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
+++ b/srcpkgs/firefox-esr/patches/fix-webrtc-glibcisms.patch
@@ -1,18 +1,15 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-02-01 00:49:18.472382771 +0100
-+++ -	2019-02-01 00:50:25.928007236 +0100
-@@ -11,7 +11,10 @@
- #include <stdlib.h>
- #include <string.h>
- #include <features.h>
+--- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig	2019-01-29 11:20:52.298793223 +0100
++++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c	2019-01-29 11:21:48.250250850 +0100
+@@ -14,7 +14,7 @@
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(a, b) 0
+ #endif
 -#if __GLIBC_PREREQ(2, 16)
-+#ifndef __GLIBC_PREREQ
-+#define __GLIBC_PREREQ(a, b) 0
-+#endif
 +#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
  #include <sys/auxv.h>
  #else
  #include <fcntl.h>
-@@ -29,7 +32,7 @@
+@@ -32,7 +32,7 @@
    int architecture = 0;
    unsigned long hwcap = 0;
    const char* platform = NULL;
diff --git a/srcpkgs/firefox-esr/patches/fix-xpcom.patch b/srcpkgs/firefox-esr/patches/fix-xpcom.patch
deleted file mode 100644
index 38dd582d96b..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-xpcom.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- xpcom/base/nsMemoryReporterManager.cpp.orig	2015-12-16 11:53:14.211144456 +0100
-+++ xpcom/base/nsMemoryReporterManager.cpp	2015-12-16 11:55:26.859476381 +0100
-@@ -46,7 +46,7 @@ using namespace mozilla;
- #  include "mozmemory.h"
- #endif  // MOZ_MEMORY
- 
--#if defined(XP_LINUX)
-+#if defined(XP_LINUX) && defined(__GLIBC__)
- 
- #include <malloc.h>
- #include <string.h>
diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch
new file mode 100644
index 00000000000..c1cb99bf651
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/gettid-musl.patch
@@ -0,0 +1,11 @@
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-07-09 22:58:30.039475686 +0200
++++ tools/profiler/core/platform-linux-android.cpp	2019-07-09 22:58:39.331437677 +0200
+@@ -73,7 +73,7 @@
+ 
+ int profiler_current_thread_id() {
+   // glibc doesn't provide a wrapper for gettid().
+-#if defined(__GLIBC__)
++#if defined(__linux__)
+   return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
+ #else
+   return static_cast<int>(gettid());
diff --git a/srcpkgs/firefox-esr/patches/mallinfo.patch b/srcpkgs/firefox-esr/patches/mallinfo.patch
index c9a38d45bdf..afea86c0a2c 100644
--- a/srcpkgs/firefox-esr/patches/mallinfo.patch
+++ b/srcpkgs/firefox-esr/patches/mallinfo.patch
@@ -1,18 +1,34 @@
---- xpcom/base/nsMemoryReporterManager.cpp
-+++ xpcom/base/nsMemoryReporterManager.cpp
-@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN)
+--- xpcom/base/nsMemoryReporterManager.cpp.orig	2019-03-19 17:12:20.844810044 +0100
++++ xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:13:32.505133615 +0100
+@@ -123,6 +123,7 @@
    return GetProcSelfSmapsPrivate(aN);
  }
  
 +#ifdef __GLIBC__
- #define HAVE_SYSTEM_HEAP_REPORTER 1
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
-@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut)
-     *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
-     return NS_OK;
+ #  ifdef HAVE_MALLINFO
+ #    define HAVE_SYSTEM_HEAP_REPORTER 1
+ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
+@@ -142,6 +143,7 @@
+   return NS_OK;
  }
-+#endif
+ #  endif
++#endif // __GLIBC__
  
- #elif defined(__DragonFly__) || defined(__FreeBSD__) \
-     || defined(__NetBSD__) || defined(__OpenBSD__) \
+ #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+     defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+@@ -642,6 +644,7 @@
+   return NS_OK;
+ }
+ 
++#ifdef __GLIBC__
+ #  define HAVE_SYSTEM_HEAP_REPORTER 1
+ // Windows can have multiple separate heaps. During testing there were multiple
+ // heaps present but the non-default ones had sizes no more than a few 10s of
+@@ -698,6 +701,7 @@
+   *aSizeOut = heapsSize;
+   return NS_OK;
+ }
++#endif // __GLIBC__
+ 
+ struct SegmentKind {
+   DWORD mState;
diff --git a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
deleted file mode 100644
index 3f77023bb5f..00000000000
--- a/srcpkgs/firefox-esr/patches/ppc-no-static-sizes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# Parent b735e618c2a860972197942f6680c941e3c9a67f
-# User Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
-Bug 997353 - Do not use compile-time page size for PowerPC.
-
-The PowerPC architecture allows various memory page sizes, making it impossible
-to predict the runtime page size.
-
---- memory/build/mozjemalloc.cpp
-+++ memory/build/mozjemalloc.cpp
-@@ -369,7 +369,7 @@
- // Debug builds are opted out too, for test coverage.
- #ifndef MOZ_DEBUG
- #if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) &&         \
--  !defined(__aarch64__)
-+  !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
- #define MALLOC_STATIC_PAGESIZE 1
- #endif
- #endif
diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
index f6bebc8aab1..84077f4fc88 100644
--- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
@@ -1,8 +1,19 @@
 Mozilla rustc check does not support crossbuild: let's remove it
+Remove calls to unwrap_rustup, they fail if rustup isn't present
 
---- build/moz.configure/rust.configure	2018-10-01 16:28:31.000000000 +0200
-+++ build/moz.configure/rust.configure	2018-10-20 14:21:35.510000000 +0200
-@@ -204,26 +204,6 @@
+--- build/moz.configure/rust.configure	2019-07-06 03:48:30.000000000 +0200
++++ build/moz.configure/rust.configure	2019-07-09 22:35:23.326851798 +0200
+@@ -79,9 +79,6 @@
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -294,26 +291,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
@@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it
          finally:
              os.remove(in_path)
              os.remove(out_path)
-
diff --git a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch b/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
deleted file mode 100644
index 67ef3a02ab8..00000000000
--- a/srcpkgs/firefox-esr/patches/rust-unitialized-field.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./media/audioipc/audioipc/src/cmsg.rs.orig	2018-05-09 22:19:14.748631939 +0200
-+++ ./media/audioipc/audioipc/src/cmsg.rs	2018-05-09 22:19:22.961620862 +0200
-@@ -106,11 +106,11 @@ impl ControlMsgBuilder {
-                 return Err(Error::NoSpace);
-             }
- 
--            let cmsghdr = cmsghdr {
--                cmsg_len: cmsg_len as _,
--                cmsg_level: level,
--                cmsg_type: kind,
--            };
-+            use std::mem;
-+            let mut cmsghdr: cmsghdr =  unsafe { mem::zeroed() };
-+            cmsghdr.cmsg_len = cmsg_len as _;
-+            cmsghdr.cmsg_level = level;
-+            cmsghdr.cmsg_type = kind;
- 
-             let cmsghdr = unsafe {
-                 slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::<cmsghdr>())
diff --git a/srcpkgs/firefox-esr/patches/rust133.patch b/srcpkgs/firefox-esr/patches/rust133.patch
deleted file mode 100644
index ebdcac7e3a3..00000000000
--- a/srcpkgs/firefox-esr/patches/rust133.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-This fixes build errors under recent Rust.
-
---- servo/components/style_traits/lib.rs
-+++ servo/components/style_traits/lib.rs
-@@ -9,7 +9,7 @@
- #![crate_name = "style_traits"]
- #![crate_type = "rlib"]
- 
--#![deny(unsafe_code, missing_docs)]
-+#![deny(unsafe_code)]
- 
- extern crate app_units;
- #[macro_use] extern crate bitflags;
---- servo/components/style/lib.rs
-+++ servo/components/style/lib.rs
-@@ -23,8 +23,6 @@
- //! [cssparser]: ../cssparser/index.html
- //! [selectors]: ../selectors/index.html
- 
--#![deny(missing_docs)]
--
- extern crate app_units;
- extern crate arrayvec;
- extern crate atomic_refcell;
diff --git a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch b/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
deleted file mode 100644
index fa303f6d1e9..00000000000
--- a/srcpkgs/firefox-esr/patches/save-and-restore-non-volatile-x28-on-arm64.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1519822672 -3600
-# Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6
-# Parent  223c97459e96183eb616aed39147207bdb953ba8
-Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor.  r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/800abe66894d
----
- js/src/vm/UnboxedObject.cpp | 30 ++++++++++++++++++++++++++----
- 1 file changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
-index 35ca20d7405f..1c20a1093d13 100644
---- js/src/vm/UnboxedObject.cpp
-+++ js/src/vm/UnboxedObject.cpp
-@@ -86,9 +86,16 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
- #endif
-
- #ifdef JS_CODEGEN_ARM64
--  // ARM64 communicates stack address via sp, but uses a pseudo-sp for
--  // addressing.
--  masm.initStackPtr();
-+    // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-+    masm.initStackPtr();
- #endif
-
-   MOZ_ASSERT(propertiesReg.volatile_());
-@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = 0x1;
-   if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
-   masm.PopRegsInMask(savedNonVolatileRegisters);
-
--  masm.abiret();
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-+    masm.abiret();
-+#endif
-
-   masm.bind(&failureStoreOther);
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch b/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
deleted file mode 100644
index aa2dcc6ba8d..00000000000
--- a/srcpkgs/firefox-esr/patches/save-x28-before-clobbering-it-in-the-regex-compiler.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-# HG changeset patch
-# User Lars T Hansen <lhansen@mozilla.com>
-# Date 1521449886 -3600
-# Node ID 903a79a1efff18fc7cc50db09a3fe5d768adc9a8
-# Parent  4d2955a9ca7e30ca4c3af9c214ccc77fb2fe7fb8
-Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
-
-Origin: upstream
-Applied-upstream: 61, commit: https://hg.mozilla.org/mozilla-central/rev/903a79a1efff
----
-diff --git a/js/src/irregexp/NativeRegExpMacroAssembler.cpp b/js/src/irregexp/NativeRegExpMacroAssembler.cpp
---- js/src/irregexp/NativeRegExpMacroAssembler.cpp
-+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
-@@ -118,17 +118,25 @@ NativeRegExpMacroAssembler::GenerateCode
-
-     Label return_temp0;
-
-     // Finalize code - write the entry point code now we know how many
-     // registers we need.
-     masm.bind(&entry_label_);
-
- #ifdef JS_CODEGEN_ARM64
--    // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
-+    // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
-+    // addressing.  The register we use for PSP may however also be used by
-+    // calling code, and it is nonvolatile, so save it.  Do this as a special
-+    // case first because the generic save/restore code needs the PSP to be
-+    // initialized already.
-+    MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+    masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
-+
-+    // Initialize the PSP from the SP.
-     masm.initStackPtr();
- #endif
-
-     // Push non-volatile registers which might be modified by jitcode.
-     size_t pushedNonVolatileRegisters = 0;
-     for (GeneralRegisterForwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter) {
-         masm.Push(*iter);
-         pushedNonVolatileRegisters++;
-@@ -416,17 +424,32 @@ NativeRegExpMacroAssembler::GenerateCode
-     masm.pop(temp0);
-     masm.movePtr(temp0, StackPointer);
- #endif
-
-     // Restore non-volatile registers which were saved on entry.
-     for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
-         masm.Pop(*iter);
-
-+#ifdef JS_CODEGEN_ARM64
-+    // Now restore the value that was in the PSP register on entry, and return.
-+
-+    // Obtain the correct SP from the PSP.
-+    masm.Mov(sp, PseudoStackPointer64);
-+
-+    // Restore the saved value of the PSP register, this value is whatever the
-+    // caller had saved in it, not any actual SP value, and it must not be
-+    // overwritten subsequently.
-+    masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
-+
-+    // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+    masm.Ret(vixl::lr);
-+#else
-     masm.abiret();
-+#endif
-
-     // Backtrack code (branch target for conditional backtracks).
-     if (backtrack_label_.used()) {
-         masm.bind(&backtrack_label_);
-         Backtrack();
-     }
-
-     // Backtrack stack overflow code.
-diff --git a/js/src/jit-test/tests/regexp/bug1445907.js b/js/src/jit-test/tests/regexp/bug1445907.js
-new file mode 100644
---- /dev/null
-+++ js/src/jit-test/tests/regexp/bug1445907.js
-@@ -0,0 +1,15 @@
-+// On ARM64, we failed to save x28 properly when generating code for the regexp
-+// matcher.
-+//
-+// There's wasm and Debugger code here because the combination forces the use of
-+// x28 and exposes the bug when running on the simulator.
-+
-+if (!wasmIsSupported())
-+    quit();
-+
-+var g = newGlobal('');
-+var dbg = new Debugger(g);
-+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
-+var re = /./;
-+dbg.onEnterFrame = function(frame) { re.exec("x") };
-+result = g.eval("m.exports.test()");
-
---
-2.21.0
-
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 097b313e90b..6c72284c19b 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -51,14 +51,14 @@
      ]
 --- build/moz.configure/old.configure.orig
 +++ build/moz.configure/old.configure
-@@ -159,6 +159,7 @@
-     '--enable-accessibility',
-     '--enable-address-sanitizer',
-     '--enable-alsa',
+@@ -169,6 +169,7 @@
+ @old_configure_options(
+     '--cache-file',
+     '--datadir',
 +    '--enable-sndio',
-     '--enable-bundled-fonts',
-     '--enable-clang-plugin',
      '--enable-content-sandbox',
+     '--enable-cookies',
+     '--enable-cpp-rtti',
 --- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig
 +++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
 @@ -349,6 +349,21 @@
diff --git a/srcpkgs/firefox-esr/patches/yuv-be.patch b/srcpkgs/firefox-esr/patches/yuv-be.patch
new file mode 100644
index 00000000000..1c26f2ecced
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/yuv-be.patch
@@ -0,0 +1,48 @@
+# HG changeset patch
+# User A. Wilcox <AWilcox@Wilcox-Tech.com>
+# Date 1543674229 0
+#      Sat Dec 01 14:23:49 2018 +0000
+# Node ID 0309ff19e46b126c527e633518d7de8570442114
+# Parent  53107afbc21ec78e7ac46d37af212505f2032d5d
+Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
+
+diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp
+--- gfx/ycbcr/YCbCrUtils.cpp	Wed Nov 07 04:50:21 2018 +0000
++++ gfx/ycbcr/YCbCrUtils.cpp	Sat Dec 01 14:23:49 2018 +0000
+@@ -3,7 +3,9 @@
+  * 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 "mozilla/EndianUtils.h"
+ #include "gfx2DGlue.h"
++#include "mozilla/gfx/Swizzle.h"
+ 
+ #include "YCbCrUtils.h"
+ #include "yuv_convert.h"
+@@ -236,6 +238,13 @@
+                           yuvtype,
+                           srcData.mYUVColorSpace);
+   }
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRX
++  if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
++    gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
++                     aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
++                     srcData.mPicSize);
++#endif
+ }
+ 
+ void
+@@ -257,6 +266,12 @@
+                         aSrcStrideYA,
+                         aSrcStrideUV,
+                         aDstStrideARGB);
++#if MOZ_BIG_ENDIAN
++  // libyuv makes endian-correct result, which needs to be swapped to BGRA
++  gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
++                   aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
++                   IntSize(aWidth, aHeight));
++#endif
+ }
+ 
+ } // namespace gfx
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index 05a0a521341..def96276d3b 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,8 +3,8 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
 #
 pkgname=firefox-esr
-version=60.8.0
-revision=2
+version=68.1.0
+revision=1
 build_helper="rust"
 wrksrc="firefox-${version}"
 short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
@@ -12,11 +12,11 @@ maintainer="Eivind Uggedal <eivind@uggedal.com>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.mozilla.org/firefox/organizations/"
 distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
-checksum=c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe
+checksum=f56f5fa5a4744be0b9acf259cb991254d708a50b9a0a12d1d846ffa5a6c409ac
 
 lib32disabled=yes
 hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
- cargo llvm clang rust cbindgen"
+ python3 cargo llvm clang rust cbindgen nasm nodejs"
 makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
  pixman-devel sqlite-devel libevent-devel libnotify-devel libvpx5-devel
  libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std

From d44bf5453a84e084c37b1ed98803dffa36ce6758 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Fri, 6 Sep 2019 08:06:37 +0700
Subject: [PATCH 2/3] firefox-esr-i18n: update to 68.1.0.

[skip ci]
---
 ...irefox-esr-i18n-as => firefox-esr-i18n-bn} |   0
 ...-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} |   0
 ...fox-esr-i18n-bn-IN => firefox-esr-i18n-ia} |   0
 ...-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} |   0
 ...refox-esr-i18n-mai => firefox-esr-i18n-oc} |   0
 srcpkgs/firefox-esr-i18n-or                   |   1 -
 ...irefox-esr-i18n-ml => firefox-esr-i18n-ur} |   0
 srcpkgs/firefox-esr-i18n/template             | 202 +++++++++---------
 8 files changed, 100 insertions(+), 103 deletions(-)
 rename srcpkgs/{firefox-esr-i18n-as => firefox-esr-i18n-bn} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-BD => firefox-esr-i18n-en-CA} (100%)
 rename srcpkgs/{firefox-esr-i18n-bn-IN => firefox-esr-i18n-ia} (100%)
 rename srcpkgs/{firefox-esr-i18n-en-ZA => firefox-esr-i18n-ne-NP} (100%)
 rename srcpkgs/{firefox-esr-i18n-mai => firefox-esr-i18n-oc} (100%)
 delete mode 120000 srcpkgs/firefox-esr-i18n-or
 rename srcpkgs/{firefox-esr-i18n-ml => firefox-esr-i18n-ur} (100%)

diff --git a/srcpkgs/firefox-esr-i18n-as b/srcpkgs/firefox-esr-i18n-bn
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-as
rename to srcpkgs/firefox-esr-i18n-bn
diff --git a/srcpkgs/firefox-esr-i18n-bn-BD b/srcpkgs/firefox-esr-i18n-en-CA
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-BD
rename to srcpkgs/firefox-esr-i18n-en-CA
diff --git a/srcpkgs/firefox-esr-i18n-bn-IN b/srcpkgs/firefox-esr-i18n-ia
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-bn-IN
rename to srcpkgs/firefox-esr-i18n-ia
diff --git a/srcpkgs/firefox-esr-i18n-en-ZA b/srcpkgs/firefox-esr-i18n-ne-NP
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-en-ZA
rename to srcpkgs/firefox-esr-i18n-ne-NP
diff --git a/srcpkgs/firefox-esr-i18n-mai b/srcpkgs/firefox-esr-i18n-oc
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-mai
rename to srcpkgs/firefox-esr-i18n-oc
diff --git a/srcpkgs/firefox-esr-i18n-or b/srcpkgs/firefox-esr-i18n-or
deleted file mode 120000
index 0707c37f205..00000000000
--- a/srcpkgs/firefox-esr-i18n-or
+++ /dev/null
@@ -1 +0,0 @@
-firefox-esr-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-esr-i18n-ml b/srcpkgs/firefox-esr-i18n-ur
similarity index 100%
rename from srcpkgs/firefox-esr-i18n-ml
rename to srcpkgs/firefox-esr-i18n-ur
diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 8c43a8ace7c..b4e17fb16f0 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'firefox-esr-i18n'
 pkgname=firefox-esr-i18n
-version=60.8.0
+version=68.1.0
 revision=1
 build_style=meta
 homepage="https://www.mozilla.org/firefox/"
@@ -19,13 +19,11 @@ _languages=(
 	'af     "Afrikaans"'
 	'an     "Aragonese"'
 	'ar     "Arabic"'
-	'as     "Assamese"'
 	'ast    "Asturian"'
 	'az     "Azerbaijani"'
 	'be     "Belarusian"'
 	'bg     "Bulgarian"'
-	'bn-BD  "Bengali (Bangladesh)"'
-	'bn-IN  "Bengali (India)"'
+	'bn     "Bengali"'
 	'br     "Breton"'
 	'bs     "Bosnian"'
 	'ca     "Catalan"'
@@ -36,9 +34,9 @@ _languages=(
 	'de     "German"'
 	'dsb    "Lower Sorbian"'
 	'el     "Greek"'
+	'en-CA  "English (Canada)"'
 	'en-GB  "English (British)"'
 	'en-US  "English (US)"'
-	'en-ZA  "English (South African)"'
 	'eo     "Esperanto"'
 	'es-AR  "Spanish (Argentina)"'
 	'es-CL  "Spanish (Chile)"'
@@ -62,6 +60,7 @@ _languages=(
 	'hsb    "Upper Sorbian"'
 	'hu     "Hungarian"'
 	'hy-AM  "Armenian"'
+	'ia     "Interlingua"'
 	'id     "Indonesian"'
 	'is     "Icelandic"'
 	'it     "Italian"'
@@ -75,16 +74,15 @@ _languages=(
 	'lij    "Ligurian"'
 	'lt     "Lithuanian"'
 	'lv     "Latvian"'
-	'mai    "Maithili"'
 	'mk     "Macedonian"'
-	'ml     "Malayalam"'
 	'mr     "Marathi"'
 	'ms     "Malay"'
 	'my     "Burmese"'
 	'nb-NO  "Norwegian (Bokmål)"'
+	'ne-NP  "Nepali"'
 	'nl     "Dutch"'
 	'nn-NO  "Norwegian (Nynorsk)"'
-	'or     "Oriya"'
+	'oc     "Occitan"'
 	'pa-IN  "Punjabi"'
 	'pl     "Polish"'
 	'pt-BR  "Portuguese (Brazilian)"'
@@ -104,6 +102,7 @@ _languages=(
 	'th     "Thai"'
 	'tr     "Turkish"'
 	'uk     "Ukrainian"'
+	'ur     "Urdu"'
 	'uz     "Uzbek"'
 	'vi     "Vietnamese"'
 	'xh     "Xhosa"'
@@ -136,97 +135,96 @@ _pkgtmpl() {
 	}
 }
 
-checksum="ff8a0e5081e1bf6f1794ea47dab8f32f5b28580c423bccc149e16f4749e36c50
- eb86ab716a1d6a32bd102952f3ac13b7708ac9fdb947e72e0f66891f872c1cb0
- beb35664f371716cebd1a4a4c84b44129c381a1dc9a38dea19684fd5f15e407c
- 25e8cdd8d22a1073143e2c88e5d3c4d96b505edbe9c18bf29fb5fbf4c68db620
- 7a05659ee866abc198bd55169b189f8e1f4daa1259b28bef78918ee0e84ed669
- 610f0c658af4d93eb7d70a459317323845a641b229f1dd42c4ee66ee660067d9
- 021d5f86239831892335f8d4b434bff3e129b774588e8b49758b3ff97534b055
- b3d75d79148ef5000aaca5d6948e09dcc43673f9d51a91bd21c51eaee34a4bf0
- 6481896744f2a0e596f425de2590ab78e153463a8bd16fc9398bb0e6a2278f3c
- a03b62fe0dba6a9aaf080505299d632dec7eb98d2973c42b53330ec25695d9c7
- db332375bf0224ac90a0aec2475c70d0262f52a0f856ef5d244ba7ab8d89bb90
- ff234f75fe294bf4278d7976a7c44815f5aa9e981e9742fb322f19726a38dcbc
- 5f0d36853f12f5fc3d8a85874718bcef77103903cb732c370b4e301dffb38a51
- 6b336951b07e1dd63472027d7603439ee5384b3f6a814c7be34d0cdeac1bd4d0
- 21e196147819aab031a733a4ad78b4c67d77120cd8976e7aa0b364823a3beb01
- 4edbad866270ef310932149188d4e4b0d786abc22db3196430d9db9b9113e992
- 0acf0db94b5e56fd81c14a763e2b4dd32c10f21824464195e30adc7ed9e4c021
- 440ac13c8d241d537c7de382a10ca1da1716cc302dc200ac5039ac43efcfd8a6
- bb7fc4aeffeca0c89a2ba33a7c762f4764cd70334f74cfa5d4b51fc4449aabed
- feebf56ff307f191ebd2af9990840db9e3e447c0cfbdea3219320b108838202a
- 9ced74783c6e21ae934243b3558ba1ecbe2858b6cfe57a031389d4c91b4887dc
- 958ff950724abf9c593685991246325ff6d04f73ea9c518dcefe24e289770c9e
- d8f5ef61b8a2bbe021fef63d09cb8e83a848a8100331acecdd70c47cf0cf9d43
- db9f3432a6a364791e0c4c8e47516c60182a0640a8ef795e24b7fc2465c7a7b3
- 7558f05cc6319ef57cf54a176b41bb9ac6d4650de9099998d3d4ad83163d07cf
- 8f8ef308c6c5d06f20feae2e4f6b29aa0db271f1a91f1d3ad097aa7a51948384
- 987c9758f4a71bd3e7602cfd977a611fe28d58ae28f324ba1325382958735aa7
- 1ac4c54b7ed0bc407711c589328d192b1b49a4b23417d294bd3608bbc5f40581
- 71d5f764c000ad31f252fa36a94d6a178b552c1a9e4815ae883e7c490ed4d401
- 74441cfbfdbd111ab87318598dd4a3c8aaa4c4db2b86a12bc6cf41fa05881ea8
- 43bffe371b4cb25f21bf767f618631a96b24e72a658a72759f4bb6a06bc5bf32
- 50fa12cc74afb9faca4ebb8ae47d2e22756f4cae70e3c8169fbf0f568dc64fc8
- 85e3332ce6656d8df3a492ed837192df3991aab1314c1c5ef25a67bf61360cbf
- a3dadeaca0193cb249b087b165e1d6fbbd322cf06485a7cf1a35c090b4adeb31
- 55cbc207ea34d61519f48946c077cc9dfa17d24eed5310f58838af289ea0b60f
- 31c6f72f72743a4b085eb699627a3917e92531066388343a40ffc6412277027a
- 38f1b0d8091f864256464cec0e7f78f474020feb7c4748b84160c6e074088b60
- cf2c4efce1203eb8c8f8a984b90c61672cfe9a6d05da3cfecee52e12189301a0
- ca8e8da872f5053cfa15d8395d8f10a66794589833714538b0c67fd83c340466
- c15707031179223c545a4299306b3df107ded62b685363a5e3274e318b88f219
- c1699a128003f23ef5662919ed1b33c5d61caf914985e39853df29a1ba35828c
- 3fb4a2283723b2ef3709c88baeb99e77bbba33c9e835c2dfedf28c6b2ecad2fa
- 344b3b3149aa3b77f10f49b86a76c6ff0179043048093c541944058f620e8845
- b43880065a4a92aeff823e4913eabe953e88cafb9cd414b2f616475cd7af69af
- 94b414e2f89f030c131742de0d9ba48f13b16b40e06dd568c10cea417b57b5ba
- 177ca8c3883d9c5d7e4a84b79dbc7b64e430fabaa247b0cee78f9ef65e2b5aa0
- a2a071c6e3604287a99e78042b34d02d4d91b27d3b23b9ea90945da7d9456012
- ae57f94246c078f8e2d4b8c297b281115bb008a811bf2a783278deb916007da4
- a222763e7d2d5eda8a15869f85c19765111841a2ccf4d18993eb83f20bdf4933
- 7771989dad60a20756517a6f696d939039cf5f10aa47d271e2ff5c465bd7b4c0
- 389b3c1b09e744c8fe843e3784088ea72214571b975ea9d69aaeb7c4264a990b
- d5fea97921089f0b4a6a8667ddf19a430eca78223118818480a202e563088943
- 617b9daf4d828bc66fc8061601adc9c40b25f1338c5f527d9fbf83dfa3e8770b
- 87d2ec6cadb2a61909888af5cc80a4dacd64493d82d0282679ba3c597918fb07
- 1afe05f69af9bc0b0e37d1c6d0942073349b173433a41a83b3a732e6fa026511
- 68b80d99dc3ff2c2828622cdf7d21c32e6f00904a239eef3f5eedb8fb8476386
- 853ec1ad7ef319a60586902c5b3dec73e0800c7af2d94e44b549d4f03f114fd7
- d0c9e3dfd07994ebf26d4ad98ef997cb62c90c07f9d0e70c8b2f7771f39b1b95
- f5b14095e891af078ef256460a41b19e00fbcd81eba66e0331af8bc096288963
- bec28861d16cf418fa06d650765c3be8fbc02b69b41b079d3907bb01c3d8096a
- b042d80a54dbc7cd0fdf24ba3599404632d84635ae73204235dbf66ef7a35a26
- 7b791bfc3bd843a291d74d86f88c0a5a31af13d9da9f135841fd7859c442f733
- f12eb8be3a7ef93146c161f6ba02b9d9b892b792d0c190adb92398802f5365fe
- 49addce322b6020d69b65f72ee4e82a140cd0e712c647127f6fac5b66e6f51b5
- acdc9ae4ae7397ade4c4053dc3b1f22ef42cc844bf853e5e846d1f6b0c5d5cab
- 02ac07e226734f1f693283784816b3c96a48b4e592c676673901104c5dcc72b2
- b102cf97790415b804182743426e8eb1304675fb4bf360e64ae9055cce87b2f1
- f8988dfc783c4b39d8a3a44e1000c6376bc211ab6297a49eddf5194b71fdfbde
- 58cad897f3bd51b9a1fcb7d4e4d3fc6bac47e5b2d4c6c19096732556eaec1314
- 23af8e26632da7c5d791a8891295eb2a83cde54390d9cd17692525f6e32ff6ed
- 0d38ca007291146731793d1a2c7e07bad2d2ed82668dfbd5be14daacf7abdce7
- a5957711b3fd9665dd2fed5fdbbb0a2fcbce54ad43ccd6800ddf7ccf5be731e5
- fcc2580a8ab3e95d23af7ee373a9bfcdce52e2a5ce59bb59d1ba1dca75772239
- bc3a8480ff73c752cc1cbfa80c327b155b194553c3568534b9d20f7e2176df1e
- 196abc6109092f326b387f5cffad880e5b6a857203127cf1f76622ca5a823ad2
- 002109cec6f2e40fb4ffc07b04c72a8debd128357925e8d51e5a84614004a086
- 83be2c2c9f9c93c0c31c5d30c0e6fdef3df2381f7c62c64a8313066f64c98b0f
- c7c83b2c405c432c3de1c187cfc800025502b1931e07ff1108648e77279441ab
- 8156b74896fd7b69fc306f90f1fd5291316d3c9b4c5ab4df620cab8d782b466e
- 27ff153a51f800ea9620042acc47aad6b2392c3551a4be30e982652ef89fcdf2
- abbbd74fb4e2ce5cfb254837c8383c9cca637bbdfd05d403526a50b08806c050
- 0c6ada2d7bf26be43d4f3fa8f37581a1f1a3113c3399ebd328736802dbe7623f
- b8c50654545a923e7ad7ef43bb1f2ea56b845b3443ffa0410b9bb7a6be9b8b91
- 4e49460bd3cd763e9527c771c4030237700e2eb73a359fefce3bd2146db7d56e
- 82bab7b006ab019d2bf2d6b3ed9aa85796f8dc1f827ed7350b0286dbd19bbc78
- 9b6adcd828ed3c2bb4950df6a2634bc943768b3d852e2e258e52c7e2da7a5ca7
- ccd0aa23ba2662e766e2adcab201076dfdcfc5cf288e4c4bbeff6d0d3c451abb
- f3709e35f5d4d317733f943aec9e977fd83acc1eaa9a35cf149dbf05e345146c
- 282d60e14be013a29ba09611f7ebe37d1fa5fe6dd8e441a1f10270d4e10323d6
- 742960a8b13cab9901267237accfcbcded21018aff9b6fc1bfd0ab37b7c8b607
- 0ae68434908b9512c46f22a6f3149b0f611f77306887a7641527d5df55725517
- 432353f98d29dbec0bc0eb50f0316220f155dee755ea0b4cb45b0636a0fcffde
- 8c1bbca429dd81d9180639ed1e526892908d26c1784f5f9c37093577b82d25fe
- c9651a78d2d2395711d320f6fac1ffd37048d4bffc544a2f2e182cedd237d090"
+checksum="c3fafda87192d9b98dc9b2b99d62b7109dbd72f73e8d5de1ea2a418ed086317b
+ 93af0702aae30332eecdc0f407dc29080923660508018fca14fe1307fdf375a1
+ a40baf64e7376e4916fa96d7199bad099edc7e897d65b5ecc4a2dc9fdbba2e75
+ 1e915f6a0860f2f7f583a70a5668ec5033969fbba177c3d3da4e244d01ba5cb4
+ d6c45490cec27609f43fb9af406ba15e25fff544f10d038e650a5b25d2ba5a69
+ 2b5d84d3f7800d162b095d0ee77da8264af9eac3a98dfff7e14b26510c92be1e
+ f317a73af579bbb42bc6635900e5b529f5198daaf54c5a7f51756b7707747444
+ 6e65702a500ef4d2841eacbd9e16ca692d25a9aa3fcf38be2603657bfb03a80d
+ 7b056d739b64407e92a6738c8e3a5f6fe070380196c057d3f832be4015e7957c
+ 6bdd5ab6efd06bd384e227d78de6cffeac4c828ce6254d152e0137c70eb7b2e9
+ b60364c109f3fe94387bfb27258c65c09b7761248e309adb8f92eda0c6c1dddb
+ 3b91a27432306a6152f6cee7b19d684476c4282743259eb0e5f90db6483216e6
+ a17149908edf9a173b9d7ca3eac644cf45cd0e35ba40c565903ea9af9580e41e
+ b404f670ce1f3cc7fbdb170e9f0286e0a7608d779c5dae83ce5adee911876e6d
+ b41236a8ce2e96edf02165bd1ad91de967d8605ed7a9c77f079027ea0b13a7cf
+ 1f444a10561108bdfb98d43531c33d377a2565763d1299c96ef3c1f746b10555
+ f15e57588ccdf2a6be3b51fba066dc030e2808071b29957c3da844b272d1dd25
+ d51b8bdbc415fcdf5df587e364b8a3edb6296a988c38dbfb0fbec40b5dec856e
+ bcfbd612f55efff2dc98cdf9ff6ddf3d8e91274ead7d8d8bf1023cb28b815623
+ f711d9206635ac98b3eec788791089d1a64316dc55ad4be2f6043acca79317b8
+ a48efe9f0a885060fe2844ae056fb9de8932e45cfda399959ff8a4f54c99dc3f
+ c919c3557a66188ea7ab58210f6fe629f5e111bd73c0f94f298e4635c21b5f05
+ edf74a83a03f85dfb2172053cf1816736fdfb4c42fbacdf4626b128186fb15db
+ 76bc68c806add52aa205f9f6a55dd6c141ecfaa29ce5b63fe06cb8bf1ce0c567
+ af3763e63550893a001a651c5d89e4bb529004de98d58f2dc2a49336239171bf
+ 979725bd9b1b8aade54e0e24efdc2c716381130559615f45c007f0d68a0b0b69
+ db96fd8658bc75f4813ddaf457c888e3f0656dc407b12d7799dbdebb7cc1a9ae
+ ba5e81b435217c15e2d55a42d34e3313e9ad1302b34599a25b48a23846dfc920
+ fd3988b0ddcfa721fd702c126dd531f5b77f1f5af8ac61e8b23307c5b84e8e72
+ a58a245d30efb8ad6553166dd2469da504d6cf3c773e52da15c3677899f37c4e
+ 3fd377be34a8786a726a13c88d28b2b73155b1f527b2909e6841474631ce8226
+ 790af48c82bf520bcd8f915af77d1e0c8f156ae6c028b1fa0f39c3c991865d1c
+ 46b8071a1e23d8c5af1ced98cfbdb1a2258f679425434e092fbe1c42dfa26066
+ a4eefa1ff84e33059d055c984dbb47283d117cb63ad9e39d7cc4c4e61ea9c11a
+ 5a91be294ac35aac472c4ba8324221551abb2e8cb66f995806606c191dca0428
+ 9a4a582673dc466a684fd2beacbe77a152047e6023b1e247f5eda7b513e5e30d
+ 039af250c8b2dc6254b2f24975704095406c70090de9d21ecc73975d8d874675
+ 3c77fd2a4cfc49ff94994b46a9b80ea24e534299838dd64a11a5dc2ef110f901
+ feaeb14a016d732b3ec0be6266bd078fdf220c48c38683a4dd7315e076839b82
+ a4756471f45168ff28fdc0e87c65b33288ca1f7fd2eedb7e31a726ee4766fb3c
+ 4eb62cbed52d1cdad08551a38d1f7656c71ef986df49eee0381e9aec7b11c0ba
+ 8e967ef8ff1f1a2fc21ea537d629d40a38d6b8789ce344e79d7a3b3b78138968
+ e008e241c41900d6df1128d5dd55d41e1ed43d7c60d48329a321716968397b09
+ 7011776c661b07bc3fd7d24b62765aeee10ba2a72ea4112862989f759aceb466
+ 760c44d1512be5f10264d195785e45d47c46595ef57c24de81c070a81ba65456
+ 531ec7550a9ab4e2410e9c69495852eaa0e7df43e022ed7ec0f0c50e148a4506
+ c46413f7aa225147712fb634483f64c9368f43d03ba6f66405e4c9dc281421b4
+ 42debde9c9341fc910ff382e94fade233b3ad23e4f474d89426648c659a99a12
+ 50f1088649f77e0f83dffe3e81dd8ac993d1d8f06d8f231acdf98a69cda9147a
+ 2a4f6162bfbf5ea44c832c0d5896079b0ce69e590dc377e3bbd37a92f9780e6c
+ 60aa95eb50d59ddb2bf57d5cfacf860d4cc2c8b86a219f35ceaa30d82fd6e593
+ 73a416254d022b051bb38ebf085772c031ecba18ab4896634ba8599fcb396f7b
+ ae3aa802087754458465af30a4ddafc8baa08e101a4e177b144b4f606a78b941
+ 30c7498935e0d4529ccbe3a5c7671aec9505d0132cd6123f97c0680c80cbb917
+ 99b76ac0f7cf4c5d5ae8b66ae3e54e3932c6a6f101aba8b156cf8d78a67e3f0b
+ 1bcb69081c99b27781c81becce86baaf2f1da54ceba009904ad2a5a8614eaa68
+ bb3152472d5582b365722a83972b416d78b8bddfc6dbea40d1c778c37eb86623
+ 426115a07ce25b7d2ae89024bf81e8b5957df9d8709bd6e5c1da704633af3c85
+ 24918b9cd56f5fe12c7e02b0cedcdaf2abeeb7ec3cdb75a4aee3ca2d4aaaa961
+ 8497c47c4f151966538836b0dfa312a044d8496ffc4647fcf62c8ed19b2337d9
+ e160dd5b88f37562d7cbace3f46b8fd8edc5b9211f4240d8e38aec3dd81d915d
+ 298ab33911b8c425e6032eba867bc31925ea24b2457298bbf965bd6b194edc3f
+ 4c53367e4ddcff92733a95139baf9610390bf3eaf78ef5a5d10b4530c359e8eb
+ f340c62b77eaaa6bde0e61944c508b32785619ad4ca54b7dfbf281fcb986eac0
+ 99201be46e35f22312a27da2a2afc54f46043342a1c577fa64696ef365198329
+ 41e4d2d255435d2b50a8e0c4c59b13a0a0aafae925cd32e20bf9005cd066d11e
+ 266141c6c9a6729da904dfa040ae20d80a6b5c39efc31fcf2d039ed65e9c2b28
+ 33daee0ac659ec7d1fb1cb101798dae2ed0077653fc9170bcbb5bc554ee3e433
+ 23b74270aef1c6a4bff5194103a430e6854fe4c460e5c684769bd7c59d1afa0d
+ 9405687dbb0a81e8be8f842824f2fe65830b70a0dd0dcde84cc8a21d6637f841
+ 40a608e720136044f4b95728474fcb82764e61d649551be438e330b63753635f
+ 0ef710447a36e81a6c86b17ee28d2cf463242834936af2578074df6e11c2baea
+ 3f0d0d33abda068465d7747149cdf11a4b1dc819f7da7f1f7a3d9c2a45307231
+ 9d2c3438776531077e379e97a449e714882896c53dbb87052de7e7ac77ea3d67
+ de9b4ec945265f5539025fb73b713322924da2d1a51b5bd6ad1baba4584c76e1
+ 7b66c7d5e1b9eb6959295a76416271220e84ecc43a97a5f5f07ec99986579cb1
+ 4404f5fe56868f5c551208d72630b91a88c68f78d7463e8e1d221fd7406c0783
+ 3f55ec2730a870951759961c83d6654c7122a3114e136a6e2bce7c05d6062d89
+ 873819bc254911aa3a443d0a9db306b472f7f31af8d986d54c535bce67a4b1c0
+ 07326e95015601946706f50333c32b0919025376abcdf88dc225dae2c167b19a
+ bfdd58d9f0f0e809e6b801f65c722c61b4dbb5e6635cecd7390d1403f1dd6f42
+ 8c2d716291a28cc64f93078d2bdf8d756a6521e3b0107815788c48452eac95f0
+ 9b07735b4d8e8359e38d671ed054b373c4ed50a232013807d09ca4fae31e8223
+ 5592ee66611515f8583a48211d70764fdb28c54b1ad4de5b4b87a9d3b101a182
+ d36e2c9a894beb94b62855bd07d4b54e41fc96c0736b5e2e702422e75b3cf21e
+ caf7dd282fb6dc065eb6a0c124cd458716d877a500c094ff650c4d40302dd49e
+ 80bd3c70433f6b3aacdbd370b70d4fe0eab13547d1f6368b80eb5c28a759141a
+ 67b359947cbe15b2be1ad2567d74a36cfe5f27665a058b0fab19ed37ddd63a30
+ b3347d5cec7f9f6e3aa4b5ccdd49350fd0879c20938bfc22664782c377dd73a6
+ 79b512427977c359ec8f93e4880cd5397ccddb013676d2d39837f06433fe4041
+ 883d5daa5b041778b0984a7e86ecfc4892af1aed1ec09285ac031e335075524c
+ bc1981c7cb2e6d5aecec7fb0f370c1da52895f00d238c1afa2b4e31b93580eb6
+ 6278e5c054f50d3de62de9d070d21d2842d4d0ff9212d852af8eb672fad7ecea"

From 08224aca8afc3de17ed124c1b155039207e71c69 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Sat, 7 Sep 2019 18:09:55 +0700
Subject: [PATCH 3/3] firefox{,-esr}-i18n: add script to update firefox locale

[skip ci]

Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
---
 .../firefox-esr-i18n/files/update-lang-list   |  1 +
 srcpkgs/firefox-i18n/files/update-lang-list   | 81 +++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 120000 srcpkgs/firefox-esr-i18n/files/update-lang-list
 create mode 100755 srcpkgs/firefox-i18n/files/update-lang-list

diff --git a/srcpkgs/firefox-esr-i18n/files/update-lang-list b/srcpkgs/firefox-esr-i18n/files/update-lang-list
new file mode 120000
index 00000000000..d6e91286846
--- /dev/null
+++ b/srcpkgs/firefox-esr-i18n/files/update-lang-list
@@ -0,0 +1 @@
+../../firefox-i18n/files/update-lang-list
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n/files/update-lang-list b/srcpkgs/firefox-i18n/files/update-lang-list
new file mode 100755
index 00000000000..ff8042113bf
--- /dev/null
+++ b/srcpkgs/firefox-i18n/files/update-lang-list
@@ -0,0 +1,81 @@
+#!/bin/bash
+# Copyright (c) 2019 Danh Doan
+# All rights reserved.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+version=$1
+
+esr=""
+[[ $version =~ esr$ ]] && esr="-esr"
+
+tmpldir="firefox${esr}-i18n"
+
+tmpoldfile="$(mktemp)"
+tmpnewfile="$(mktemp)"
+
+xoldlangexpr="^_languages="
+
+xlistold() {
+	source "${tmpldir}/template"
+	for _lang in "${_languages[@]}"; do
+		_locale="${_lang%%\"*}"
+		[ $_locale ] && echo "$_locale"
+	done
+}
+
+xlink () {
+	ln -sf "$tmpldir" "$tmpldir-$1"
+}
+
+xnewlang () {
+	lang=$1
+	padded=$(printf '%-7s' $lang)
+	xoldexpr=$xoldlangexpr
+	xoldlangexpr="'$lang \+\""
+	grep -q "'$lang \+\"" "$tmpldir/template" && return 0
+	sed -i "/$xoldexpr/a\\
+	'$padded\"Unknown\"'
+	/checksum=/a\\
+ badbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadbadb" \
+	"$tmpldir/template"
+}
+
+xprocessnew() {
+	while read lang; do
+		printf '%-7s\n' $lang >&3
+		xlink $lang
+		xnewlang $lang
+	done
+}
+
+xcleanlang() {
+	while read lang; do
+		padded=$(printf '%-7s' $lang)
+		sed -i "/'$padded\"/d" $tmpldir/template
+		unlink "$tmpldir-$lang" || true
+	done
+}
+
+cd $(xdistdir)/srcpkgs
+
+xlistold >| "$tmpoldfile"
+
+curl "https://ftp.mozilla.org/pub/firefox/releases/$1/linux-i686/xpi/" \
+	| grep -o 'xpi/[a-z]\+\(-[A-Z]\+\)\?' \
+	| cut -d/ -f2 \
+	| xprocessnew 3>$tmpnewfile
+
+grep -vF -f $tmpnewfile $tmpoldfile \
+	| xcleanlang
+
+rm -rf $tmpoldfile $tmpnewfile

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [wip] firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (9 preceding siblings ...)
  2019-09-08 10:12 ` voidlinux-github
@ 2019-09-09  8:06 ` voidlinux-github
  2019-09-15  4:32 ` voidlinux-github
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-09  8:06 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 313 bytes --]

New comment by zdtcd on void-packages repository

https://github.com/void-linux/void-packages/pull/14229#issuecomment-529347597

Comment:
Testing is stuck because of update on gcc and cross toolchain, hence xbps-src want to rebuild a lot of packages.
I'll get back to work on this pr when void buildbot settled.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (10 preceding siblings ...)
  2019-09-09  8:06 ` [wip] firefox esr voidlinux-github
@ 2019-09-15  4:32 ` voidlinux-github
  2019-09-15  4:33 ` voidlinux-github
  2019-09-15  8:10 ` [PR PATCH] [Merged]: " voidlinux-github
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-15  4:32 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 378 bytes --]

New comment by zdtcd on void-packages repository

https://github.com/void-linux/void-packages/pull/14229#issuecomment-531533767

Comment:
This PR could be pulled for now.
There're 2 issues:
- Cross compile i686 from x86_64 depends on #14401 but most people compile i686 from i686 bootstrap
- cross compile ppc64le from x86_64 have some problems with cross-compiler toolchain

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (11 preceding siblings ...)
  2019-09-15  4:32 ` voidlinux-github
@ 2019-09-15  4:33 ` voidlinux-github
  2019-09-15  8:10 ` [PR PATCH] [Merged]: " voidlinux-github
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-15  4:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 461 bytes --]

New comment by zdtcd on void-packages repository

https://github.com/void-linux/void-packages/pull/14229#issuecomment-531533767

Comment:
This PR could be pulled for now.
There're 2 issues:
- Cross compile i686 from x86_64 depends on #14401 but most people compile i686 from i686 bootstrap
- cross compile ppc64le from x86_64 have some problems with cross-compiler tool-chain, but running xbps-src again can build it successfully. I'm gonna investigate xbps

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PR PATCH] [Merged]: firefox esr
  2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
                   ` (12 preceding siblings ...)
  2019-09-15  4:33 ` voidlinux-github
@ 2019-09-15  8:10 ` " voidlinux-github
  13 siblings, 0 replies; 15+ messages in thread
From: voidlinux-github @ 2019-09-15  8:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 898 bytes --]

There's a merged pull request on the void-packages repository

firefox esr
https://github.com/void-linux/void-packages/pull/14229

Description:
Built for:
- [x] x86_64 from x86_64 bootstrap - TESTED
- [x] x86_64-musl from x86_64-musl bootstrap - TESTED
- [x] i686 from i686 bootstrap - BUILT and smoke TESTED.
    - Setting search engine seems broken, the search engine in address bar survives one restart,
    but it's reset to Google on the second restart, the default search engine in setting,
    and search bar. and in homepage doesn't survive the restart.
    Reproducible with Firefox 69.0
    - add-on works fine
- [ ] i686 from x86_64 bootstrap - IN PROGRESS
    - ~tool-chain crashed~ I forget to remove `-march=native` in my configuration
    - depends on #14401 
- [x] aarch64-musl from x86_64-musl bootstrap - smoke TESTED
- [x] ppc64le-musl from x86_64-musl bootstrap

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, back to index

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-06  1:13 [PR PATCH] Firefox esr voidlinux-github
2019-09-06 17:26 ` voidlinux-github
2019-09-07 11:12 ` [PR PATCH] [Updated] " voidlinux-github
2019-09-07 11:12 ` voidlinux-github
2019-09-08  9:02 ` voidlinux-github
2019-09-08  9:43 ` voidlinux-github
2019-09-08  9:47 ` voidlinux-github
2019-09-08 10:11 ` [PR PATCH] [Updated] " voidlinux-github
2019-09-08 10:11 ` voidlinux-github
2019-09-08 10:12 ` voidlinux-github
2019-09-08 10:12 ` voidlinux-github
2019-09-09  8:06 ` [wip] firefox esr voidlinux-github
2019-09-15  4:32 ` voidlinux-github
2019-09-15  4:33 ` voidlinux-github
2019-09-15  8:10 ` [PR PATCH] [Merged]: " voidlinux-github

Github messages for voidlinux

Archives are clonable: git clone --mirror http://inbox.vuxu.org/voidlinux-github

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.github.voidlinux


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git