* update thunderbird to 91.1.2-1
This commit is contained in:
parent
dd826f86a2
commit
d8e1401d4b
@ -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:
|
||||
|
15
thunderbird/avoid-redefinition.patch
Normal file
15
thunderbird/avoid-redefinition.patch
Normal 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>
|
88
thunderbird/big-endian-image-decoders.patch
Normal file
88
thunderbird/big-endian-image-decoders.patch
Normal 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 &&
|
@ -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
134
thunderbird/firefox-pgo.patch
Normal file
134
thunderbird/firefox-pgo.patch
Normal 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;
|
||||
}
|
207
thunderbird/firefox-powerpc-clang.patch
Normal file
207
thunderbird/firefox-powerpc-clang.patch
Normal 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
|
@ -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_ */
|
@ -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;
|
||||
|
@ -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
|
25
thunderbird/flac-no-ffvpx.patch
Normal file
25
thunderbird/flac-no-ffvpx.patch
Normal 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;
|
11
thunderbird/metainfo.patch
Normal file
11
thunderbird/metainfo.patch
Normal 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>
|
@ -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
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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); }
|
||||
|
@ -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)
|
@ -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");
|
||||
}
|
@ -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:
|
@ -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
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user