Github messages for voidlinux
 help / color / mirror / Atom feed
From: pascal-huber <pascal-huber@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] thunderbird: update to 115.0
Date: Thu, 20 Jul 2023 09:15:21 +0200	[thread overview]
Message-ID: <20230720071521.DDHalH45f2vV3m9_rIpIZ3EhvEopMpG3UozUqrzBydM@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-43607@inbox.vuxu.org>

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

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

https://github.com/pascal-huber/void-packages thunderbird
https://github.com/void-linux/void-packages/pull/43607

thunderbird: update to 115.0
[ci skip]

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### Local build testing
- I built this PR locally for my native architecture, x86_64-glibc
- I built this PR locally for these architectures (if supported. mark crossbuilds):
 - [x] x86_64
 - [x] armv7l (crossbuild)
 - [x] aarch64 (crossbuild)
 - [x] i686 (native)
 - [x] x86_64-musl (native)
 - [ ] ~~armv6l-musl~~ (not supported)
 - [x] aarch64-musl
 
 
 #### Notes
 - Fixed `MOZILLA_SITE`
 - The UI seems a bit buggy with switching to calendars

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

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

From 6794e2fac557b271eb444b4eefd047f080b32564 Mon Sep 17 00:00:00 2001
From: Pascal Huber <pascal.huber@resolved.ch>
Date: Wed, 26 Apr 2023 12:09:15 +0200
Subject: [PATCH 1/3] thunderbird: update to 115.0

---
 .../patches/avoid-redefinition.patch          |  15 --
 .../thunderbird/patches/fix-i386-fdlibm.patch |   2 +-
 .../thunderbird/patches/flac-no-ffvpx.patch   |   3 +-
 srcpkgs/thunderbird/patches/lto-thin.patch    |  23 +-
 srcpkgs/thunderbird/patches/mallinfo.patch    |  24 +-
 .../patches/mp4parse-rust-1.70.patch          |  32 ---
 srcpkgs/thunderbird/patches/python3.11.patch  | 238 ------------------
 .../thunderbird/patches/rust-configure.patch  |  20 +-
 .../thunderbird/patches/sandbox-fork.patch    |  11 +-
 srcpkgs/thunderbird/patches/skia-sucks1.patch |   6 +-
 srcpkgs/thunderbird/patches/skia-sucks2.patch |  44 ----
 srcpkgs/thunderbird/template                  |  10 +-
 12 files changed, 54 insertions(+), 374 deletions(-)
 delete mode 100644 srcpkgs/thunderbird/patches/avoid-redefinition.patch
 delete mode 100644 srcpkgs/thunderbird/patches/mp4parse-rust-1.70.patch
 delete mode 100644 srcpkgs/thunderbird/patches/python3.11.patch
 delete mode 100644 srcpkgs/thunderbird/patches/skia-sucks2.patch

diff --git a/srcpkgs/thunderbird/patches/avoid-redefinition.patch b/srcpkgs/thunderbird/patches/avoid-redefinition.patch
deleted file mode 100644
index 867d37c62a900..0000000000000
--- a/srcpkgs/thunderbird/patches/avoid-redefinition.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Author: Rasmus Thomsen <oss@cogitri.dev>
-Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones
-(linux/if.h), leading to redefinitions. We need to include net/if.h before
-linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt
-Upstream: No
---- a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c	2020-07-28 19:24:32.359751046 +0200
-+++ b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c	2020-07-28 19:24:37.856343751 +0200
-@@ -31,6 +31,7 @@
- */
- 
- #if defined(LINUX)
-+#include <net/if.h>
- #include "addrs-netlink.h"
- #include <csi_platform.h>
- #include <assert.h>
diff --git a/srcpkgs/thunderbird/patches/fix-i386-fdlibm.patch b/srcpkgs/thunderbird/patches/fix-i386-fdlibm.patch
index 831e5e03678d8..bb81b4ad59e9f 100644
--- a/srcpkgs/thunderbird/patches/fix-i386-fdlibm.patch
+++ b/srcpkgs/thunderbird/patches/fix-i386-fdlibm.patch
@@ -14,5 +14,5 @@
  typedef double      __double_t;
 +#endif
  typedef __double_t  double_t;
+ typedef float       __float_t;
  
