* update thunderbird to 91.1.2-1

This commit is contained in:
Alexander Baldeck 2021-09-30 12:18:08 +02:00
parent dd826f86a2
commit d8e1401d4b
23 changed files with 560 additions and 4918 deletions

View File

@ -8,60 +8,57 @@
pkgbase=thunderbird
pkgname=(thunderbird)
pkgver=78.13.0
pkgver=91.1.2
pkgrel=1
pkgdesc='Standalone mail and news reader from mozilla.org'
url='https://www.mozilla.org/thunderbird/'
arch=(x86_64 powerpc64le)
license=(MPL GPL LGPL)
depends=(
glibc gtk3 libgdk-3.so mime-types dbus libdbus-1.so dbus-glib alsa-lib nss
hunspell sqlite ttf-font libvpx libvpx.so zlib bzip2 botan libwebp libevent
libjpeg-turbo libffi nspr gcc10-libs libx11 libxrender libxfixes libxext
libxcomposite libxdamage pango libpango-1.0.so cairo gdk-pixbuf2 icu
libicui18n.so libicuuc.so freetype2 libfreetype.so fontconfig
libfontconfig.so glib2 libglib-2.0.so pixman libpixman-1.so gnupg
)
optdepends=(
'libotr: OTR support for active one-to-one chats'
glibc gtk3 libgdk-3.so libgtk-3.so mime-types dbus libdbus-1.so dbus-glib
alsa-lib nss hunspell sqlite ttf-font libvpx libvpx.so zlib bzip2 libbz2.so
botan libwebp libwebp.so libwebpdemux.so libevent libjpeg-turbo libffi
libffi.so nspr gcc-libs libx11 libxrender libxfixes libxext libxcomposite
libxdamage pango libpango-1.0.so cairo gdk-pixbuf2 icu libicui18n.so
libicuuc.so freetype2 libfreetype.so fontconfig libfontconfig.so glib2
libglib-2.0.so pixman libpixman-1.so gnupg
)
makedepends=(
unzip zip diffutils python python-setuptools mesa imake libpulse
inetutils xorg-server-xvfb autoconf2.13 rust gcc10 llvm clang gtk2 cbindgen nodejs-lts-dubnium
xorg-server-xvfb autoconf2.13 rust clang llvm cbindgen nodejs
gawk perl findutils libotr
)
makedepends_x86_64=(yasm nasm)
makedepends_x86_64=(nasm yasm)
options=(!emptydirs !makeflags)
source=(https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc}
thunderbird.desktop
vendor-prefs.js
distribution.ini
mozconfig.cfg
mozconfig.cfg.powerpc64le
mozconfig.cfg.powerpc
fix-fortify-inline.patch
mozconfig.cfg{,.powerpc64le}
metainfo.patch
avoid-redefinition.patch
big-endian-image-decoders.patch
firefox-pgo.patch
firefox-powerpc-clang.patch
fix-image-format-warning.patch
fix-webrtc-glibcisms.patch
rust-has-i128.patch
rust-configure.patch
flac-no-ffvpx.patch
skia-sucks1.patch
skia-sucks2.patch
skia-sucks3.patch
sandbox-largefile.patch
sandbox-fork.patch
firefox-78esr-combo.patch
ppc32-fix-build.patch)
validpgpkeys=(14F26682D0916CDD81E37B6D61B7B526D98F0353) # Mozilla Software Releases <release@mozilla.com>
skia-sucks3.patch)
validpgpkeys=(
14F26682D0916CDD81E37B6D61B7B526D98F0353 # Mozilla Software Releases <release@mozilla.com>
4360FE2109C49763186F8E21EBE41E90F6F12F6D # Mozilla Software Releases <release@mozilla.com>
)
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch POWER use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# Note: These are for Arch Linux POWER use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact alex.bldck@gmail.com for
# more information.
_google_api_key=AIzaSyDgkw4O3LM0Jnr2N7Wq2NG7iUVzRU5sBaA
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Arch POWER use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact heftig@archlinux.org for
# Note: These are for Arch Linux POWER use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact alex.bldck@gmail.com for
# more information.
_mozilla_api_key=de0473f2-d53f-46da-956c-6aff61bda3ab
@ -76,47 +73,35 @@ prepare() {
src="${src##*/}"
[[ $src = *.patch ]] || continue
echo "Applying patch $src..."
patch -Np1 < "../$src"
done
for _name in audio_thread_priority num-traits glslopt; do
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/${_name}/.cargo-checksum.json
patch -Np0 < "../$src"
done
printf "%s" "$_google_api_key" >google-api-key
printf "%s" "$_mozilla_api_key" >mozilla-api-key
cp ../mozconfig.cfg .mozconfig
case "${CARCH}" in
powerpc64le) cp ../mozconfig.cfg.powerpc64le .mozconfig ;;
powerpc) cp ../mozconfig.cfg.powerpc .mozconfig ;;
powerpc64le) cp ../mozconfig.cfg.powerpc64le .mozconfig ;;
*) cp ../mozconfig.cfg .mozconfig ;;
esac
sed "s|@PWD@|${PWD@Q}|g" -i .mozconfig
# remove pre-built binaries
find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
for _name in audio_thread_priority num-traits glslopt; do
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/${_name}/.cargo-checksum.json
done
case "${CARCH}" in
powerpc64le)
cat >>.mozconfig <<END
export CC=gcc-10
export CXX=g++-10
export CC=gcc
export CXX=g++
export LDFLAGS="${LDFLAGS} -Wl,-rpath=/usr/lib/thunderbird"
mk_add_options MOZ_MAKE_FLAGS="${MAKEFLAGS}"
ac_add_options --enable-optimize="${CXXFLAGS}"
END
;;
powerpc)
cat >>.mozconfig <<END
export CC=gcc-10
export CXX=g++-10
export CXXFLAGS="-Os -latomic -Wno-class-memaccess"
export LDFLAGS="-Wl,-rpath=/usr/lib/thunderbird -Wl,-z,stack-size=1048576 -latomic"
ac_add_options --disable-jit
ac_add_options --with-system-icu
ac_add_options --enable-linker=bfd
ac_add_options --disable-webrtc
END
;;
;;
esac
}
@ -125,18 +110,17 @@ build() {
if [[ -n "${SOURCE_DATE_EPOCH}" ]]; then
export MOZ_BUILD_DATE=$(date --date "@${SOURCE_DATE_EPOCH}" "+%Y%m%d%H%M%S")
fi
export MOZ_MAKE_FLAGS="${MAKEFLAGS}"
export MOZ_NOSPAM=1
export LC_ALL=C
export MACH_USE_SYSTEM_PYTHON=1
./mach configure
./mach build
./mach buildsymbols
}
package_thunderbird() {
optdepends=('libcanberra: sound support')
optdepends=(
'libotr: OTR support for active one-to-one chats'
'libnotify: Notification integration'
)
cd $pkgname-$pkgver
DESTDIR="$pkgdir" ./mach install
@ -144,6 +128,8 @@ package_thunderbird() {
install -Dm 644 ../vendor-prefs.js -t "$pkgdir/usr/lib/$pkgname/defaults/pref"
install -Dm 644 ../distribution.ini -t "$pkgdir/usr/lib/$pkgname/distribution"
install -Dm 644 ../thunderbird.desktop -t "$pkgdir/usr/share/applications"
install -Dm 644 comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml \
"$pkgdir/usr/share/metainfo/net.thunderbird.Thunderbird.appdata.xml"
for i in 16 22 24 32 48 64 128 256; do
install -Dm644 comm/mail/branding/thunderbird/default${i}.png \
@ -168,121 +154,22 @@ END
"$pkgdir/usr/lib/$pkgname/thunderbird-bin"
}
_package_i18n() {
pkgdesc="$2 language pack for Thunderbird"
depends=("thunderbird>=$pkgver")
install -Dm644 thunderbird-i18n-$pkgver-$1.xpi \
"$pkgdir/usr/lib/thunderbird/extensions/langpack-$1@thunderbird.mozilla.org.xpi"
}
_languages=(
'af "Afrikaans"'
'ar "Arabic"'
'ast "Asturian"'
'be "Belarusian"'
'bg "Bulgarian"'
'br "Breton"'
'ca "Catalan"'
'cak "Kaqchikel"'
'cs "Czech"'
'cy "Welsh"'
'da "Danish"'
'de "German"'
'dsb "Lower Sorbian"'
'el "Greek"'
'en-GB "English (British)"'
'en-US "English (US)"'
'es-AR "Spanish (Argentina)"'
'es-ES "Spanish (Spain)"'
'et "Estonian"'
'eu "Basque"'
'fa "Persian"'
'fi "Finnish"'
'fr "French"'
'fy-NL "Frisian"'
'ga-IE "Irish"'
'gd "Gaelic (Scotland)"'
'gl "Galician"'
'he "Hebrew"'
'hr "Croatian"'
'hsb "Upper Sorbian"'
'hu "Hungarian"'
'hy-AM "Armenian"'
'id "Indonesian"'
'is "Icelandic"'
'it "Italian"'
'ja "Japanese"'
'ka "Georgian"'
'kab "Kabyle"'
'kk "Kazakh"'
'ko "Korean"'
'lt "Lithuanian"'
'ms "Malay"'
'nb-NO "Norwegian (Bokmål)"'
'nl "Dutch"'
'nn-NO "Norwegian (Nynorsk)"'
'pa-IN "Punjabi (India)"'
'pl "Polish"'
'pt-BR "Portuguese (Brazilian)"'
'pt-PT "Portuguese (Portugal)"'
'rm "Romansh"'
'ro "Romanian"'
'ru "Russian"'
'si "Sinhala"'
'sk "Slovak"'
'sl "Slovenian"'
'sq "Albanian"'
'sr "Serbian"'
'sv-SE "Swedish"'
'th "Thai"'
'tr "Turkish"'
'uk "Ukrainian"'
'uz "Uzbek"'
'vi "Vietnamese"'
'zh-CN "Chinese (Simplified)"'
'zh-TW "Chinese (Traditional)"'
)
_url=https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/linux-x86_64/xpi
[ "${CARCH}" != 'x86_64' ] && _languages=()
for _lang in "${_languages[@]}"; do
_locale=${_lang%% *}
_pkgname=thunderbird-i18n-${_locale,,}
pkgname+=($_pkgname)
source+=("thunderbird-i18n-$pkgver-$_locale.xpi::$_url/$_locale.xpi")
eval "package_$_pkgname() {
_package_i18n $_lang
}"
done
# Don't extract languages
noextract=()
for _src in "${source[@]%%::*}"; do
case "$_src" in
*.xpi) noextract+=("$_src") ;;
esac
done
sha512sums=('daee9ea9e57bdfce231a35029807f279a06f8790d71efc8998c78eb42d99a93cf98623170947df99202da038f949ba9111a7ff7adbd43c161794deb6791370a0'
sha256sums=('4c63a215761d8710e9cc78c938828ff532ace33a00d0d59332b30d3d45c3b0f3'
'SKIP'
'a0061fcb2a7f66061e336a8d95948592f56f4752e56467f14ba63846720ebf845cce7511d1a2637e3b80d5a1ffdaa2fb783fa37195103425ef65222d45372012'
'6918c0de63deeddc6f53b9ba331390556c12e0d649cf54587dfaabb98b32d6a597b63cf02809c7c58b15501720455a724d527375a8fb9d757ccca57460320734'
'5d622d208e62b512e1af7ef8fd5de76c02e209d6b569041ad9047132a1bff093162f4ebce1450d92dfa0b0405d3cd24501604629e97cfae00457afbf4b615b72'
'e44fd608fb4975914479b4a1a5aa44e87f125564fb812fb46c0ee07d503dfdcdb444d7335efe90436caecc7be502aae6b558c585013ee924e618e6213988ae99'
'9dd82f392f6cc45ad5fa4e0a95bdd73e3fed13f6fb04cd54797804b51e32fdbf065f0514f473948a2d1d4ea1a5c24b22abb3e69478a947cbba3dec562dca792e'
'e9264b96f437e2548ae2a19b1f4b440d5adfca956cbc168546d9f1d0d10b0ef3831cbaa8f6164fa21b0d8e4f6df90ca43fd07e59b292235f3095d7dfb591ec90'
'09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5'
'669763939b00d31a8eb346acf5f9e6dd13d624e731ee4ba195677ac3e535aa02a4c2b3ff1987c9527222e24c02558a1fe35f0f6c6b169106a9f02329ba46b0f1'
'7da8d885ea3d30e5640189383d458dd0dc3c86fa9c2bad7148852adc08227eda91c683dd64e37d0cefdea2bf890752950dae960aa8382982480860a5029e11a9'
'63d9e67006ca847c4f66bc0caab84a332446cf947297a27cbd1357cc629273d06538ab3207f61483f253dc78503aa9078c8bc34d1165071520ea51cc6caa2ebc'
'1961f6a8672ea7c37cfd06e227367969bca330146e8424375628acdb61e09ddf3cf7c187f8a593d3b8b3cb589080630008f61332e7c3fc5c0998ee34707e3805'
'f5a3eb9d94f6e97146e3f6bafce172d37fb78e62da2c1889170fd5c835cf7b9987daf7c3ea16ca924ac195d47f66e29ea4080c1e8b0b1be6e00869b8319bbffa'
'9152bd3e6dc446337e6a2ed602279c620aedecc796ba28e777854c4f41fcf3067f9ebd086a4b63a6b76c2e69ec599ac6435b8eeda4f7488b1c45f69113facba4'
'20cbd73e28b25febfda33d97ba55f918fff97dc26ef0be349bc07a5f34ad8f62b68635e9ebcc834d7ca07f21d88a87648cbe906c7674318b25b06bc512f2e1d6'
'36ce3c2f97e4b53a627d3dba48a34921eb3fe7303524b8fe59033f3d159ea48bc90869fb555b1774b532f31e5b967fbf76d0305743f462cd9036f43cba7da044'
'4911ddb41bef8d9f6d6200159cde465627e940fe1c09099be55769d21a5a52a3f737e1bf803daa96126c035b091aea880fbc5d2e6cf5da96ddd17322461a72d6'
'64b974c6df7cff8f97fe82992bd3ee8f2258ab769dd2caa59e7c9395cdffa7108b78c43ea31ba0bad2dbdde45a9a2b6924945d9a1a7908ded0bbc6f543c4a1d4'
'f6a45686154f0ffce96ff1354a5d6a40561a3ff9537c8228fecdb2a2e91ff5c02acbae598f54e8f0af39afe436ad891f577c1e900b06f53e30b5334e830ca56c')
'e44c55501f650a4e80b9c353b81f33e07ca65808db831eff6ca616aded233827'
'fa11b4736bbf53ec015f71cd42b1040b22d1a855c562b76927b3f0eccb925c85'
'bc3aae2cc00dc9806f54606f98d967366a2ba7223f6a3ad1c658a653ebff5569'
'1c5d830f2dd4e8c988fcc038121e7563a44af866d6283ee24274d16f8414d1b6'
'ace80afd8dadb000e324e400d5a8f9f2e4ad214b32844bf23236f604c5f88db1'
'd1a81bdadc6cc1b96aeb7898e986efbb132a1ce142611b7af2cf744f00cad601'
'3ebba6c6c59dbf754b522d2535c27eae3e724aab575b8e7be9658e0d33183bcf'
'0df637d44218524e213814d15d623f27724d8e405390173f6cc385e145110bfe'
'cd9baa74c6dd7e2a689b072ac039c3fe4618012dd8f11d4ca422369a842d6441'
'ad83c0c6195ab742848941be1d9c8f32c1d4a8bc019d8887b42256bafaefb541'
'958cf5016e9845b6ee6e2ed05ad96cc2fc6f74bebbb338a7b7ce29bffd2be716'
'944fc690a0b344ea56ff2b0880ba492ba80338a68f31d0fb205b891a5de42cee'
'9cdffb3f91e0956f4147c8556c80b97bcae448b84ce0d0a0e009a231a9915396'
'd98af26b723a8b590822a3d1ab925841b99882c158d3dec7514288c968f2428e'
'851503764a3068d36659b9231c9aaa40fe8a15680f7d0a378e9009ae1a776dae')
# vim:set sw=2 et:

