Github messages for voidlinux
 help / color / mirror / Atom feed
From: ericonr <ericonr@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] Thunderbird 78.5.1
Date: Thu, 07 Jan 2021 01:08:21 +0100	[thread overview]
Message-ID: <20210107000821.NOeBbgApH2ZFrRAUFf11MjqArg9Al9WT4gWYgpvdIgg@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-26896@inbox.vuxu.org>

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

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

https://github.com/ericonr/void-packages thundernew
https://github.com/void-linux/void-packages/pull/26896

Thunderbird 78.5.1
Still seeing if cross compilation reaches the end successfully.

Would appreciate testers.

Have launched on x86_64-musl, but I'm not on the device that uses thunderbird, so I haven't logged in yet.

Based on and closes #24509 

[ci skip]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-thundernew-26896.patch --]
[-- Type: text/x-diff, Size: 54173 bytes --]

From 6623a541e8228bf7fe8007dc41093d23506179ec Mon Sep 17 00:00:00 2001
From: mmnmnnmnmm <45293514+mmnmnnmnmm@users.noreply.github.com>
Date: Wed, 2 Dec 2020 16:30:22 -0300
Subject: [PATCH 1/2] thunderbird: update to 78.6.0.

- sync patches with firefox-esr
- add --allow-addon-sideload to mozconfig so language packs work
---
 srcpkgs/thunderbird/files/mozconfig           |  12 +-
 .../patches/big-endian-image-decoders.patch   |  88 +++++++++++
 .../disable-image-format-warning.patch        |  15 --
 srcpkgs/thunderbird/patches/fix-cross.patch   |  16 ++
 .../patches/fix-desktop-icon-path.patch       |  11 ++
 .../patches/fix-i686-ppc-musl.patch           |   8 +-
 .../patches/fix-image-format-warning.patch    |  39 +++++
 srcpkgs/thunderbird/patches/fix-musl.patch    |  11 --
 .../patches/fix-sandbox-membarrier.patch      |  52 -------
 .../thunderbird/patches/fix-seccomp-bpf.patch |  14 --
 srcpkgs/thunderbird/patches/fix-toolkit.patch |  78 ----------
 srcpkgs/thunderbird/patches/fix-tools.patch   |  29 ----
 .../thunderbird/patches/flac-no-ffvpx.patch   |  26 ++++
 .../thunderbird/patches/ppc32-fix-build.patch |  36 +++++
 .../patches/ppc32-skia-portable.patch         |  14 --
 .../thunderbird/patches/rust-configure.patch  |  15 +-
 .../thunderbird/patches/rust-has-i128.patch   |  21 +++
 .../thunderbird/patches/sandbox-fork.patch    |  13 ++
 .../patches/sandbox-largefile.patch           |  17 ++
 srcpkgs/thunderbird/patches/skia-sucks1.patch | 147 +++++++++---------
 srcpkgs/thunderbird/patches/skia-sucks3.patch |  28 +++-
 srcpkgs/thunderbird/patches/sndio.patch       |  81 +++-------
 srcpkgs/thunderbird/template                  |  64 ++++----
 23 files changed, 432 insertions(+), 403 deletions(-)
 create mode 100644 srcpkgs/thunderbird/patches/big-endian-image-decoders.patch
 delete mode 100644 srcpkgs/thunderbird/patches/disable-image-format-warning.patch
 create mode 100644 srcpkgs/thunderbird/patches/fix-cross.patch
 create mode 100644 srcpkgs/thunderbird/patches/fix-desktop-icon-path.patch
 create mode 100644 srcpkgs/thunderbird/patches/fix-image-format-warning.patch
 delete mode 100644 srcpkgs/thunderbird/patches/fix-musl.patch
 delete mode 100644 srcpkgs/thunderbird/patches/fix-sandbox-membarrier.patch
 delete mode 100644 srcpkgs/thunderbird/patches/fix-seccomp-bpf.patch
 delete mode 100644 srcpkgs/thunderbird/patches/fix-toolkit.patch
 create mode 100644 srcpkgs/thunderbird/patches/flac-no-ffvpx.patch
 create mode 100644 srcpkgs/thunderbird/patches/ppc32-fix-build.patch
 delete mode 100644 srcpkgs/thunderbird/patches/ppc32-skia-portable.patch
 create mode 100644 srcpkgs/thunderbird/patches/rust-has-i128.patch
 create mode 100644 srcpkgs/thunderbird/patches/sandbox-fork.patch
 create mode 100644 srcpkgs/thunderbird/patches/sandbox-largefile.patch