- /*
diff --git a/srcpkgs/thunderbird/patches/flac-no-ffvpx.patch b/srcpkgs/thunderbird/patches/flac-no-ffvpx.patch
index ebf48deb97201..2e475e8c69406 100644
--- a/srcpkgs/thunderbird/patches/flac-no-ffvpx.patch
+++ b/srcpkgs/thunderbird/patches/flac-no-ffvpx.patch
@@ -12,7 +12,7 @@ index 53fc3c9937f7..b23771ab80fa 100644
  
  namespace mozilla {
  
-@@ -14,6 +15,10 @@ namespace mozilla {
+@@ -14,5 +15,9 @@ namespace mozilla {
  bool FlacDecoder::IsEnabled() {
  #ifdef MOZ_FFVPX
    return StaticPrefs::media_flac_enabled();
@@ -21,5 +21,4 @@ index 53fc3c9937f7..b23771ab80fa 100644
 +  return StaticPrefs::media_flac_enabled() &&
 +         platform->SupportsMimeType("audio/flac"_ns);
  #else
-   // Until bug 1295886 is fixed.
    return false;
diff --git a/srcpkgs/thunderbird/patches/lto-thin.patch b/srcpkgs/thunderbird/patches/lto-thin.patch
index e85cbce36583c..78ac8b741be58 100644
--- a/srcpkgs/thunderbird/patches/lto-thin.patch
+++ b/srcpkgs/thunderbird/patches/lto-thin.patch
@@ -1,17 +1,20 @@
-$OpenBSD: patch-config_makefiles_rust_mk,v 1.6 2021/01/26 15:52:58 landry Exp $
+This patch is a modified version of the OpenBSD patch
 
-use lto=thin to reduce memory pressure when building gkrust
+try to consume less memory when linking gkrust with debug symbols ?
+
+openbsd patch: https://github.com/openbsd/ports/blob/master/mail/mozilla-thunderbird/patches/patch-config_makefiles_rust_mk
 https://bugzilla.mozilla.org/show_bug.cgi?id=1644409
 https://bugzilla.mozilla.org/show_bug.cgi?id=1640982
-
-Index: config/makefiles/rust.mk
---- a/config/makefiles/rust.mk.orig
-+++ a/config/makefiles/rust.mk
-@@ -70,7 +70,8 @@ ifndef MOZ_DEBUG_RUST
- # gkrust_gtest. And not when doing cross-language LTO.
- ifndef MOZ_LTO_RUST_CROSS
+---
+diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
+index a243ee5f7f..89593f1fe1 100644
+--- a/config/makefiles/rust.mk
++++ b/config/makefiles/rust.mk
+@@ -90,7 +90,8 @@ ifndef rustflags_sancov
+ # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
+ ifndef MOZ_CODE_COVERAGE
  ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
--cargo_rustc_flags += -Clto
+-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat)
 +cargo_rustc_flags += -Clto=thin
 +export CARGO_PROFILE_RELEASE_LTO=thin
  endif
diff --git a/srcpkgs/thunderbird/patches/mallinfo.patch b/srcpkgs/thunderbird/patches/mallinfo.patch
index 0d704301f39f0..a3b3e1cb53ac8 100644
--- a/srcpkgs/thunderbird/patches/mallinfo.patch
+++ b/srcpkgs/thunderbird/patches/mallinfo.patch
@@ -1,14 +1,16 @@
---- a/xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:12:20.844810044 +0100
-+++ b/xpcom/base/nsMemoryReporterManager.cpp	2019-03-19 17:13:32.505133615 +0100
-@@ -123,6 +123,7 @@
-   return GetProcSelfSmapsPrivate(aN);
+diff --git a/xpcom/base/nsMemoryReporterManager.cpp b/xpcom/base/nsMemoryReporterManager.cpp
+index 30bc60e01a..caf9f740d2 100644
+--- a/xpcom/base/nsMemoryReporterManager.cpp
++++ b/xpcom/base/nsMemoryReporterManager.cpp
+@@ -127,6 +127,7 @@ using namespace dom;
+   return GetProcSelfSmapsPrivate(aN, aPid);
  }
  
 +#ifdef __GLIBC__
  #  ifdef HAVE_MALLINFO
  #    define HAVE_SYSTEM_HEAP_REPORTER 1
- static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
-@@ -142,6 +143,7 @@
+ [[nodiscard]] static nsresult SystemHeapSize(int64_t* aSizeOut) {
+@@ -146,6 +147,7 @@ using namespace dom;
    return NS_OK;
  }
  #  endif
@@ -16,16 +18,16 @@
  
  #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
      defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
-@@ -642,6 +644,7 @@
+@@ -653,6 +655,7 @@ static bool InSharedRegion(mach_vm_address_t aAddr, cpu_type_t aType) {
    return NS_OK;
  }
  
 +#ifdef __GLIBC__
  #  define HAVE_SYSTEM_HEAP_REPORTER 1
- // Windows can have multiple separate heaps. During testing there were multiple
- // heaps present but the non-default ones had sizes no more than a few 10s of
-@@ -698,6 +701,7 @@
-   *aSizeOut = heapsSize;
+ // Windows can have multiple separate heaps, but we should not touch non-default
+ // heaps because they may be destroyed at anytime while we hold a handle.  So we
+@@ -685,6 +688,7 @@ static bool InSharedRegion(mach_vm_address_t aAddr, cpu_type_t aType) {
+   *aSizeOut = heapSize;
    return NS_OK;
  }
 +#endif // __GLIBC__
diff --git a/srcpkgs/thunderbird/patches/mp4parse-rust-1.70.patch b/srcpkgs/thunderbird/patches/mp4parse-rust-1.70.patch
deleted file mode 100644
index 64bf6e8e7be45..0000000000000
--- a/srcpkgs/thunderbird/patches/mp4parse-rust-1.70.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Patch-Source: https://github.com/mozilla/mp4parse-rust/commit/8d58b2d5fc7f552d585964354d8269bcca3d9251
---
-From 8d58b2d5fc7f552d585964354d8269bcca3d9251 Mon Sep 17 00:00:00 2001
-From: Matthew Gregan <kinetik@flim.org>
-Date: Thu, 16 Jun 2022 13:54:02 +1200
-Subject: [PATCH] Fix `unstable-name-collisions` warning by using fully
- qualified path.
-
----
- mp4parse/src/lib.rs | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/mp4parse/src/lib.rs b/mp4parse/src/lib.rs
-index 567ee21d..4f3d7153 100644
---- a/third_party/rust/mp4parse/src/lib.rs
-+++ b/third_party/rust/mp4parse/src/lib.rs
-@@ -3506,8 +3506,13 @@ macro_rules! impl_mul {
-             type Output = $output;
- 
-             fn mul(self, rhs: $rhs) -> Self::Output {
--                static_assertions::const_assert!(<$output>::MAX <= <$inner>::MAX as u64);
--                static_assertions::const_assert!(<$lhs>::MAX * <$rhs>::MAX <= <$output>::MAX);
-+                static_assertions::const_assert!(
-+                    <$output as UpperBounded>::MAX <= <$inner>::MAX as u64
-+                );
-+                static_assertions::const_assert!(
-+                    <$lhs as UpperBounded>::MAX * <$rhs as UpperBounded>::MAX
-+                        <= <$output as UpperBounded>::MAX
-+                );
- 
-                 let lhs: $inner = self.get().into();
-                 let rhs: $inner = rhs.get().into();
diff --git a/srcpkgs/thunderbird/patches/python3.11.patch b/srcpkgs/thunderbird/patches/python3.11.patch
deleted file mode 100644
index 2facee5ebb2ba..0000000000000
--- a/srcpkgs/thunderbird/patches/python3.11.patch
+++ /dev/null
@@ -1,238 +0,0 @@
-Patch-Source: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267709
-Patch-Source: https://hg.mozilla.org/mozilla-central/rev/f54162b2c1f2fe52c6137ab2c3469a1944f58b27
---- a/xpcom/idl-parser/xpidl/xpidl.py
-+++ b/xpcom/idl-parser/xpidl/xpidl.py
-@@ -1633,13 +1633,13 @@ class IDLParser(object):
-     t_ignore = " \t"
- 
-     def t_multilinecomment(self, t):
--        r"/\*(?s).*?\*/"
-+        r"/\*(\n|.)*?\*/"
-         t.lexer.lineno += t.value.count("\n")
-         if t.value.startswith("/**"):
-             self._doccomments.append(t.value)
- 
-     def t_singlelinecomment(self, t):
--        r"(?m)//.*?$"
-+        r"//[^\n]*"
- 
-     def t_IID(self, t):
-         return t
-@@ -1652,7 +1652,7 @@ class IDLParser(object):
-         return t
- 
-     def t_LCDATA(self, t):
--        r"(?s)%\{[ ]*C\+\+[ ]*\n(?P<cdata>.*?\n?)%\}[ ]*(C\+\+)?"
-+        r"%\{[ ]*C\+\+[ ]*\n(?P<cdata>(\n|.)*?\n?)%\}[ ]*(C\+\+)?"
-         t.type = "CDATA"
-         t.value = t.lexer.lexmatch.group("cdata")
-         t.lexer.lineno += t.value.count("\n")
-
-
-# HG changeset patch
-# User ahochheiden <ahochheiden@mozilla.com>
-# Date 1654151264 0
-# Node ID f54162b2c1f2fe52c6137ab2c3469a1944f58b27
-# Parent  6e7776492240c27732840d65a33dcc440fa1aba0
-Bug 1769631 - Remove 'U' from 'mode' parameters for various 'open' calls to ensure Python3.11 compatibility r=firefox-build-system-reviewers,glandium
-
-The 'U' flag represents "universal newline". It has been deprecated
-since Python3.3. Since then "universal newline" is the default when a
-file is opened in text mode (not bytes). In Python3.11 using the 'U'
-flag throws errors. There should be no harm in removing 'U' from 'open'
-everywhere it is used, and doing allows the use of Python3.11.
-
-For more reading see: https://docs.python.org/3.11/whatsnew/3.11.html#changes-in-the-python-api
-
-Differential Revision: https://phabricator.services.mozilla.com/D147721
-
-diff --git a/dom/base/usecounters.py b/dom/base/usecounters.py
---- a/dom/base/usecounters.py
-+++ b/dom/base/usecounters.py
-@@ -3,17 +3,17 @@
- # file, You can obtain one at http://mozilla.org/MPL/2.0/.
- 
- import collections
- import re
- 
- 
- def read_conf(conf_filename):
-     # Can't read/write from a single StringIO, so make a new one for reading.
--    stream = open(conf_filename, "rU")
-+    stream = open(conf_filename, "r")
- 
-     def parse_counters(stream):
-         for line_num, line in enumerate(stream):
-             line = line.rstrip("\n")
-             if not line or line.startswith("//"):
-                 # empty line or comment
-                 continue
-             m = re.match(r"method ([A-Za-z0-9]+)\.([A-Za-z0-9]+)$", line)
-diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py
---- a/python/mozbuild/mozbuild/action/process_define_files.py
-+++ b/python/mozbuild/mozbuild/action/process_define_files.py
-@@ -31,17 +31,17 @@ def process_define_file(output, input):
- 
-     config = PartialConfigEnvironment(topobjdir)
- 
-     if mozpath.basedir(
-         path, [mozpath.join(topsrcdir, "js/src")]
-     ) and not config.substs.get("JS_STANDALONE"):
-         config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src"))
- 
--    with open(path, "rU") as input:
-+    with open(path, "r") as input:
-         r = re.compile(
-             "^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U
-         )
-         for l in input:
-             m = r.match(l)
-             if m:
-                 cmd = m.group("cmd")
-                 name = m.group("name")
-diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py
---- a/python/mozbuild/mozbuild/backend/base.py
-+++ b/python/mozbuild/mozbuild/backend/base.py
-@@ -267,17 +267,17 @@ class BuildBackend(LoggingMixin):
-         If an exception is raised, |mach build| will fail with a
-         non-zero exit code.
-         """
-         self._write_purgecaches(config)
- 
-         return status
- 
-     @contextmanager
--    def _write_file(self, path=None, fh=None, readmode="rU"):
-+    def _write_file(self, path=None, fh=None, readmode="r"):
-         """Context manager to write a file.
- 
-         This is a glorified wrapper around FileAvoidWrite with integration to
-         update the summary data on this instance.
- 
-         Example usage:
- 
-             with self._write_file('foo.txt') as fh:
-diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py
---- a/python/mozbuild/mozbuild/preprocessor.py
-+++ b/python/mozbuild/mozbuild/preprocessor.py
-@@ -526,17 +526,17 @@ class Preprocessor:
-             if not options.output:
-                 raise Preprocessor.Error(
-                     self, "--depend doesn't work with stdout", None
-                 )
-             depfile = get_output_file(options.depend)
- 
-         if args:
-             for f in args:
--                with io.open(f, "rU", encoding="utf-8") as input:
-+                with io.open(f, "r", encoding="utf-8") as input:
-                     self.processFile(input=input, output=out)
-             if depfile:
-                 mk = Makefile()
-                 mk.create_rule([six.ensure_text(options.output)]).add_dependencies(
-                     self.includes
-                 )
-                 mk.dump(depfile)
-                 depfile.close()
-@@ -855,17 +855,17 @@ class Preprocessor:
-         self.checkLineNumbers = False
-         if isName:
-             try:
-                 args = _to_text(args)
-                 if filters:
-                     args = self.applyFilters(args)
-                 if not os.path.isabs(args):
-                     args = os.path.join(self.curdir, args)
--                args = io.open(args, "rU", encoding="utf-8")
-+                args = io.open(args, "r", encoding="utf-8")
-             except Preprocessor.Error:
-                 raise
-             except Exception:
-                 raise Preprocessor.Error(self, "FILE_NOT_FOUND", _to_text(args))
-         self.checkLineNumbers = bool(
-             re.search("\.(js|jsm|java|webidl)(?:\.in)?$", args.name)
-         )
-         oldFile = self.context["FILE"]
-@@ -909,17 +909,17 @@ class Preprocessor:
- 
-     def do_error(self, args):
-         raise Preprocessor.Error(self, "Error: ", _to_text(args))
- 
- 
- def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"):
-     pp = Preprocessor(defines=defines, marker=marker)
-     for f in includes:
--        with io.open(f, "rU", encoding="utf-8") as input:
-+        with io.open(f, "r", encoding="utf-8") as input:
-             pp.processFile(input=input, output=output)
-     return pp.includes
- 
- 
- # Keep this module independently executable.
- if __name__ == "__main__":
-     pp = Preprocessor()
-     pp.handleCommandLine(None, True)
-diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
---- a/python/mozbuild/mozbuild/util.py
-+++ b/python/mozbuild/mozbuild/util.py
-@@ -231,17 +231,17 @@ class FileAvoidWrite(BytesIO):
-     enabled by default because it a) doesn't make sense for binary files b)
-     could add unwanted overhead to calls.
- 
-     Additionally, there is dry run mode where the file is not actually written
-     out, but reports whether the file was existing and would have been updated
-     still occur, as well as diff capture if requested.
-     """
- 
--    def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"):
-+    def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"):
-         BytesIO.__init__(self)
-         self.name = filename
-         assert type(capture_diff) == bool
-         assert type(dry_run) == bool
-         assert "r" in readmode
-         self._capture_diff = capture_diff
-         self._write_to_file = not dry_run
-         self.diff = None
-diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
---- a/python/mozbuild/mozpack/files.py
-+++ b/python/mozbuild/mozpack/files.py
-@@ -549,17 +549,17 @@ class PreprocessedFile(BaseFile):
-         self.defines = defines
-         self.extra_depends = list(extra_depends or [])
-         self.silence_missing_directive_warnings = silence_missing_directive_warnings
- 
-     def inputs(self):
-         pp = Preprocessor(defines=self.defines, marker=self.marker)
-         pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
- 
--        with _open(self.path, "rU") as input:
-+        with _open(self.path, "r") as input:
-             with _open(os.devnull, "w") as output:
-                 pp.processFile(input=input, output=output)
- 
-         # This always yields at least self.path.
-         return pp.includes
- 
-     def copy(self, dest, skip_if_older=True):
-         """
-@@ -606,17 +606,17 @@ class PreprocessedFile(BaseFile):
-             return False
- 
-         deps_out = None
-         if self.depfile:
-             deps_out = FileAvoidWrite(self.depfile)
-         pp = Preprocessor(defines=self.defines, marker=self.marker)
-         pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
- 
--        with _open(self.path, "rU") as input:
-+        with _open(self.path, "r") as input:
-             pp.processFile(input=input, output=dest, depfile=deps_out)
- 
-         dest.close()
-         if self.depfile:
-             deps_out.close()
- 
-         return True
- 
-
diff --git a/srcpkgs/thunderbird/patches/rust-configure.patch b/srcpkgs/thunderbird/patches/rust-configure.patch
index 61fb2ba891d9a..b5ff2987008cf 100644
--- a/srcpkgs/thunderbird/patches/rust-configure.patch
+++ b/srcpkgs/thunderbird/patches/rust-configure.patch
@@ -6,9 +6,11 @@ instead use what is set in RUST_TARGET
 
 Skip extra checks on cross builds (broken for arm*)
 
