Github messages for voidlinux
 help / color / mirror / Atom feed
From: pullmoll <pullmoll@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [WIP] firefox-esr: update to 78.4.0
Date: Wed, 04 Nov 2020 18:35:49 +0100	[thread overview]
Message-ID: <20201104173549.1Cg9ALcHhBYoDzXaiVxuNG_27ib2buH_rixl1G8vaVE@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-26130@inbox.vuxu.org>

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

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

https://github.com/pullmoll/void-packages firefox-esr-78
https://github.com/void-linux/void-packages/pull/26130

[WIP] firefox-esr: update to 78.4.0
Still testing if it builds for all platforms.

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-firefox-esr-78-26130.patch --]
[-- Type: text/x-diff, Size: 57963 bytes --]

From eae8d56329bd3ff9bbde7510a51a2ef2ada42b4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= <pullmoll@t-online.de>
Date: Wed, 4 Nov 2020 16:13:37 +0100
Subject: [PATCH 1/2] firefox-esr: update to 78.4.0

[ci skip]
---
 srcpkgs/firefox-esr/files/firefox-wayland     |   2 +
 srcpkgs/firefox-esr/files/mozconfig           |   7 +-
 .../patches/big-endian-image-decoders.patch   |  88 +++++++++++
 .../disable-image-format-warning.patch        |  15 --
 srcpkgs/firefox-esr/patches/fix-cross.patch   |  16 ++
 ...686-musl.patch => fix-i686-ppc-musl.patch} |   0
 .../patches/fix-image-format-warning.patch    |  39 +++++
 .../patches/fix-sandbox-membarrier.patch      |  52 -------
 .../firefox-esr/patches/fix-seccomp-bpf.patch |  14 --
 srcpkgs/firefox-esr/patches/fix-toolkit.patch |  78 ----------
 srcpkgs/firefox-esr/patches/fix-tools.patch   |  29 ----
 .../firefox-esr/patches/flac-no-ffvpx.patch   |  26 ++++
 srcpkgs/firefox-esr/patches/gettid-musl.patch |  11 --
 .../firefox-esr/patches/ppc32-fix-build.patch |  36 +++++
 ...rustc-check.patch => rust-configure.patch} |   8 +-
 .../firefox-esr/patches/rust-has-i128.patch   |  21 +++
 .../firefox-esr/patches/sandbox-fork.patch    |  13 ++
 srcpkgs/firefox-esr/patches/skia-sucks1.patch | 147 +++++++++---------
 srcpkgs/firefox-esr/patches/skia-sucks3.patch |  28 +++-
 srcpkgs/firefox-esr/patches/sndio.patch       |  81 +++-------
 srcpkgs/firefox-esr/template                  | 120 ++++++++------
 21 files changed, 433 insertions(+), 398 deletions(-)
 create mode 100644 srcpkgs/firefox-esr/files/firefox-wayland
 create mode 100644 srcpkgs/firefox-esr/patches/big-endian-image-decoders.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/firefox-esr/patches/fix-cross.patch
 rename srcpkgs/firefox-esr/patches/{fix-i686-musl.patch => fix-i686-ppc-musl.patch} (100%)
 create mode 100644 srcpkgs/firefox-esr/patches/fix-image-format-warning.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-sandbox-membarrier.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-seccomp-bpf.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/fix-toolkit.patch
 create mode 100644 srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
 delete mode 100644 srcpkgs/firefox-esr/patches/gettid-musl.patch
 create mode 100644 srcpkgs/firefox-esr/patches/ppc32-fix-build.patch
 rename srcpkgs/firefox-esr/patches/{remove-rustc-check.patch => rust-configure.patch} (85%)
 create mode 100644 srcpkgs/firefox-esr/patches/rust-has-i128.patch
 create mode 100644 srcpkgs/firefox-esr/patches/sandbox-fork.patch

diff --git a/srcpkgs/firefox-esr/files/firefox-wayland b/srcpkgs/firefox-esr/files/firefox-wayland
new file mode 100644
index 00000000000..ca6010f3044
--- /dev/null
+++ b/srcpkgs/firefox-esr/files/firefox-wayland
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec env MOZ_ENABLE_WAYLAND= /usr/lib/icecat/icecat "$@"
diff --git a/srcpkgs/firefox-esr/files/mozconfig b/srcpkgs/firefox-esr/files/mozconfig
index 0798fdd40ef..31bb6dcd0f2 100644
--- a/srcpkgs/firefox-esr/files/mozconfig
+++ b/srcpkgs/firefox-esr/files/mozconfig
@@ -3,7 +3,6 @@ ac_add_options --libdir=/usr/lib
 
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
-ac_add_options --with-system-bz2
 ac_add_options --with-system-jpeg
 ac_add_options --with-system-zlib
 ac_add_options --with-system-libevent
@@ -12,12 +11,8 @@ ac_add_options --with-system-icu
 # XXX: the system's libpng doesn't have APNG support
 ac_add_options --without-system-png
 ac_add_options --enable-system-pixman
-ac_add_options --enable-system-sqlite
 ac_add_options --enable-system-ffi
 
-ac_add_options --with-nspr-prefix=${XBPS_CROSS_BASE}/usr
-ac_add_options --with-nss-prefix=${XBPS_CROSS_BASE}/usr
-
 nspr_config_args="
  --libdir=${XBPS_CROSS_BASE}/usr/lib
  --includedir=${XBPS_CROSS_BASE}/usr/include/nspr"
@@ -26,13 +21,13 @@ nss_config_args="
  --libdir=${XBPS_CROSS_BASE}/usr/lib
  --includedir=${XBPS_CROSS_BASE}/usr/include/nss"
 
-ac_add_options --disable-gconf
 ac_add_options --disable-tests
 ac_add_options --disable-crashreporter
 ac_add_options --disable-updater
 ac_add_options --disable-install-strip
 ac_add_options --disable-strip
 ac_add_options --disable-profiling
+ac_add_options --enable-release
 ac_add_options --enable-optimize="$CFLAGS"
 
 ac_add_options --enable-official-branding