View File

@ -0,0 +1,15 @@
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
--- dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c.orig 2020-07-28 19:24:32.359751046 +0200
+++ 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>

View File

@ -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 &&

View File

@ -1,8 +1,8 @@
[Global]
id=archpower
id=archlinux
version=1.0
about=Mozilla Thunderbird for Arch POWER
about=Mozilla Thunderbird for Arch Linux
[Preferences]
app.distributor=archpower
app.distributor=archlinux
app.distributor.channel=thunderbird

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,134 @@
diff -r e42e379b4dcc build/moz.configure/lto-pgo.configure
--- build/moz.configure/lto-pgo.configure Mon Apr 19 12:58:03 2021 +0000
+++ build/moz.configure/lto-pgo.configure Tue Apr 20 19:35:29 2021 -0700
@@ -82,17 +82,17 @@
@depends(c_compiler, pgo_profile_path, target_is_windows)
@imports("multiprocessing")
@imports(_from="__builtin__", _import="min")
def pgo_flags(compiler, profdata, target_is_windows):
if compiler.type == "gcc":
return namespace(
gen_cflags=["-fprofile-generate"],
gen_ldflags=["-fprofile-generate"],
- use_cflags=["-fprofile-use", "-fprofile-correction", "-Wcoverage-mismatch"],
+ use_cflags=["-fprofile-use", "-fprofile-correction", "-Wno-coverage-mismatch"],
use_ldflags=["-fprofile-use"],
)
if compiler.type in ("clang-cl", "clang"):
prefix = ""
if compiler.type == "clang-cl":
prefix = "/clang:"
gen_ldflags = None
@@ -235,23 +235,23 @@
"configure."
)
if c_compiler.type == "clang":
if len(value) and value[0].lower() == "full":
cflags.append("-flto")
ldflags.append("-flto")
else:
- cflags.append("-flto=thin")
- ldflags.append("-flto=thin")
+ cflags.append("-flto")
+ ldflags.append("-flto")
elif c_compiler.type == "clang-cl":
if len(value) and value[0].lower() == "full":
cflags.append("-flto")
else:
- cflags.append("-flto=thin")
+ cflags.append("-flto")
# With clang-cl, -flto can only be used with -c or -fuse-ld=lld.
# AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld.
cflags.append("-fuse-ld=lld")
# Explicitly set the CPU to optimize for so the linker doesn't
# choose a poor default. Rust compilation by default uses the
# pentium4 CPU on x86:
#
diff -r e42e379b4dcc build/pgo/profileserver.py
--- build/pgo/profileserver.py Mon Apr 19 12:58:03 2021 +0000
+++ build/pgo/profileserver.py Tue Apr 20 19:35:29 2021 -0700
@@ -82,19 +82,32 @@
docroot=os.path.join(build.topsrcdir, "build", "pgo"),
path_mappings=path_mappings,
)
httpd.start(block=False)
locations = ServerLocations()
locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged")
- old_profraw_files = glob.glob("*.profraw")
- for f in old_profraw_files:
- os.remove(f)
+ using_gcc = False
+ try:
+ if build.config_environment.substs.get('CC_TYPE') == 'gcc':
+ using_gcc = True
+ except BuildEnvironmentNotFoundException:
+ pass
+
+ if using_gcc:
+ for dirpath, _, filenames in os.walk('.'):
+ for f in filenames:
+ if f.endswith('.gcda'):
+ os.remove(os.path.join(dirpath, f))
+ else:
+ old_profraw_files = glob.glob('*.profraw')
+ for f in old_profraw_files:
+ os.remove(f)
with TemporaryDirectory() as profilePath:
# TODO: refactor this into mozprofile
profile_data_dir = os.path.join(build.topsrcdir, "testing", "profiles")
with open(os.path.join(profile_data_dir, "profiles.json"), "r") as fh:
base_profiles = json.load(fh)["profileserver"]
prefpaths = [
@@ -207,16 +220,20 @@
# Try to move the crash reports to the artifacts even if Firefox appears
# to exit successfully, in case there's a crash that doesn't set the
# return code to non-zero for some reason.
if get_crashreports(profilePath, name="Firefox exited successfully?") != 0:
print("Firefox exited successfully, but produced a crashreport")
sys.exit(1)
+ print('Copying profile data....')
+ os.system('pwd');
+ os.system('tar cf profdata.tar.gz `find . -name "*.gcda"`; cd ..; tar xf instrumented/profdata.tar.gz;');
+
llvm_profdata = env.get("LLVM_PROFDATA")
if llvm_profdata:
profraw_files = glob.glob("*.profraw")
if not profraw_files:
print(
"Could not find profraw files in the current directory: %s"
% os.getcwd()
)
diff -r e42e379b4dcc toolkit/components/terminator/nsTerminator.cpp
--- toolkit/components/terminator/nsTerminator.cpp Mon Apr 19 12:58:03 2021 +0000
+++ toolkit/components/terminator/nsTerminator.cpp Tue Apr 20 19:35:29 2021 -0700
@@ -451,16 +451,21 @@
// Defend against overflow
crashAfterMS = INT32_MAX;
} else {
crashAfterMS *= scaleUp;
}
}
#endif
+ // Disable watchdog for PGO train builds - writting profile information at
+ // exit may take time and it is better to make build hang rather than
+ // silently produce poorly performing binary.
+ crashAfterMS = INT32_MAX;
+
UniquePtr<Options> options(new Options());
const PRIntervalTime ticksDuration =
PR_MillisecondsToInterval(HEARTBEAT_INTERVAL_MS);
options->crashAfterTicks = crashAfterMS / ticksDuration;
// Handle systems where ticksDuration is greater than crashAfterMS.
if (options->crashAfterTicks == 0) {
options->crashAfterTicks = crashAfterMS / HEARTBEAT_INTERVAL_MS;
}