---- a/build/moz.configure/rust.configure	2020-12-12 01:35:33.000000000 +0100
-+++ b/build/moz.configure/rust.configure	2020-12-15 19:45:16.467750787 +0100
-@@ -91,9 +91,6 @@
+diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
+index e64dc5d5ec..c4778f8cc8 100644
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -91,9 +91,6 @@ def unwrap_rustup(prog, name):
      return unwrap
  
  
@@ -18,7 +20,7 @@ Skip extra checks on cross builds (broken for arm*)
  
  set_config("CARGO", cargo)
  set_config("RUSTC", rustc)
-@@ -260,7 +257,9 @@
+@@ -274,7 +271,9 @@ def rust_supported_targets(rustc):
          data.setdefault(key, []).append(namespace(rust_target=t, target=info))
      return data
  
@@ -29,24 +31,26 @@ Skip extra checks on cross builds (broken for arm*)
  def detect_rustc_target(
      host_or_target, compiler_info, arm_target, rust_supported_targets
  ):
-@@ -382,12 +381,12 @@
+@@ -396,12 +395,14 @@ def detect_rustc_target(
  
          return None
  
 -    rustc_target = find_candidate(candidates)
 +    rustc_target = os.environ['RUST_TARGET']
++
  
      if rustc_target is None:
          die("Don't know how to translate {} for rustc".format(host_or_target.alias))
  
 -    return rustc_target
 +    return ensure_unicode(rustc_target, system_encoding)
++
  
  
  @imports("os")
-@@ -410,35 +409,6 @@
+@@ -423,35 +424,6 @@ def assert_rust_compile(host_or_target, rustc_target, rustc):
  
-         os.write(in_fd, ensure_binary(source))
+         os.write(in_fd, source)
          os.close(in_fd)
 -
 -        cmd = [
@@ -80,7 +84,7 @@ Skip extra checks on cross builds (broken for arm*)
      finally:
          os.remove(in_path)
          os.remove(out_path)
-@@ -462,28 +432,7 @@
+@@ -475,28 +447,7 @@ def rust_host_triple(
          host, compiler_info, arm_target, rust_supported_targets
      )
      if rustc_target != rustc_host:
diff --git a/srcpkgs/thunderbird/patches/sandbox-fork.patch b/srcpkgs/thunderbird/patches/sandbox-fork.patch
index d4584e74b91c3..a8cb89394f878 100644
--- a/srcpkgs/thunderbird/patches/sandbox-fork.patch
+++ b/srcpkgs/thunderbird/patches/sandbox-fork.patch
@@ -1,8 +1,8 @@
-make SYS_fork non-fatal, musl uses it for fork(2)
-
+diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp
+index 20e9b59685..e053580992 100644
 --- a/security/sandbox/linux/SandboxFilter.cpp
 +++ b/security/sandbox/linux/SandboxFilter.cpp
-@@ -1420,6 +1420,10 @@
+@@ -1598,6 +1598,11 @@ class ContentSandboxPolicy : public SandboxPolicyCommon {
          // usually do something reasonable on error.
        case __NR_clone:
          return ClonePolicy(Error(EPERM));
@@ -10,6 +10,7 @@ make SYS_fork non-fatal, musl uses it for fork(2)
 +      case __NR_fork:
 +        return Error(ENOSYS);
 +#  endif
++
  
- #  ifdef __NR_fadvise64
-       case __NR_fadvise64:
+       case __NR_clone3:
+         return Error(ENOSYS);
diff --git a/srcpkgs/thunderbird/patches/skia-sucks1.patch b/srcpkgs/thunderbird/patches/skia-sucks1.patch
index cd9eecccf6109..027d97bfce647 100644
--- a/srcpkgs/thunderbird/patches/skia-sucks1.patch
+++ b/srcpkgs/thunderbird/patches/skia-sucks1.patch
@@ -1,8 +1,8 @@
 https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c5
 https://bugzilla.mozilla.org/attachment.cgi?id=9028600
 
---- a/gfx/skia/skia/third_party/skcms/skcms.cc
-+++ b/gfx/skia/skia/third_party/skcms/skcms.cc
+--- a/gfx/skia/skia/modules/skcms/skcms.cc
++++ b/gfx/skia/skia/modules/skcms/skcms.cc
 @@ -30,6 +30,8 @@
          #include <avx512fintrin.h>
          #include <avx512dqintrin.h>
@@ -11,7 +11,7 @@ https://bugzilla.mozilla.org/attachment.cgi?id=9028600
 +    #define SKCMS_PORTABLE
  #endif
  
- // sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
+ static bool runtime_cpu_detection = true;
 @@ -280,20 +282,28 @@ enum {
  static uint16_t read_big_u16(const uint8_t* ptr) {
      uint16_t be;
diff --git a/srcpkgs/thunderbird/patches/skia-sucks2.patch b/srcpkgs/thunderbird/patches/skia-sucks2.patch
deleted file mode 100644
index 1a498f8711dd8..0000000000000
--- a/srcpkgs/thunderbird/patches/skia-sucks2.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-# HG changeset patch
-# Parent  aecb4600e5da17443b224c79eee178c1d8e155e3
-For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
-right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
-
-diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
---- a/gfx/skia/skia/include/private/SkNx.h	Tue Aug 20 09:46:55 2019 +0200
-+++ b/gfx/skia/skia/include/private/SkNx.h	Mon Sep 09 10:04:06 2019 +0200
-@@ -238,7 +238,18 @@
-     AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
-     AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
- 
-+    // On Big endian the commented out variant doesn't work,
-+    // and honestly, I have no idea why it exists in the first place.
-+    // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
-+    // which gets a 64-bit integer, and FromBits returns 32-bit,
-+    // cutting off the wrong half again.
-+    // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
-+    // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system)
-+#ifdef SK_CPU_BENDIAN
-+    AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
-+#else
-     AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
-+#endif
-     AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
-     AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
- 
-diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h
---- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h	Tue Aug 20 09:46:55 2019 +0200
-+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h	Mon Sep 09 10:04:06 2019 +0200
-@@ -203,7 +203,13 @@
-             //   ~~~>
-             // a = 1*aa + d(1-1*aa) = aa + d(1-aa)
-             // c = 0*aa + d(1-1*aa) =      d(1-aa)
-+
-+            // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
-+#ifdef SK_CPU_BENDIAN
-+            return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
-+#else
-             return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
-+#endif
-                  + d.approxMulDiv255(aa.inv());
-         };
-         while (h --> 0) {
diff --git a/srcpkgs/thunderbird/template b/srcpkgs/thunderbird/template
index 9709c5339bce8..551e968ce984f 100644
--- a/srcpkgs/thunderbird/template
+++ b/srcpkgs/thunderbird/template
@@ -3,15 +3,15 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/thunderbird-i18n".
 #
 pkgname=thunderbird
-version=102.6.1
-revision=4
+version=115.0
+revision=1
 build_helper="rust"
 short_desc="Standalone Mail/News reader"
 maintainer="Érico Nogueira <ericonr@disroot.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=8b8cb5d7532ad8ee65061d2f284ae9f0470e7614dfcfc3c37ca945bcb96d1183
+distfiles="${MOZILLA_SITE}/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz"
+checksum=3edc85647dcebde8b84c17e6eeff6ca9866a9f0ffe9a67d786fdb442c8a9a9ad
 
 lib32disabled=yes
 
@@ -24,7 +24,7 @@ makedepends="nss-devel libjpeg-turbo-devel gtk+3-devel icu-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.72 nspr>=4.32 desktop-file-utils hicolor-icon-theme"
+depends="nss>=3.72 nspr>=4.32 desktop-file-utils hicolor-icon-theme libotr"
 
 build_options="alsa jack dbus pulseaudio xscreensaver sndio wayland"
 build_options_default="alsa jack dbus pulseaudio xscreensaver sndio wayland"

From 1ace3a1f12450d96a3781b44f79de59de0b9cccd Mon Sep 17 00:00:00 2001
From: Pascal Huber <pascal.huber@resolved.ch>
Date: Wed, 26 Apr 2023 12:09:25 +0200
Subject: [PATCH 2/3] thunderbird-i18n: udpate to 115.0

---
 srcpkgs/thunderbird-i18n/template | 135 +++++++++++++++---------------
 1 file changed, 67 insertions(+), 68 deletions(-)

diff --git a/srcpkgs/thunderbird-i18n/template b/srcpkgs/thunderbird-i18n/template
index 17830bddd7774..4f500e626e9c6 100644
--- a/srcpkgs/thunderbird-i18n/template
+++ b/srcpkgs/thunderbird-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'thunderbird-i18n'
 pkgname=thunderbird-i18n
-version=102.6.1
+version=115.0
 revision=1
 build_style=meta
 short_desc="Thunderbird language packs"
@@ -106,70 +106,69 @@ _pkgtmpl() {
 			usr/lib/thunderbird/extensions langpack-${_lang}@thunderbird.mozilla.org.xpi
 	}
 }
-
-checksum="5935be82bcbd313b58520d95b04dc32c462e47df88f9724bb31b21686f8b4b77
- 142c0bd4d67b03320db94ae8002c8d67d9bc481a7ad728efa17ba7ae09e9a971
- 5547af80c73146c9892ad2dcd7fb5c6616c9a3a5b49868a23f03914ae2da1537
- e6f34bb2a5412ef9127aacd87823c84ca2881d47b15a45a96751a7557d1e0398
- cb35b936f2db79a897e1372ea34a1fb8237885030446f29269b940c0f221d733
- ada9c925979d25cb0e1549d20466b7e22653931715dd1a7fe85ca835caddf7f7
- 9b92561b20face8de88a77a579afa6d1404f55c69340993508fcc3153e1bd70b
- 64db6133cc87197cb793e0e33b72345bc30dabf862a06f7574321ea783c54645
- db622d082616525302f8d32b9f41793804d51495d1a7b1f62125ed9daedd3fb2
- 919ccec7292a6cf9ccce66fc7a91bbae2a3f93d965ecb4237380256cc8c344dd
- f160cb1db40b31815096c0c58f9aa75213e294600c12fef2d2deb741e24e22dd
- ce4e51c46cb0860c2671606ef94bff741b2e3d5e70e485b9c5c90d0e481cc5b2
- 05a552baec6b12b7e3f9270a628ff6a3fe62ec17c232f905465317e85e40e731
- 6bc18f1db7d0233c9d3bc0cf277234322845d309918681636c30a2c131bd90e9
- a7cc9b51e57b4de49f958cf1ea47d526e6873318fba96b52ee42d541a2e35902
- bf1fac8be9eca95bdbc9f8542445301e146148afe69b40a4ea41bfdf64ab1034
- 85e3c40c5ef6bd2fdbf9951304bec1f17e2f7a212abdf20cf103a5e7b73f2be9
- 6489211d465c053182484faae07c708e076b82a88d0ebecfda071f4bb41b5677
- f0d0d4a58d6bac842c28bee253e6d5906e582b359173fdeedb6d4c40f0b9a4c8
- 4e3da06699c1cc87b735ef9d181f8cc33c989f44840d02c9b9e5dfd893a8c05e
- 0dcabb9158d29001082801b1703946b1df9e22653fc7c66c9a725f102f2ada00
- 1e3ee2f9d0291ec2aa0a2d5939ca3074d6b6a7da533186e227da1d3cc2cc7974
- ab7931be527b56dea1939b048030647e4311b0c0eaa23b7843f3baab180801ba
- a592cfeb20a346ad8b24facca3f0da2c5fdd65156aafea67b0c3793bb99ab0a1
- 32740a1261d43b6bec2b99e2da64bdf201c60b1d0651a5a5db548e1180cf5fb1
- e9e669a9917eab86af336c1d149910cb8606e21708c2b5707d87452c455905b0
- 777d625c67cbe9e710ac7fffda880e0a1fb523f8cafc6ac2c3b227b2d5de38f5
- 63728cede6b88d8352b9398c675c4537527de00ee8a0e120bcc905be9f47ae89
- 97f387a2b47303ca475eeab466a0d9f4bc64554b82c55a00f2da4cea431aaa03
- c875c6a19505c6a04cbeba85baad5d9432efd930d920eebb72413d6642a33d3f
- 4ebd23d9533cf2c5b63ec4dc6b6f83df742c473d7d108dd70b9947d014a4ec45
- de78a9bdb410bd9850b4d1197442e263cfb7f3a112917aa40f76a5c50f5ae64c
- b23fb2ac9a531848ef30e960fdd3174ae970f84b42a2adec1bb34329879acd96
- b7024f86fac5844692b7e5c859e91c721a8279ee60880cafe9479476559bd9fa
- 7107ffa0816d059147381b63ee31d66b4ad9b6af77ed409c05994fc2eb5c597d
- 1e1144a17959632ccce43025f4addc4adea7c0c225bac529f99b501604b96b53
- 3697fe13197519a9838584a17ed612ae08d9c603d56340df13c42fb971ddbca4
- d357fa261223596406a931867f84f1aefaa4ff8556257a005e0d5061c6b5e8cf
- a85066ac413255ea51260e8c690b7a4fe8602ceb628e7d2fa6803ccafa02c9c8
- a9850ec702c480ab9ed2bbee16f8ffea2fa1e60da5f68f0f51b051699a3551de
- cd784b2b6317748241bc8f5192d5d3e734cc8747b61955485a859faad4be151b
- f67ba1abdbf107f5f18db505ea5c5b588bd4fbdd9c589991a643db0da1204f4b
- 8de924873919f06468f58d8a1dae8e9d2886d3705aa59b2dc7d30b9659a5327a
- 8b2b9ec349e0e562b7e681f8b9c910256c46953c1cd12f131d7e6f04469954f6
- 5ddd93aff16c17626a170fd0a5c95a72e9ab7bcaeaff67f36445ddd21100f42d
- 7bbeb6237a36f375cf78820e59dc61e619854bcf031852a5e8201b783176deac
- f77a1a325100e9f4bd84eeba002b35b63bad535b723ce854b0ce85e63776de38
- bf1573cca7b0892ca234a5bb2e44646ba997c0be8051017f35ae217aa7f60bdb
- 671bb222053b1fa8bb609095e518392dd3cb1ce2dde780ed34441118324cb551
- 6c4c7032d76b31bb76abfae5c5e288bd0a82bbcf7d9bf8aa9197bea687c86a46
- 4195b95b23a643925488e969accb294d1c056247ccfec745748d6ee0b0c94851
- ebaa54f3a992514bbf54bce4ab82743390c715a81343739948efd0ac3ca33599
- 868b30b8b311aed6c74b8d5fc05b7c4a0f32f56602b594229ddcadff2733a1f3
- 75f7542f8d3d49cf4e16023fae32a329fa8e804c90bae236a6415a4a045f6ce0
- ea857d827ee2cc580fae43772648cc410c1bcd4c8612cff9a3a7d11b04e54725
- 25716f39d2d7d25f448dc9a68270f51124f1d234f0b9482743dcc0c1a00fa8b1
- 42d52c4ce57e8cae43667faf7600e98d085b0ab713e7607bc1dae1f34932be67
- 5319b79f719dd27e45ecca54d29482d6558f41947db5c4ec4b70c3e25bb8f55a
- 88bcbfa7a2b006b93fd715810661b464e7b150006f046a94e6c03d2e067ae7e3
- 838d84317a7c51c13329c919d4479396b30233136b70fe025faf968b916ba1c1
- 5f686f697c1093c45ef882c3feb1def6064f458d5ae75a74962375b91c6027d5
- 9f9a7a4e6d73698fdc623384a666e677ce2d32990bc69e16aa631a34371cdf78
- 0ba4499c5805a83172e5dcbdc8fd8e464824827f94ed1849d9a1797a9b386e00
- 41f65c5307ec97310b33ace466439e4abf008d461be3835f545e4194e6c54940
- edd966278b660bb280e8e319300e18652ce2ef0fca5baeeb72696b5fd2a03d69
- 13d667aaf3338da21355c042b3a07567553ee48bf0dc071f9a55ef49451de21c"
+checksum="2795eb87bc114db830a3758d4b521eb1a1ffd9b24eeca850c46f839c4917b83a
+ 35bc76f1bfe843a5b49204d2cad6f8ba3ccfe423b7f3f7660083292adcab51f6
+ a647bea8f334322454314b4f5f0280f7f5d109b272811eec029afd6d847f5533
+ 76aab1c6e2e3b279b468e9e350cdb3984c8c1efc18980fc9efce46e215495535
+ 3245144d2b3fa7eace71dcd18599c1e1e1519af2121f1b8e8b1dc4a8c600f471
+ d1c9edfd1d56c2c56052d5d547d45f84e34a4f3a45a5960d0962cef84a860306
+ 7bfc2e8ede683b5e639d452472e5f6658b9af8f4bfc549e7169c48bf83423eb2
+ 3a2e8d6667b0b22ff6599b8f4fb68461f39d9e4992ee1f025407bdcb82270740
+ 72faf0a2c19b981e984d249aef68928a8667e9cb56342580f44c901b99148356
+ 2101e99c5ef8c5fefd9d9b093bf8a8688310e1727ad66a11f342ca33cfdc5a42
+ ab6d56b072cc8736b64f86319889f873a5fca23ac0bb33e73994295d5e796337
+ 56ddfc0ae04363601c62fcb862a5b9bd1b3218ecbce809b96e416409afcd8001
+ d883155840ca6fe912c2f95b4b2960b5e8edf4871ef413b4a8309b983ef883e8
+ 2c926ec1ec9fbffb228fa6f32055d8b03ee68593b01115f8eea6ae82344ad44b
+ 75919273248d9a8a9822d98e3c7540582c70a15f2d412074983aa8b16d807aba
+ e5f905e6e14330e4b65d752b7fd90c68e58e78d57abb670209e277538203beea
+ cd8d1aed0bfdad4f8201cf97679814fb919d01c63b3e1a2dbbdbbb7e0d22e013
+ 0858b70dbf53e3d3626cc4a8910435e91cf2aeca48ec3547b5539357115d9575
+ 3d7daa749cb4f640f20823483581d494e0a68369c1f390d61bb59e404627e531
+ c688a2689a7849a8e111ea3fcc820de4c3b1d60e1212e51ddf9f9fc83252d01b
+ 577ba1a5fa7142bb7efa175485940c35302bbff6cd43c120553068b77272accd
+ f89c227d2c2e5115a20d22868b3adc9e202cd08b0daf7ac43050ff7920d2b8d3
+ c0e0b90e1136a2b0be1eb539e6f158976fa05f398bbae18b92ce57fa4639a64d
+ eb347b20e13c4308987c7e52667ff93937d374a56d12f70747b79e063cc096a9
+ 766af2c371926414714b4cd403e26b46eb2394aae88af2921387f0c82fa78267
+ a834879a3f83a3849b5895fea2870d9b95237a46e2e61fe19b02f8cc47b3e493
+ 4ac7c69dcbe3292efbc610f3cebd49837569cd057b567b60bd3ca2e7204bcd21
+ bfbd481a956dc0e82fd1386eb4607b288e56230d829c19d7d8492cea9f7c6cdb
+ 23c7c48c0772a3056218055c7f5ee676e493dc35f35c714f7b2e43bd8fe986dc
+ 052154888d2c1eb8a1a234d19919a943a1bba71709259b9b87f3e89036ba784c
+ 3da3c384ceb9b0ee2ef87065eee6a1f8e03645853c68ecd05f320e0bc1b6081a
+ 98ec455fa04aaa9c81e034383c6e9151eba247113d5681223cab9164ec548a8b
+ 466329a0885c83c6bfce8bafc1a3cbd5bf7614d28495d6c168fb1169755d6b27
+ ee143ad8f2c195b453496dc576e03154c707f0706cb6c82c7120f09c91a079c2
+ b2d9cdb75ca10e31426331c2b978122e1d8f6089b7ad580798958b81aeafd210
+ 0af499fe0d38230a7c4796e439581d35bded64457b49e142650fde641ceaa828
+ df5cdc43653ad81a33f305a58a1429377b9ff70652b3cfa8efcd559d23cda592
+ 5c3edac5f619b7d4bcf2f801ed82e6c73b889277b0fd142d0beaf1af63739ae3
+ d9ffc08cbfbc3c386117234c80edfef31c4c61a08778026f3dbc304e1e2b5588
+ 0c44def4e69d0116b1ed0335eed8dcce22c01cc1baaa0ed8c9be9161bbe460ca
+ 4e862710ce361be02f160430da67de5e14bdd8c36d6f915e8589cd5b13bce7be
+ 576fae0ba50d25742548e44d8e0f0ba6fce7bb108e495b988d093f96f4608e76
+ 76589f4722c3a6deb3f470eaa10b09de2d7e20a90563bc3f7ecb1146256e4846
+ 997f89eeec54328b84255a478d7bea2ee86054af3165b83b559ca748ad1f0ed2
+ 3bd42654702043a7333a2ab1fb34aa55354e2f3a075f5f922c0931f43606b0a5
+ f5761d69d311abc3fa9ddd63101808e02e7df39992c34744b8786baf10a8bd79
+ 10e0c72af868e1429013d89a8d700d2e601924049cf93cc25020fe335307a31e
+ fd9f38014ee0b8aa292610c757c81edccc996652573427fb7fe7754b80732066
+ c21f52050b85935689d96656c13259664ba046944bd0cb136db7db5859e90614
+ 83840f492dc9f9cbdd65593cc6ffd7c0c85c9720c527202b991af0df64062588
+ c5afb7a8e031df877ae66f0e0c1abc20b3c4ffeef9510642eddd6971c1df119d
+ a6cf787baecb27695f3764f87369afb10896edcd515d744fe35462b387ddf4ec
+ fdb3203916a31637b39428ae491e8f9704eebde791d48b4470d4e3f26abe393a
+ 33720e23c7f518ab7a8cfe103e56f0cb5c3cdd38933757ded3c5a17a82af81d9
+ be5ffaa88e17075137fd1ab73de9c5d7aa3874ae5d7348c63c9eb337c2dda1d1
+ d4cd085355c29206456729de82859c5f23515c3d83a9729605965928105ac79c
+ 397276efc3f4c6dfae6efb3e2025bf767f4de1a886774119e431a60cf185691a
+ c4a95222d6905100e8720690b37c5f6bb26f7086dff1f59f864ad992df2dd80b
+ 91abe4d68395f0dd77a85ac45626d8eb998df2f0695ba1d3b7a240940a079949
+ c1f6d49be3cec81ff732d7e1ff318a745a0a368199f1179693a11356b01a1771
+ ba91ecb70ed128ad52cd31917a4c0e7fc21ce7d5211619c01daa9b2982ee0f73
+ 9b198f5bce975e98084ee9be9b7f388aa2f42c342addb2890305afe47bd01084
+ 8afacc89f22054e7b83b500f907dea82fc7456d233a3b6a0f91833ac3ab0db05
+ bcf10378a8fe52b4882d52ad19d7f5b41abe2c4685aab05d2cba081da64a7fd6
+ 17122d6782c7b8d495e6de42259ce4543e5bbd449b0a8e6f86e2ba3a1f684d0d
+ 8230d2f47709cfd580704f8a8c795f24fca9c4e7d71b3af95223a20778f257af"

From 8e4a13a5f7fcc6b07a7384734ae4ba6d05993ad5 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Mon, 17 Jul 2023 22:34:45 -0400
Subject: [PATCH 3/3] icu: fix timezone stuff for thunderbird

---
 .../patches/standardize-vtzone-output.patch   | 33 +++++++++++++++++++
 srcpkgs/icu/template                          |  2 +-
 2 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/icu/patches/standardize-vtzone-output.patch

diff --git a/srcpkgs/icu/patches/standardize-vtzone-output.patch b/srcpkgs/icu/patches/standardize-vtzone-output.patch
new file mode 100644
index 0000000000000..7274f539991a7
--- /dev/null
+++ b/srcpkgs/icu/patches/standardize-vtzone-output.patch
@@ -0,0 +1,33 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/c48ec38c2d88f6e5962299583a8f862159c89349/main/icu/patches/standardize-vtzone-output.patch
+https://bugzilla.mozilla.org/show_bug.cgi?id=1790071
+https://unicode-org.atlassian.net/browse/ICU-22132  
+needed for thunderbird
+--
+diff --git a/intl/icu/source/i18n/vtzone.cpp b/intl/icu/source/i18n/vtzone.cpp
+--- a/source/i18n/vtzone.cpp
++++ b/source/i18n/vtzone.cpp
+@@ -1735,14 +1735,17 @@ VTimeZone::write(VTZWriter& writer, UErr
+             }
+         }
+     } else {
+-        UnicodeString icutzprop;
+-        UVector customProps(nullptr, uhash_compareUnicodeString, status);
++        UVector customProps(uprv_deleteUObject, uhash_compareUnicodeString, status);
+         if (olsonzid.length() > 0 && icutzver.length() > 0) {
+-            icutzprop.append(olsonzid);
+-            icutzprop.append(u'[');
+-            icutzprop.append(icutzver);
+-            icutzprop.append(u']');
+-            customProps.addElement(&icutzprop, status);
++            LocalPointer<UnicodeString> icutzprop(new UnicodeString(ICU_TZINFO_PROP), status);
++            if (U_FAILURE(status)) {
++                return;
++            }
++            icutzprop->append(olsonzid);
++            icutzprop->append(u'[');
++            icutzprop->append(icutzver);
++            icutzprop->append(u']');
++            customProps.adoptElement(icutzprop.orphan(), status);
+         }
+         writeZone(writer, *tz, &customProps, status);
+     }
diff --git a/srcpkgs/icu/template b/srcpkgs/icu/template
index 355865ce25dfd..271f7ea4fc944 100644
--- a/srcpkgs/icu/template
+++ b/srcpkgs/icu/template
@@ -3,7 +3,7 @@
 #       next soname bump.
 pkgname=icu
 version=73.2
-revision=1
+revision=2
 build_wrksrc=source
 build_style=gnu-configure
 # use archive data instead of .so data for correct cross-compiling

  parent reply	other threads:[~2023-07-20  7:15 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-43607@inbox.vuxu.org>
2023-04-26 10:03 ` [PR PATCH] [Updated] thunderbird: update to 102.10.1 pascal-huber
2023-04-26 10:05 ` pascal-huber
2023-04-26 10:07 ` [PR PATCH] [Updated] " pascal-huber
2023-04-26 10:09 ` pascal-huber
2023-05-05  7:02 ` pascal-huber
2023-05-12 12:03 ` pascal-huber
2023-05-12 12:03 ` pascal-huber
2023-05-12 12:06 ` [PR PATCH] [Updated] thunderbird: update to 102.11.0 pascal-huber
2023-06-09  9:07 ` pascal-huber
2023-06-09  9:08 ` pascal-huber
2023-06-09 15:19 ` thunderbird: update to 102.12.0 pascal-huber
2023-06-14 18:53 ` Chocimier
2023-06-19 18:58 ` pascal-huber
2023-07-14 21:32 ` nvkomimi
2023-07-14 21:38 ` pascal-huber
2023-07-15 11:48 ` [PR PATCH] [Updated] " pascal-huber
2023-07-15 11:49 ` thunderbird: update to 115.0 pascal-huber
2023-07-15 11:57 ` pascal-huber
2023-07-15 17:03 ` [PR PATCH] [Updated] " pascal-huber
2023-07-15 17:12 ` pascal-huber
2023-07-15 18:20 ` pascal-huber
2023-07-16  9:53 ` pascal-huber
2023-07-17 20:19 ` classabbyamp
2023-07-17 20:47 ` pascal-huber
2023-07-18  4:08 ` [PR PATCH] [Updated] " classabbyamp
2023-07-18  4:08 ` classabbyamp
2023-07-19 23:05 ` [PR REVIEW] " classabbyamp
2023-07-19 23:07 ` classabbyamp
2023-07-20  6:05 ` pascal-huber
2023-07-20  6:10 ` pascal-huber
2023-07-20  7:15 ` pascal-huber [this message]
2023-07-20  7:15 ` [PR REVIEW] " pascal-huber
2023-07-20  8:00 ` [PR PATCH] [Merged]: " classabbyamp

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=20230720071521.DDHalH45f2vV3m9_rIpIZ3EhvEopMpG3UozUqrzBydM@z \
    --to=pascal-huber@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).