diff --git a/srcpkgs/thunderbird/files/mozconfig b/srcpkgs/thunderbird/files/mozconfig
index 334846e9a64..b30e8fc4886 100644
--- a/srcpkgs/thunderbird/files/mozconfig
+++ b/srcpkgs/thunderbird/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,16 +21,17 @@ 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 --disable-gold
+ac_add_options --enable-release
 ac_add_options --enable-optimize="$CFLAGS"
 
 ac_add_options --enable-official-branding
-ac_add_options --enable-calendar
 ac_add_options --enable-application=comm/mail
+ac_add_options --enable-calendar
+
+ac_add_options --allow-addon-sideload
diff --git a/srcpkgs/thunderbird/patches/big-endian-image-decoders.patch b/srcpkgs/thunderbird/patches/big-endian-image-decoders.patch
new file mode 100644
index 00000000000..ccb417b61f1
--- /dev/null
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/disable-image-format-warning.patch b/srcpkgs/thunderbird/patches/disable-image-format-warning.patch
deleted file mode 100644
index bd56e6bc37c..00000000000
--- a/srcpkgs/thunderbird/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/thunderbird/patches/fix-cross.patch b/srcpkgs/thunderbird/patches/fix-cross.patch
new file mode 100644
index 00000000000..9b8a816d269
--- /dev/null
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/fix-desktop-icon-path.patch b/srcpkgs/thunderbird/patches/fix-desktop-icon-path.patch
new file mode 100644
index 00000000000..60af12e80b1
--- /dev/null
+++ b/srcpkgs/thunderbird/patches/fix-desktop-icon-path.patch
@@ -0,0 +1,11 @@
+--- taskcluster/docker/firefox-snap/firefox.desktop.orig	2019-01-18 19:31:39.428839442 +0100
++++ taskcluster/docker/firefox-snap/firefox.desktop	2019-01-18 19:32:20.689063456 +0100
+@@ -154,7 +154,7 @@
+ Terminal=false
+ X-MultipleArgs=false
+ Type=Application
+-Icon=/browser/chrome/icons/default/default128.png
++Icon=firefox
+ Categories=GNOME;GTK;Network;WebBrowser;
+ MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
+ StartupNotify=true
diff --git a/srcpkgs/thunderbird/patches/fix-i686-ppc-musl.patch b/srcpkgs/thunderbird/patches/fix-i686-ppc-musl.patch
index 40aab43ae86..6df609bbf16 100644
--- a/srcpkgs/thunderbird/patches/fix-i686-ppc-musl.patch
+++ b/srcpkgs/thunderbird/patches/fix-i686-ppc-musl.patch
@@ -1,11 +1,11 @@
 --- mozglue/misc/StackWalk.cpp	2017-04-11 04:13:21.000000000 +0200
 +++ mozglue/misc/StackWalk.cpp	2017-11-29 15:23:07.218649970 +0100
-@@ -33,7 +33,7 @@ using namespace mozilla;
- #  define MOZ_STACKWALK_SUPPORTS_MACOSX 0
+@@ -41,7 +41,7 @@
+ #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
  #endif
  
--#if (defined(linux) &&                                            \
+-#if (defined(linux) && \
 +#if defined(__GLIBC__) && (defined(linux) && \
       ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
        defined(HAVE__UNWIND_BACKTRACE)))