View File

@ -0,0 +1,207 @@
--- security/nss/lib/freebl/mpi/mpcpucache.c.orig 2019-12-23 18:32:28.800055511 +0100
+++ security/nss/lib/freebl/mpi/mpcpucache.c 2019-12-23 18:33:00.886759880 +0100
@@ -727,9 +727,12 @@
dcbzl(char *array)
{
register char *a asm("r2") = array;
- __asm__ __volatile__("dcbzl %0,0"
- : "=r"(a)
- : "0"(a));
+ /* some older assemblers won't understand the dcbzl instruction
+ * variant, so we directly emit the instruction ourselves */
+ __asm__ __volatile__("mr 9, %0 ; .long 0x7C204FEC" /*dcbzl 0,9*/
+ : /*out*/
+ : "r" (a) /*in*/
+ : "memory", "r9" /*clobber*/);
}
#define PPC_DO_ALIGN(x, y) ((char *)((((long long)(x)) + ((y)-1)) & ~((y)-1)))
--- xpcom/reflect/xptcall/md/unix/xptcstubs_asm_ppc64_linux.S.orig 2019-12-23 18:34:18.188819500 +0100
+++ xpcom/reflect/xptcall/md/unix/xptcstubs_asm_ppc64_linux.S 2019-12-23 18:34:35.437047656 +0100
@@ -58,35 +58,35 @@
#endif
mflr r0
- std r4, -56(r1) # Save all GPRS
- std r5, -48(r1)
- std r6, -40(r1)
- std r7, -32(r1)
- std r8, -24(r1)
- std r9, -16(r1)
- std r10, -8(r1)
-
- stfd f13, -64(r1) # ... and FPRS
- stfd f12, -72(r1)
- stfd f11, -80(r1)
- stfd f10, -88(r1)
- stfd f9, -96(r1)
- stfd f8, -104(r1)
- stfd f7, -112(r1)
- stfd f6, -120(r1)
- stfd f5, -128(r1)
- stfd f4, -136(r1)
- stfd f3, -144(r1)
- stfd f2, -152(r1)
- stfd f1, -160(r1)
+ std r4, -56(%r1) # Save all GPRS
+ std r5, -48(%r1)
+ std r6, -40(%r1)
+ std r7, -32(%r1)
+ std r8, -24(%r1)
+ std r9, -16(%r1)
+ std r10, -8(%r1)
+
+ stfd f13, -64(%r1) # ... and FPRS
+ stfd f12, -72(%r1)
+ stfd f11, -80(%r1)
+ stfd f10, -88(%r1)
+ stfd f9, -96(%r1)
+ stfd f8, -104(%r1)
+ stfd f7, -112(%r1)
+ stfd f6, -120(%r1)
+ stfd f5, -128(%r1)
+ stfd f4, -136(%r1)
+ stfd f3, -144(%r1)
+ stfd f2, -152(%r1)
+ stfd f1, -160(%r1)
subi r6,r1,56 # r6 --> gprData
subi r7,r1,160 # r7 --> fprData
addi r5,r1,STACK_PARAMS # r5 --> extra stack args
- std r0, 16(r1)
+ std r0, 16(%r1)
- stdu r1,-288(r1)
+ stdu r1,-288(%r1)
# r3 has the 'self' pointer
# already
@@ -97,8 +97,8 @@
bl PrepareAndDispatch
nop
- ld 1,0(r1) # restore stack
- ld r0,16(r1) # restore LR
+ ld 1,0(%r1) # restore stack
+ ld r0,16(%r1) # restore LR
mtlr r0
blr
--- xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc64_linux.S.orig 2019-12-23 18:35:17.732702582 +0100
+++ xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc64_linux.S 2019-12-23 18:35:23.742085209 +0100
@@ -62,11 +62,11 @@
.NS_InvokeByIndex:
#endif
mflr 0
- std 0,16(r1)
+ std 0,16(%r1)
- std r29,-24(r1)
- std r30,-16(r1)
- std r31,-8(r1)
+ std r29,-24(%r1)
+ std r30,-16(%r1)
+ std r31,-8(%r1)
mr r29,r3 # Save 'that' in r29
mr r30,r4 # Save 'methodIndex' in r30
@@ -79,7 +79,7 @@
#
# | (fixed area + | | 7 GP | 13 FP | 3 NV |
# | param. save) |(params)........| regs | regs | regs |
- # (r1)......(+STACK_PARAMS)... (-23*8).(-16*8).(-3*8)..(r31)
+ # (%r1)......(+STACK_PARAMS)... (-23*8).(-16*8).(-3*8)..(%r31)
# +stack frame, -unused stack params, +regs storage, +1 for alignment
addi r7,r5,((STACK_PARAMS/8)-7+7+13+3+1)
@@ -105,56 +105,56 @@
# Set up to invoke function
- ld r9,0(r29) # vtable (r29 is 'that')
+ ld r9,0(%r29) # vtable (%r29 is 'that')
mr r3,r29 # self is first arg, obviously
sldi r30,r30,3 # Find function descriptor
add r9,r9,r30
- ld r12,0(r9)
+ ld r12,0(%r9)
- std r2,STACK_TOC(r1) # Save r2 (TOC pointer)
+ std r2,STACK_TOC(%r1) # Save r2 (TOC pointer)
#if _CALL_ELF == 2
mtctr r12
#else
- ld r0,0(r12) # Actual address from fd.
+ ld r0,0(%r12) # Actual address from fd.
mtctr 0
- ld r11,16(r12) # Environment pointer from fd.
- ld r2,8(r12) # TOC pointer from fd.
+ ld r11,16(%r12) # Environment pointer from fd.
+ ld r2,8(%r12) # TOC pointer from fd.
#endif
# Load FP and GP registers as required
- ld r4, -(23*8)(r31)
- ld r5, -(22*8)(r31)
- ld r6, -(21*8)(r31)
- ld r7, -(20*8)(r31)
- ld r8, -(19*8)(r31)
- ld r9, -(18*8)(r31)
- ld r10, -(17*8)(r31)
-
- lfd f1, -(16*8)(r31)
- lfd f2, -(15*8)(r31)
- lfd f3, -(14*8)(r31)
- lfd f4, -(13*8)(r31)
- lfd f5, -(12*8)(r31)
- lfd f6, -(11*8)(r31)
- lfd f7, -(10*8)(r31)
- lfd f8, -(9*8)(r31)
- lfd f9, -(8*8)(r31)
- lfd f10, -(7*8)(r31)
- lfd f11, -(6*8)(r31)
- lfd f12, -(5*8)(r31)
- lfd f13, -(4*8)(r31)
+ ld r4, -(23*8)(%r31)
+ ld r5, -(22*8)(%r31)
+ ld r6, -(21*8)(%r31)
+ ld r7, -(20*8)(%r31)
+ ld r8, -(19*8)(%r31)
+ ld r9, -(18*8)(%r31)
+ ld r10, -(17*8)(%r31)
+
+ lfd f1, -(16*8)(%r31)
+ lfd f2, -(15*8)(%r31)
+ lfd f3, -(14*8)(%r31)
+ lfd f4, -(13*8)(%r31)
+ lfd f5, -(12*8)(%r31)
+ lfd f6, -(11*8)(%r31)
+ lfd f7, -(10*8)(%r31)
+ lfd f8, -(9*8)(%r31)
+ lfd f9, -(8*8)(%r31)
+ lfd f10, -(7*8)(%r31)
+ lfd f11, -(6*8)(%r31)
+ lfd f12, -(5*8)(%r31)
+ lfd f13, -(4*8)(%r31)
bctrl # Do it
- ld r2,STACK_TOC(r1) # Load our own TOC pointer
- ld r1,0(r1) # Revert stack frame
- ld 0,16(r1) # Reload lr
+ ld r2,STACK_TOC(%r1) # Load our own TOC pointer
+ ld r1,0(%r1) # Revert stack frame
+ ld 0,16(%r1) # Reload lr
mtlr 0
- ld 29,-24(r1) # Restore NVGPRS
- ld 30,-16(r1)
- ld 31,-8(r1)
+ ld 29,-24(%r1) # Restore NVGPRS
+ ld 30,-16(%r1)
+ ld 31,-8(%r1)
blr
#if _CALL_ELF == 2

