- Mozilla Thunderbird 102.0.3
Bugfixes as in * https://www.thunderbird.net/en-US/thunderbird/102.0.3/releasenotes/ - Mozilla Thunderbird 102.0.2 * https://www.thunderbird.net/en-US/thunderbird/102.0/releasenotes/ - removed obsolete patches mozilla-bmo1504834-part2.patch mozilla-bmo1504834-part4.patch mozilla-bmo1602730.patch mozilla-bmo1626236.patch mozilla-bmo1724679.patch mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch mozilla-sandbox-fips.patch - added patches inherited from FF 102 one_swizzle_to_rule_them_all.patch svg-rendering.patch - fix KDE detection (boo#1200987) in mozilla-kde.patch - requires rust = 1.60 NSPR >= 4.34 NSS >= 3.79 rust-cbindgen >= 0.23.0 - remove special breakpad debug symbol creation OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=642
This commit is contained in:
parent
08ffa63092
commit
ebc8727216
@ -1,3 +1,34 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 19 07:31:52 UTC 2022 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
|
||||
- Mozilla Thunderbird 102.0.3
|
||||
Bugfixes as in
|
||||
* https://www.thunderbird.net/en-US/thunderbird/102.0.3/releasenotes/
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jul 9 21:53:27 UTC 2022 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
|
||||
- Mozilla Thunderbird 102.0.2
|
||||
* https://www.thunderbird.net/en-US/thunderbird/102.0/releasenotes/
|
||||
- removed obsolete patches
|
||||
mozilla-bmo1504834-part2.patch
|
||||
mozilla-bmo1504834-part4.patch
|
||||
mozilla-bmo1602730.patch
|
||||
mozilla-bmo1626236.patch
|
||||
mozilla-bmo1724679.patch
|
||||
mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
|
||||
mozilla-sandbox-fips.patch
|
||||
- added patches inherited from FF 102
|
||||
one_swizzle_to_rule_them_all.patch
|
||||
svg-rendering.patch
|
||||
- fix KDE detection (boo#1200987) in mozilla-kde.patch
|
||||
- requires
|
||||
rust = 1.60
|
||||
NSPR >= 4.34
|
||||
NSS >= 3.79
|
||||
rust-cbindgen >= 0.23.0
|
||||
- remove special breakpad debug symbol creation
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jun 26 08:53:26 UTC 2022 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
|
||||
|
@ -28,9 +28,9 @@
|
||||
# orig_suffix b3
|
||||
# major 69
|
||||
# mainver %major.99
|
||||
%define major 91
|
||||
%define mainver %major.11.0
|
||||
%define orig_version 91.11.0
|
||||
%define major 102
|
||||
%define mainver %major.0.3
|
||||
%define orig_version 102.0.3
|
||||
%define orig_suffix %{nil}
|
||||
%define update_channel release
|
||||
%define source_prefix thunderbird-%{orig_version}
|
||||
@ -66,7 +66,7 @@ BuildArch: i686
|
||||
%define gnome_dir %{_prefix}
|
||||
%define desktop_file_name %{progname}
|
||||
%define __provides_exclude ^lib.*\\.so.*$
|
||||
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libldap.*|libldif.*|libprldap.*)$
|
||||
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libldap.*|libldif.*|libprldap.*|librnp.*)$
|
||||
%define localize 1
|
||||
%define crashreporter 0
|
||||
%define with_pipewire0_3 1
|
||||
@ -85,27 +85,31 @@ BuildRequires: autoconf213
|
||||
BuildRequires: dbus-1-glib-devel
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: memory-constraints
|
||||
%if 0%{?suse_version} <= 1320
|
||||
BuildRequires: gcc9-c++
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150400
|
||||
BuildRequires: gcc11-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150300
|
||||
BuildRequires: cargo >= 1.51
|
||||
BuildRequires: rust >= 1.51
|
||||
BuildRequires: cargo >= 1.59
|
||||
BuildRequires: rust >= 1.59
|
||||
%else
|
||||
# Newer sle/leap/tw use parallel versioned rust releases which have
|
||||
# a different method for provides that we can use to request a
|
||||
# specific version
|
||||
BuildRequires: rust+cargo >= 1.51
|
||||
# minimal requirement:
|
||||
BuildRequires: rust+cargo >= 1.59
|
||||
# actually used upstream:
|
||||
BuildRequires: cargo1.60
|
||||
BuildRequires: rust1.60
|
||||
%endif
|
||||
%if 0%{useccache} != 0
|
||||
BuildRequires: ccache
|
||||
%endif
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: mozilla-nspr-devel >= 4.32
|
||||
BuildRequires: mozilla-nss-devel >= 3.68.4
|
||||
BuildRequires: mozilla-nspr-devel >= 4.34
|
||||
BuildRequires: mozilla-nss-devel >= 3.79
|
||||
BuildRequires: nasm >= 2.14
|
||||
BuildRequires: nodejs >= 10.22.1
|
||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
||||
@ -115,14 +119,13 @@ BuildRequires: python36
|
||||
BuildRequires: python3 >= 3.5
|
||||
BuildRequires: python3-devel
|
||||
%endif
|
||||
BuildRequires: rust-cbindgen >= 0.19.0
|
||||
BuildRequires: rust-cbindgen >= 0.23.0
|
||||
BuildRequires: unzip
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: xorg-x11-libXt-devel
|
||||
%if 0%{?do_profiling}
|
||||
BuildRequires: xvfb-run
|
||||
%endif
|
||||
BuildRequires: xz
|
||||
BuildRequires: yasm
|
||||
BuildRequires: zip
|
||||
%if 0%{?suse_version} < 1550
|
||||
@ -185,28 +188,24 @@ Patch1: mozilla-nongnome-proxies.patch
|
||||
Patch2: mozilla-kde.patch
|
||||
Patch3: mozilla-ntlm-full-path.patch
|
||||
Patch4: mozilla-aarch64-startup-crash.patch
|
||||
Patch6: mozilla-sandbox-fips.patch
|
||||
Patch7: mozilla-fix-aarch64-libopus.patch
|
||||
Patch8: mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
|
||||
Patch9: mozilla-s390-context.patch
|
||||
Patch11: mozilla-reduce-rust-debuginfo.patch
|
||||
Patch13: mozilla-bmo1005535.patch
|
||||
Patch14: mozilla-bmo1568145.patch
|
||||
Patch15: mozilla-bmo1504834-part1.patch
|
||||
Patch16: mozilla-bmo1504834-part2.patch
|
||||
Patch17: mozilla-bmo1504834-part3.patch
|
||||
Patch19: mozilla-bmo1512162.patch
|
||||
Patch20: mozilla-fix-top-level-asm.patch
|
||||
Patch21: mozilla-bmo1504834-part4.patch
|
||||
Patch22: mozilla-bmo849632.patch
|
||||
Patch24: mozilla-bmo1602730.patch
|
||||
Patch25: mozilla-bmo998749.patch
|
||||
Patch26: mozilla-bmo1626236.patch
|
||||
Patch27: mozilla-s390x-skia-gradient.patch
|
||||
Patch28: mozilla-libavcodec58_91.patch
|
||||
Patch29: mozilla-silence-no-return-type.patch
|
||||
Patch30: mozilla-bmo531915.patch
|
||||
Patch31: mozilla-bmo1724679.patch
|
||||
Patch5: mozilla-fix-aarch64-libopus.patch
|
||||
Patch6: mozilla-s390-context.patch
|
||||
Patch7: mozilla-pgo.patch
|
||||
Patch8: mozilla-reduce-rust-debuginfo.patch
|
||||
Patch9: mozilla-bmo1005535.patch
|
||||
Patch10: mozilla-bmo1568145.patch
|
||||
Patch11: mozilla-bmo1504834-part1.patch
|
||||
Patch12: mozilla-bmo1504834-part3.patch
|
||||
Patch13: mozilla-bmo1512162.patch
|
||||
Patch14: mozilla-fix-top-level-asm.patch
|
||||
Patch15: mozilla-bmo849632.patch
|
||||
Patch16: mozilla-bmo998749.patch
|
||||
Patch17: mozilla-s390x-skia-gradient.patch
|
||||
Patch18: mozilla-libavcodec58_91.patch
|
||||
Patch19: mozilla-silence-no-return-type.patch
|
||||
Patch20: mozilla-bmo531915.patch
|
||||
Patch21: one_swizzle_to_rule_them_all.patch
|
||||
Patch22: svg-rendering.patch
|
||||
%endif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
PreReq: /bin/sh
|
||||
@ -255,16 +254,6 @@ This package contains rarely used languages for the user interface
|
||||
of %{appname}.
|
||||
%endif
|
||||
|
||||
%if %crashreporter
|
||||
%package buildsymbols
|
||||
Summary: Breakpad buildsymbols for %{appname}
|
||||
Group: Development/Debug
|
||||
|
||||
%description buildsymbols
|
||||
This subpackage contains the Breakpad created and compatible debugging
|
||||
symbols meant for upload to Mozilla's crash collector database.
|
||||
%endif
|
||||
|
||||
%if !%{with only_print_mozconfig}
|
||||
%prep
|
||||
%if %localize
|
||||
@ -287,28 +276,24 @@ fi
|
||||
%endif
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
#%patch8 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
%patch27 -p1
|
||||
%patch28 -p1
|
||||
%patch29 -p1
|
||||
%patch30 -p1
|
||||
%patch31 -p1
|
||||
%endif
|
||||
|
||||
%build
|
||||
@ -349,8 +334,8 @@ export BUILD_OFFICIAL=1
|
||||
export MOZ_TELEMETRY_REPORTING=1
|
||||
export MOZ_REQUIRE_SIGNING=
|
||||
export MACH_USE_SYSTEM_PYTHON=1
|
||||
%if 0%{?suse_version} <= 1320
|
||||
export CC=gcc-9
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150400
|
||||
export CC=gcc-11
|
||||
%else
|
||||
%if 0%{?clang_build} == 0
|
||||
export CC=gcc
|
||||
@ -363,6 +348,8 @@ export CFLAGS="$CFLAGS -fimplicit-constexpr"
|
||||
%ifarch %arm %ix86
|
||||
# Limit RAM usage during link
|
||||
export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
|
||||
# A lie to prevent -Wl,--gc-sections being set which requires more memory than 32bit can offer
|
||||
export GC_SECTIONS_BREAKS_DEBUG_RANGES=yes
|
||||
%endif
|
||||
export LDFLAGS="${LDFLAGS} -fPIC -Wl,-z,relro,-z,now"
|
||||
%ifarch ppc64 ppc64le
|
||||
@ -419,8 +406,9 @@ ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
%ifarch %ix86 %arm
|
||||
ac_add_options --disable-debug-symbols
|
||||
%else
|
||||
ac_add_options --enable-debug-symbols
|
||||
ac_add_options --enable-debug-symbols=-g1
|
||||
%endif
|
||||
ac_add_options --disable-install-strip
|
||||
# building with elf-hack started to fail everywhere with FF73
|
||||
#%if 0%{?suse_version} > 1549
|
||||
%ifnarch aarch64 ppc64 ppc64le s390x
|
||||
@ -441,6 +429,11 @@ ac_add_options --disable-necko-wifi
|
||||
ac_add_options --enable-update-channel=%{update_channel}
|
||||
ac_add_options --with-unsigned-addon-scopes=app
|
||||
ac_add_options --allow-addon-sideload
|
||||
# at least temporary until the "wasi-sysroot" issue is solved
|
||||
ac_add_options --without-wasm-sandboxed-libraries
|
||||
%ifarch x86_64 aarch64
|
||||
ac_add_options --enable-rust-simd
|
||||
%endif
|
||||
ac_add_options --enable-official-branding
|
||||
%if ! %crashreporter
|
||||
ac_add_options --disable-crashreporter
|
||||
@ -498,6 +491,7 @@ ac_add_options --enable-application=comm/mail
|
||||
ac_add_options --prefix=%{_prefix}
|
||||
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --without-wasm-sandboxed-libraries
|
||||
ac_add_options --enable-official-branding
|
||||
EOF
|
||||
mkdir -p $RPM_BUILD_DIR/langpacks_artifacts/
|
||||
@ -510,19 +504,15 @@ sed -r '/^(ja-JP-mac|en-US|$)/d;s/ .*$//' $RPM_BUILD_DIR/%{source_prefix}/comm/m
|
||||
export MOZCONFIG=${MOZCONFIG}_$locale
|
||||
# nsinstall is needed for langpack-build. It is already built by `./mach build`, but building it again is very fast
|
||||
./mach build config/nsinstall langpack-$locale
|
||||
cp -rL ../obj_$locale/dist/xpi-stage/locale-$locale \
|
||||
$RPM_BUILD_DIR/langpacks_artifacts/langpack-$locale@thunderbird.mozilla.org
|
||||
rm -rf $RPM_BUILD_DIR/langpacks_artifacts/langpack-$locale@thunderbird.mozilla.org/defaults
|
||||
rm -rf $RPM_BUILD_DIR/langpacks_artifacts/langpack-$locale@thunderbird.mozilla.org/hyphenation
|
||||
# Build systems like to run out of disc-space, so we delete the build-dir here (we copied already all relevant files)
|
||||
rm -rf ../obj_$locale/
|
||||
cp -L ../obj_$locale/dist/linux-*/xpi/thunderbird-%{orig_version}.$locale.langpack.xpi \
|
||||
$RPM_BUILD_DIR/langpacks_artifacts/langpack-$locale@thunderbird.mozilla.org.xpi
|
||||
# check against the fixed common list and sort into the right filelist
|
||||
_matched=0
|
||||
for _match in ar ca cs da de el en-GB es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do
|
||||
[ "$_match" = "$locale" ] && _matched=1
|
||||
done
|
||||
[ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other
|
||||
echo %{progdir}/extensions/langpack-$locale@thunderbird.mozilla.org \
|
||||
echo %{progdir}/extensions/langpack-$locale@thunderbird.mozilla.org.xpi \
|
||||
>> %{_tmppath}/translations.$_l10ntarget
|
||||
' -- {}
|
||||
%endif
|
||||
@ -608,24 +598,6 @@ rm -f %{buildroot}%{progdir}/nspr-config
|
||||
%fdupes %{buildroot}%{progdir}
|
||||
%fdupes %{buildroot}%{_libdir}/mozilla
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
# create breakpad debugsymbols
|
||||
%if %crashreporter
|
||||
SYMBOLS_NAME="thunderbird-%{version}-%{release}.%{_arch}-%{suse_version}-symbols"
|
||||
make buildsymbols \
|
||||
SYMBOL_INDEX_NAME="$SYMBOLS_NAME.txt" \
|
||||
SYMBOL_FULL_ARCHIVE_BASENAME="$SYMBOLS_NAME-full" \
|
||||
SYMBOL_ARCHIVE_BASENAME="$SYMBOLS_NAME"
|
||||
if [ -e dist/*symbols.zip ]; then
|
||||
mkdir -p %{buildroot}%{_datadir}/mozilla/
|
||||
cp dist/*symbols.zip %{buildroot}%{_datadir}/mozilla/
|
||||
fi
|
||||
%endif
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
%if %localize
|
||||
rm -rf %{_tmppath}/translations.*
|
||||
%endif
|
||||
|
||||
%post
|
||||
%desktop_database_post
|
||||
@ -649,6 +621,8 @@ exit 0
|
||||
%{progdir}/pingsender
|
||||
%{progdir}/platform.ini
|
||||
%{progdir}/plugin-container
|
||||
%{progdir}/rnp-cli
|
||||
%{progdir}/rnpkeys
|
||||
%{progdir}/thunderbird-bin
|
||||
# crashreporter files
|
||||
%if %crashreporter
|
||||
@ -677,10 +651,4 @@ exit 0
|
||||
%dir %{progdir}/extensions/
|
||||
%endif
|
||||
|
||||
%if %crashreporter
|
||||
%files buildsymbols
|
||||
%defattr(-,root,root)
|
||||
%{_datadir}/mozilla/
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
3
l10n-102.0.3.tar.xz
Normal file
3
l10n-102.0.3.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d55006f607d469bcb0761e6975e503c6d5bdefcbfa3c70042862d5e1901bc2b4
|
||||
size 29285312
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:485a8e58506f1fdf016dc6655b3546ab5561c1ab418b6e9df690de80f6c70b46
|
||||
size 28946816
|
@ -1,112 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 9319844dca3133fa8bd7107079f1d1ddc5c0bf70
|
||||
Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla)
|
||||
has no interest in maintaining big endian.
|
||||
So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes
|
||||
out again, we transform back to BE.
|
||||
|
||||
diff --git a/gfx/2d/ConvolutionFilter.cpp b/gfx/2d/ConvolutionFilter.cpp
|
||||
--- a/gfx/2d/ConvolutionFilter.cpp
|
||||
+++ b/gfx/2d/ConvolutionFilter.cpp
|
||||
@@ -29,32 +29,79 @@ bool ConvolutionFilter::GetFilterOffsetA
|
||||
int32_t* aResultLength) {
|
||||
if (aRowIndex >= mFilter->numValues()) {
|
||||
return false;
|
||||
}
|
||||
mFilter->FilterForValue(aRowIndex, aResultOffset, aResultLength);
|
||||
return true;
|
||||
}
|
||||
|
||||
+static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
|
||||
+ uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
|
||||
+ for (int pxl = 0; pxl < size; ++pxl) {
|
||||
+ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
|
||||
+ uint32_t rgba = array[pxl];
|
||||
+ array[pxl] = NativeEndian::swapToLittleEndian(rgba);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
|
||||
bool aHasAlpha) {
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ int outputSize = mFilter->numValues();
|
||||
+
|
||||
+ // Input size isn't handed in, so we have to calculate it quickly
|
||||
+ int inputSize = 0;
|
||||
+ for (int xx = 0; xx < outputSize; ++xx) {
|
||||
+ // Get the filter that determines the current output pixel.
|
||||
+ int filterOffset, filterLength;
|
||||
+ mFilter->FilterForValue(xx, &filterOffset, &filterLength);
|
||||
+ inputSize = std::max(inputSize, filterOffset + filterLength);
|
||||
+ }
|
||||
+
|
||||
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
||||
+#endif
|
||||
+
|
||||
SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
||||
+ ByteSwapArray(aDst, outputSize);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst,
|
||||
int32_t aRowIndex, int32_t aRowSize,
|
||||
bool aHasAlpha) {
|
||||
MOZ_ASSERT(aRowIndex < mFilter->numValues());
|
||||
|
||||
int32_t filterOffset;
|
||||
int32_t filterLength;
|
||||
auto filterValues =
|
||||
mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
||||
+ // Skia only knows LE, so we have to swizzle the input
|
||||
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
|
||||
aHasAlpha);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ // After skia is finished, we swizzle back to BE, in case
|
||||
+ // the input is used again somewhere else
|
||||
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
||||
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
||||
+ }
|
||||
+ // The destination array as well
|
||||
+ ByteSwapArray(aDst, aRowSize);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* ConvolutionFilter::ComputeResizeFactor is derived from Skia's
|
||||
* SkBitmapScaler/SkResizeFilter::computeFactors. It is governed by Skia's
|
||||
* BSD-style license (see gfx/skia/LICENSE) and the following copyright:
|
||||
* Copyright (c) 2015 Google Inc.
|
||||
*/
|
||||
bool ConvolutionFilter::ComputeResizeFilter(ResizeMethod aResizeMethod,
|
||||
diff --git a/gfx/skia/skia/include/core/SkPreConfig.h b/gfx/skia/skia/include/core/SkPreConfig.h
|
||||
--- a/gfx/skia/skia/include/core/SkPreConfig.h
|
||||
+++ b/gfx/skia/skia/include/core/SkPreConfig.h
|
||||
@@ -68,17 +68,17 @@
|
||||
#define SK_CPU_BENDIAN
|
||||
#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
|
||||
#define SK_CPU_LENDIAN
|
||||
#elif defined(__sparc) || defined(__sparc__) || \
|
||||
defined(_POWER) || defined(__powerpc__) || \
|
||||
defined(__ppc__) || defined(__hppa) || \
|
||||
defined(__PPC__) || defined(__PPC64__) || \
|
||||
defined(_MIPSEB) || defined(__ARMEB__) || \
|
||||
- defined(__s390__) || \
|
||||
+ defined(__s390__) || defined(__s390x__) || \
|
||||
(defined(__sh__) && defined(__BIG_ENDIAN__)) || \
|
||||
(defined(__ia64) && defined(__BIG_ENDIAN__))
|
||||
#define SK_CPU_BENDIAN
|
||||
#else
|
||||
#define SK_CPU_LENDIAN
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1,40 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 883d2c7fec80b9714ccfefa461a02f5b09e3ee09
|
||||
Problem description: Tab-titles that are too long to fit into a tab get faded out.
|
||||
On big endian this is broken and instead of fading out, the
|
||||
tab gets white and the font transparent, leading to an unreadable
|
||||
tab-title
|
||||
Solution: This is not a real solution, but a hack. The real solution would have been
|
||||
to byte-swap the correct buffer, but I could not find it.
|
||||
So the next best thing is to deactivate the fading-effect. Now all tab-titles
|
||||
are readable, albeit not as pretty to look at as they could be.
|
||||
Side-effects: I have not yet found an unwanted side-effect.
|
||||
|
||||
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
|
||||
--- a/gfx/2d/DrawTargetSkia.cpp
|
||||
+++ b/gfx/2d/DrawTargetSkia.cpp
|
||||
@@ -1856,16 +1856,24 @@ void DrawTargetSkia::PushLayerWithBlend(
|
||||
}
|
||||
|
||||
SkCanvas::SaveLayerRec saveRec(
|
||||
aBounds.IsEmpty() ? nullptr : &bounds, &paint, nullptr, clipImage.get(),
|
||||
&clipMatrix,
|
||||
SkCanvas::kPreserveLCDText_SaveLayerFlag |
|
||||
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
|
||||
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ // Pushing a layer where an aMask is defined produces wrong output.
|
||||
+ // We _should_ endian swap the data, but I couldn't find a workable way to do so
|
||||
+ // Therefore I deactivate those layers in the meantime.
|
||||
+ // The result is: Tab-titles that are longer than the available space should be faded out.
|
||||
+ // The fading doesn't work, so we deactivate the fading-effect here.
|
||||
+ if (!aMask)
|
||||
+#endif
|
||||
mCanvas->saveLayer(saveRec);
|
||||
|
||||
SetPermitSubpixelAA(aOpaque);
|
||||
|
||||
#ifdef MOZ_WIDGET_COCOA
|
||||
CGContextRelease(mCG);
|
||||
mCG = nullptr;
|
||||
#endif
|
@ -1,25 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1582805890 -3600
|
||||
# Thu Feb 27 13:18:10 2020 +0100
|
||||
# Node ID 457cbe5705f2a3759d3da36a05c0ed66ec61ea12
|
||||
# Parent 7440f4b6bab85068ca2f84e9c48e0706d04330e8
|
||||
imported patch mozilla-bmo1602730-FF73.patch
|
||||
|
||||
diff -r 7440f4b6bab8 gfx/layers/composite/CompositableHost.cpp
|
||||
--- a/gfx/layers/composite/CompositableHost.cpp Thu Feb 27 13:17:56 2020 +0100
|
||||
+++ b/gfx/layers/composite/CompositableHost.cpp Wed Jun 17 15:33:32 2020 +0200
|
||||
@@ -92,9 +92,13 @@
|
||||
}
|
||||
MOZ_ASSERT(source);
|
||||
|
||||
+ // Setting an alpha-mask here breaks the URL-bar on big endian (s390x)
|
||||
+ // if the typed URL is too long for the textbox (automatic scrolling needed)
|
||||
+#if MOZ_LITTLE_ENDIAN()
|
||||
RefPtr<EffectMask> effect =
|
||||
new EffectMask(source, source->GetSize(), aTransform);
|
||||
aEffects.mSecondaryEffects[EffectTypes::MASK] = effect;
|
||||
+#endif
|
||||
return true;
|
||||
}
|
||||
|
@ -1,85 +0,0 @@
|
||||
# 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
|
||||
--- a/image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||
+++ b/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
|
||||
--- a/image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||
+++ b/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
|
||||
--- a/image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||
+++ b/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
|
||||
--- a/image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||
+++ b/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,51 +0,0 @@
|
||||
diff --git a/toolkit/components/remote/nsRemoteService.cpp b/toolkit/components/remote/nsRemoteService.cpp
|
||||
--- a/toolkit/components/remote/nsRemoteService.cpp
|
||||
+++ b/toolkit/components/remote/nsRemoteService.cpp
|
||||
@@ -107,7 +107,8 @@
|
||||
bool useX11Remote = mozilla::widget::GdkIsX11Display();
|
||||
|
||||
# if defined(MOZ_ENABLE_DBUS)
|
||||
- if (!useX11Remote || getenv(DBUS_REMOTE_ENV)) {
|
||||
+ const char* dbusRemoteEnv = getenv(DBUS_REMOTE_ENV);
|
||||
+ if (!useX11Remote || (dbusRemoteEnv && *dbusRemoteEnv == '1')) {
|
||||
client = MakeUnique<nsDBusRemoteClient>();
|
||||
}
|
||||
# endif
|
||||
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
|
||||
--- a/toolkit/xre/nsAppRunner.cpp
|
||||
+++ b/toolkit/xre/nsAppRunner.cpp
|
||||
@@ -4125,7 +4125,7 @@
|
||||
const char* x11Display = PR_GetEnv("DISPLAY");
|
||||
// MOZ_ENABLE_WAYLAND is our primary Wayland on/off switch.
|
||||
const char* waylandPref = PR_GetEnv("MOZ_ENABLE_WAYLAND");
|
||||
- bool enableWayland = !x11Display || (waylandPref && *waylandPref);
|
||||
+ bool enableWayland = !x11Display || (waylandPref && *waylandPref == '1');
|
||||
if (!enableWayland) {
|
||||
const char* backendPref = PR_GetEnv("GDK_BACKEND");
|
||||
enableWayland = (backendPref && strncmp(backendPref, "wayland", 7) == 0);
|
||||
diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
--- a/widget/gtk/nsFilePicker.cpp
|
||||
+++ b/widget/gtk/nsFilePicker.cpp
|
||||
@@ -616,7 +616,7 @@
|
||||
if (mUseNativeFileChooser && sGtkNativeDialogShowPtr != nullptr) {
|
||||
const char* portalEnvString = g_getenv("GTK_USE_PORTAL");
|
||||
bool setPortalEnv =
|
||||
- (portalEnvString && atoi(portalEnvString) == 0) || !portalEnvString;
|
||||
+ (portalEnvString && *portalEnvString == '0') || !portalEnvString;
|
||||
if (setPortalEnv) {
|
||||
setenv("GTK_USE_PORTAL", "1", true);
|
||||
}
|
||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -8835,7 +8835,7 @@
|
||||
// decorations does not work with CSD.
|
||||
// We check GTK_CSD as well as gtk_window_should_use_csd() does.
|
||||
const char* csdOverride = getenv("GTK_CSD");
|
||||
- if (csdOverride && atoi(csdOverride)) {
|
||||
+ if (csdOverride && *csdOverride == '1') {
|
||||
sGtkWindowDecoration = GTK_DECORATION_CLIENT;
|
||||
return sGtkWindowDecoration;
|
||||
}
|
||||
|
||||
|
@ -1,25 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 9bc02ee6567ae3f1dad1f8578e650c0a1faa0179
|
||||
|
||||
diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
@@ -240,17 +240,17 @@ using mozilla::DebugOnly;
|
||||
// Those definitions are however not present in the headers of every Linux
|
||||
// distro - Raspbian is known to be a problem, for example. However those
|
||||
// distros are tier-3 platforms.
|
||||
//
|
||||
// If you run into compile problems on a tier-3 platform, you can disable the
|
||||
// emulation here.
|
||||
|
||||
#if defined(__linux__) && defined(__arm__)
|
||||
-# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
+// # define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
#endif
|
||||
|
||||
#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
# include <sys/user.h>
|
||||
#endif
|
||||
|
||||
#if defined(ANDROID)
|
||||
// Not all versions of the Android NDK define ucontext_t or mcontext_t.
|
@ -49,7 +49,7 @@ diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
|
||||
]
|
||||
|
||||
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
|
||||
CXXFLAGS += ["-Wno-shadow", "-Wno-error=stack-protector"]
|
||||
CXXFLAGS += ["-Wno-error=stack-protector"]
|
||||
SOURCES["../chromium/sandbox/linux/services/syscall_wrappers.cc"].flags += [
|
||||
"-Wno-empty-body",
|
||||
]
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Date 1559294891 -7200
|
||||
# Fri May 31 11:28:11 2019 +0200
|
||||
# Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
|
||||
# Parent c8bc6be5267f16016d506973a2d6a7c58a1cd441
|
||||
# Parent 64d0c9c59c2e7f31722466406a4c13cdf5c39a6b
|
||||
Description: Add KDE integration to Firefox (toolkit parts)
|
||||
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
|
||||
Author: Lubos Lunak <lunak@suse.com>
|
||||
@ -13,12 +13,12 @@ Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
|
||||
diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
--- a/modules/libpref/Preferences.cpp
|
||||
+++ b/modules/libpref/Preferences.cpp
|
||||
@@ -84,16 +84,17 @@
|
||||
#include "plbase64.h"
|
||||
@@ -88,16 +88,17 @@
|
||||
#include "PLDHashTable.h"
|
||||
#include "plstr.h"
|
||||
#include "prlink.h"
|
||||
#include "xpcpublic.h"
|
||||
#include "js/RootingAPI.h"
|
||||
#ifdef MOZ_BACKGROUNDTASKS
|
||||
# include "mozilla/BackgroundTasks.h"
|
||||
#endif
|
||||
@ -31,22 +31,12 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
#ifdef MOZ_MEMORY
|
||||
# include "mozmemory.h"
|
||||
#endif
|
||||
@@ -4635,25 +4636,37 @@ nsresult Preferences::InitInitialObjects
|
||||
// application pref files for backwards compatibility.
|
||||
static const char* specialFiles[] = {
|
||||
#if defined(XP_MACOSX)
|
||||
"macprefs.js"
|
||||
#elif defined(XP_WIN)
|
||||
"winpref.js"
|
||||
#elif defined(XP_UNIX)
|
||||
@@ -4767,16 +4768,27 @@ nsresult Preferences::InitInitialObjects
|
||||
"unix.js"
|
||||
+ , "" // placeholder for KDE (empty is otherwise harmless)
|
||||
# if defined(_AIX)
|
||||
,
|
||||
"aix.js"
|
||||
# endif
|
||||
#elif defined(XP_BEOS)
|
||||
"beos.js"
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -69,7 +59,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
|
||||
// Load jar:$app/omni.jar!/defaults/preferences/*.js
|
||||
// or jar:$gre/omni.jar!/defaults/preferences/*.js.
|
||||
@@ -4718,17 +4731,17 @@ nsresult Preferences::InitInitialObjects
|
||||
@@ -4841,17 +4853,17 @@ nsresult Preferences::InitInitialObjects
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
|
||||
@ -91,7 +81,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
|
||||
--- a/modules/libpref/moz.build
|
||||
+++ b/modules/libpref/moz.build
|
||||
@@ -117,16 +117,20 @@ EXPORTS.mozilla += [
|
||||
@@ -120,16 +120,20 @@ EXPORTS.mozilla += [
|
||||
]
|
||||
EXPORTS.mozilla += sorted(["!" + g for g in gen_h])
|
||||
|
||||
@ -157,7 +147,7 @@ diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpac
|
||||
diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
|
||||
--- a/toolkit/components/downloads/moz.build
|
||||
+++ b/toolkit/components/downloads/moz.build
|
||||
@@ -45,10 +45,14 @@ XPCOM_MANIFESTS += [
|
||||
@@ -46,10 +46,14 @@ XPCOM_MANIFESTS += [
|
||||
|
||||
if CONFIG["MOZ_PLACES"]:
|
||||
EXTRA_JS_MODULES += [
|
||||
@ -175,7 +165,7 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
|
||||
diff --git a/toolkit/mozapps/downloads/HelperAppDlg.jsm b/toolkit/mozapps/downloads/HelperAppDlg.jsm
|
||||
--- a/toolkit/mozapps/downloads/HelperAppDlg.jsm
|
||||
+++ b/toolkit/mozapps/downloads/HelperAppDlg.jsm
|
||||
@@ -1231,36 +1231,66 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
@@ -1254,36 +1254,66 @@ nsUnknownContentTypeDialog.prototype = {
|
||||
params.handlerApp &&
|
||||
params.handlerApp.executable &&
|
||||
params.handlerApp.executable.isFile()
|
||||
@ -265,15 +255,16 @@ diff --git a/toolkit/mozapps/downloads/HelperAppDlg.jsm b/toolkit/mozapps/downlo
|
||||
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
@@ -13,16 +13,17 @@
|
||||
#include "nsPrintfCString.h"
|
||||
#include "nsNetCID.h"
|
||||
@@ -10,16 +10,18 @@
|
||||
#include "prnetdb.h"
|
||||
#include "prenv.h"
|
||||
#include "nsInterfaceHashtable.h"
|
||||
#include "nsHashtablesFwd.h"
|
||||
#include "nsHashKeys.h"
|
||||
#include "nsNetUtil.h"
|
||||
#include "nsISupportsPrimitives.h"
|
||||
#include "nsIGSettingsService.h"
|
||||
#include "nsInterfaceHashtable.h"
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "nsIURI.h"
|
||||
+#include "nsPrintfCString.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
|
||||
using namespace mozilla;
|
||||
@ -283,7 +274,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSISYSTEMPROXYSETTINGS
|
||||
|
||||
@@ -36,16 +37,18 @@ class nsUnixSystemProxySettings final :
|
||||
@@ -33,16 +35,18 @@ class nsUnixSystemProxySettings final :
|
||||
nsCOMPtr<nsIGSettingsCollection> mProxySettings;
|
||||
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection>
|
||||
mSchemeProxySettings;
|
||||
@ -302,7 +293,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
|
||||
// dbus prevents us from being threadsafe, but this routine should not block
|
||||
// anyhow
|
||||
@@ -381,21 +384,50 @@ nsresult nsUnixSystemProxySettings::GetP
|
||||
@@ -378,21 +382,50 @@ nsresult nsUnixSystemProxySettings::GetP
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -356,7 +347,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
||||
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
|
||||
--- a/toolkit/xre/moz.build
|
||||
+++ b/toolkit/xre/moz.build
|
||||
@@ -93,17 +93,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "co
|
||||
@@ -92,17 +92,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "co
|
||||
"../components/printingui",
|
||||
]
|
||||
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "uikit":
|
||||
@ -370,17 +361,17 @@ diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
|
||||
+ "nsKDEUtils.cpp",
|
||||
"nsNativeAppSupportUnix.cpp",
|
||||
]
|
||||
CXXFLAGS += CONFIG["MOZ_X11_SM_CFLAGS"]
|
||||
else:
|
||||
UNIFIED_SOURCES += [
|
||||
"nsNativeAppSupportDefault.cpp",
|
||||
]
|
||||
|
||||
if CONFIG["MOZ_HAS_REMOTE"]:
|
||||
diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/toolkit/xre/nsKDEUtils.cpp
|
||||
@@ -0,0 +1,344 @@
|
||||
@@ -0,0 +1,321 @@
|
||||
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
@ -420,36 +411,13 @@ new file mode 100644
|
||||
+#define MAKE_STR( n ) MAKE_STR2( n )
|
||||
+
|
||||
+static bool getKdeSession()
|
||||
+{
|
||||
+ if (PR_GetEnv("KDE_FULL_SESSION"))
|
||||
+ {
|
||||
+ Display* dpy = XOpenDisplay( NULL );
|
||||
+ if( dpy == NULL )
|
||||
+ return false;
|
||||
+ Atom kde_full_session = XInternAtom( dpy, "KDE_FULL_SESSION", true );
|
||||
+ bool kde = false;
|
||||
+ if( kde_full_session != None )
|
||||
+ {
|
||||
+ int cnt;
|
||||
+ if( Atom* props = XListProperties( dpy, DefaultRootWindow( dpy ), &cnt ))
|
||||
+ {
|
||||
+ for( int i = 0;
|
||||
+ i < cnt;
|
||||
+ ++i )
|
||||
+ {
|
||||
+ if( props[ i ] == kde_full_session )
|
||||
+ {
|
||||
+ kde = true;
|
||||
+#ifdef DEBUG_KDE
|
||||
+ fprintf( stderr, "KDE SESSION %d\n", kde );
|
||||
+#endif
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ XFree( props );
|
||||
+ }
|
||||
+ }
|
||||
+ XCloseDisplay( dpy );
|
||||
+ return kde;
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+static bool getKdeSupport()
|
||||
+ {
|
||||
@ -819,34 +787,15 @@ diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandle
|
||||
|
||||
/*
|
||||
* Check if a handler exists for the provided protocol. Check the datastore
|
||||
@@ -328,17 +328,17 @@ mozilla::ipc::IPCResult HandlerServicePa
|
||||
nsCOMPtr<nsIExternalProtocolService> protoSvc =
|
||||
do_GetService(NS_EXTERNALPROTOCOLSERVICE_CONTRACTID, &rv);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
*aHandlerExists = false;
|
||||
return IPC_OK();
|
||||
}
|
||||
rv = protoSvc->ExternalProtocolHandlerExists(aProtocolScheme.get(),
|
||||
aHandlerExists);
|
||||
-
|
||||
+##
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
*aHandlerExists = false;
|
||||
}
|
||||
#else
|
||||
MOZ_RELEASE_ASSERT(false, "No implementation on this platform.");
|
||||
*aHandlerExists = false;
|
||||
#endif
|
||||
return IPC_OK();
|
||||
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
--- a/uriloader/exthandler/moz.build
|
||||
+++ b/uriloader/exthandler/moz.build
|
||||
@@ -80,17 +80,19 @@ else:
|
||||
@@ -78,17 +78,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "ui
|
||||
else:
|
||||
# These files can't be built in unified mode because they redefine LOG.
|
||||
SOURCES += [
|
||||
osdir + "/nsOSHelperAppService.cpp",
|
||||
]
|
||||
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
|
||||
CXXFLAGS += ["-Wno-error=shadow"]
|
||||
|
||||
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
||||
UNIFIED_SOURCES += [
|
||||
@ -861,7 +810,7 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
]
|
||||
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
|
||||
UNIFIED_SOURCES += [
|
||||
@@ -128,16 +130,17 @@ include("/ipc/chromium/chromium-config.m
|
||||
@@ -130,16 +132,17 @@ include("/ipc/chromium/chromium-config.m
|
||||
FINAL_LIBRARY = "xul"
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
@ -874,11 +823,11 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
]
|
||||
|
||||
if CONFIG["MOZ_ENABLE_DBUS"]:
|
||||
CXXFLAGS += CONFIG["TK_CFLAGS"]
|
||||
CXXFLAGS += CONFIG["MOZ_DBUS_CFLAGS"]
|
||||
|
||||
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
||||
CXXFLAGS += CONFIG["TK_CFLAGS"]
|
||||
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
|
||||
CXXFLAGS += CONFIG["MOZ_DBUS_GLIB_CFLAGS"]
|
||||
diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@ -974,12 +923,13 @@ diff --git a/uriloader/exthandler/unix/nsKDERegistry.cpp b/uriloader/exthandler/
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/uriloader/exthandler/unix/nsKDERegistry.cpp
|
||||
@@ -0,0 +1,86 @@
|
||||
@@ -0,0 +1,89 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#include "mozilla/StaticPrefs_browser.h"
|
||||
+#include "nsKDERegistry.h"
|
||||
+#include "prlink.h"
|
||||
+#include "prmem.h"
|
||||
@ -1055,8 +1005,10 @@ new file mode 100644
|
||||
+ nsCString description = output[ 1 ];
|
||||
+ mimeInfo->SetDescription(NS_ConvertUTF8toUTF16(description));
|
||||
+ nsCString handlerAppName = output[ 2 ];
|
||||
+ mozilla::StaticPrefs::browser_download_improvements_to_download_panel()
|
||||
+ ? mimeInfo->SetPreferredAction(nsIMIMEInfo::saveToDisk)
|
||||
+ : mimeInfo->SetPreferredAction(nsIMIMEInfo::useSystemDefault);
|
||||
+ mimeInfo->SetDefaultDescription(NS_ConvertUTF8toUTF16(handlerAppName));
|
||||
+ mimeInfo->SetPreferredAction(nsIMIMEInfo::useSystemDefault);
|
||||
+ return mimeInfo.forget();
|
||||
+ }
|
||||
+ return nullptr;
|
||||
@ -1214,7 +1166,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
#include "nsISupports.h"
|
||||
#include "nsString.h"
|
||||
#include "nsReadableUtils.h"
|
||||
@@ -1024,17 +1024,17 @@ nsresult nsOSHelperAppService::GetHandle
|
||||
@@ -1025,17 +1025,17 @@ nsresult nsOSHelperAppService::GetHandle
|
||||
|
||||
nsresult nsOSHelperAppService::OSProtocolHandlerExists(
|
||||
const char* aProtocolScheme, bool* aHandlerExists) {
|
||||
@ -1233,7 +1185,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
nsCOMPtr<nsIHandlerService> handlerSvc =
|
||||
do_GetService(NS_HANDLERSERVICE_CONTRACTID, &rv);
|
||||
if (NS_SUCCEEDED(rv) && handlerSvc) {
|
||||
@@ -1044,17 +1044,17 @@ nsresult nsOSHelperAppService::OSProtoco
|
||||
@@ -1045,17 +1045,17 @@ nsresult nsOSHelperAppService::OSProtoco
|
||||
}
|
||||
|
||||
return rv;
|
||||
@ -1252,7 +1204,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
|
||||
NS_IMETHODIMP nsOSHelperAppService::IsCurrentAppOSDefaultForProtocol(
|
||||
const nsACString& aScheme, bool* _retval) {
|
||||
@@ -1147,17 +1147,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
|
||||
@@ -1148,17 +1148,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
|
||||
nsresult rv =
|
||||
LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
|
||||
minorType, mime_types_description, true);
|
||||
@ -1271,7 +1223,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
|
||||
rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
|
||||
minorType, mime_types_description, false);
|
||||
@@ -1258,17 +1258,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
|
||||
@@ -1261,17 +1261,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
|
||||
|
||||
// Now look up our extensions
|
||||
nsAutoString extensions, mime_types_description;
|
||||
@ -1293,7 +1245,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
|
||||
--- a/widget/gtk/moz.build
|
||||
+++ b/widget/gtk/moz.build
|
||||
@@ -136,16 +136,17 @@ FINAL_LIBRARY = "xul"
|
||||
@@ -154,16 +154,17 @@ FINAL_LIBRARY = "xul"
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
"/layout/base",
|
||||
@ -1307,7 +1259,7 @@ diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
|
||||
"/widget/headless",
|
||||
]
|
||||
|
||||
if CONFIG["MOZ_X11"]:
|
||||
if CONFIG["MOZ_X11"] or CONFIG["MOZ_WAYLAND"]:
|
||||
LOCAL_INCLUDES += [
|
||||
"/widget/x11",
|
||||
]
|
||||
@ -1350,7 +1302,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
# include "Units.h"
|
||||
extern mozilla::LazyLogModule gWidgetLog;
|
||||
# define LOG(args) MOZ_LOG(gWidgetLog, mozilla::LogLevel::Debug, args)
|
||||
@@ -242,17 +245,19 @@ nsFilePicker::AppendFilters(int32_t aFil
|
||||
@@ -236,17 +239,19 @@ nsFilePicker::AppendFilters(int32_t aFil
|
||||
mAllowURLs = !!(aFilterMask & filterAllowURLs);
|
||||
return nsBaseFilePicker::AppendFilters(aFilterMask);
|
||||
}
|
||||
@ -1371,7 +1323,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
|
||||
mFilters.AppendElement(filter);
|
||||
mFilterNames.AppendElement(name);
|
||||
@@ -352,16 +357,39 @@ nsresult nsFilePicker::Show(int16_t* aRe
|
||||
@@ -346,16 +351,39 @@ nsresult nsFilePicker::Show(int16_t* aRe
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -1411,7 +1363,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
||||
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
|
||||
|
||||
const gchar* accept_button;
|
||||
@@ -581,16 +609,244 @@ void nsFilePicker::Done(void* file_choos
|
||||
@@ -575,16 +603,244 @@ void nsFilePicker::Done(void* file_choos
|
||||
mCallback->Done(result);
|
||||
mCallback = nullptr;
|
||||
} else {
|
||||
@ -1829,7 +1781,7 @@ diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
|
||||
]
|
||||
|
||||
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
||||
CXXFLAGS += CONFIG["TK_CFLAGS"]
|
||||
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
|
||||
if CONFIG["MOZ_ENABLE_DBUS"]:
|
||||
CXXFLAGS += CONFIG["MOZ_DBUS_GLIB_CFLAGS"]
|
||||
|
||||
@ -1837,7 +1789,7 @@ diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
|
||||
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
--- a/xpcom/io/nsLocalFileUnix.cpp
|
||||
+++ b/xpcom/io/nsLocalFileUnix.cpp
|
||||
@@ -53,16 +53,17 @@
|
||||
@@ -54,16 +54,17 @@
|
||||
#include "prproces.h"
|
||||
#include "nsIDirectoryEnumerator.h"
|
||||
#include "nsSimpleEnumerator.h"
|
||||
@ -1855,7 +1807,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
# include "prmem.h"
|
||||
# include "plbase64.h"
|
||||
|
||||
@@ -2021,62 +2022,77 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
@@ -2097,20 +2098,29 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsLocalFile::Reveal() {
|
||||
@ -1864,47 +1816,10 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
}
|
||||
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
- nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
|
||||
- if (!giovfs) {
|
||||
- return NS_ERROR_FAILURE;
|
||||
- }
|
||||
+ nsAutoCString url;
|
||||
|
||||
bool isDirectory;
|
||||
if (NS_FAILED(IsDirectory(&isDirectory))) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
+ nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
|
||||
if (isDirectory) {
|
||||
- return giovfs->ShowURIForInput(mPath);
|
||||
+ url = mPath;
|
||||
}
|
||||
if (NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
|
||||
return NS_OK;
|
||||
}
|
||||
nsCOMPtr<nsIFile> parentDir;
|
||||
nsAutoCString dirPath;
|
||||
if (NS_FAILED(GetParent(getter_AddRefs(parentDir)))) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
if (NS_FAILED(parentDir->GetNativePath(dirPath))) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
- return giovfs->ShowURIForInput(dirPath);
|
||||
+ url = dirPath;
|
||||
#elif defined(MOZ_WIDGET_COCOA)
|
||||
CFURLRef url;
|
||||
if (NS_SUCCEEDED(GetCFURL(&url))) {
|
||||
nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
|
||||
::CFRelease(url);
|
||||
return rv;
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
#else
|
||||
return NS_ERROR_FAILURE;
|
||||
#endif
|
||||
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
|
||||
- if (!giovfs) {
|
||||
+ url = mPath;
|
||||
+ if(nsKDEUtils::kdeSupport()) {
|
||||
+ nsTArray<nsCString> command;
|
||||
+ command.AppendElement( "REVEAL"_ns );
|
||||
@ -1913,10 +1828,18 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
+ }
|
||||
+
|
||||
+ if (!giovfs)
|
||||
+ return NS_ERROR_FAILURE;
|
||||
return NS_ERROR_FAILURE;
|
||||
- }
|
||||
+
|
||||
+ return giovfs->ShowURIForInput(url);
|
||||
}
|
||||
return giovfs->RevealFile(this);
|
||||
#elif defined(MOZ_WIDGET_COCOA)
|
||||
CFURLRef url;
|
||||
if (NS_SUCCEEDED(GetCFURL(&url))) {
|
||||
nsresult rv = CocoaFileUtils::RevealFileInFinder(url);
|
||||
::CFRelease(url);
|
||||
return rv;
|
||||
}
|
||||
@@ -2122,16 +2132,23 @@ nsLocalFile::Reveal() {
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsLocalFile::Launch() {
|
||||
@ -1931,11 +1854,12 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
+ command.AppendElement( mPath );
|
||||
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
||||
+ }
|
||||
+
|
||||
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
|
||||
if (!giovfs) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return giovfs->ShowURIForInput(mPath);
|
||||
return giovfs->LaunchFile(mPath);
|
||||
#elif defined(MOZ_WIDGET_ANDROID)
|
||||
// Not supported on GeckoView
|
||||
|
@ -1,27 +1,18 @@
|
||||
# HG changeset patch
|
||||
# Parent e4abeadbbb7a0c63c17177f1d14ea04c77c6128e
|
||||
# Parent 63747fd31719c6e4f7810512a3c57e75a02b8bfd
|
||||
|
||||
diff --git a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
--- a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
+++ b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
@@ -22,23 +22,27 @@ class FFmpegDecoderModule {
|
||||
static already_AddRefed<PlatformDecoderModule> Create(FFmpegLibWrapper*);
|
||||
};
|
||||
|
||||
static FFmpegLibWrapper sLibAV;
|
||||
|
||||
static const char* sLibs[] = {
|
||||
// clang-format off
|
||||
#if defined(XP_DARWIN)
|
||||
+ "libavcodec.58.134.dylib",
|
||||
+ "libavcodec.58.91.dylib",
|
||||
"libavcodec.58.dylib",
|
||||
"libavcodec.57.dylib",
|
||||
"libavcodec.56.dylib",
|
||||
@@ -34,16 +34,18 @@ static const char* sLibs[] = {
|
||||
"libavcodec.55.dylib",
|
||||
"libavcodec.54.dylib",
|
||||
"libavcodec.53.dylib",
|
||||
#elif defined(XP_OPENBSD)
|
||||
"libavcodec.so", // OpenBSD hardly controls the major/minor library version
|
||||
// of ffmpeg and update it regulary on ABI/API changes
|
||||
#else
|
||||
"libavcodec.so.59",
|
||||
+ "libavcodec.so.58.134",
|
||||
+ "libavcodec.so.58.91",
|
||||
"libavcodec.so.58",
|
||||
|
190
mozilla-pgo.patch
Normal file
190
mozilla-pgo.patch
Normal file
@ -0,0 +1,190 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 02ffee15578fd4dc2dd5ade32e7dab907d633b0d
|
||||
|
||||
diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
|
||||
--- a/build/moz.configure/lto-pgo.configure
|
||||
+++ b/build/moz.configure/lto-pgo.configure
|
||||
@@ -242,34 +242,34 @@ def lto(
|
||||
"configure."
|
||||
)
|
||||
|
||||
if c_compiler.type == "clang":
|
||||
if value == "full":
|
||||
cflags.append("-flto")
|
||||
ldflags.append("-flto")
|
||||
else:
|
||||
- cflags.append("-flto=thin")
|
||||
- ldflags.append("-flto=thin")
|
||||
+ cflags.append("-flto")
|
||||
+ ldflags.append("-flto")
|
||||
|
||||
if target.os == "Android" and value == "cross":
|
||||
# Work around https://github.com/rust-lang/rust/issues/90088
|
||||
# by enabling the highest level of SSE the rust targets default
|
||||
# to.
|
||||
# https://github.com/rust-lang/rust/blob/bdfcb88e8b6203ccb46a2fb6649979b773efc8ac/compiler/rustc_target/src/spec/i686_linux_android.rs#L13
|
||||
# https://github.com/rust-lang/rust/blob/8d1083e319841624f64400e1524805a40d725439/compiler/rustc_target/src/spec/x86_64_linux_android.rs#L7
|
||||
if target.cpu == "x86":
|
||||
ldflags.append("-Wl,-plugin-opt=-mattr=+ssse3")
|
||||
elif target.cpu == "x86_64":
|
||||
ldflags.append("-Wl,-plugin-opt=-mattr=+sse4.2")
|
||||
elif c_compiler.type == "clang-cl":
|
||||
if value == "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 --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
|
||||
--- a/build/pgo/profileserver.py
|
||||
+++ b/build/pgo/profileserver.py
|
||||
@@ -6,17 +6,17 @@
|
||||
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import glob
|
||||
import subprocess
|
||||
|
||||
import mozcrash
|
||||
-from mozbuild.base import MozbuildObject, BinaryNotFoundException
|
||||
+from mozbuild.base import MozbuildObject, BinaryNotFoundException, BuildEnvironmentNotFoundException
|
||||
from mozfile import TemporaryDirectory
|
||||
from mozhttpd import MozHttpd
|
||||
from mozprofile import FirefoxProfile, Preferences
|
||||
from mozprofile.permissions import ServerLocations
|
||||
from mozrunner import FirefoxRunner, CLI
|
||||
from six import string_types
|
||||
|
||||
PORT = 8888
|
||||
@@ -82,19 +82,32 @@ if __name__ == "__main__":
|
||||
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 @@ if __name__ == "__main__":
|
||||
|
||||
# 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 --git a/build/unix/mozconfig.unix b/build/unix/mozconfig.unix
|
||||
--- a/build/unix/mozconfig.unix
|
||||
+++ b/build/unix/mozconfig.unix
|
||||
@@ -1,14 +1,23 @@
|
||||
. "$topsrcdir/build/mozconfig.common"
|
||||
|
||||
if [ -n "$FORCE_GCC" ]; then
|
||||
CC="$MOZ_FETCHES_DIR/gcc/bin/gcc"
|
||||
CXX="$MOZ_FETCHES_DIR/gcc/bin/g++"
|
||||
|
||||
+ if [ -n "$MOZ_PGO" ]; then
|
||||
+ if [ -z "$USE_ARTIFACT" ]; then
|
||||
+ ac_add_options --enable-lto
|
||||
+ fi
|
||||
+ export AR="$topsrcdir/gcc/bin/gcc-ar"
|
||||
+ export NM="$topsrcdir/gcc/bin/gcc-nm"
|
||||
+ export RANLIB="$topsrcdir/gcc/bin/gcc-ranlib"
|
||||
+ fi
|
||||
+
|
||||
# We want to make sure we use binutils and other binaries in the tooltool
|
||||
# package.
|
||||
mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$PATH"
|
||||
else
|
||||
# For some builds we don't want to have Clang based static-analysis activated
|
||||
if [ -z "$DISABLE_CLANG_PLUGIN" ]; then
|
||||
export ENABLE_CLANG_PLUGIN=1
|
||||
fi
|
||||
diff --git a/extensions/spellcheck/src/moz.build b/extensions/spellcheck/src/moz.build
|
||||
--- a/extensions/spellcheck/src/moz.build
|
||||
+++ b/extensions/spellcheck/src/moz.build
|
||||
@@ -23,8 +23,10 @@ LOCAL_INCLUDES += [
|
||||
"../hunspell/glue",
|
||||
"../hunspell/src",
|
||||
"/dom/base",
|
||||
]
|
||||
EXPORTS.mozilla += [
|
||||
"mozInlineSpellChecker.h",
|
||||
"mozSpellChecker.h",
|
||||
]
|
||||
+
|
||||
+CXXFLAGS += ['-fno-devirtualize']
|
||||
diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp
|
||||
--- a/toolkit/components/terminator/nsTerminator.cpp
|
||||
+++ b/toolkit/components/terminator/nsTerminator.cpp
|
||||
@@ -461,16 +461,21 @@ void nsTerminator::StartWatchdog() {
|
||||
// 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());
|
||||
// crashAfterTicks is guaranteed to be > 0 as
|
||||
// crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS
|
||||
options->crashAfterTicks = crashAfterMS / HEARTBEAT_INTERVAL_MS;
|
||||
|
||||
DebugOnly<PRThread*> watchdogThread =
|
||||
CreateSystemThread(RunWatchdog, options.release());
|
||||
MOZ_ASSERT(watchdogThread);
|
@ -1,28 +1,11 @@
|
||||
diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
|
||||
--- a/build/moz.configure/rust.configure
|
||||
+++ b/build/moz.configure/rust.configure
|
||||
@@ -610,6 +610,7 @@ set_config("CARGO_PROFILE_DEV_OPT_LEVEL"
|
||||
"--enable-frame-pointers",
|
||||
path_remapping,
|
||||
path_remappings,
|
||||
+ host
|
||||
)
|
||||
def rust_compile_flags(
|
||||
opt_level,
|
||||
@@ -619,6 +620,7 @@ def rust_compile_flags(
|
||||
frame_pointers,
|
||||
path_remapping,
|
||||
path_remappings,
|
||||
+ host
|
||||
):
|
||||
# Cargo currently supports only two interesting profiles for building:
|
||||
# development and release. Those map (roughly) to --enable-debug and
|
||||
@@ -642,6 +644,8 @@ def rust_compile_flags(
|
||||
--- firefox-96.0.3.orig/build/moz.configure/rust.configure
|
||||
+++ firefox-96.0.3/build/moz.configure/rust.configure
|
||||
@@ -641,7 +643,7 @@ def rust_compile_flags(
|
||||
debug_assertions = False
|
||||
|
||||
if debug_symbols:
|
||||
debug_info = "2"
|
||||
+ if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64' or host.cpu == 's390x':
|
||||
+ debug_info = '1'
|
||||
- debug_info = "2"
|
||||
+ debug_info = '1'
|
||||
|
||||
opts = []
|
||||
|
||||
|
@ -3,54 +3,51 @@
|
||||
# Date 1558452408 -7200
|
||||
# Tue May 21 17:26:48 2019 +0200
|
||||
# Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4
|
||||
# Parent cb0089687ab899846b8229c3741261d50101340e
|
||||
# Parent 136e1f2c44a3099b3e49a576fa62c8ad77aa431e
|
||||
[mq]: mozilla-s390-context.patch
|
||||
|
||||
diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
@@ -150,16 +150,20 @@ using mozilla::DebugOnly;
|
||||
# define FP_sig(p) ((p)->uc_mcontext.mc_fp)
|
||||
# define SP_sig(p) ((p)->uc_mcontext.mc_i7)
|
||||
# endif
|
||||
# if defined(__linux__) && (defined(__ppc64__) || defined(__PPC64__) || \
|
||||
defined(__ppc64le__) || defined(__PPC64LE__))
|
||||
# define R01_sig(p) ((p)->uc_mcontext.gp_regs[1])
|
||||
# define R32_sig(p) ((p)->uc_mcontext.gp_regs[32])
|
||||
# endif
|
||||
@@ -157,16 +157,20 @@ using mozilla::DebugOnly;
|
||||
# define R32_sig(p) ((p)->uc_mcontext.gp_regs[32])
|
||||
# endif
|
||||
# if defined(__linux__) && defined(__loongarch__)
|
||||
# define EPC_sig(p) ((p)->uc_mcontext.pc)
|
||||
# define RRA_sig(p) ((p)->uc_mcontext.gregs[1])
|
||||
# define RSP_sig(p) ((p)->uc_mcontext.gregs[3])
|
||||
# define RFP_sig(p) ((p)->uc_mcontext.gregs[22])
|
||||
# endif
|
||||
+# if defined(__linux__) && defined(__s390x__)
|
||||
+# define GR_sig(p,x) ((p)->uc_mcontext.gregs[x])
|
||||
+# define PSWa_sig(p) ((p)->uc_mcontext.psw.addr)
|
||||
+# endif
|
||||
#elif defined(__NetBSD__)
|
||||
# define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP])
|
||||
# define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP])
|
||||
# define ESP_sig(p) ((p)->uc_mcontext.__gregs[_REG_ESP])
|
||||
# define RIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RIP])
|
||||
# define RSP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RSP])
|
||||
# define RBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RBP])
|
||||
# define R11_sig(p) ((p)->uc_mcontext.__gregs[_REG_R11])
|
||||
@@ -381,18 +385,23 @@ struct macos_arm_context {
|
||||
# define FP_sig(p) RFP_sig(p)
|
||||
# define SP_sig(p) RSP_sig(p)
|
||||
# define LR_sig(p) R31_sig(p)
|
||||
#elif defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || \
|
||||
defined(__PPC64LE__)
|
||||
# define PC_sig(p) R32_sig(p)
|
||||
# define SP_sig(p) R01_sig(p)
|
||||
# define FP_sig(p) R01_sig(p)
|
||||
+#elif defined(__s390x__)
|
||||
+# define PC_sig(p) PSWa_sig(p)
|
||||
+# define SP_sig(p) GR_sig(p, 15)
|
||||
+# define FP_sig(p) GR_sig(p, 11)
|
||||
#endif
|
||||
# elif defined(__NetBSD__)
|
||||
# define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP])
|
||||
# define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP])
|
||||
# define ESP_sig(p) ((p)->uc_mcontext.__gregs[_REG_ESP])
|
||||
# define RIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RIP])
|
||||
# define RSP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RSP])
|
||||
# define RBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RBP])
|
||||
# define R11_sig(p) ((p)->uc_mcontext.__gregs[_REG_R11])
|
||||
@@ -399,16 +403,20 @@ struct macos_aarch64_context {
|
||||
# define PC_sig(p) R32_sig(p)
|
||||
# define SP_sig(p) R01_sig(p)
|
||||
# define FP_sig(p) R01_sig(p)
|
||||
# elif defined(__loongarch__)
|
||||
# define PC_sig(p) EPC_sig(p)
|
||||
# define FP_sig(p) RFP_sig(p)
|
||||
# define SP_sig(p) RSP_sig(p)
|
||||
# define LR_sig(p) RRA_sig(p)
|
||||
+# elif defined(__s390x__)
|
||||
+# define PC_sig(p) PSWa_sig(p)
|
||||
+# define SP_sig(p) GR_sig(p, 15)
|
||||
+# define FP_sig(p) GR_sig(p, 11)
|
||||
# endif
|
||||
|
||||
+
|
||||
static void SetContextPC(CONTEXT* context, uint8_t* pc) {
|
||||
#ifdef PC_sig
|
||||
# ifdef PC_sig
|
||||
*reinterpret_cast<uint8_t**>(&PC_sig(context)) = pc;
|
||||
#else
|
||||
# else
|
||||
MOZ_CRASH();
|
||||
#endif
|
||||
}
|
||||
|
||||
# endif
|
||||
|
@ -1,49 +0,0 @@
|
||||
From: meissner@suse.com, cgrobertson@suse.com
|
||||
Subject: allow Firefox to access addtional process information
|
||||
References:
|
||||
http://bugzilla.suse.com/show_bug.cgi?id=1167132
|
||||
bsc#1174284 - Firefox tab just crashed in FIPS mode
|
||||
|
||||
diff --git a/security/sandbox/linux/Sandbox.cpp b/security/sandbox/linux/Sandbox.cpp
|
||||
--- a/security/sandbox/linux/Sandbox.cpp
|
||||
+++ b/security/sandbox/linux/Sandbox.cpp
|
||||
@@ -650,16 +650,17 @@ void SetMediaPluginSandbox(const char* a
|
||||
SANDBOX_LOG_ERROR("failed to open plugin file %s: %s", aFilePath,
|
||||
strerror(errno));
|
||||
MOZ_CRASH("failed while trying to open the plugin file ");
|
||||
}
|
||||
|
||||
auto files = new SandboxOpenedFiles();
|
||||
files->Add(std::move(plugin));
|
||||
files->Add("/dev/urandom", SandboxOpenedFile::Dup::YES);
|
||||
+ files->Add("/dev/random", SandboxOpenedFile::Dup::YES);
|
||||
files->Add("/etc/ld.so.cache"); // Needed for NSS in clearkey.
|
||||
files->Add("/sys/devices/system/cpu/cpu0/tsc_freq_khz");
|
||||
files->Add("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq");
|
||||
files->Add("/proc/cpuinfo"); // Info also available via CPUID instruction.
|
||||
files->Add("/proc/sys/crypto/fips_enabled"); // Needed for NSS in clearkey.
|
||||
#ifdef __i386__
|
||||
files->Add("/proc/self/auxv"); // Info also in process's address space.
|
||||
#endif
|
||||
diff --git a/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp b/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
|
||||
--- a/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
|
||||
+++ b/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
|
||||
@@ -315,16 +315,18 @@ void SandboxBrokerPolicyFactory::InitCon
|
||||
policy->AddDir(rdwr, "/dev/dri");
|
||||
}
|
||||
|
||||
// Bug 1575985: WASM library sandbox needs RW access to /dev/null
|
||||
policy->AddPath(rdwr, "/dev/null");
|
||||
|
||||
// Read permissions
|
||||
policy->AddPath(rdonly, "/dev/urandom");
|
||||
+ policy->AddPath(rdonly, "/dev/random");
|
||||
+ policy->AddPath(rdonly, "/proc/sys/crypto/fips_enabled");
|
||||
policy->AddPath(rdonly, "/proc/cpuinfo");
|
||||
policy->AddPath(rdonly, "/proc/meminfo");
|
||||
policy->AddDir(rdonly, "/sys/devices/cpu");
|
||||
policy->AddDir(rdonly, "/sys/devices/system/cpu");
|
||||
policy->AddDir(rdonly, "/lib");
|
||||
policy->AddDir(rdonly, "/lib64");
|
||||
policy->AddDir(rdonly, "/usr/lib");
|
||||
policy->AddDir(rdonly, "/usr/lib32");
|
File diff suppressed because it is too large
Load Diff
34
one_swizzle_to_rule_them_all.patch
Normal file
34
one_swizzle_to_rule_them_all.patch
Normal file
@ -0,0 +1,34 @@
|
||||
# HG changeset patch
|
||||
# User M. Sirringhaus <msirringhaus@suse.de>
|
||||
# Date 1645518286 -3600
|
||||
# Tue Feb 22 09:24:46 2022 +0100
|
||||
# Node ID 494640792b4677f6462e95b90a54a4e22aeb738b
|
||||
# Parent 81832d035e101471dcf52dd91de287268add7a91
|
||||
imported patch one_swizzle_to_rule_them_all.patch
|
||||
|
||||
Index: firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
|
||||
===================================================================
|
||||
--- firefox-102.0.orig/gfx/webrender_bindings/RenderCompositorSWGL.cpp
|
||||
+++ firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "RenderCompositorSWGL.h"
|
||||
|
||||
#include "mozilla/gfx/Logging.h"
|
||||
+#include "mozilla/gfx/Swizzle.h"
|
||||
#include "mozilla/widget/CompositorWidget.h"
|
||||
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
@@ -235,6 +237,13 @@ void RenderCompositorSWGL::CommitMappedB
|
||||
}
|
||||
mDT->Flush();
|
||||
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ // One swizzle to rule them all.
|
||||
+ gfx::SwizzleData(mMappedData, mMappedStride, gfx::SurfaceFormat::B8G8R8A8,
|
||||
+ mMappedData, mMappedStride, gfx::SurfaceFormat::A8R8G8B8,
|
||||
+ mDT->GetSize());
|
||||
+#endif
|
||||
+
|
||||
// Done with the DT. Hand it back to the widget and clear out any trace of it.
|
||||
mWidget->EndRemoteDrawingInRegion(mDT, mDirtyRegion);
|
||||
mDirtyRegion.SetEmpty();
|
29
svg-rendering.patch
Normal file
29
svg-rendering.patch
Normal file
@ -0,0 +1,29 @@
|
||||
# HG changeset patch
|
||||
# User M. Sirringhaus <msirringhaus@suse.de>
|
||||
# Date 1645518286 -3600
|
||||
# Tue Feb 22 09:24:46 2022 +0100
|
||||
# Node ID 81832d035e101471dcf52dd91de287268add7a91
|
||||
# Parent 66f7ce16eb4965108687280e5443edd610631efb
|
||||
imported patch svg-rendering.patch
|
||||
|
||||
diff --git a/image/imgFrame.cpp b/image/imgFrame.cpp
|
||||
--- a/image/imgFrame.cpp
|
||||
+++ b/image/imgFrame.cpp
|
||||
@@ -372,6 +372,17 @@ nsresult imgFrame::InitWithDrawable(gfxD
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ if (aBackend == gfx::BackendType::SKIA && canUseDataSurface) {
|
||||
+ // SKIA is lying about what format it returns on big endian
|
||||
+ for (int ii=0; ii < mRawSurface->GetSize().Height()*mRawSurface->Stride() / 4; ++ii) {
|
||||
+ uint32_t *vals = (uint32_t*)(mRawSurface->GetData());
|
||||
+ uint32_t val = ((vals[ii] << 8) & 0xFF00FF00 ) | ((vals[ii] >> 8) & 0xFF00FF );
|
||||
+ vals[ii] = (val << 16) | (val >> 16);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if (!canUseDataSurface) {
|
||||
// We used an offscreen surface, which is an "optimized" surface from
|
||||
// imgFrame's perspective.
|
12
tar_stamps
12
tar_stamps
@ -1,10 +1,10 @@
|
||||
PRODUCT="thunderbird"
|
||||
CHANNEL="esr91"
|
||||
VERSION="91.11.0"
|
||||
CHANNEL="esr102"
|
||||
VERSION="102.0.3"
|
||||
VERSION_SUFFIX=""
|
||||
PREV_VERSION="91.10.0"
|
||||
PREV_VERSION="102.0.2"
|
||||
PREV_VERSION_SUFFIX=""
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||
RELEASE_REPO="https://hg.mozilla.org/releases/comm-esr91"
|
||||
RELEASE_TAG="da48e7ecf800ec7761a3b6e0ca81e0c90adc30f7"
|
||||
RELEASE_TIMESTAMP="20220628000715"
|
||||
RELEASE_REPO="https://hg.mozilla.org/releases/comm-esr102"
|
||||
RELEASE_TAG="608f04d334e72acd89c589b9d341a90c4023dbe5"
|
||||
RELEASE_TIMESTAMP="20220718182443"
|
||||
|
3
thunderbird-102.0.3.source.tar.xz
Normal file
3
thunderbird-102.0.3.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9dcdea5d3b0d169f8df2b1542a57afdbdf4640d3a599752343cf1fcf6b2c4be0
|
||||
size 504782192
|
16
thunderbird-102.0.3.source.tar.xz.asc
Normal file
16
thunderbird-102.0.3.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEQ2D+IQnEl2MYb44h6+QekPbxL20FAmLV02wACgkQ6+QekPbx
|
||||
L21PfQ/+Lv6yRetHjpXaYtkIKq1xSwdRN8WrnnirqLF2lonvA9+6yiSK0inHsQQO
|
||||
Z8AvApPTqO0yuYPztcfPCcX/A0ehhUAHoiAvwQFqilNjO60NKocxypsAZTJssEmF
|
||||
ltQyTdBFxX+4K8svXAGIvcL3NR33v/bMmBTip6aSE1oMLuZd2fpd8++ordWHFSyz
|
||||
iirKwk8I5Qgahla1sz4cM94gDtoahwICbx0p+Iqoo1eq0UUa0srtYdlYXJpIsP4w
|
||||
2R1mRAhmJkPlQdYjvwQoLHdD6CqXC6orx3bWHiFiCbSqMGhdIhUZh8HqjyANTlD6
|
||||
AsWJTctnIPyYt0TaDz+EMnfL4Mp9nAYRQnLUeZ8ncDBn13AIgIfytfD7hmFmzj/2
|
||||
czNnv+YZ8trOgeApjTiLgMzqa8XN4kzIcTa3DeLy/vyysq/8bs0nj28B2sIh/bJ2
|
||||
astUeFIk22SeEuVAWPLlYQ2XHgcgP7bNlQ+g3R3QaPjXjj8+r9AaaGOfp3JINhFg
|
||||
QtVq9dsxEgIVd4BOeTFudFQekuVqO4PKxWE7HcsK841j8WC0ThCEWd3PPCDERZVK
|
||||
D/bpXHcawlkmxDppFk17UO3rhjkHgrTiMHxGvGkQz3ob/ELv71a72k589D4cPbzQ
|
||||
o8VDAXGVAAmks914oVczqQtTNtqkF+PN5TJZlYr4YCq+HY3R6aw=
|
||||
=xTV1
|
||||
-----END PGP SIGNATURE-----
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:318e6d80eecf2d6f8af5c58e99333b8c4822a720a6193dc38848ff9a1e9e6dc8
|
||||
size 408098564
|
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEEQ2D+IQnEl2MYb44h6+QekPbxL20FAmK6axsACgkQ6+QekPbx
|
||||
L20wwQ/+Ls0P1VcNs9vitUgHjtss7r7rmZQ3jiXFaX/D9719uJfa/YcXHHgFNdXP
|
||||
uVT9jjQFgIZgBN5SpIcaC7zygrh0nhbBw1Bg/4FWFyC8gHujvGMgF9hML+ltQx9x
|
||||
sKZo6N5utcDfBdEU0kvCE9bgLGq00FCnke0jfut+jxv+sN0s85lPMcRR35PEjFS2
|
||||
oEDqsauTbS+BJtA+oBF6D8IaLuZh9WA6zOgcqsNWmxxfCesUfVjYMihmicwFSvFQ
|
||||
SZmrQrvNd5bdB84GsLhf67uhWdu7UwjUjuALWIiTXNug8zdUgT7R4VDWpbcYXf8T
|
||||
VkA7HzmF6sABKkev4JX2DOxtVJwHGJteLFRNJYZnHwzz5o6qncs5I91j15SCc0AF
|
||||
u4Oriy7yis6EPRR3PLgYg9omdFQmB8E8QPgNkldfUpV9S8W2/tbKpNKCk1uMY8DL
|
||||
GkZNkPQY/Wx3CnPOy6bd1ACS9GwUdavacVvaiCLnVRRW+oWeGZ2C74CST8sXnodh
|
||||
hiZ1GFwshhdOowP4E3XthW+ZVDy7aEnTNaBLWT9s0jOsqeGwMK+XYEihstLPAdhN
|
||||
8Dq71zrmmQvnXPUlektykssVg2jox6F9xMCuM4z628/ajFoqApeJjvMYGiaQHJ8p
|
||||
BnxFDuZvB7mPlWzbtIGCCqxPRVlFq8VR9ySG3i+PDMfApOkZAjE=
|
||||
=eETF
|
||||
-----END PGP SIGNATURE-----
|
Loading…
Reference in New Issue
Block a user