diff --git a/srcpkgs/firefox-esr/patches/big-endian-image-decoders.patch b/srcpkgs/firefox-esr/patches/big-endian-image-decoders.patch
new file mode 100644
index 00000000000..ccb417b61f1
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/big-endian-image-decoders.patch
@@ -0,0 +1,88 @@
+https://bugzilla.mozilla.org/show_bug.cgi?id=1626236
+https://bug1626236.bmoattachments.org/attachment.cgi?id=9137096
+
+# HG changeset patch
+# User msirringhaus@suse.de
+# Date 1582805876 -3600
+#      Thu Feb 27 13:17:56 2020 +0100
+# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158
+# Parent  9cd90914846f667f18babc491a74c164ae5d6e9f
+imported patch decoder_workaround.patch
+
+diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp
+--- image/decoders/nsGIFDecoder2.cpp	Thu Feb 27 12:57:14 2020 +0100
++++ image/decoders/nsGIFDecoder2.cpp	Fri Mar 27 13:06:18 2020 +0100
+@@ -422,6 +422,9 @@
+   MOZ_ASSERT(mSwizzleFn);
+   uint8_t* data = reinterpret_cast<uint8_t*>(aColormap);
+   mSwizzleFn(data, data, aColors);
++#if MOZ_BIG_ENDIAN()
++  SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
++#endif
+ }
+ 
+ LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator,
+diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp
+--- image/decoders/nsJPEGDecoder.cpp	Thu Feb 27 12:57:14 2020 +0100
++++ image/decoders/nsJPEGDecoder.cpp	Fri Mar 27 13:06:18 2020 +0100
+@@ -263,6 +263,9 @@
+         case JCS_YCbCr:
+           // By default, we will output directly to BGRA. If we need to apply
+           // special color transforms, this may change.
++#if MOZ_BIG_ENDIAN()
++          mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
++#else
+           switch (SurfaceFormat::OS_RGBX) {
+             case SurfaceFormat::B8G8R8X8:
+               mInfo.out_color_space = JCS_EXT_BGRX;
+@@ -277,6 +280,7 @@
+               mState = JPEG_ERROR;
+               return Transition::TerminateFailure();
+           }
++#endif
+           break;
+         case JCS_CMYK:
+         case JCS_YCCK:
+diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp
+--- image/decoders/nsPNGDecoder.cpp	Thu Feb 27 12:57:14 2020 +0100
++++ image/decoders/nsPNGDecoder.cpp	Fri Mar 27 13:06:18 2020 +0100
+@@ -361,7 +361,7 @@
+                                    IResumable* aOnResume) {
+   MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!");
+ 
+-  return mLexer.Lex(aIterator, aOnResume,
++  LexerResult res = mLexer.Lex(aIterator, aOnResume,
+                     [=](State aState, const char* aData, size_t aLength) {
+                       switch (aState) {
+                         case State::PNG_DATA:
+@@ -371,6 +371,14 @@
+                       }
+                       MOZ_CRASH("Unknown State");
+                     });
++
++#if MOZ_BIG_ENDIAN()
++  if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
++      NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
++  }
++#endif
++
++  return res;
+ }
+ 
+ LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData(
+diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp
+--- image/decoders/nsWebPDecoder.cpp	Thu Feb 27 12:57:14 2020 +0100
++++ image/decoders/nsWebPDecoder.cpp	Fri Mar 27 13:06:18 2020 +0100
+@@ -237,7 +237,12 @@
+   // WebP doesn't guarantee that the alpha generated matches the hint in the
+   // header, so we always need to claim the input is BGRA. If the output is
+   // BGRX, swizzling will mask off the alpha channel.
++#if MOZ_BIG_ENDIAN()
++  mBuffer.colorspace = MODE_ARGB;
++  SurfaceFormat inFormat = mFormat;
++#else
+   SurfaceFormat inFormat = SurfaceFormat::OS_RGBA;
++#endif
+ 
+   SurfacePipeFlags pipeFlags = SurfacePipeFlags();
+   if (mFormat == SurfaceFormat::OS_RGBA &&
diff --git a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch b/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
deleted file mode 100644
index bd56e6bc37c..00000000000
--- a/srcpkgs/firefox-esr/patches/disable-image-format-warning.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-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-cross.patch b/srcpkgs/firefox-esr/patches/fix-cross.patch
new file mode 100644
index 00000000000..9b8a816d269
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-cross.patch
@@ -0,0 +1,16 @@
+terrible hack to fix cross builds
+overwrite HOST_* flags to get rid of -MF
+
+note: this patch was used from firefox-77 until 80, dropped with the update to 81
+
+--- third_party/rust/glslopt/build.rs
++++ third_party/rust/glslopt/build.rs
+@@ -28,6 +28,8 @@
+     env::remove_var(format!("CXXFLAGS_{}", &target));
+     env::remove_var(format!("CFLAGS_{}", target.replace("-", "_")));
+     env::remove_var(format!("CXXFLAGS_{}", target.replace("-", "_")));
++    env::set_var("HOST_CFLAGS", "-O2");
++    env::set_var("HOST_CXXFLAGS", "-O2");
+
+     configure(&mut cc::Build::new())
+         .warnings(false)
diff --git a/srcpkgs/firefox-esr/patches/fix-i686-musl.patch b/srcpkgs/firefox-esr/patches/fix-i686-ppc-musl.patch
similarity index 100%
rename from srcpkgs/firefox-esr/patches/fix-i686-musl.patch
rename to srcpkgs/firefox-esr/patches/fix-i686-ppc-musl.patch
diff --git a/srcpkgs/firefox-esr/patches/fix-image-format-warning.patch b/srcpkgs/firefox-esr/patches/fix-image-format-warning.patch
new file mode 100644
index 00000000000..9b3b38d9065
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/fix-image-format-warning.patch
@@ -0,0 +1,39 @@
+# HG changeset patch
+# User Lee Salzman <lsalzman@mozilla.com>
+# Date 1462463631 14400
+#      Thu May 05 11:53:51 2016 -0400
+# Node ID 8da374804a09977c8f89af5e6e0cb37cb074595d
+# Parent  29662e28a9c93ac67ee0b8ddfb65a9f29bbf73f5
+handle big-endian formats in Cairo format conversions
+
+--- gfx/2d/HelpersCairo.h
++++ gfx/2d/HelpersCairo.h
+@@ -147,7 +147,14 @@ static inline cairo_format_t GfxFormatToCairoFormat(Su
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
+-      gfxCriticalError() << "Unknown image format " << (int)format;
++      // _UINT32 formats don't match B8G8R8[AX]8 on big-endian platforms,
++      // and Moz2d uses B8G8R8[AX]8 as if it was _UINT32.
++      // See bug 1269654
++      if (format == SurfaceFormat::B8G8R8X8) {
++        return CAIRO_FORMAT_RGB24;
++      } else if (format != SurfaceFormat::B8G8R8A8) {
++        gfxCriticalError() << "Unknown image format " << (int)format;
++      }
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }
+@@ -177,7 +184,11 @@ static inline cairo_content_t GfxFormatToCairoContent(
+     case SurfaceFormat::A8:
+       return CAIRO_CONTENT_ALPHA;
+     default:
+-      gfxCriticalError() << "Unknown image content format " << (int)format;
++      if (format == SurfaceFormat::B8G8R8X8) {
++        return CAIRO_CONTENT_COLOR;
++      } else if (format != SurfaceFormat::B8G8R8A8) {
++        gfxCriticalError() << "Unknown image content format " << (int)format;
++      }
+       return CAIRO_CONTENT_COLOR_ALPHA;
+   }
+ }
diff --git a/srcpkgs/firefox-esr/patches/fix-sandbox-membarrier.patch b/srcpkgs/firefox-esr/patches/fix-sandbox-membarrier.patch
deleted file mode 100644
index caffd83cf67..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-sandbox-membarrier.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-allow usage of SYS_membarrier, needed since musl-1.1.22
-
---- security/sandbox/linux/SandboxFilter.cpp
-+++ security/sandbox/linux/SandboxFilter.cpp
-@@ -283,6 +283,8 @@
-       case __NR_set_tid_address:
-         return Allow();
- #endif
-+      case __NR_membarrier:
-+        return Allow();
- 
-         // prctl
-       case __NR_prctl: {
-
---- security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
-+++ security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
-@@ -1385,6 +1385,10 @@
- #define __NR_memfd_create (__NR_SYSCALL_BASE+385)
- #endif
- 
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier (__NR_SYSCALL_BASE+389)
-+#endif
-+
- // ARM private syscalls.
- #if !defined(__ARM_NR_BASE)
- #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
-
---- security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
-+++ security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
-@@ -1290,5 +1290,9 @@
- #define __NR_memfd_create 319
- #endif
- 
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier 324
-+#endif
-+
- #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_
- 
---- security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
-+++ security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
-@@ -1490,5 +1490,9 @@
- #define __NR_shutdown 373
- #endif
- 
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier 375
-+#endif
-+
- #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
- 
diff --git a/srcpkgs/firefox-esr/patches/fix-seccomp-bpf.patch b/srcpkgs/firefox-esr/patches/fix-seccomp-bpf.patch
deleted file mode 100644
index ed94fc39ed0..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-seccomp-bpf.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc.orig	2015-09-23 09:10:08.812740571 +0200
-+++ security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc	2015-09-23 09:11:38.404746155 +0200
-@@ -23,6 +23,11 @@
- #include "sandbox/linux/services/android_ucontext.h"
- #endif
- 
-+// musl libc defines siginfo_t __si_fields instead of _sifields
-+#if defined(OS_LINUX) && !defined(__GLIBC__)
-+#define _sifields __si_fields
-+#endif
-+
- namespace {
- 
- struct arch_sigsys {
diff --git a/srcpkgs/firefox-esr/patches/fix-toolkit.patch b/srcpkgs/firefox-esr/patches/fix-toolkit.patch
deleted file mode 100644
index 86e8ef47855..00000000000
--- a/srcpkgs/firefox-esr/patches/fix-toolkit.patch
+++ /dev/null
@@ -1,78 +0,0 @@
---- toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h.orig    2016-07-05 21:00:03.672000517 +0200
-+++ toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2016-07-05 21:05:37.347806230 +0200
-@@ -1134,6 +1134,12 @@
- #ifndef __NR_fallocate
- #define __NR_fallocate          285
- #endif
-+
-+#undef __NR_pread
-+#define __NR_pread __NR_pread64
-+#undef __NR_pwrite
-+#define __NR_pwrite __NR_pwrite64
-+
- /* End of x86-64 definitions                                                 */
- #elif defined(__mips__)
- #if _MIPS_SIM == _MIPS_SIM_ABI32
---- toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc	2014-03-15 05:19:36.000000000 +0000
-+++ toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc	2014-04-17 10:24:33.793431933 +0000
-@@ -45,6 +45,7 @@
- #include <sys/mman.h>
- #include <sys/stat.h>
- #include <unistd.h>
-+#include <libgen.h>
- 
- #include <iostream>
- #include <set>
---- toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc	2014-03-15 05:19:36.000000000 +0000
-+++ toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc	2014-04-17 10:24:33.793431933 +0000
-@@ -41,6 +41,10 @@
- 
- #include "common/using_std_string.h"
- 
-+#ifndef N_UNDF
-+#define N_UNDF 0
-+#endif
-+
- using std::vector;
- 
- namespace google_breakpad {
---- toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h	2014-03-15 05:19:36.000000000 +0000
-+++ toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h	2014-04-17 10:24:33.793431933 +0000
-@@ -55,7 +55,7 @@
-
- #ifdef HAVE_MACH_O_NLIST_H
- #include <mach-o/nlist.h>
--#elif defined(HAVE_A_OUT_H)
-+#elif 0
- #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
-@@ -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;
-   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
-@@ -4085,6 +4086,7 @@
-   }
- 
-   fts_close(ftsdir);
-+#endif
- 
-   return rv;
- }
diff --git a/srcpkgs/firefox-esr/patches/fix-tools.patch b/srcpkgs/firefox-esr/patches/fix-tools.patch
index 0ed043fb5b5..1af39bc6118 100644
--- a/srcpkgs/firefox-esr/patches/fix-tools.patch
+++ b/srcpkgs/firefox-esr/patches/fix-tools.patch
@@ -1,34 +1,5 @@
---- 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.
--  char* c_filename = strdup(filename.c_str());
--  string base = basename(c_filename);
--  free(c_filename);
-+  // 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.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)
-+  sa.sa_sigaction = SigprofHandler;
-+#else
-   sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
-+#endif
-   sigemptyset(&sa.sa_mask);
-   sa.sa_flags = SA_RESTART | SA_SIGINFO;
-   if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
 @@ -497,8 +501,10 @@
  ucontext_t sSyncUContext;
  
diff --git a/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch b/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
new file mode 100644
index 00000000000..e3f60e8ecf6
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch
@@ -0,0 +1,26 @@
+Enable FLAC on platforms without ffvpx like powerpc*
+
+diff --git dom/media/flac/FlacDecoder.cpp dom/media/flac/FlacDecoder.cpp
+index 53fc3c9937f7..b23771ab80fa 100644
+--- dom/media/flac/FlacDecoder.cpp
++++ dom/media/flac/FlacDecoder.cpp
+@@ -7,6 +7,7 @@
+ #include "FlacDecoder.h"
+ #include "MediaContainerType.h"
+ #include "mozilla/StaticPrefs_media.h"
++#include "PDMFactory.h"
+ 
+ namespace mozilla {
+ 
+@@ -14,6 +15,11 @@ namespace mozilla {
+ bool FlacDecoder::IsEnabled() {
+ #ifdef MOZ_FFVPX
+   return StaticPrefs::media_flac_enabled();
++#elif defined(MOZ_FFMPEG)
++  RefPtr<PDMFactory> platform = new PDMFactory();
++  return StaticPrefs::media_flac_enabled() &&
++         platform->SupportsMimeType("audio/flac"_ns,
++                                    /* DecoderDoctorDiagnostics* */ nullptr);
+ #else
+   // Until bug 1295886 is fixed.
+   return false;
diff --git a/srcpkgs/firefox-esr/patches/gettid-musl.patch b/srcpkgs/firefox-esr/patches/gettid-musl.patch
deleted file mode 100644
index c1cb99bf651..00000000000
--- a/srcpkgs/firefox-esr/patches/gettid-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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/ppc32-fix-build.patch b/srcpkgs/firefox-esr/patches/ppc32-fix-build.patch
new file mode 100644
index 00000000000..c1a8f422d0a
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/ppc32-fix-build.patch
@@ -0,0 +1,36 @@
+This is not a complete/correct patch, but it makes firefox build. For now
+mostly for tracking, so a real fix can be made, but right now it still
+segfaults on start.
+
+Ref: https://hg.mozilla.org/mozilla-central/rev/08339a56f3ae
+Ref: https://hg.mozilla.org/mozilla-central/rev/d16fcad6aa60
+Ref: https://hg.mozilla.org/mozilla-central/rev/ab87611d012e
+Ref: https://hg.mozilla.org/mozilla-central/file/tip/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp
+
+--- xpcom/reflect/xptcall/xptcall.h
++++ xpcom/reflect/xptcall/xptcall.h
+@@ -71,6 +71,11 @@ struct nsXPTCVariant {
+     ExtendedVal ext;
+   };
+ 
++#if defined(__powerpc__) && !defined(__powerpc64__)
++  // this field is still necessary on ppc32, as an address
++  // to it is taken certain places in xptcall
++  void *ptr;
++#endif
+   nsXPTType type;
+   uint8_t flags;
+ 
+@@ -91,7 +96,12 @@ struct nsXPTCVariant {
+   };
+ 
+   void ClearFlags() { flags = 0; }
++#if defined(__powerpc__) && !defined(__powerpc64__)
++  void SetIndirect() { ptr = &val; flags |= IS_INDIRECT; }
++  bool IsPtrData() const { return IsIndirect(); }
++#else
+   void SetIndirect() { flags |= IS_INDIRECT; }
++#endif
+ 
+   bool IsIndirect() const { return 0 != (flags & IS_INDIRECT); }
+ 
diff --git a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch b/srcpkgs/firefox-esr/patches/rust-configure.patch
similarity index 85%
rename from srcpkgs/firefox-esr/patches/remove-rustc-check.patch
rename to srcpkgs/firefox-esr/patches/rust-configure.patch
index 26a20dd94ce..887c102bc55 100644
--- a/srcpkgs/firefox-esr/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox-esr/patches/rust-configure.patch
@@ -1,9 +1,9 @@
 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	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 @@
+--- build/moz.configure/rust.configure.orig	2019-10-17 04:19:59.000000000 +0700
++++ build/moz.configure/rust.configure	2019-10-22 11:48:55.616022140 +0700
+@@ -78,9 +78,6 @@
  
      return unwrap
  
@@ -13,7 +13,7 @@ Remove calls to unwrap_rustup, they fail if rustup isn't present
  
  set_config('CARGO', cargo)
  set_config('RUSTC', rustc)
-@@ -365,26 +362,6 @@
+@@ -348,26 +345,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
diff --git a/srcpkgs/firefox-esr/patches/rust-has-i128.patch b/srcpkgs/firefox-esr/patches/rust-has-i128.patch
new file mode 100644
index 00000000000..4c90cd3d106
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/rust-has-i128.patch
@@ -0,0 +1,21 @@
+The configure check fails for cross builds.
+i128 is supported since rust-1.26, so it is safe for us to assume it is always present
+
+--- third_party/rust/num-traits/build.rs.orig	2020-02-14 23:57:25.985355610 +0100
++++ third_party/rust/num-traits/build.rs	2020-02-14 23:58:36.255710188 +0100
+@@ -1,14 +1,5 @@
+-extern crate autocfg;
+-
+-use std::env;
+-
+ fn main() {
+-    let ac = autocfg::new();
+-    if ac.probe_type("i128") {
+-        println!("cargo:rustc-cfg=has_i128");
+-    } else if env::var_os("CARGO_FEATURE_I128").is_some() {
+-        panic!("i128 support was not detected!");
+-    }
++    println!("cargo:rustc-cfg=has_i128");
+ 
+     autocfg::rerun_path("build.rs");
+ }
diff --git a/srcpkgs/firefox-esr/patches/sandbox-fork.patch b/srcpkgs/firefox-esr/patches/sandbox-fork.patch
new file mode 100644
index 00000000000..72640cb7f70
--- /dev/null
+++ b/srcpkgs/firefox-esr/patches/sandbox-fork.patch
@@ -0,0 +1,13 @@
+make SYS_fork non-fatal, musl uses it for fork(2)
+
+--- security/sandbox/linux/SandboxFilter.cpp
++++ security/sandbox/linux/SandboxFilter.cpp
+@@ -1253,6 +1253,8 @@
+         // usually do something reasonable on error.
+       case __NR_clone:
+         return ClonePolicy(Error(EPERM));
++      case __NR_fork:
++        return Error(ENOSYS);
+ 
+ #  ifdef __NR_fadvise64
+       case __NR_fadvise64:
diff --git a/srcpkgs/firefox-esr/patches/skia-sucks1.patch b/srcpkgs/firefox-esr/patches/skia-sucks1.patch
index 223c9b14e6b..05ad34a3fc3 100644
--- a/srcpkgs/firefox-esr/patches/skia-sucks1.patch
+++ b/srcpkgs/firefox-esr/patches/skia-sucks1.patch
@@ -1,84 +1,77 @@
-# HG changeset patch
-# Parent  548d0a2f3a22bfac32ec0c3921c6c969c8bf32a9
+https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c5
+https://bugzilla.mozilla.org/attachment.cgi?id=9028600
 
-diff -r 548d0a2f3a22 gfx/2d/ConvolutionFilter.cpp
---- gfx/2d/ConvolutionFilter.cpp	Mon Jul 22 16:57:54 2019 +0200
-+++ gfx/2d/ConvolutionFilter.cpp	Thu Jul 25 14:27:59 2019 +0200
-@@ -35,9 +35,38 @@
-   return true;
+--- gfx/skia/skia/third_party/skcms/skcms.cc
++++ gfx/skia/skia/third_party/skcms/skcms.cc
+@@ -30,6 +30,8 @@
+         #include <avx512fintrin.h>
+         #include <avx512dqintrin.h>
+     #endif
++#elif defined(__BIG_ENDIAN__)
++    #define SKCMS_PORTABLE
+ #endif
+ 
+ // sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
+@@ -280,20 +282,28 @@ enum {
+ static uint16_t read_big_u16(const uint8_t* ptr) {
+     uint16_t be;
+     memcpy(&be, ptr, sizeof(be));
+-#if defined(_MSC_VER)
+-    return _byteswap_ushort(be);
++#if defined(__BIG_ENDIAN__)
++    return be;
+ #else
++    #if defined(_MSC_VER)
++    return _byteswap_ushort(be);
++    #else
+     return __builtin_bswap16(be);
++    #endif
+ #endif
  }
  
-+static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
-+    uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
-+    for (int pxl = 0; pxl < size; ++pxl) {
-+        // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
-+        uint32_t rgba = array[pxl];
-+        array[pxl] = NativeEndian::swapToLittleEndian(rgba);
-+    }
-+}
-+
- void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
-                                              bool aHasAlpha) {
-+#ifdef MOZ_BIG_ENDIAN
-+    int outputSize = mFilter->numValues();
-+
-+    // Input size isn't handed in, so we have to calculate it quickly
-+    int inputSize = 0;
-+    for (int xx = 0; xx < outputSize; ++xx) {
-+        // Get the filter that determines the current output pixel.
-+        int filterOffset, filterLength;
-+        mFilter->FilterForValue(xx, &filterOffset, &filterLength);
-+        inputSize = std::max(inputSize, filterOffset + filterLength);
-+    }
-+
-+    ByteSwapArray((uint8_t*)aSrc, inputSize);
-+#endif
-+
-   SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
-+
-+#ifdef MOZ_BIG_ENDIAN
-+    ByteSwapArray((uint8_t*)aSrc, inputSize);
-+    ByteSwapArray(aDst, outputSize);
-+#endif
+ static uint32_t read_big_u32(const uint8_t* ptr) {
+     uint32_t be;
+     memcpy(&be, ptr, sizeof(be));
+-#if defined(_MSC_VER)
+-    return _byteswap_ulong(be);
++#if defined(__BIG_ENDIAN__)
++    return be;
+ #else
++    #if defined(_MSC_VER)
++    return _byteswap_ulong(be);
++    #else
+     return __builtin_bswap32(be);
++    #endif
+ #endif
  }
  
- void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst,
-@@ -49,8 +78,26 @@
-   int32_t filterLength;
-   auto filterValues =
-       mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
-+
-+#ifdef MOZ_BIG_ENDIAN
-+  for (int filterY = 0; filterY < filterLength; filterY++) {
-+      // Skia only knows LE, so we have to swizzle the input
-+    ByteSwapArray(aSrc[filterY], aRowSize);
-+  }
-+#endif
-+
-   SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
-                               aHasAlpha);
-+
-+#ifdef MOZ_BIG_ENDIAN
-+  // After skia is finished, we swizzle back to BE, in case
-+  // the input is used again somewhere else
-+  for (int filterY = 0; filterY < filterLength; filterY++) {
-+    ByteSwapArray(aSrc[filterY], aRowSize);
-+  }
-+  // The destination array as well
-+  ByteSwapArray(aDst, aRowSize);
-+#endif
+--- gfx/2d/DrawTargetSkia.cpp
++++ gfx/2d/DrawTargetSkia.cpp
+@@ -138,8 +138,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& a
+   return surfaceBounds.Intersect(bounds);
  }
  
- /* ConvolutionFilter::ComputeResizeFactor is derived from Skia's
-diff -r 548d0a2f3a22 gfx/skia/skia/include/core/SkPreConfig.h
---- gfx/skia/skia/include/core/SkPreConfig.h	Mon Jul 22 16:57:54 2019 +0200
-+++ gfx/skia/skia/include/core/SkPreConfig.h	Thu Jul 25 14:27:59 2019 +0200
-@@ -73,7 +73,7 @@
-       defined(__ppc__) || defined(__hppa) || \
-       defined(__PPC__) || defined(__PPC64__) || \
-       defined(_MIPSEB) || defined(__ARMEB__) || \
--      defined(__s390__) || \
-+      defined(__s390__) || defined(__s390x__) || \
-       (defined(__sh__) && defined(__BIG_ENDIAN__)) || \
-       (defined(__ia64) && defined(__BIG_ENDIAN__))
-          #define SK_CPU_BENDIAN
+-static const int kARGBAlphaOffset =
+-    SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
++static const int kARGBAlphaOffset = 0;
+ 
+ static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
+                              const int32_t aStride, SurfaceFormat aFormat) {
+--- gfx/2d/Types.h
++++ gfx/2d/Types.h
+@@ -87,15 +87,8 @@ enum class SurfaceFormat : int8_t {
+ // The following values are endian-independent synonyms. The _UINT32 suffix
+ // indicates that the name reflects the layout when viewed as a uint32_t
+ // value.
+-#if MOZ_LITTLE_ENDIAN()
+   A8R8G8B8_UINT32 = B8G8R8A8,  // 0xAARRGGBB
+   X8R8G8B8_UINT32 = B8G8R8X8,  // 0x00RRGGBB
+-#elif MOZ_BIG_ENDIAN()
+-  A8R8G8B8_UINT32 = A8R8G8B8,  // 0xAARRGGBB
+-  X8R8G8B8_UINT32 = X8R8G8B8,  // 0x00RRGGBB
+-#else
+-#  error "bad endianness"
+-#endif
+ 
+   // The following values are OS and endian-independent synonyms.
+   //
diff --git a/srcpkgs/firefox-esr/patches/skia-sucks3.patch b/srcpkgs/firefox-esr/patches/skia-sucks3.patch
index d95b81698e9..f4e890f0536 100644
--- a/srcpkgs/firefox-esr/patches/skia-sucks3.patch
+++ b/srcpkgs/firefox-esr/patches/skia-sucks3.patch
@@ -1,3 +1,5 @@
+CompositableHost.cpp patch added by @q66, based on patch in issue 1602730.
+
 # HG changeset patch
 # Parent  46ea866ca3acb8bb5e1709ceb799b9c94f591dec
 Problem description: Tab-titles that are too long to fit into a tab get faded out.
@@ -17,7 +19,7 @@ diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
        SkCanvas::kPreserveLCDText_SaveLayerFlag |
            (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
  
-+#if MOZ_BIG_ENDIAN
++#if MOZ_BIG_ENDIAN()
 +  // Pushing a layer where an aMask is defined produces wrong output.
 +  // We _should_ endian swap the data, but I couldn't find a workable way to do so
 +  // Therefore I deactivate those layers in the meantime.
@@ -28,3 +30,27 @@ diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
    mCanvas->saveLayer(saveRec);
  
    SetPermitSubpixelAA(aOpaque);
+--- gfx/layers/composite/CompositableHost.cpp
++++ gfx/layers/composite/CompositableHost.cpp
+@@ -13,6 +13,7 @@
+ #include "ImageHost.h"  // for ImageHostBuffered, etc
+ #include "Layers.h"
+ #include "TiledContentHost.h"  // for TiledContentHost
++#include "mozilla/EndianUtils.h"
+ #include "mozilla/gfx/gfxVars.h"
+ #include "mozilla/layers/LayersSurfaces.h"  // for SurfaceDescriptor
+ #include "mozilla/layers/TextureHost.h"     // for TextureHost, etc
+@@ -92,9 +93,13 @@ bool CompositableHost::AddMaskEffect(EffectChain& aEffects,
+   }
+   MOZ_ASSERT(source);
+ 
++  // Setting an alpha-mask here breaks the URL-bar on big endian (s390x)
++  // if the typed URL is too long for the textbox (automatic scrolling needed)
++#if MOZ_LITTLE_ENDIAN()
+   RefPtr<EffectMask> effect =
+       new EffectMask(source, source->GetSize(), aTransform);
+   aEffects.mSecondaryEffects[EffectTypes::MASK] = effect;
++#endif
+   return true;
+ }
+ 
diff --git a/srcpkgs/firefox-esr/patches/sndio.patch b/srcpkgs/firefox-esr/patches/sndio.patch
index 6c72284c19b..c5e5c486dd1 100644
--- a/srcpkgs/firefox-esr/patches/sndio.patch
+++ b/srcpkgs/firefox-esr/patches/sndio.patch
@@ -1,8 +1,8 @@
 --- old-configure.in.orig
 +++ old-configure.in
-@@ -2839,6 +2839,22 @@
- 
- AC_SUBST(MOZ_ALSA)
+@@ -2818,6 +2818,22 @@
+     _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_COOKIES"
+ fi
  
 +dnl ==================================
 +dnl = Check sndio availability
@@ -21,26 +21,11 @@
 +AC_SUBST(MOZ_SNDIO)
 +
  dnl ========================================================
- dnl = Disable PulseAudio
- dnl ========================================================
---- toolkit/library/moz.build.orig
-+++ toolkit/library/moz.build
-@@ -235,10 +235,8 @@
- if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('cocoa', 'uikit'):
-     OS_LIBS += CONFIG['TK_LIBS']
- 
--if CONFIG['OS_ARCH'] == 'OpenBSD':
--    OS_LIBS += [
--        'sndio',
--    ]
-+if CONFIG['MOZ_SNDIO']:
-+    OS_LIBS += CONFIG['MOZ_SNDIO_LIBS']
- 
- if CONFIG['MOZ_ENABLE_DBUS']:
-     OS_LIBS += CONFIG['MOZ_DBUS_GLIB_LIBS']
+ dnl =
+ dnl = Maintainer debug option (no --enable equivalent)
 --- media/libcubeb/src/moz.build.orig
 +++ media/libcubeb/src/moz.build
-@@ -43,7 +43,7 @@
+@@ -44,11 +44,13 @@
      ]
      DEFINES['USE_JACK'] = True
  
@@ -49,49 +34,19 @@
      SOURCES += [
          'cubeb_sndio.c',
      ]
---- build/moz.configure/old.configure.orig
-+++ build/moz.configure/old.configure
-@@ -169,6 +169,7 @@
+     DEFINES['USE_SNDIO'] = True
++
++if CONFIG['OS_ARCH'] == 'OpenBSD':
+     DEFINES['DISABLE_LIBSNDIO_DLOPEN'] = True
+ 
+ if CONFIG['OS_TARGET'] == 'Darwin':
+--- build/moz.configure/old.configure	2020-06-30 12:17:04.087609070 +0200
++++ -	2020-06-30 12:18:26.027756310 +0200
+@@ -210,6 +210,7 @@
  @old_configure_options(
      '--cache-file',
      '--datadir',
 +    '--enable-sndio',
-     '--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 @@
-         }
-       }
-     }
-+
-+#ifdef MOZ_SNDIO
-+    // ~/.aucat_cookie (sndio)
-+    rv = homeDir->Clone(getter_AddRefs(confDir));
-+    if (NS_SUCCEEDED(rv)) {
-+      rv = confDir->AppendNative(NS_LITERAL_CSTRING(".aucat_cookie"));
-+      if (NS_SUCCEEDED(rv)) {
-+        nsAutoCString tmpPath;
-+        rv = confDir->GetNativePath(tmpPath);
-+        if (NS_SUCCEEDED(rv)) {
-+          policy->AddPath(rdwrcr, tmpPath.get());
-+        }
-+      }
-+    }
-+#endif
-   }
- 
-   // Firefox binary dir.
---- security/sandbox/linux/moz.build.orig
-+++ security/sandbox/linux/moz.build
-@@ -81,6 +81,9 @@
- if CONFIG['MOZ_ALSA']:
-     DEFINES['MOZ_ALSA'] = True
- 
-+if CONFIG['MOZ_SNDIO']:
-+    DEFINES['MOZ_SNDIO'] = True
-+
- # This copy of SafeSPrintf doesn't need to avoid the Chromium logging
- # dependency like the one in libxul does, but this way the behavior is
- # consistent.  See also the comment in SandboxLogging.h.
+     '--enable-crashreporter',
+     '--enable-dbus',
+     '--enable-debug-js-modules',
diff --git a/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template
index eb3c32bed59..51f1ebe2334 100644
--- a/srcpkgs/firefox-esr/template
+++ b/srcpkgs/firefox-esr/template
@@ -3,57 +3,59 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-esr-i18n".
 #
 pkgname=firefox-esr
-version=68.11.0
+version=78.4.0
 revision=1
 wrksrc="firefox-${version}"
-build_helper="rust"
-short_desc="Mozilla Firefox web browser - Extended Support Release (ESR)"
-maintainer="Orphaned <orphan@voidlinux.org>"
+build_helper="rust qemu"
+hostmakedepends="autoconf213 unzip zip pkg-config perl python3 yasm rust cargo
+ llvm clang nodejs-lts-10 cbindgen python nasm which tar"
+makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel
+ pixman-devel libevent-devel libnotify-devel libvpx-devel
+ libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std
+ libXdamage-devel freetype-devel $(vopt_if alsa alsa-lib-devel)
+ $(vopt_if dbus dbus-glib-devel) $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if xscreensaver libXScrnSaver-devel)
+ $(vopt_if sndio sndio-devel) $(vopt_if jack jack-devel)"
+depends="nss>=3.53 desktop-file-utils hicolor-icon-theme"
+short_desc="Firefox browser - Extended Support Release"
+maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 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=91c1f7caaf1ba785b74799865227456bf784ba614d17cf5f0f41a5f25d6d2160
-
+checksum=8e3cf0bbf1062768134db2eb10ab774731ca5ec6694b65def82234bb0a9170fc
 lib32disabled=yes
-hostmakedepends="autoconf213 unzip zip pkg-config perl python yasm
- python3 cargo llvm clang rust cbindgen nasm nodejs-lts-10 tar which"
-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
- libXdamage-devel $(vopt_if alsa alsa-lib-devel)
- $(vopt_if dbus dbus-glib-devel) $(vopt_if pulseaudio pulseaudio-devel)
- $(vopt_if startup_notification startup-notification-devel)
- $(vopt_if xscreensaver libXScrnSaver-devel) $(vopt_if sndio sndio-devel)"
-depends="nss>=3.44.3 desktop-file-utils hicolor-icon-theme"
 conflicts="firefox>=0"
 
-build_options="alsa dbus gtk3 pulseaudio startup_notification xscreensaver sndio"
-build_options_default="alsa dbus gtk3 pulseaudio startup_notification xscreensaver sndio"
+build_options="alsa jack dbus pulseaudio xscreensaver sndio wayland"
+build_options_default="alsa jack dbus pulseaudio xscreensaver sndio wayland"
 
 case $XBPS_TARGET_MACHINE in
-	armv[56]*) broken="required NEON extensions are not supported on armv6" ;;
+	armv[56]*) broken="required NEON extensions are not supported on armv[56]" ;;
 	ppc64*) ;;
 	ppc*) broken="xptcall bitrot" ;;
 esac
 
+if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then
+	broken="rendering is busted, dunno why"
+fi
+
+CXXFLAGS="-Wno-class-memaccess -Wno-unused-function"
+
 if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
 	makedepends+=" libatomic-devel"
 fi
 
-# we need this because cargo verifies checksums of all files in vendor
-# crates when it builds and gives us no way to override or update the
-# file sanely... so just clear out the file list
+# We need this because cargo verifies checksums of all files
+# in vendor crates when it builds and gives us no way to
+# override or update the file sanely... so just clear out the file list
 _clear_vendor_checksums() {
 	sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
 }
 
 post_extract() {
-	case "$XBPS_TARGET_MACHINE" in
-	*-musl)
+	if [ "$XBPS_TARGET_LIBC" = musl ]; then
 		cp "${FILESDIR}/stab.h" toolkit/crashreporter/google-breakpad/src/
-		;;
-	esac
-
+	fi
 	# Google API key (see http://www.chromium.org/developers/how-tos/api-keys)
 	# Note: This is for Void Linux use ONLY.
 	echo -n "AIzaSyCIFdBA7eQP43R6kXRwTq7j6Mvj1ITze90" > google-api-key
@@ -64,19 +66,18 @@ post_extract() {
 }
 
 post_patch() {
-	_clear_vendor_checksums cssparser
+	_clear_vendor_checksums num-traits
+	_clear_vendor_checksums glslopt
 }
 
 do_build() {
-	cp "${FILESDIR}/mozconfig" "${wrksrc}/.mozconfig"
+	cp ${FILESDIR}/mozconfig .mozconfig
 
-	case "$XBPS_TARGET_MACHINE" in
-	       *-musl)
+	if [ "$XBPS_TARGET_LIBC" = musl ]; then
 		echo "ac_add_options --disable-jemalloc" >>.mozconfig
 		echo "ac_add_options --disable-gold" >>.mozconfig
 		echo "ac_add_options --enable-release" >>.mozconfig
-		;;
-	esac
+	fi
 
 	case "$XBPS_TARGET_MACHINE" in
 	arm*|x86_64*|i686*)
@@ -101,17 +102,16 @@ do_build() {
 
 		export BINDGEN_CFLAGS="--target=$XBPS_CROSS_TRIPLET \
 			--sysroot=${XBPS_CROSS_BASE} ${BINDGEN_INCLUDE_FLAGS}"
-		export HOST_CC=cc
+		export HOST_CC="${CC_host}"
 		export TARGET_CC="${CC}"
 		export HOST_CFLAGS="${XBPS_CFLAGS}"
 		export HOST_CXXFLAGS="${XBPS_CXXFLAGS}"
-		export ac_cv_sqlite_secure_delete=yes \
-			ac_cv_sqlite_threadsafe=yes \
-			ac_cv_sqlite_enable_fts3=yes \
-			ac_cv_sqlite_dbstat_vtab=yes \
-			ac_cv_sqlite_enable_unlock_notify=yes \
-			ac_cv_prog_hostcxx_works=1
-
+		echo "ac_cv_sqlite_secure_delete=yes" >> .mozconfig
+		echo "ac_cv_sqlite_threadsafe=yes" >> .mozconfig
+		echo "ac_cv_sqlite_enable_fts3=yes" >> .mozconfig
+		echo "ac_cv_sqlite_dbstat_vtab=yes" >> .mozconfig
+		echo "ac_cv_sqlite_enable_unlock_notify=yes" >> .mozconfig
+		echo "ac_cv_prog_hostcxx_works=1" >> .mozconfig
 		echo "ac_add_options --target=$XBPS_CROSS_TRIPLET" >>.mozconfig
 		echo "ac_add_options --host=$XBPS_TRIPLET" >>.mozconfig
 	else
@@ -138,6 +138,11 @@ do_build() {
 		build/moz.configure/toolchain.configure
 	fi
 
+	case "$XBPS_TARGET_MACHINE" in
+	aarch64*|i686*|x86_64*)
+		echo "ac_add_options --enable-rust-simd" >>.mozconfig ;;
+	esac
+
 	export LDFLAGS+=" -Wl,-rpath=/usr/lib/firefox"
 
 	if [ "$SOURCE_DATE_EPOCH" ]; then
@@ -147,38 +152,57 @@ do_build() {
 	export MOZ_MAKE_FLAGS="${makejobs}"
 	export MOZ_NOSPAM=1
 	export MOZBUILD_STATE_PATH="${wrksrc}/mozbuild"
+	export MACH_USE_SYSTEM_PYTHON=1
 
 	export AS=$CC
 
-	cat <<! >>.mozconfig
+	cat >>.mozconfig <<EOF
 ac_add_options --with-google-location-service-api-keyfile="${wrksrc}/google-api-key"
 ac_add_options --with-google-safebrowsing-api-keyfile="${wrksrc}/google-api-key"
 ac_add_options --with-mozilla-api-keyfile="${wrksrc}/mozilla-api-key"
 ac_add_options $(vopt_enable alsa)
+ac_add_options $(vopt_enable jack)
 ac_add_options $(vopt_enable sndio)
 ac_add_options $(vopt_enable dbus)
 ac_add_options $(vopt_enable dbus necko-wifi)
 ac_add_options $(vopt_enable pulseaudio)
-ac_add_options $(vopt_enable startup_notification startup-notification)
-!
-
+ac_add_options --enable-default-toolkit=$(vopt_if wayland 'cairo-gtk3-wayland' 'cairo-gtk3')
+EOF
 	rm -f old-configure
 	./mach build
+
+	# Make langpacks for all languages
+	dir=$(ls -d obj-*/browser/locales)
+	cd ${wrksrc}/${dir}
+	for lang in ${languages[*]}; do
+		msg_normal "Making langpack for ${lang} ...\n"
+		make ${makejobs} langpack-${lang} LOCALE_MERGEDIR=.
+	done
 }
+
 do_install() {
+	export MACH_USE_SYSTEM_PYTHON=1
 	DESTDIR="$DESTDIR" ./mach install
 
+	vbin ${FILESDIR}/firefox-wayland
 	vinstall ${FILESDIR}/vendor.js 644 usr/lib/firefox/browser/defaults/preferences
 	vinstall taskcluster/docker/firefox-snap/firefox.desktop 644 usr/share/applications
 
-	for i in 16x16 22x22 24x24 32x32 48x48 128x128 256x256; do
+	for i in 16x16 22x22 24x24 32x32 48x48 256x256; do
 		vinstall ${wrksrc}/browser/branding/official/default${i%x*}.png 644 \
 			usr/share/icons/hicolor/${i}/apps firefox.png
 	done
+	vinstall ${wrksrc}/browser/branding/official/default256.png 644 \
+		usr/share/pixmaps firefox.png
 
-	# We don't want the development stuff
-	rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
+	# Use system-provided dictionaries
+	rm -rf ${DESTDIR}/usr/lib/firefox/{dictionaries,hyphenation}
+	ln -s /usr/share/hunspell ${DESTDIR}/usr/lib/firefox/dictionaries
+	ln -s /usr/share/hyphen ${DESTDIR}/usr/lib/firefox/hyphenation
 
 	# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
 	ln -sf firefox ${DESTDIR}/usr/lib/firefox/firefox-bin
+
+	# Remove the development files - noone uses them
+	rm -rf ${DESTDIR}/usr/{include,lib/firefox-devel,share/idl}
 }

From 015f5422735bd8de2db67a1b7b5c2ce0149fb9ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= <pullmoll@t-online.de>
Date: Wed, 4 Nov 2020 18:01:21 +0100
Subject: [PATCH 2/2] firefox-esr-i18n: update to 78.4.0

[ci skip]
---
 srcpkgs/firefox-esr-i18n/template | 190 +++++++++++++++---------------
 1 file changed, 95 insertions(+), 95 deletions(-)

diff --git a/srcpkgs/firefox-esr-i18n/template b/srcpkgs/firefox-esr-i18n/template
index 6fdd22574cb..d8df644a8c1 100644
--- a/srcpkgs/firefox-esr-i18n/template
+++ b/srcpkgs/firefox-esr-i18n/template
@@ -1,10 +1,10 @@
 # Template file for 'firefox-esr-i18n'
 pkgname=firefox-esr-i18n
-version=68.11.0
+version=78.4.0
 revision=1
 build_style=meta
 short_desc="Firefox ESR language packs"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
 license="MPL-2.0"
 homepage="https://www.mozilla.org/firefox/"
 
@@ -135,96 +135,96 @@ _pkgtmpl() {
 	}
 }
 
-checksum="a96b2eab357c1d3ae79978919d78227e91427464ec0d506276e8448df878e4de
- 77b3f295c0c8e331deec5ac81c4566e70e686e1134569e3dc383406634148642
- dddd186a5e1835778736cf1eb6254dc6909b0fc547b312695788cc455b52aa9e
- a59a86cc1838461ee51c3235c617ee28bb0ae7a4422866b645f67a7a2bc77673
- 52acf8999a4f46549ef251787681f8db62ee44a1653cd1eefb82b5c8a7e3c480
- 02d42d95c95d4b83716d71dbc8f9eab6d046540be34bc65360f16deca54840e8
- 458001594cf5402dae30241193ffcdf0f727bc0451b46382cd12939458459258
- 87be7b1c87ad813430e9f587315f1371f21f655ecb7f6dd90380741597ee818b
- 67f628587202ffef8744e2399fc2e808454562f6e68a607c4a0dadff38f68789
- 27b99f0e05d79f39abbb1770190f4a3d049aa527bd02ce9dd6815a3f73e3757f
- 4b30e8c01fc67bb11779fa50d8e1b2c93d6a2a936c6d8c77d3314df0cfccc131
- 45ebc6437bcc217ac54b0bf380a2f3f2e6cbbeada8d74269a760ae0d7a3a47da
- 139126e7e7f6c78e23da66dca5441fc9c0c53eca1009cf58377044fe6fdeb202
- 92b1a9b9465237c6423aac78cd02110354f7a4d4f89e915e045e3cf224323c51
- a0abce87643502f16e3a4dde825cf3e7f58cd75f5a4196451ede813b799611c3
- 8faaf99245fa5fd7a8ffe0344a6892546735c19eb9f2c6ecc534fc5808e26aec
- 9317185ea24b23004971de4187b2561d12c82872e4aa61f406bc02d5e83617fd
- 6869b14cf69508cd2f34cc722b346f30db0ec3891ebcc31908f69a1f307c8d67
- c153a54ec2e4ad4e817f8fa91d29a1698c11ca9ec04e494e1d866c7d9842ee8e
- dfe8300b735d2141798f8255d3ec102699b5b127bf9cfe5860784220ca0b6055
- fd57e1055a25fa1dcd5a91393408dad91bf0db2054c4bfd29ab47785f3156599
- a9f17b51896142082b3bfdcdbca9a472d95c5dd12005f2c3ce346c938d57ce7f
- 935826ae44cace20973c9ee32df8032fa95ab82843a92c514add0d8c44fb4c7e
- 4579dd24069d6414eb105d58c1789605a0ada438504f4fc14c724a4ee78b3726
- f69ec189d7eb2a4074a9218a9b87399f0504b8790e8aab98650120acc20ca184
- 4164c7f23e13e86f6c3e3bb1319da47a51d8b35b13acd2e8bf1c371d6c8a6ec3
- ffac444bc57d684f0f131f93ff48ddf4db3761905fa36882659a380eddaa1703
- 017049781b08378ab45a8cc95efda95e8dc4d10dc86d26efaf8209c51c556a0a
- 5b7851dca418b6cb08a3e6d4f189478de2fba5869d559f82740eec55abb45f93
- ef8c1054b528afc780b916f87b5038c0d2baa02a4445f7ec18c11f316766533e
- ee81934fbe482564a28f5e4cd44d3596b5f3a3926abf4e7c30c52918199299e1
- 269f6ca41e1322939ec1ed68a919e84e990cd431d7dbfc2bb67d3708e8d89bd8
- c29406cfb4d94e98e15ec5f0fe9f9cec52a6e251865683cca307ff562b52d0a7
- 025c7ed2fec33d06eb3cca4b7255d8b133cccb5d943d38afceef93ffc494e9e1
- ac70f1b3f164798e4c95dddb81e45ae91f40ad66b97cd443da94df68cc7b7964
- b467e26b8facc706501ec93be8b23c4fbc16b1fd01678f968d591951b7dab19b
- cf0b4e1f2c0620b19917e616ce1d94da9b4361e1e642c080fe36580911d61b18
- fd18f16b746c48224e4721d2a118fad44c598ca851778331aed4bd4355d8e982
- 064fe64bde1cd1bf2c255297af730ef0487fb193d5ca425935fc26e6e46c6733
- 06396fbfaebba29ffded9c79942e7fe6d988d1e0e26ac6bb3082dc5c1bfd1370
- ac2d5b18284b3702a3b93e09c73dabc42894088bf7bd3ecd9e1114c882ad88be
- 8f96e6b7e4be985ca90e5a378cb90a87cdef5b0ef36a64e86aac042e6f4dce74
- ca38f1b8c8198150986e35264d6c8a0f56c2e4b694738d926104d360d1244c1e
- bdb3756655fb54f5fb3feca19dce0bb6a7a98293f0def9f8855dbd269d20a259
- f531eee42bb19c32ea1242beb29147e064da58caeede025510d8b3092198c62b
- 05df51330571877fd1ab339183e6d68a5c92c5a132e109464b75dd5d4879d969
- 8492216768d7c008a224d5831b47bf0ef6a7ac19ce21b0113ecce921868654ca
- adea068ac99f58030551f1a080bd70d946c20edd9000c554f46289f3ea75c4bb
- 0d909de2c7320827eab604e697ad3bd89adfd55c9e8ea5aabc2e3938f45025bc
- 6edbe0259392b489ff808174e107d01dcaaf42b862ee3d0b804cfbda1ff636d3
- 4fc4c48637a0d285e85db0d699a62a08c6cc503073b4201b6115c13f9c7283dd
- e6fe631141ce94e6425e4c745fe2b5a2cbda685c5492ebb3c614d09433c455b8
- 6f0730299dd9fd362c6b994128bce064bf215fd27f55a673fda6569bbf38a4c4
- bb2e2cc0a0e4047b67b28596685b228c69c85a6a65d37c2c1003d7a9d8fd378a
- 8640f7eaa4aa157ce94c951d9eecfaffd0d603bc05ce95559d90042302c99803
- 2641ca0efcde0c92cc2ad4ad6c65fbe3ab56b711d88f26fd4e78c18cd3138aa2
- 34cf05b4d96261da6e972bd64bba273de11b24b3032de1bdf1777d69d968b114
- 0fb47c0ac1aec79351af5e06782c2ba1afd26cf8cc37505858e4028261affdf0
- c4926c88b3466385c6040378e0fe9f777536f540e01b01f3d70ee514ff3593a6
- b6edc8d2a7f9ea08ad89d05560351d5dd90f1bdc73c5ca7f6fc6e2cd6902bcd3
- 5f25b4cc7443a6e8b30a4ffd8233920b2b8e4d1a6adca465739d7badd80f1534
- 81248e707ced39e1bab3d28c9735dbe15ab7e8a9b563e887a65c6e995045bf17
- 5fcabf089b74c00a4864dd77191fdbc8c5c35a7b748c96834961d2e2c1d2b15b
- ea07bc5f78c771e803b00844a49d7f6e45abb6624a106d921d7a0d4bcc8ed886
- 3c30cfbb658332f44a397e91da7aefbab02adb34bdc534386f6acb47e5eb5c18
- ea4f2864fa6624a43cc04ad8222256a12b6c2aef877ac811f8c2f64097439006
- 0bcd2198157a72df46c6702cc1330b152555341eeb4f046f6e7cec63d0715802
- 2eca90bf5c6f0c762fb1f52cfa7f0146fae69a85bd45080066b8ef3514dc24e5
- 506ba2747f0eac45f42ee729ca5bbc41931630852f2288244233e98cd7c9a489
- de98305ce3526749f4cac6ffd47861a3cad7f2cbf25180471c68cf3280776edf
- 4a8de2a062d67875dec79748e4cb03a3881e378108ede064d5aab10145afd2a2
- c638de4dc72b87dab2e315b2da71d7612762c4d483d75d2feaa655e24db64241
- 090918108985a1ab3ee8e155c97e6ef4ab7b7b2613f4be3388bfb4758be4e503
- 4153ffb1c211c3c45a0efa9700c0908544f90d6a848f5096120933bfd94c44c3
- 96d86350fd693bf708e4f4f7de238e71e0b90bcdac3205a3a25c84b13500bd99
- ae4a76c6644585df1777d46ef10dbcbdb35dee0a13a45622bd49ad7b5eb996ac
- ecb6a93d321be76717245b6a651b96123ec1765f133779caf8a43b38827aa892
- 51932dccdd95a740fafdb2873f56c3306d803db5a796fd8379d986d84fd128a2
- 8162375363e6f1650230bc643e2bde1d0018b4f6cf54369e0c59967ad5fa4a97
- 72c79a7c65a637cb918e999d7d7ee13f4736e646512d165371740862e1e943b1
- 558887a62a2b09636c5c5f8e7ed99b018344af190ebdf1a6d71548cda11d032e
- b39046f78509d308072b384511725776d9de7da667f12bc6508eb6c39f843c75
- 9038e9e671846f1839fa3b4794f121e546ce544021848f933c239b9917a16c2d
- e238909d4f9ab35a0f1f56cd85747b307626f9713c3899d6497b3e1f257f28cb
- 220793d97e399aca5d5e82bf159eb12b7acb6d974fcd693d45c7c264e85e6548
- ef3f9f02f67084fc4dc4bde464002502a176cb7361813815c5460dd94ae0656d
- 7baede2ac4e391b60896a0a02242aeabfe55ce8b50e7b05d5b77d99dda6b76e1
- 5dec1a1452fc2303c655f153c19d675ef200f448be4b0c2b2b2d50244c820b41
- 88ed2511992f45b930922fd4bba5e5ececc761029e3d92cd092d5ed5f66a3030
- fcd8e1dea4a1c33fd72b096a61712f74a269ab334bf93653b265ee9e2871d999
- 4ec2d6697632bc8dfd294b668d514deb37efde5414881dccbb9a280fa9f86ef4
- 6c9aea7e23d20cb9074dc4acf8936cf249eb5b6e2c5ba1e4eab27267b41822a4
- 5c0f5c8cc336e73a98dd6b22bc11c418e2ab33bc95ac5b7c948ea4eba1f1a7e3"
+checksum="35c752c8332e93c7ae10e09691440accdde03232be291f57f106a73e0522da4e
+ c0a32333c4d33626b108d6e89f0ebae3924d95e97f93e739ff4720d79d895756
+ b1a51894781f6fb757a4502e5f59eb577174274260f980321a8169c5a6b4c761
+ 925a61467b506d94c59a0003d8e3f5b01d6bafbac612fd5ab52633661939ad45
+ 4ce396e8f2a65d12b082e5d3541069a80ffd79b52286db1de7dc2669923a4212
+ 885454f2fa66015fc772442b420cf9361f0ea8fcc6a861c5b3b8952b999e4b23
+ 433b6de936c7cfb7a025fc25767744c7392386de646724757d10f586aa83b24a
+ 9e17a358e8ba03ff31d98fcb108b0fb42523a1f06a7fb07edf3289da66f65034
+ ff54ceea34d4aedbb905d71caffb6606a0f79cdad6b2f58017bc00ef45caf399
+ 77e7edd22f3b062b04b89b96d1e8cd03b9b29fa587f401f8fd6a62d8cbb71ef4
+ 7df2e3610c0f4ef3d450b6d8b7c31e7941447ba40f06e4075e14e0a16f5e5a63
+ 99b3a2a17e2815958e6987e91027d3bf866efdad694b6701e0d00f96b72a4bfd
+ 8da6131d3857c403def32ac18f94a760bd4fa9734cfc018afadff0aab435f6b2
+ 43fdd1b32eb3fe59853bed4e5dba94b03dcb8d4d6a9ff87869b4637478053c92
+ 9ba43cc29edd3f9b4cfeb146e31eb1668cc427d9bd334e5aa9eb0cc904ebdac5
+ d1bb088339aa358e9ff7332d40cc7c7ee75e31e6c9653574c03b7aaf01187322
+ 20830119a3ce7f0bbfbbed86f38fc1e623dca824ae6e7b36c80cf4a28e14cd2e
+ 4668d586d8f2bccd1f20905da08c123dcee4f5cf3bafe9b0a0070ea712a84298
+ 60c0c41a9d95c0ae169cb39e84b25a35cfe2b02ed81f2c411067d2285dd95c89
+ c18a432bcc3faf4a4b5cde8688483cf4a1dc1b1e8e74ebfc64f490a7b45db66a
+ c019015d322d4b37f6266f49994e3ef325c8a99d11505591db9815600905b9a1
+ a1285de48c539790cb216c8539c3ac10b1837f0029e7f99dd4247e83b60a40e6
+ 1e21753f0334a39db7deabe2b439e1884ef499c02d716f9d3f9f73feaf6109b2
+ b9a9a87386d535b131b70db3f7e5d4f3c552fe3e38b21869bf5b0943b58ddfd5
+ df9ae1d24f07340f368a2031a3c44f14bc15a72dc076aba2c1692a98ef345d4a
+ 6b04111a500d4923e52674874ec0bf76a29522d56b9d19ebc75cae24d3d03fa5
+ 29709f30c3a1ff97371417fa35ee985360bdbba8b01367508d34373d990eed84
+ fe5eb1d10c74568566c91133af9524108120f1f89b5a6d04fc374821d0c0649a
+ f8b747e8564a45ebfa4677dcc105180a883a5f022f87e86d96c1ad56f42f1961
+ f54c672d98ea069b628febabe6120d96c9b8ce84dc797577ee292127000820df
+ 6323c444f9cb9f9430601cfa561249f072edbcdfe664847bb6f4b78ba9d2ad00
+ af3b9a70817316dec6ffc0cfc7d5405f96d637a5b8afcc7ec4fb5f66b1e2965b
+ 26b1667f7c5aca3023c0e64c47386f1862bab780dfb51ce4f964bb2dba117ab0
+ d6282d2b3ad88b4e2eaca9b48c108ec3a3cdb575ad507313515335551943af75
+ 9fa91154b3596c6f360053eee870715f6ee3682ec7a8962c180ba254075df59a
+ 15289032b51367eb654e425f3aee15e12d8e3288ae2b3cd36853d137d8489d87
+ a69bd27e74de22c6e472aacc5bb9d9c4e543027d861791f0417382a5f7f5118d
+ 54f42c8506f639562eca63b63f09566900017c1e22793d233570e28c97db72ca
+ 82c3396456c455b13802977bcda8a5f98f4a72471ad9189020603275348d8010
+ 4538c6d201312b42989bd8d895e9a32aafb6355f83a7afa4155e2c9afa5e1983
+ 4d299eeb204f4e1e8ff7c6c27b84481d1df84d53be1131680e0dab80f4578a6d
+ 37d638dfa311486749f970eafe54790e5a4ac79843a1acffd0a9f10a3e96fd83
+ 0f34bb060b1cbd05a442d69dd02dcf454ed3de8636a2a3989fbabeaee82efbf9
+ 4daca2bbcc014524d096f83891120582294389a727df8608512397b47e8ddbf3
+ 90f8bb64ab8f5b9ebf11538edb7f6ad0f484b3bdfef963a491135b18c9d5eabf
+ fe8196ebf1940d534eae41f8b8bd481d4b84d306b5f8de4715147e139031b07f
+ 093bdbd9150d86df6603e20097ce4c5db18b460fdc6349c824c4723681bb6826
+ 1a0282846b44a7ba90219c212e50d8784cd9b77cfab8c8ae14577863cc12ebd6
+ 13db9b9ebcb7d9c0868d1260feeee63300910d0e5b193e06ab861e540bddbd0a
+ 3ed29ddb978f2ff7c1672bd6525b5adf6818e14b260d7a0835ebf465f9dfca95
+ eeb2834967f05b9080a58de1f759406bb4294909a0922c7f7e4e2a69ed22104d
+ ed5b351f84260047b2f959b7dbeb9a3fa6f4710777780831c4f0259907b5fbe0
+ 1e09c208488553d62fc0f78a926971d3b37d969ed237137844c76f684bb07272
+ 8877e26cde0358319b57ade82c2d6aaf56ba3673517fc3fbf46390907c998b30
+ 4bb3c5aab906d9cfc53494c79e373b71852bd1cfd551c62dd4e5d4bfb95d8e48
+ 5f93db3d3d77dee88888c143e9fdd6c62b3584b5851532671fe14b7d4bee18db
+ 35fee74c18d203601a562093cd67013431a1efea99d930b6012f2501bd8a364b
+ 5c677d1c44b195af914137eafa94191d964ea4e014b7586a6d6c213b5e78fd49
+ b377c9210c98c95330ebbc74fd43226cb4d11ea5d2b3947bef55943e0fe93329
+ c6017b6cc9243f558eda77dbe536f3e8089764d490eaa846f61c9b373e91dfda
+ 7c2e54610bdc94c3a3d320e158537c5d6589f24a1bdd9bd2f74e2a2e32de41b6
+ 6f0b776eec863cdbfbea145551ea24bcee9358bcf014b060de3bced4fd9a9f3b
+ 1d93bed629c1fd548bc2e13a25d8fae5dd343888c8c9142f52e8f8a128f91247
+ e27c28fe6ba9cfc6191dcedf2511092b610b42c6023c27c05fec3273babb4cda
+ e85ff98db5a5b7aaf1719fe5adafd9555e2fc5d5869a6af636747fad416f3cc6
+ 947bc98e84fa1668beb3dc3067d96b40575e581df997b1cf4ec13b26856b5a2f
+ 42cb022dc9becddba32595855bd358ba8dc1bdc0f5485914337cc087e9c2ebea
+ 45b7fef087f305c963cec517db5518af5d3680230617a853ab677fe241c03a79
+ b84434f6a5cdc058868633449a984d302b0f0029d605110814e516dc4c0298b3
+ daa0bbb4caddc4098a451a050d2a60ff8694bee0da0e48eb04224636531918f5
+ 20edddb729bb4a230ded2ba323681e2f6b18b8da6c79f5c78396422affef23a9
+ ca8eb956c6061f2ebce77b97a8e7e1a9f8e2378e3d74a83e75b5d750f1f81e56
+ 5409bbf56ecd8d1c74328644ab3dd9dd4330d5be92aa4d6d569b3dea6f1aa990
+ e1beeb8feee4fd13f21ca1bedbb99b2fd060d99e771c52477ab494866b3fe20c
+ ad8c57d68d36893488ad051a4abbe95eb52544eb0f2f5d8f09f524784633e0e1
+ 3e275b9eaa134c0457a13fdb89207da4f6f370797c1c5fac809bccceb1a8b661
+ 34f67db7354e694b0c9f2a09af4bc7069851a3691280613802eef512fda2e9bf
+ cc008ee84e7af7bb51a09120022acb39032ec6fa4d59f6cee2f61b7a32b4daac
+ f289208bfd9981968144fa7669c2872cfe67cc15edba6cc109c926b22596a3c8
+ c96be633a6b9da032d4aa5e63ebb72924b58d96b61e1f723723a88eafd6c1015
+ 27cbe55e65de1dd4dabed9de5ebd5aec1f59d31735c57168675ffc3878cdca7d
+ a298214b7cc5a5a807031cda012751692b6d96b83a73c03d82f9f9b909d59be6
+ 19de4d1d77ff6eec0d0840ae7b8c1138ea80e162dc62684f8eed59b47670e4ed
+ dd066e9bc0d22915388b3be25afed12db90197124afb5355599676a55a2c321a
+ b6883ba8e423eacc9f5715172ce591bf056891c4420a952de2284a79293afc49
+ 73a0c455ff8e9efdbbf278fcb26711732b85ba3c66e1fb97882e09979b288291
+ d90e4348ab6d4cd786acc8a474a9664730ec81b41db90585a3531d19996821ef
+ dfe77d29b1290a17497521e464ca1398f4961310ae07795de44683df7cac2a3c
+ adffef23919ddf92dedd9c81f5c73cd30e21c9980c354bf20c7bf9ebe58a9709
+ 50124f81e3db868533e13436ef6c17c09b591962d021869a710a0e9bd826887b
+ ba23938f2767eae74371618aa06d9bf98c70352007d2ada2bb46f3c8e6e26689
+ aa6c7d37b9e8590404e7e3ad32a1d9845fcdbf799f5b59cc320ec17dc50c3570
+ 2b30f7f634d0f6bb431dd8378e198cf397a8ff7b57b613c085d206b4ec68cc38"

  reply	other threads:[~2020-11-04 17:35 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-04 17:22 [PR PATCH] " pullmoll
2020-11-04 17:35 ` pullmoll [this message]
2020-11-04 17:37 ` [PR PATCH] [Updated] " pullmoll
2020-11-04 22:31 ` pullmoll
2020-11-04 22:31 ` pullmoll
2020-11-05  9:00 ` pullmoll
2020-11-06 20:17 ` [PR PATCH] [Updated] " pullmoll
2020-11-06 20:19 ` [PR PATCH] [Merged]: " pullmoll
2020-11-06 20:42 ` q66

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201104173549.1Cg9ALcHhBYoDzXaiVxuNG_27ib2buH_rixl1G8vaVE@z \
    --to=pullmoll@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).