View File

@ -1,11 +0,0 @@
--- a/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h
+++ b/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h
@@ -27,8 +27,5 @@
typedef int16_t int16;
typedef unsigned short ushort;
typedef unsigned long ulong;
-#ifndef __GNUC_STDC_INLINE__
-#define inline
-#endif
#endif /* _SDP_OS_DEFS_H_ */

View File

@ -6,8 +6,8 @@
# Parent 29662e28a9c93ac67ee0b8ddfb65a9f29bbf73f5
handle big-endian formats in Cairo format conversions
--- a/gfx/2d/HelpersCairo.h
+++ b/gfx/2d/HelpersCairo.h
--- 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;

View File

@ -1,20 +0,0 @@
--- a/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig 2019-01-29 11:20:52.298793223 +0100
+++ b/media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2019-01-29 11:21:48.250250850 +0100
@@ -14,7 +14,7 @@
#ifndef __GLIBC_PREREQ
#define __GLIBC_PREREQ(a, b) 0
#endif
-#if __GLIBC_PREREQ(2, 16)
+#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
#include <sys/auxv.h>
#else
#include <fcntl.h>
@@ -32,7 +32,7 @@
int architecture = 0;
unsigned long hwcap = 0;
const char* platform = NULL;
-#if __GLIBC_PREREQ(2, 16)
+#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
hwcap = getauxval(AT_HWCAP);
platform = (const char*)getauxval(AT_PLATFORM);
#else