- #  define MOZ_STACKWALK_SUPPORTS_LINUX 1
+ #define MOZ_STACKWALK_SUPPORTS_LINUX 1
diff --git a/srcpkgs/thunderbird/patches/fix-image-format-warning.patch b/srcpkgs/thunderbird/patches/fix-image-format-warning.patch
new file mode 100644
index 00000000000..9b3b38d9065
--- /dev/null
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/fix-musl.patch b/srcpkgs/thunderbird/patches/fix-musl.patch
deleted file mode 100644
index c1cb99bf651..00000000000
--- a/srcpkgs/thunderbird/patches/fix-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/thunderbird/patches/fix-sandbox-membarrier.patch b/srcpkgs/thunderbird/patches/fix-sandbox-membarrier.patch
deleted file mode 100644
index caffd83cf67..00000000000
--- a/srcpkgs/thunderbird/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/thunderbird/patches/fix-seccomp-bpf.patch b/srcpkgs/thunderbird/patches/fix-seccomp-bpf.patch
deleted file mode 100644
index ed94fc39ed0..00000000000
--- a/srcpkgs/thunderbird/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/thunderbird/patches/fix-toolkit.patch b/srcpkgs/thunderbird/patches/fix-toolkit.patch
deleted file mode 100644
index 86e8ef47855..00000000000
--- a/srcpkgs/thunderbird/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/thunderbird/patches/fix-tools.patch b/srcpkgs/thunderbird/patches/fix-tools.patch
index 0ed043fb5b5..1af39bc6118 100644
--- a/srcpkgs/thunderbird/patches/fix-tools.patch
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/flac-no-ffvpx.patch b/srcpkgs/thunderbird/patches/flac-no-ffvpx.patch
new file mode 100644
index 00000000000..e3f60e8ecf6
--- /dev/null
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/ppc32-fix-build.patch b/srcpkgs/thunderbird/patches/ppc32-fix-build.patch
new file mode 100644
index 00000000000..c1a8f422d0a
--- /dev/null
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/ppc32-skia-portable.patch b/srcpkgs/thunderbird/patches/ppc32-skia-portable.patch
deleted file mode 100644
index 93c625a861e..00000000000
--- a/srcpkgs/thunderbird/patches/ppc32-skia-portable.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- gfx/skia/skia/third_party/skcms/skcms.cc
-+++ gfx/skia/skia/third_party/skcms/skcms.cc
-@@ -1806,6 +1806,11 @@ typedef enum {
-     Op_store_ffff,
- } Op;
- 
-+// work around ICE on 32-bit ppc
-+#if defined(__powerpc__) && !defined(__powerpc64__)
-+#  define SKCMS_PORTABLE
-+#endif
-+
- #if defined(__clang__)
-     template <int N, typename T> using Vec = T __attribute__((ext_vector_type(N)));
- #elif defined(__GNUC__)
diff --git a/srcpkgs/thunderbird/patches/rust-configure.patch b/srcpkgs/thunderbird/patches/rust-configure.patch
index 09191782b35..887c102bc55 100644
--- a/srcpkgs/thunderbird/patches/rust-configure.patch
+++ b/srcpkgs/thunderbird/patches/rust-configure.patch
@@ -1,20 +1,23 @@
---- build/moz.configure/rust.configure	2020-06-06 10:05:25.819337924 +0200
-+++ build/moz.configure/rust.configure	2020-06-06 10:07:11.346031015 +0200
-@@ -79,10 +79,6 @@
+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.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
  
 -rustc = unwrap_rustup(rustc, 'rustc')
 -cargo = unwrap_rustup(cargo, 'cargo')
 -
--
+ 
  set_config('CARGO', cargo)
  set_config('RUSTC', rustc)
+@@ -348,26 +345,6 @@
  
-@@ -366,25 +362,6 @@
              os.write(in_fd, source)
              os.close(in_fd)
- 
+-
 -            cmd = [
 -                rustc,
 -                '--crate-type', 'staticlib',
diff --git a/srcpkgs/thunderbird/patches/rust-has-i128.patch b/srcpkgs/thunderbird/patches/rust-has-i128.patch
new file mode 100644
index 00000000000..4c90cd3d106
--- /dev/null
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/sandbox-fork.patch b/srcpkgs/thunderbird/patches/sandbox-fork.patch
new file mode 100644
index 00000000000..72640cb7f70
--- /dev/null
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/sandbox-largefile.patch b/srcpkgs/thunderbird/patches/sandbox-largefile.patch
new file mode 100644
index 00000000000..494ca82df5a
--- /dev/null
+++ b/srcpkgs/thunderbird/patches/sandbox-largefile.patch
@@ -0,0 +1,17 @@
+--- security/sandbox/linux/SandboxFilter.cpp	2020-11-23 22:41:14.556378950 +0100
++++ security/sandbox/linux/SandboxFilter.cpp	2020-11-23 22:40:23.595806444 +0100
+@@ -68,7 +68,13 @@
+ 
+ // The headers define O_LARGEFILE as 0 on x86_64, but we need the
+ // actual value because it shows up in file flags.
+-#define O_LARGEFILE_REAL 00100000
++#if defined(__x86_64__) || defined(__i386__) || defined(__mips__)
++#define O_LARGEFILE_REAL 0100000
++#elif defined(__powerpc__)
++#define O_LARGEFILE_REAL 0200000
++#else
++#define O_LARGEFILE_REAL O_LARGEFILE
++#endif
+ 
+ // Not part of UAPI, but userspace sees it in F_GETFL; see bug 1650751.
+ #define FMODE_NONOTIFY 0x4000000
diff --git a/srcpkgs/thunderbird/patches/skia-sucks1.patch b/srcpkgs/thunderbird/patches/skia-sucks1.patch
index 223c9b14e6b..05ad34a3fc3 100644
--- a/srcpkgs/thunderbird/patches/skia-sucks1.patch
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/skia-sucks3.patch b/srcpkgs/thunderbird/patches/skia-sucks3.patch
index d95b81698e9..f4e890f0536 100644
--- a/srcpkgs/thunderbird/patches/skia-sucks3.patch
+++ b/srcpkgs/thunderbird/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/thunderbird/patches/sndio.patch b/srcpkgs/thunderbird/patches/sndio.patch
index 6c72284c19b..c5e5c486dd1 100644
--- a/srcpkgs/thunderbird/patches/sndio.patch
+++ b/srcpkgs/thunderbird/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/thunderbird/template b/srcpkgs/thunderbird/template
index 72799736e9b..5ccbe65c264 100644
--- a/srcpkgs/thunderbird/template
+++ b/srcpkgs/thunderbird/template
@@ -3,7 +3,7 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/thunderbird-i18n".
 #
 pkgname=thunderbird
-version=68.12.1
+version=78.6.0
 revision=1
 build_helper="rust"
 short_desc="Standalone Mail/News reader"
@@ -11,27 +11,26 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.thunderbird.net/"
 distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz"
-checksum=a2044fb611ac6ab1744ef61f5d292d2c81b8103438df02b6dd754968efc9a3af
+checksum=1dd6f9a4d88b4c3d0ec47bba60a891243ef95e105a9045b2d32e2b126779844b
 
 lib32disabled=yes
 
-hostmakedepends="autoconf213 unzip zip pkg-config perl python python3 yasm rust cargo
- llvm clang nodejs cbindgen nasm which tar"
+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 sqlite-devel libevent-devel libnotify-devel libvpx5-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 startup_notification startup-notification-devel)
  $(vopt_if xscreensaver libXScrnSaver-devel)