View File

@ -0,0 +1,25 @@
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,10 @@ 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);
#else
// Until bug 1295886 is fixed.
return false;

View File

@ -0,0 +1,11 @@
diff -Naur thunderbird-78.9.1.orig/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml thunderbird-78.9.1/comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml
--- comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml 2021-04-17 02:05:05.808596043 +0000
+++ comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml 2021-04-17 02:06:12.052455998 +0000
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>net.thunderbird.Thunderbird</id>
+ <launchable type="desktop-id">thunderbird.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
<name>Thunderbird</name>
<summary>Thunderbird is a free and open source email, newsfeed, chat, and calendaring client</summary>

View File

@ -38,7 +38,6 @@ ac_add_options --with-system-pixman
# Features
ac_add_options --enable-alsa
ac_add_options --enable-openpgp
ac_add_options --enable-calendar
ac_add_options --disable-jack
ac_add_options --disable-crashreporter
ac_add_options --disable-updater

View File

@ -1,50 +0,0 @@
ac_add_options --enable-application=comm/mail
ac_add_options --prefix=/usr
ac_add_options --enable-release
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
ac_add_options --disable-profiling
ac_add_options --disable-tests
ac_add_options --host=powerpc-unknown-linux-gnu
ac_add_options --target=powerpc-unknown-linux-gnu
# Branding
ac_add_options --enable-official-branding
ac_add_options --enable-update-channel=release
ac_add_options --with-distribution-id=org.archpower
# Keys
ac_add_options --with-google-location-service-api-keyfile=@PWD@/google-api-key
ac_add_options --with-google-safebrowsing-api-keyfile=@PWD@/google-api-key
ac_add_options --with-mozilla-api-keyfile=@PWD@/mozilla-api-key
# System libraries
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-system-icu
ac_add_options --with-system-jpeg
# does not have APNG support
ac_add_options --without-system-png
ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-botan
ac_add_options --with-system-webp
ac_add_options --with-system-libevent
ac_add_options --with-system-ffi
ac_add_options --with-system-pixman
# Features
ac_add_options --enable-alsa
ac_add_options --enable-openpgp
ac_add_options --enable-calendar
ac_add_options --disable-jack
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --enable-default-toolkit=cairo-gtk3
# System addons
ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --allow-addon-sideload

View File

@ -39,7 +39,6 @@ ac_add_options --with-system-pixman
# Features
ac_add_options --enable-alsa
ac_add_options --enable-openpgp
ac_add_options --enable-calendar
ac_add_options --disable-jack
ac_add_options --disable-crashreporter
ac_add_options --disable-updater

View File

@ -1,36 +0,0 @@
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
--- a/xpcom/reflect/xptcall/xptcall.h
+++ b/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); }

View File

@ -1,42 +0,0 @@
Mozilla rustc check does not support crossbuild: let's remove it
Remove calls to unwrap_rustup, they fail if rustup isn't present
--- a/build/moz.configure/rust.configure.orig 2019-10-17 04:19:59.000000000 +0700
+++ b/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 @@
os.write(in_fd, source)
os.close(in_fd)
-
- cmd = [
- rustc,
- '--crate-type', 'staticlib',
- target_arg,
- '-o', out_path,
- in_path,
- ]
-
- def failed():
- die(dedent('''\
- Cannot compile for {} with {}
- The target may be unsupported, or you may not have
- a rust std library for that target installed. Try:
-
- rustup target add {}
- '''.format(host_or_target.alias, rustc, rustc_target)))
- check_cmd_output(*cmd, onerror=failed)
- if not os.path.exists(out_path) or os.path.getsize(out_path) == 0:
- failed()
finally:
os.remove(in_path)
os.remove(out_path)