- $(vopt_if sndio sndio-devel)"
-depends="nss>=3.37.3 desktop-file-utils hicolor-icon-theme"
+ $(vopt_if sndio sndio-devel) $(vopt_if jack jack-devel)"
+depends="nss>=3.47.1 desktop-file-utils hicolor-icon-theme"
 
-build_options="alsa dbus pulseaudio startup_notification xscreensaver sndio wayland"
-build_options_default="alsa dbus pulseaudio startup_notification xscreensaver sndio wayland"
+build_options="alsa jack dbus pulseaudio xscreensaver sndio wayland"
+build_options_default="alsa jack dbus pulseaudio xscreensaver sndio wayland"
 
 case $XBPS_TARGET_MACHINE in
-	armv6*) broken="required NEON extensions are not supported on armv6" ;;
+	armv[56]*) broken="required NEON extensions are not supported on armv6" ;;
 	ppc64*) ;;
 	ppc*) broken="xptcall bitrot" ;;
 esac
@@ -64,7 +63,9 @@ post_extract() {
 }
 
 post_patch() {
-	_clear_vendor_checksums cssparser
+	_clear_vendor_checksums audio_thread_priority
+	_clear_vendor_checksums num-traits
+	_clear_vendor_checksums glslopt
 }
 
 do_build() {
@@ -73,6 +74,7 @@ do_build() {
 	case "$XBPS_TARGET_MACHINE" in
 	*-musl)
 		echo "ac_add_options --disable-jemalloc" >>.mozconfig
+		echo "ac_add_options --disable-gold" >>.mozconfig
 		echo "ac_add_options --enable-release" >>.mozconfig
 		;;
 	esac
@@ -93,18 +95,15 @@ do_build() {
 		export LDFLAGS+=" -latomic"
 	fi
 
-	case "$XBPS_TARGET_MACHINE" in
-	x86_64-musl|i686-musl)
-		echo "ac_add_options --host=${XBPS_TRIPLET}" >>.mozconfig
-		echo "ac_add_options --target=${XBPS_TRIPLET}" >>.mozconfig
-		;;
-	esac
-
 	if [ "$CROSS_BUILD" ]; then
 		BINDGEN_INCLUDE_FLAGS=$( $CPP -x c++ -v /dev/null -o /dev/null 2>&1 | \
 			sed -n '/#include <...> search starts here:/,/End of search list./p' | \
 			sed '1,1d;$d' | sed  's/^ /-I/' | paste -s )
 
+		# fix compiler detection for botan:
+		# https://github.com/randombit/botan/blob/63d51cb1ab08849d8ece329811b61f8c9abebbcf/configure.py#L2888
+		export CXX="${XBPS_CROSS_TRIPLET}-g++"
+
 		export BINDGEN_CFLAGS="--target=$XBPS_CROSS_TRIPLET \
 			--sysroot=${XBPS_CROSS_BASE} ${BINDGEN_INCLUDE_FLAGS}"
 		export HOST_CC=cc
@@ -128,10 +127,6 @@ do_build() {
 	mkdir -p third_party/rust/libloading/.deps
 
 	case "$XBPS_TARGET_MACHINE" in
-	i686*)
-		export CFLAGS+=" -D_FILE_OFFSET_BITS=64"
-		export CXXFLAGS+=" -D_FILE_OFFSET_BITS=64"
-		;;
 	armv7*)
 		export CFLAGS+=" -mfpu=neon -Wno-psabi"
 		export CXXFLAGS+=" -mfpu=neon -Wno-psabi"
@@ -145,9 +140,16 @@ do_build() {
 		export LDFLAGS+=" -Wl,--no-keep-memory"
 		# patch the rust debug level, this is hardcoded
 		sed -i "s/debug_info = '2'/debug_info = '1'/" \
-		 build/moz.configure/toolchain.configure
+		build/moz.configure/toolchain.configure
 	fi
 
+	# FIXME: incompatible with rust 1.48 in this release
+	#case "$XBPS_TARGET_MACHINE" in
+	#aarch64*|i686*|x86_64*)
+	#	echo "ac_add_options --enable-rust-simd" >>.mozconfig ;;
+	#esac
+	echo "ac_add_options --disable-rust-simd" >>.mozconfig
+
 	export LDFLAGS+=" -Wl,-rpath=/usr/lib/thunderbird"
 
 	if [ "$SOURCE_DATE_EPOCH" ]; then
@@ -157,20 +159,20 @@ do_build() {
 	export MOZ_MAKE_FLAGS="${makejobs}"
 	export MOZ_NOSPAM=1
 	export MOZBUILD_STATE_PATH="${wrksrc}/mozbuild"
-	# avoid error: /usr/bin/as: invalid option -- 'N'
-	unset AS
+
+	export AS=$CC
 
 	cat <<! >>.mozconfig
 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-gtk')
+ac_add_options --enable-default-toolkit=$(vopt_if wayland 'cairo-gtk3-wayland' 'cairo-gtk3')
 !
 
 	rm -f old-configure
@@ -182,9 +184,9 @@ do_install() {
 	vinstall ${FILESDIR}/vendor.js 644 usr/lib/thunderbird/defaults/preferences
 	vinstall ${FILESDIR}/thunderbird.desktop 644 usr/share/applications
 
-	for i in 16 22 24 32 48 256; do
-		vinstall ./comm/mail/branding/thunderbird/default$i.png 644 \
-			usr/share/icons/hicolor/${i}x${i}/apps thunderbird.png
+	for i in 16x16 22x22 24x24 32x32 48x48 128x128 256x256; do
+		vinstall ${wrksrc}/comm/mail/branding/thunderbird/default${i%x*}.png 644 \
+			usr/share/icons/hicolor/${i}/apps thunderbird.png
 	done
 
 	# Use system-provided dictionaries

From de24827bf7661c4b6b9b222925d82c41babd8484 Mon Sep 17 00:00:00 2001
From: mmnmnnmnmm <45293514+mmnmnnmnmm@users.noreply.github.com>
Date: Wed, 2 Dec 2020 16:30:35 -0300
Subject: [PATCH 2/2] thunderbird-i18n: update to 78.6.0.

---
 srcpkgs/thunderbird-i18n/template | 114 +++++++++++++++---------------
 1 file changed, 57 insertions(+), 57 deletions(-)

diff --git a/srcpkgs/thunderbird-i18n/template b/srcpkgs/thunderbird-i18n/template
index 47c9ca4b560..79cd560228e 100644
--- a/srcpkgs/thunderbird-i18n/template
+++ b/srcpkgs/thunderbird-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'thunderbird-i18n'
 pkgname=thunderbird-i18n
-version=68.12.1
+version=78.6.0
 revision=1
 build_style=meta
 short_desc="Thunderbird language packs"
@@ -79,7 +79,7 @@ for _lang in "${_languages[@]}"; do
 	_pkgname=thunderbird-i18n-${_locale}
 
 	depends+=" ${_pkgname}>=${version}"
-	distfiles+=" ${MOZILLA_SITE}/thunderbird/releases/${version}/linux-i686/xpi/${_locale}.xpi"
+	distfiles+=" ${MOZILLA_SITE}/thunderbird/releases/${version}/linux-x86_64/xpi/${_locale}.xpi"
 
 	eval "${_pkgname}_package() {
 		_pkgtmpl $_lang
@@ -96,58 +96,58 @@ _pkgtmpl() {
 	}
 }
 
-checksum="daaef9e7b8c55328def0f22cad60ca48ad774afc4190b5e5eaf8e3dd1a4e5f28
- 8ff401dac77853307572acc410fd9c60b27b9577e7cbeff798e09107ed423d9c
- cd19b72064b00ad4ba4b4c851e8ec634b3c75e2102b38c44385c761ec9152a81
- 031c9f61077ab08e8b896668e61e09a01720ac5f22f1a97046e4ba1abff653c3
- 6e6b9f12dce243c15f0601f7a6743e8fb0c3a2d98475659ea778afa80382d826
- 574b0ffef6849443395533a638ad9931dc2226f619a13526ea16364f60865d79
- 62d43bab52e891d56b43696f80a4d7287c9e5b92e57645dcc0e2b800e49bfc73
- 546bcb01d473cdf3d114efc7546d7499997c49710e38a75c77875cc0141b8582
- 0a4a2238f2630b3d2aa244aafe2bc59b78192fe973e977b72e71bcd170b852d7
- 2e2e2d793f49c323d265205f75ab08c460591c400a28b9c11c71dd3080c4e111
- 4b54e6395e0cad7bf01a41aea26eaa0b8a238d83bbbef70a80cb5472408c3538
- 782c27adfcfa3d8bfbbb46eaf2442f738f63e623e5c3a9fe25e9ef06c54270f2
- dc23f05f6df9c9c133c5c1102e02d3703a7d42d6cd3021ff9e1b44bc010d36fa
- 189307a002a0ee88dfb373ae7daef44f13d3d86d292404fe75b9282c6ec70d9d
- ef8be85899e8690b56a82bfafcb2422e21aa688ca716cf88fad660e2413a4371
- def5c5acbc82f1274c74d407e4ce9aeca05298d4d2ecff9ee6a4048c4f748bb9
- de3289bc94be4a76777a56af95b04957fc8289ac0e28a0fe5b0f84716164f3b1
- b87fce391136a20fb53690cbdfe96511d0f44a07c8f6850d46942d753506dafe
- 2ea16aaf34e59b91d079b238489b8e99f2ac5c051127d80c130606fbedc17e82
- d67cbf27d266394ec2ffdd6f6d5925a1bc3b779e190b43e126fac869d32a9772
- 5f241e80aafee6bd7cb38708723d65d22d0cf599da8310afed43b571e654ad30
- 04b1aa4a9540672b27a318bf0e8b051ecd2fd8e0fac9688972a98d24dc395cdc
- ce24a1f51ff480d87b575e68d3da088ab70390a6efdc86a373bcc625b0d4fe69
- ea147f235edafa18144c76ca843716d5e4a3806f7096a2888c15e45a291b8bb2
- 061ba1d21aedcdcbcf8b8a9bab53b16ef34e4b4abda0d2e43e49d4263ffbffb7
- 819530775c72a822a581c76d090e0709133905293d3df769d2c85692d1c7a4d9
- c2f22993f2fd735e4ba8a34e8857546c4b9792b9a93488dddba30a2527ae174a
- a847a8f00321f20846c45907458ae76f842d3107ddfac2fcf71e641c6a080c51
- bcc6e48b51c67571c5ec08361134fbc3e4982ed27f3dab1e5b1ccfd26b3e22b1
- 368d63db282c200f5caaf65837a470df64db5a513d0b5e7d639e353fa8987c51
- 084bf0bb5fc42f068ae099d845c121f5ec8a1bcb91a76d80b6e49394b9e85e9d
- 578c24c143dda65697dc1708597215d59e5f2cc68b1f52e00901e07b3cea0dd4
- 1c2769d19ee3d444c75c4133f540ecf6860a6272bbb69f13524ca928bac33721
- a9f2683f18b29503ea38df815107e3753c0c3c37468cc0c23fea25080ba7392d
- dd61640c8987cbc5b8a41465e89200e3cef635c6931ce3f586a683d992492409
- c274dc81cab7b3b2ba3e0a4a55b4b94ed9ff02be48c808b0164aba386aae7cd9
- 76b850488e513e5181b4f460227fdb9f7a297aa95bca7778f407521be6355d23
- 1924933c175b04d088fc5764fedc6a317396234e591ef9f787cbd6d21bf43790
- 28006df283c06e44ef08901f9db21011350930bdf0d0cba132d2d8eadbefd314
- a90bce2d48d0b2f2db0423a22aad05c129029fb1b38824d7bb7875e6ff7a1cf4
- 77fbb6ddc67edffbdb0d3f992ed54f5309da13dfa9216d5c4ee613be6c9cec37
- 19df7a1f9216a69098fdbe7629140e7f36f52dbdd4b15a4c78734e448be3cdb2
- 0768ddd6ffeec0b1354270ff8c9627bffe9ddbe907c9d35081d5d9b6bae04874
- 8de1bb65249f9b06a3f90c02c1c715c8e308bccbaae22cde2f784ccac9228573
- eebe0e05bab4a0061d5d8eb1cbb5f2769ca4befd3276db769b83906adaa3ef34
- c23110b70da779084bbac3d55e87482ebf9502f249e11d9ed8956aac767f5889
- 27b5911a4ffa6a2a3e9ec4fdb10420ba33f333d9ac11deda8115656c5bcefb0b
- 44954a28be58dc2de08f0586ec7d8591939f81f3bb05a4574d8f58ac00b55ce8
- 3ac0f4e9cfcbe5089dcfb36eb39d8e26b16f062dcc12b5b89e6f619ab3caf013
- 4be6d239fd175d1bef88da579c7c1e6b244ae698aa4302a8a00069e2c0119331
- c705309c32c0d4af7b4f8e98095919f2942329b1cad75e8fff168f6c0ea71baf
- e6b9247a733e918f5e49aa6d11563c52b33d5f4f2f2cd4fd542953602b090c68
- ae1b27bba6d82606b55bffc0275e35bbf6da3b5d6c5e242ce5ac62d3bf81c630
- ffb9e14f03454cdf2d180d3960a3bbd13ccb6e177e86a1918d524c6de203df28
- cca092e8f86e4102de12461ab5c8ab0b601846113a837508ff8b8c9d5a10e588"
+checksum="77c0da17d85872a3ceae3d5849655a0dd3d783b365d405d4c2f9b3a243b3e5aa
+ e92122dfd91a99e7c32b90c5055f7f0c1a5268e0c001da5fc142a9d63261f0de
+ 62d1d6d4f34292549b6ada66ede177b1a26efaeaa2e4d9e0f5ea7aeb6a555c1a
+ 7846462412da03936930afb548657bea5c0e73eb464affd54459332888b6c744
+ 27534af1a57041a076261443347f183d80d757da14157ddba11ff393f248ed8b
+ c1541a2035e9ae4549c337686c9d8e9e995a32bc6173794d834bd83f404845dc
+ 3791e46378d40f75016ff5d35e66a8cef8aaed45f87368ac07bcec7fa916472f
+ 617f1c23b7210bf4ceccb22a3824a15074e2d9770ca66a26f6448d26beb72e81
+ e90862ea3b5a6653e9eea25613915392c438ae5ae42d860440d85ffa1d850e3d
+ 59bbfca02bb2ac6853c845653dc2de5ba123b33b468595a356f419c1fc8b6527
+ ec3e37a0a4c4dde29ba4c538d1efc1e135ef950ce95aa928c617b9da2a3de783
+ 27c42d0537c3e51c7b2289fd25ef201bcd62281b5d844b68c03474be2a1e54e6
+ b299d69c68a79e3709c1487ae87f8ebf5765ef38f483d148238c7c7bd54a047a
+ 408fe2cc100ea42751baa138b98d62ed78b5bb69f44039f61eea8262d5e9cd2e
+ 913446300c7b3e837309fb137e7f68f62da3c23939287feeb94a5d35425140ca
+ 5ed478e15a65d6ff15683b64f2769e3f7ced421c424d59ea7dba644cb5b84759
+ 2b7d9416fa15300c18b13a34ab709b307ded3705d0ccffc70423ecf9762dbff8
+ 31628ff53e3e87cbce122908b537df030f3ec936def0eb0e50c9791e6103b042
+ d7233c9efe07e54ec29911a8b27b8bce2b09f59e027687218c300374abc80aea
+ 6ed4dc7f605de1516f9ae175b2b12bcd9d0fce64a8f00acb9a675ac1258af6a9
+ 16a31b73042ffaf8373a977cdb2a2c563a6b49d13bc504569865a305e3fae380
+ 5328efe43bdf651f3ff72696f96e8ea2aa000a95233b6a406f612c6a076ac38c
+ 802db39bd53707555bbd5202c2668c7be92598b75cd7364e6169218c9f1f001e
+ 9f9a547d87133a468757baa38a600ad24a8479231766529c2612d6f7a63836a2
+ 82cf87688f7594e9d882969efd5a5963f3fa3f8b91e026b271fe630b3fda777a
+ 55c8f68d1702befe1782c7373893fac4d9e15fb77fcd9ee4d8345707969dcf97
+ 3cdcf203980d08dd18f0b6a566dc2585140625807f839102f15f0b685312aef6
+ 52ed8740582330ac3e2660f86b07676aa72533180d5a0df411569cda7e0d0ee2
+ 2e2eaf97e024d908b4cbd837bd8d14e50fc30bc877958f458568f3d5ef03debf
+ 44830607a1818da44721d6dfb7c60395c5557c4e84fcbf7936106f6d64c0b2df
+ 1727d70e0a3a8c8c8c6dc049243cd7ffb6710226b0ab7e4e4d776e241c13eaf9
+ 10cb0bdbc88f5718f7a7877d4ec2c5e7fc71e4dd13e0522ec10082f9846fb65c
+ 77740587416416ca7401573e4ba820ad2a3adb32374cb83b8a56e48aa4411b28
+ 7b63447a8ee28e635e7cb060a1df868c6a8c0d11448c30712fae971ba02e132e
+ a4aa893d47d6edb2e9f8ad6423abe17e39be8dded5f359ed933723b944c6a85b
+ 327cdc48a35fdcae7daa3dac86005d15798fd8ad4ffd47a497923dcbdf9cf386
+ 32a0a2dc3075db4645836dab1d6353d9466328c0e63e183290f345a04e285f87
+ e07cc90bcb41097ba19d886d2d1e38ef3b3ae2f6d36cf0133e018e40535357d6
+ 669a76ddd841a6559cbfdd97c82961251030e01036831279210f94606d472f05
+ e6f698313d67ab9da38ff1ff8097264dabc87de85df0e1c363736f60ad0954e2
+ 48ac6b9506b2cae19451845a6d633579ed341e367e4c22f525c5d147cea7bb85
+ 45fbeacc161c4d3e9fa8ba12c7a06b6ddf56dc5aa3c49543f45c9e5ecc6f8533
+ 8114465485f3740e2f38cd31e29e183a91cfe50c1b3bcdd2fac37f5254df38c5
+ 26869522aa4a17cd3965dc35442e6687cec86274cc17d43d3eda36b71e293071
+ 79ede7a6a4fdc587996a6717891a1931f63a07d468d3adf07b4df56402202fbd
+ 76acb24a68cc77a9f28b31e7337c815b8fefa81df6a47d57ed81612dc69c9878
+ bace543f253d44df294a35bb9db6dd4fbef8d0196a5698e0a862c589519c07d5
+ 8b6bd148954f415265dee893ca94024826c0f3a2ed0c308e3386637f158ed26b
+ 887a93e80fa6b42832e04ebea6f5c1a3cdb76cb6d4b2b0c0c882ab3c80a2c2da
+ 0e7b8d2f3c7b57751cc68aae7135976c9683eb14b703d23b90fe31ed4170b55c
+ 82f17754a013e65ad962e88a709be83eae9a00f0ba62c94bfbdf53eeb099ed19
+ 1aa191b1dd13e47e02e7167063afc89bb091d7a38708fc5d7e8e5c0a34f4dd43
+ cedb43a69a31e5c889f5dd485cc8036819248cfe8e49c4b519f4854c5dddb3a8
+ 131e883c87b8f4af323007f112ae93bfa8e37701ff4c64237e4db2045bbefb74
+ f54718774782453f8dfce92e55177663dbc8f49d8da668b0f745b98f0ca854f2"

  parent reply	other threads:[~2021-01-07  0:08 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-03  0:43 [PR PATCH] " ericonr
2020-12-03  0:44 ` [PR PATCH] [Updated] " ericonr
2020-12-13  9:39 ` dkwo
2020-12-15  9:38 ` dkwo
2020-12-15 13:35 ` ericonr
2020-12-15 13:42 ` dkwo
2021-01-06 19:25 ` fusion-zone
2021-01-06 22:45 ` ericonr
2021-01-06 22:45 ` ericonr
2021-01-07  0:08 ` ericonr [this message]
2021-01-07  0:15 ` Thunderbird 78.6.0 ericonr
2021-01-09  2:49 ` [PR PATCH] [Merged]: " ericonr
2021-01-09  4:36 ` ibhagwan
2021-01-09  6:47 ` ericonr
2021-01-09 17:29 ` ibhagwan

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=20210107000821.NOeBbgApH2ZFrRAUFf11MjqArg9Al9WT4gWYgpvdIgg@z \
    --to=ericonr@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).