View File

@ -1,21 +0,0 @@
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
--- a/third_party/rust/num-traits/build.rs.orig 2020-02-14 23:57:25.985355610 +0100
+++ a/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");
}

View File

@ -1,13 +0,0 @@
make SYS_fork non-fatal, musl uses it for fork(2)
--- a/security/sandbox/linux/SandboxFilter.cpp
+++ b/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:

View File

@ -1,17 +0,0 @@
--- a/security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:41:14.556378950 +0100
+++ b/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

View File

@ -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
--- 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>
@ -45,8 +45,8 @@ https://bugzilla.mozilla.org/attachment.cgi?id=9028600
#endif
}
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
--- gfx/2d/DrawTargetSkia.cpp
+++ gfx/2d/DrawTargetSkia.cpp
@@ -138,8 +138,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& a
return surfaceBounds.Intersect(bounds);
}
@ -57,8 +57,8 @@ https://bugzilla.mozilla.org/attachment.cgi?id=9028600
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
const int32_t aStride, SurfaceFormat aFormat) {
--- a/gfx/2d/Types.h
+++ b/gfx/2d/Types.h
--- 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

View File

@ -4,8 +4,8 @@ For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text
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
--- gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200
+++ 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; }
@ -26,8 +26,8 @@ diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
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
--- gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200
+++ 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)

View File

@ -13,8 +13,8 @@ Solution: This is not a real solution, but a hack. The real solution would have
Side-effects: I have not yet found an unwanted side-effect.
diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp Tue Oct 22 12:27:22 2019 +0200
+++ b/gfx/2d/DrawTargetSkia.cpp Thu Oct 31 09:11:56 2019 +0100
--- gfx/2d/DrawTargetSkia.cpp Tue Oct 22 12:27:22 2019 +0200
+++ gfx/2d/DrawTargetSkia.cpp Thu Oct 31 09:11:56 2019 +0100
@@ -1861,6 +1861,14 @@
SkCanvas::kPreserveLCDText_SaveLayerFlag |
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
@ -30,8 +30,8 @@ diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
mCanvas->saveLayer(saveRec);
SetPermitSubpixelAA(aOpaque);
--- a/gfx/layers/composite/CompositableHost.cpp
+++ b/gfx/layers/composite/CompositableHost.cpp
--- gfx/layers/composite/CompositableHost.cpp
+++ gfx/layers/composite/CompositableHost.cpp
@@ -13,6 +13,7 @@
#include "ImageHost.h" // for ImageHostBuffered, etc
#include "Layers.h"