- Mozilla Thunderbird 115.2.0

https://www.thunderbird.net/en-US/thunderbird/115.2.0/releasenotes
  MFSA 2023-38 (bsc#1214606)
  * CVE-2023-4573 (bmo#1846687)
    Memory corruption in IPC CanvasTranslator
  * CVE-2023-4574 (bmo#1846688)
    Memory corruption in IPC ColorPickerShownCallback
  * CVE-2023-4575 (bmo#1846689)
    Memory corruption in IPC FilePickerShownCallback
  * CVE-2023-4576 (bmo#1846694)
    Integer Overflow in RecordedSourceSurfaceCreation
  * CVE-2023-4577 (bmo#1847397)
    Memory corruption in JIT UpdateRegExpStatics
  * CVE-2023-4051 (bmo#1821884)
    Full screen notification obscured by file open dialog
  * CVE-2023-4578 (bmo#1839007)
    Error reporting methods in SpiderMonkey could have triggered
    an Out of Memory Exception
  * CVE-2023-4053 (bmo#1839079)
    Full screen notification obscured by external program
  * CVE-2023-4580 (bmo#1843046)
    Push notifications saved to disk unencrypted
  * CVE-2023-4581 (bmo#1843758)
    XLL file extensions were downloadable without warnings
  * CVE-2023-4582 (bmo#1773874)
    Buffer Overflow in WebGL glGetProgramiv
  * CVE-2023-4583 (bmo#1842030)
    Browsing Context potentially not cleared when closing Private
    Window
  * CVE-2023-4584 (bmo#1843968, bmo#1845205, bmo#1846080,

OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=714
This commit is contained in:
Wolfgang Rosenauer 2023-08-31 07:59:41 +00:00 committed by Git OBS Bridge
parent da50d4ab72
commit 98a8bbee26
34 changed files with 1571 additions and 4513 deletions

View File

@ -1,8 +1,59 @@
-------------------------------------------------------------------
Tue Aug 1 20:15:02 UTC 2023 - Wolfgang Rosenauer <wr@rosenauer.org>
Sun Aug 27 08:17:34 UTC 2023 - Wolfgang Rosenauer <wr@rosenauer.org>
- Mozilla Thunderbird 102.14.0
MFSA 2023-32 (bsc#1213746)
- Mozilla Thunderbird 115.2.0
https://www.thunderbird.net/en-US/thunderbird/115.2.0/releasenotes
MFSA 2023-38 (bsc#1214606)
* CVE-2023-4573 (bmo#1846687)
Memory corruption in IPC CanvasTranslator
* CVE-2023-4574 (bmo#1846688)
Memory corruption in IPC ColorPickerShownCallback
* CVE-2023-4575 (bmo#1846689)
Memory corruption in IPC FilePickerShownCallback
* CVE-2023-4576 (bmo#1846694)
Integer Overflow in RecordedSourceSurfaceCreation
* CVE-2023-4577 (bmo#1847397)
Memory corruption in JIT UpdateRegExpStatics
* CVE-2023-4051 (bmo#1821884)
Full screen notification obscured by file open dialog
* CVE-2023-4578 (bmo#1839007)
Error reporting methods in SpiderMonkey could have triggered
an Out of Memory Exception
* CVE-2023-4053 (bmo#1839079)
Full screen notification obscured by external program
* CVE-2023-4580 (bmo#1843046)
Push notifications saved to disk unencrypted
* CVE-2023-4581 (bmo#1843758)
XLL file extensions were downloadable without warnings
* CVE-2023-4582 (bmo#1773874)
Buffer Overflow in WebGL glGetProgramiv
* CVE-2023-4583 (bmo#1842030)
Browsing Context potentially not cleared when closing Private
Window
* CVE-2023-4584 (bmo#1843968, bmo#1845205, bmo#1846080,
bmo#1846526, bmo#1847529)
Memory safety bugs fixed in Firefox 117, Firefox ESR 102.15,
Firefox ESR 115.2, Thunderbird 102.15, and Thunderbird 115.2
* CVE-2023-4585 (bmo#1751583, bmo#1833504, bmo#1841082,
bmo#1847904, bmo#1848999)
Memory safety bugs fixed in Firefox 117, Firefox ESR 115.2,
and Thunderbird 115.2
-------------------------------------------------------------------
Tue Aug 15 07:53:02 UTC 2023 - Wolfgang Rosenauer <wr@rosenauer.org>
- Mozilla Thunderbird 115.1.1
bugfixes as documented here
https://www.thunderbird.net/en-US/thunderbird/115.1.1/releasenotes
-------------------------------------------------------------------
Tue Aug 1 07:51:37 UTC 2023 - Wolfgang Rosenauer <wr@rosenauer.org>
- Mozilla Thunderbird 115.1.0
New major release with Supernova UI
Releasenotes for 115.0:
https://www.thunderbird.net/en-US/thunderbird/115.0/releasenotes
MFSA 2023-33 (bsc#1213746)
* CVE-2023-4045 (bmo#1833876)
Offscreen Canvas could have bypassed cross-origin restrictions
* CVE-2023-4046 (bmo#1837686)
@ -15,14 +66,29 @@ Tue Aug 1 20:15:02 UTC 2023 - Wolfgang Rosenauer <wr@rosenauer.org>
Fix potential race conditions when releasing platform objects
* CVE-2023-4050 (bmo#1843038)
Stack buffer overflow in StorageManager
* CVE-2023-4052 (bmo#1824420)
File deletion and privilege escalation through Firefox uninstaller
* CVE-2023-4054 (bmo#1840777)
Lack of warning when opening appref-ms files
* CVE-2023-4055 (bmo#1782561)
Cookie jar overflow caused unexpected cookie jar state
* CVE-2023-4056 (bmo#1820587, bmo#1824634, bmo#1839235,
bmo#1842325, bmo#1843847)
* CVE-2023-4056 (bmo#1820587, bmo#1824634, bmo#1839235, bmo#1842325,
bmo#1843847)
Memory safety bugs fixed in Firefox 116, Firefox ESR 115.1,
Firefox ESR 102.14, Thunderbird 115.1, and Thunderbird 102.14
* CVE-2023-4057 (bmo#1841682)
Memory safety bugs fixed in Firefox 116, Firefox ESR 115.1,
and Thunderbird 115.1
- requires NSS 3.90
- add patches:
mozilla-rust-disable-future-incompat.patch
mozilla-partial-revert-1768632.patch
- removed obsolete patches:
gcc13-fix.patch
mozilla-bmo1568145.patch
mozilla-bmo1005535.patch
mozilla-s390x-skia-gradient.patch
- update create-tar.sh
-------------------------------------------------------------------
Tue Jul 25 06:56:46 UTC 2023 - Wolfgang Rosenauer <wr@rosenauer.org>

View File

@ -2,7 +2,7 @@
# spec file
#
# Copyright (c) 2023 SUSE LLC
# 2006-2023 Wolfgang Rosenauer <wr@rosenauer.org>
# Copyright (c) 2006-2023 Wolfgang Rosenauer <wr@rosenauer.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -27,11 +27,11 @@
# orig_version 70.0
# orig_suffix b3
# major 69
# mainver %major.99
%define major 102
%define mainver %major.14.0
%define orig_version 102.14.0
%define orig_suffix %{nil}
# mainver %%major.99
%define major 115
%define mainver %major.2.0
%define orig_version 115.2.0
%define orig_suffix %nil
%define update_channel release
%define source_prefix thunderbird-%{orig_version}
@ -54,8 +54,9 @@
%ifarch %ix86
ExclusiveArch: i586 i686
BuildArch: i686
%{expand:%%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic}
%{expand:%%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -msse2}
%endif
%{expand:%%global optflags %(echo "%optflags"|sed -e s/-flto=auto//) }
# general build definitions
%define progname thunderbird
@ -68,8 +69,12 @@ BuildArch: i686
%define __provides_exclude ^lib.*\\.so.*$
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libldap.*|libldif.*|libprldap.*|librnp.*)$
%define localize 1
%ifarch %ix86 x86_64
%define crashreporter 1
%else
%define crashreporter 0
%define with_pipewire0_3 1
%endif
%define with_pipewire0_3 1
%define wayland_supported 1
%if 0%{?sle_version} > 0 && 0%{?sle_version} < 150200
# pipewire is too old on Leap <=15.1
@ -85,41 +90,33 @@ BuildRequires: autoconf213
BuildRequires: dbus-1-glib-devel
BuildRequires: fdupes
BuildRequires: memory-constraints
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150500
BuildRequires: gcc11-c++
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600
BuildRequires: gcc12
BuildRequires: gcc12-c++
%else
BuildRequires: gcc-c++
%endif
%if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150300
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
# minimal requirement:
BuildRequires: rust+cargo >= 1.59
# actually used upstream:
BuildRequires: cargo1.67
BuildRequires: rust1.67
%endif
BuildRequires: cargo1.69
BuildRequires: rust1.69
%if 0%{useccache} != 0
BuildRequires: ccache
%endif
BuildRequires: libXcomposite-devel
BuildRequires: libcurl-devel
BuildRequires: mozilla-nspr-devel >= 4.34.1
BuildRequires: mozilla-nss-devel >= 3.79.4
BuildRequires: mozilla-nspr-devel >= 4.35
BuildRequires: mozilla-nss-devel >= 3.90
BuildRequires: nasm >= 2.14
BuildRequires: nodejs >= 10.22.1
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
BuildRequires: python-libxml2
BuildRequires: python36
BuildRequires: nodejs >= 12.22.12
%if 0%{?sle_version} >= 150000 && 0%{?sle_version} <= 150600
BuildRequires: python39
BuildRequires: python39-curses
BuildRequires: python39-devel
%else
BuildRequires: python3 >= 3.5
BuildRequires: python3 >= 3.7
BuildRequires: python3-curses
BuildRequires: python3-devel
%endif
BuildRequires: rust-cbindgen >= 0.24.0
BuildRequires: rust-cbindgen >= 0.24.3
BuildRequires: unzip
BuildRequires: update-desktop-files
BuildRequires: xorg-x11-libXt-devel
@ -131,11 +128,7 @@ BuildRequires: zip
%if 0%{?suse_version} < 1550
BuildRequires: pkgconfig(gconf-2.0) >= 1.2.1
%endif
%if (0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000)
BuildRequires: clang6-devel
%else
BuildRequires: clang-devel >= 5
%endif
BuildRequires: pkgconfig(glib-2.0) >= 2.22
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 3.14.0
@ -177,36 +170,39 @@ Source2: thunderbird-rpmlintrc
Source3: mozilla.sh.in
Source4: tar_stamps
Source6: suse-default-prefs.js
%if %{localize}
Source7: l10n-%{orig_version}%{orig_suffix}.tar.xz
%endif
Source9: thunderbird.appdata.xml
Source13: spellcheck.js
Source14: https://github.com/openSUSE/firefox-scripts/raw/9b77cf0/create-tar.sh
Source14: https://github.com/openSUSE/firefox-scripts/raw/c3f287d/create-tar.sh
Source20: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz.asc
Source21: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/KEY#/mozilla.keyring
# Gecko/Toolkit
Patch1: mozilla-nongnome-proxies.patch
%if %{with mozilla_tb_kde4}
Patch2: mozilla-kde.patch
%endif
Patch3: mozilla-ntlm-full-path.patch
Patch4: mozilla-aarch64-startup-crash.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
Patch23: gcc13-fix.patch
Patch9: mozilla-bmo1504834-part1.patch
Patch10: mozilla-bmo1504834-part3.patch
Patch11: mozilla-bmo1512162.patch
Patch12: mozilla-fix-top-level-asm.patch
Patch13: mozilla-bmo849632.patch
Patch14: mozilla-bmo998749.patch
Patch15: mozilla-libavcodec58_91.patch
Patch16: mozilla-silence-no-return-type.patch
Patch17: mozilla-bmo531915.patch
Patch18: one_swizzle_to_rule_them_all.patch
Patch19: svg-rendering.patch
Patch20: mozilla-partial-revert-1768632.patch
Patch21: mozilla-bmo1775202.patch
Patch22: mozilla-rust-disable-future-incompat.patch
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: /bin/sh
@ -271,49 +267,18 @@ fi
%else
%setup -q -n %{srcname}-%{orig_version}
%endif
%patch1 -p1
%if %{with mozilla_tb_kde4}
%patch2 -p1
%endif
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -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
%patch23 -p1
cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
%autopatch -p1
%endif
%build
%if !%{with only_print_mozconfig}
# no need to add build time to binaries
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{pkgname}.changes")"
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
# SLE-12 provides python36, but that package does not provide a python3 binary
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
sed -i "s/python3/python36/g" configure.in
sed -i "s/python3/python36/g" mach
export PYTHON3=/usr/bin/python36
%endif
#
%if %{with mozilla_tb_kde4}
kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
if test "$kdehelperversion" != %{kde_helper_version}; then
@ -322,73 +287,65 @@ if test "$kdehelperversion" != %{kde_helper_version}; then
fi
%endif
source %{SOURCE4}
# When doing only_print_mozconfig, this file isn't necessarily available, so skip it
cp %{SOURCE4} .obsenv.sh
%else
# We need to make sure its empty
echo "" > .obsenv.sh
%endif
cat >> .obsenv.sh <<EOF
export CARGO_HOME=${RPM_BUILD_DIR}/%{srcname}-%{orig_version}/.cargo
export MOZ_SOURCE_CHANGESET=$RELEASE_TAG
export SOURCE_REPO=$RELEASE_REPO
export source_repo=$RELEASE_REPO
export MOZ_SOURCE_REPO=$RELEASE_REPO
export MOZ_BUILD_DATE=$RELEASE_TIMESTAMP
export MOZ_SOURCE_CHANGESET=\$RELEASE_TAG
export SOURCE_REPO=\$RELEASE_REPO
export source_repo=\$RELEASE_REPO
export MOZ_SOURCE_REPO=\$RELEASE_REPO
export MOZ_BUILD_DATE=\$RELEASE_TIMESTAMP
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1
export MOZ_REQUIRE_SIGNING=
export MACH_USE_SYSTEM_PYTHON=1
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150500
export CC=gcc-11
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
export CFLAGS="%{optflags}"
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600
export CC=gcc-12
export CXX=g++-12
%else
%if 0%{?clang_build} == 0
export CC=gcc
export CXX=g++
%if 0%{?gcc_version:%{gcc_version}} >= 12
export CFLAGS="$CFLAGS -fimplicit-constexpr"
export CFLAGS="\$CFLAGS -fimplicit-constexpr"
%endif
%endif
%endif
%ifarch %arm %ix86
# Limit RAM usage during link
export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
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"
export LDFLAGS="\$LDFLAGS -fPIC -Wl,-z,relro,-z,now"
%ifarch ppc64 ppc64le
%if 0%{?clang_build} == 0
export CFLAGS="$CFLAGS -mminimal-toc"
#export CFLAGS="\$CFLAGS -mminimal-toc"
%endif
%endif
export CXXFLAGS="$CFLAGS"
%ifarch %ix86
# Not enough memory on 32-bit systems, reduce debug info.
export CFLAGS="\$CFLAGS -g1"
%endif
export CXXFLAGS="\$CFLAGS"
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
%if %{with only_print_mozconfig}
echo "export CC=$CC"
echo "export CXX=$CXX"
echo "export CFLAGS=\"$CFLAGS\""
echo "export CXXFLAGS=\"$CXXFLAGS\""
echo "export LDFLAGS=\"$LDFLAGS\""
echo "export RUSTFLAGS=\"$RUSTFLAGS\""
echo "export CARGO_HOME=\"$CARGO_HOME\""
echo "export PATH=\"$PATH\""
echo "export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH\""
echo "export PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\""
echo "export MOZCONFIG=\"$MOZCONFIG\""
echo "export MOZILLA_OFFICIAL=1"
echo "export BUILD_OFFICIAL=1"
echo "export MOZ_TELEMETRY_REPORTING=1"
echo "export MOZ_REQUIRE_SIGNING="
echo ""
cat << EOF
%else
%ifarch aarch64 ppc64 ppc64le
EOF
# Done with env-variables.
source ./.obsenv.sh
%ifarch aarch64 %arm ppc64 ppc64le riscv64
%limit_build -m 2500
%else
%limit_build -m 2000
%endif
# TODO: Check if this can be removed
#export MOZ_DEBUG_FLAGS="-pipe"
# Generating mozconfig
cat << EOF > $MOZCONFIG
%endif
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
@ -412,16 +369,19 @@ 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
#%%if 0%%{?suse_version} > 1549
%ifarch %arm %ix86 x86_64
ac_add_options --disable-elf-hack
%endif
#%endif
#%%endif
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
%if 0%{useccache} != 0
ac_add_options --with-ccache
%endif
%if %{localize}
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n-central
%endif
ac_add_options --with-system-zlib
ac_add_options --disable-updater
ac_add_options --disable-tests
@ -456,7 +416,7 @@ ac_add_options --enable-optimize="-O1"
%ifarch x86_64
# LTO needs newer toolchain stack only (at least GCC 8.2.1 (r268506)
%if 0%{?suse_version} > 1500
ac_add_options --enable-lto
#ac_add_options --enable-lto
%if 0%{?do_profiling}
ac_add_options MOZ_PGO=1
%endif
@ -467,7 +427,12 @@ ac_add_options --enable-valgrind
%endif
%endif
EOF
%if !%{with only_print_mozconfig}
%if %{with only_print_mozconfig}
cat ./.obsenv.sh
cat $MOZCONFIG
%else
%if 0%{useccache} != 0
ccache -s
%endif
@ -491,15 +456,21 @@ mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj_LANG
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 --with-l10n-base=$RPM_BUILD_DIR/l10n-central
ac_add_options --disable-updater
ac_add_options --without-wasm-sandboxed-libraries
ac_add_options --enable-official-branding
EOF
%ifarch %ix86
%define njobs 1
%else
%define njobs 0%{?jobs:%jobs}
%endif
mkdir -p $RPM_BUILD_DIR/langpacks_artifacts/
sed -r '/^(ja-JP-mac|en-US|$)/d;s/ .*$//' $RPM_BUILD_DIR/%{source_prefix}/comm/mail/locales/shipped-locales \
| xargs -n 1 %{?jobs:-P %jobs} -I {} /bin/sh -c '
sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{source_prefix}/comm/mail/locales/shipped-locales \
| xargs -n 1 %{?njobs:-P %njobs} -I {} /bin/sh -c '
locale=$1
cp ${MOZCONFIG}_LANG ${MOZCONFIG}_$locale
sed -i "s|obj_LANG|obj_$locale|" ${MOZCONFIG}_$locale
@ -518,6 +489,7 @@ sed -r '/^(ja-JP-mac|en-US|$)/d;s/ .*$//' $RPM_BUILD_DIR/%{source_prefix}/comm/m
>> %{_tmppath}/translations.$_l10ntarget
' -- {}
%endif
%if 0%{useccache} != 0
ccache -s
%endif
@ -531,7 +503,7 @@ export MOZ_SOURCE_REPO=$RELEASE_REPO
make -C comm/mail/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
# copy tree into RPM_BUILD_ROOT
mkdir -p %{buildroot}%{progdir}
cp -rf $RPM_BUILD_DIR/obj/dist/%{progname}/* %{buildroot}%{progdir}
cp -rf $RPM_BUILD_DIR/obj/dist/%{srcname}/* %{buildroot}%{progdir}
mkdir -p %{buildroot}%{progdir}/extensions
cp -rf $RPM_BUILD_DIR/langpacks_artifacts/* %{buildroot}%{progdir}/extensions/
@ -581,10 +553,10 @@ EOF
mkdir -p %{buildroot}%{gnome_dir}/share/icons/hicolor/symbolic/apps/
cp %{_builddir}/%{source_prefix}/comm/mail/branding/thunderbird/TB-symbolic.svg \
%{buildroot}%{gnome_dir}/share/icons/hicolor/symbolic/apps/%{progname}-symbolic.svg
for size in 16 22 24 32 48 64 128; do
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/
for size in 16 22 24 32 48 64 128 256; do
mkdir -p %{buildroot}%{gnome_dir}/share/icons/hicolor/${size}x${size}/apps/
cp %{buildroot}%{progdir}/chrome/icons/default/default$size.png \
%{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/%{progname}.png
%{buildroot}%{gnome_dir}/share/icons/hicolor/${size}x${size}/apps/%{progname}.png
done
# excluded files
rm -f %{buildroot}%{progdir}/thunderbird
@ -602,13 +574,16 @@ rm -f %{buildroot}%{progdir}/nspr-config
%fdupes %{buildroot}%{_datadir}
%post
# update mime and desktop database
%mime_database_post
%desktop_database_post
%icon_theme_cache_post
exit 0
%postun
%desktop_database_postun
%icon_theme_cache_postun
%desktop_database_postun
%mime_database_postun
exit 0
%files
@ -617,9 +592,13 @@ exit 0
%dir %{progdir}
%{progdir}/application.ini
%{progdir}/dependentlibs.list
%{progdir}/fonts/
%{progdir}/*.so
%{progdir}/glxtest
%if 0%{wayland_supported}
%{progdir}/vaapitest
%endif
%{progdir}/omni.ja
%{progdir}/fonts/
%{progdir}/pingsender
%{progdir}/platform.ini
%{progdir}/plugin-container
@ -630,8 +609,8 @@ exit 0
%if %crashreporter
%{progdir}/crashreporter
%{progdir}/crashreporter.ini
%{progdir}/minidump-analyzer
%{progdir}/Throbber-small.gif
%{progdir}/minidump-analyzer
%endif
%dir %{progdir}/chrome/
%{progdir}/chrome/icons/

View File

@ -78,6 +78,9 @@ function set_internal_variables() {
SOURCE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz"
PREV_SOURCE_TARBALL="$PRODUCT-$PREV_VERSION$PREV_VERSION_SUFFIX.source.tar.xz"
if [ "$PRODUCT" = "thunderbird" ]; then
TB_LOCALE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.strings_all.tar.zst"
fi
FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source"
FTP_CANDIDATES_BASE_URL="https://ftp.mozilla.org/pub/%s/candidates"
LOCALES_URL="https://product-details.mozilla.org/1.0/l10n"
@ -302,10 +305,18 @@ function check_what_to_do_with_source_tarballs() {
printf "%-40s: %s\n" "$ff" "$(check_tarball_source $ff)"
done
if [ "$PRODUCT" = "thunderbird" ]; then
printf "%-40s: %s\n" "$TB_LOCALE_TARBALL" "$(check_tarball_source $TB_LOCALE_TARBALL)"
fi
ask_cont_abort_question "Is this ok?" || exit 0
}
function check_what_to_do_with_locales_tarballs() {
if [ -e "$TB_LOCALE_TARBALL" ]; then
return;
fi
LOCALES_CHANGED=1
extract_locales_file
@ -364,6 +375,10 @@ function download_upstream_source_tarballs() {
download_release_or_candidate_file "$SOURCE_TARBALL"
download_release_or_candidate_file "$SOURCE_TARBALL.asc"
if [ "$PRODUCT" = "thunderbird" ]; then
download_release_or_candidate_file "$TB_LOCALE_TARBALL"
fi
# we might have an upstream archive already and can skip the checkout
if [ -e "$SOURCE_TARBALL" ]; then
get_source_stamp "$BUILD_ID"
@ -447,13 +462,18 @@ function create_locales_tarballs() {
exit 0
fi
if [ "$LOCALES_CHANGED" -ne 0 ]; then
clone_and_repackage_locales
elif [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ]; then
# Locales did not change, but the old tar-ball is in this directory
# Simply rename it:
echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to l10n-$VERSION$VERSION_SUFFIX.tar.xz"
mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" "l10n-$VERSION$VERSION_SUFFIX.tar.xz"
if [ -e "$TB_LOCALE_TARBALL" ]; then
echo "Repackaging upstream lang-tarball."
zstd -dcf "$TB_LOCALE_TARBALL" | xz > "l10n-$VERSION$VERSION_SUFFIX.tar.xz"
else
if [ "$LOCALES_CHANGED" -ne 0 ]; then
clone_and_repackage_locales
elif [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ]; then
# Locales did not change, but the old tar-ball is in this directory
# Simply rename it:
echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to l10n-$VERSION$VERSION_SUFFIX.tar.xz"
mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" "l10n-$VERSION$VERSION_SUFFIX.tar.xz"
fi
fi
}
@ -537,6 +557,13 @@ function clean_up_old_tarballs() {
rm "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz"
fi
fi
# If we downloaded the upstream zstd-tarball and repackaged it, remove it now
if [ -f "$TB_LOCALE_TARBALL" ] && [ -f "l10n-$VERSION$VERSION_SUFFIX.tar.xz" ]; then
echo ""
echo "Deleting old sources tarball $TB_LOCALE_TARBALL"
ask_cont_abort_question "Is this ok?" || exit 0
rm "$TB_LOCALE_TARBALL"
fi
}
main "$@"

View File

@ -1,176 +0,0 @@
diff --git a/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp b/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp
index 8c8a0369c3..01a1a1d817 100644
--- a/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp
+++ b/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp
@@ -4,6 +4,7 @@
* 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 <string>
+#include <cstdint>
#include "sdp/RsdparsaSdpInc.h"
#include "sdp/RsdparsaSdpGlue.h"
diff --git a/gfx/2d/Rect.h b/gfx/2d/Rect.h
index 4875ad6714..f52437bbdc 100644
--- a/gfx/2d/Rect.h
+++ b/gfx/2d/Rect.h
@@ -15,6 +15,7 @@
#include "mozilla/Maybe.h"
#include <cmath>
+#include <cstdint>
namespace mozilla {
diff --git a/toolkit/components/telemetry/pingsender/pingsender.cpp b/toolkit/components/telemetry/pingsender/pingsender.cpp
index 01fdb63c29..a61b9d3693 100644
--- a/toolkit/components/telemetry/pingsender/pingsender.cpp
+++ b/toolkit/components/telemetry/pingsender/pingsender.cpp
@@ -4,6 +4,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include <cstdlib>
+#include <cstdint>
#include <cstring>
#include <ctime>
#include <fstream>
diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp
index bd20110f12..08e38d6938 100644
--- a/tools/profiler/core/platform.cpp
+++ b/tools/profiler/core/platform.cpp
@@ -1106,7 +1106,7 @@ class ActivePS {
continue;
}
ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData =
- offThreadRef.LockedRWFromAnyThread();
+ offThreadRef.GetLockedRWFromAnyThread();
MOZ_RELEASE_ASSERT(array.append(ProfiledThreadListElement{
profiledThreadData->Info().RegisterTime(),
lockedThreadData->GetJSContext(), profiledThreadData}));
@@ -4050,7 +4050,7 @@ void SamplerThread::Run() {
if (threadStackSampling) {
ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock
- lockedThreadData = offThreadRef.LockedRWFromAnyThread();
+ lockedThreadData = offThreadRef.GetLockedRWFromAnyThread();
// Suspend the thread and collect its stack data in the local
// buffer.
mSampler.SuspendAndSampleAndResumeThread(
@@ -4764,7 +4764,7 @@ static ProfilingStack* locked_register_thread(
aLock, aOffThreadRef.UnlockedConstReaderCRef().Info());
if (threadProfilingFeatures != ThreadProfilingFeatures::NotProfiled) {
ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock
- lockedRWFromAnyThread = aOffThreadRef.LockedRWFromAnyThread();
+ lockedRWFromAnyThread = aOffThreadRef.GetLockedRWFromAnyThread();
ProfiledThreadData* profiledThreadData = ActivePS::AddLiveProfiledThread(
aLock, MakeUnique<ProfiledThreadData>(
@@ -5629,7 +5629,7 @@ static void locked_profiler_start(PSLockRef aLock, PowerOfTwo32 aCapacity,
ActivePS::ProfilingFeaturesForThread(aLock, info);
if (threadProfilingFeatures != ThreadProfilingFeatures::NotProfiled) {
ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData =
- offThreadRef.LockedRWFromAnyThread();
+ offThreadRef.GetLockedRWFromAnyThread();
ProfiledThreadData* profiledThreadData = ActivePS::AddLiveProfiledThread(
aLock, MakeUnique<ProfiledThreadData>(info));
lockedThreadData->SetProfilingFeaturesAndData(threadProfilingFeatures,
@@ -5853,7 +5853,7 @@ void profiler_ensure_started(PowerOfTwo32 aCapacity, double aInterval,
}
ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData =
- offThreadRef.LockedRWFromAnyThread();
+ offThreadRef.GetLockedRWFromAnyThread();
lockedThreadData->ClearProfilingFeaturesAndData(aLock);
@@ -6196,7 +6196,7 @@ static void locked_unregister_thread(
// thread that is in the process of disappearing.
ThreadRegistration::OnThreadRef::RWOnThreadWithLock lockedThreadData =
- aOnThreadRef.LockedRWOnThread();
+ aOnThreadRef.GetLockedRWOnThread();
ProfiledThreadData* profiledThreadData =
lockedThreadData->GetProfiledThreadData(lock);
@@ -6717,7 +6717,7 @@ void profiler_clear_js_context() {
// The profiler mutex must be locked before the ThreadRegistration's.
PSAutoLock lock;
ThreadRegistration::OnThreadRef::RWOnThreadWithLock lockedThreadData =
- aOnThreadRef.LockedRWOnThread();
+ aOnThreadRef.GetLockedRWOnThread();
if (ProfiledThreadData* profiledThreadData =
lockedThreadData->GetProfiledThreadData(lock);
diff --git a/tools/profiler/public/ProfilerThreadRegistration.h b/tools/profiler/public/ProfilerThreadRegistration.h
index fafe06e446..3fb931987d 100644
--- a/tools/profiler/public/ProfilerThreadRegistration.h
+++ b/tools/profiler/public/ProfilerThreadRegistration.h
@@ -214,14 +214,14 @@ class ThreadRegistration {
DataLock mDataLock;
};
- [[nodiscard]] RWOnThreadWithLock LockedRWOnThread() {
+ [[nodiscard]] RWOnThreadWithLock GetLockedRWOnThread() {
return RWOnThreadWithLock{mThreadRegistration->mData,
mThreadRegistration->mDataMutex};
}
template <typename F>
auto WithLockedRWOnThread(F&& aF) {
- RWOnThreadWithLock lockedData = LockedRWOnThread();
+ RWOnThreadWithLock lockedData = GetLockedRWOnThread();
return std::forward<F>(aF)(lockedData.DataRef());
}
diff --git a/tools/profiler/public/ProfilerThreadRegistry.h b/tools/profiler/public/ProfilerThreadRegistry.h
index 76e0c0a78a..4d0fd3ef68 100644
--- a/tools/profiler/public/ProfilerThreadRegistry.h
+++ b/tools/profiler/public/ProfilerThreadRegistry.h
@@ -177,14 +177,14 @@ class ThreadRegistry {
ThreadRegistration::DataLock mDataLock;
};
- [[nodiscard]] RWFromAnyThreadWithLock LockedRWFromAnyThread() {
+ [[nodiscard]] RWFromAnyThreadWithLock GetLockedRWFromAnyThread() {
return RWFromAnyThreadWithLock{mThreadRegistration->mData,
mThreadRegistration->mDataMutex};
}
template <typename F>
auto WithLockedRWFromAnyThread(F&& aF) {
- RWFromAnyThreadWithLock lockedData = LockedRWFromAnyThread();
+ RWFromAnyThreadWithLock lockedData = GetLockedRWFromAnyThread();
return std::forward<F>(aF)(lockedData.DataRef());
}
diff --git a/tools/profiler/tests/gtest/GeckoProfiler.cpp b/tools/profiler/tests/gtest/GeckoProfiler.cpp
index fd0d4d2acc..c9882cb5d3 100644
--- a/tools/profiler/tests/gtest/GeckoProfiler.cpp
+++ b/tools/profiler/tests/gtest/GeckoProfiler.cpp
@@ -621,7 +621,7 @@ TEST(GeckoProfiler, ThreadRegistration_DataAccess)
EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread());
{
TR::OnThreadRef::RWOnThreadWithLock rwOnThreadWithLock =
- aOnThreadRef.LockedRWOnThread();
+ aOnThreadRef.GetLockedRWOnThread();
EXPECT_TRUE(TR::IsDataMutexLockedOnCurrentThread());
TestConstLockedRWOnThread(rwOnThreadWithLock.DataCRef(),
beforeRegistration, afterRegistration,
@@ -1020,7 +1020,7 @@ TEST(GeckoProfiler, ThreadRegistry_DataAccess)
EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread());
{
TRy::OffThreadRef::RWFromAnyThreadWithLock rwFromAnyThreadWithLock =
- aOffThreadRef.LockedRWFromAnyThread();
+ aOffThreadRef.GetLockedRWFromAnyThread();
if (profiler_current_thread_id() == testThreadId) {
EXPECT_TRUE(TR::IsDataMutexLockedOnCurrentThread());
}
@@ -1157,7 +1157,7 @@ TEST(GeckoProfiler, ThreadRegistration_RegistrationEdgeCases)
PR_Sleep(PR_MillisecondsToInterval(1));
}
TRy::OffThreadRef::RWFromAnyThreadWithLock rwFromAnyThreadWithLock =
- aOffThreadRef.LockedRWFromAnyThread();
+ aOffThreadRef.GetLockedRWFromAnyThread();
++otherThreadReads;
if (otherThreadReads % 1000 == 0) {
PR_Sleep(PR_MillisecondsToInterval(1));

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f10fca8ebcb416a90e1c31917e1401520c93be6e45f828782cee3ea7862ab8b9
size 35799724

3
l10n-115.2.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2e385c4dbcade40b6e68b17d67261c0a5af7623d1b8cf07202117e621c4e0011
size 27900160

View File

@ -3,19 +3,14 @@
# Date 1558442998 -7200
# Tue May 21 14:49:58 2019 +0200
# Node ID 386083b58d8558141901d796ec6919a4aba7ad3a
# Parent a30a9b9aae5740f096a16118ed9e4bc45d3d1c35
# Parent 76b747f7d113bddbb8593184d81e1bfe5fd51af0
bsc#991344 - Rpi3: Firefox crashes after a few seconds of usage
bmo#1302554 - ARM/AARCH64: Firefox crashes on NULL nsIChannel** result pointer in nsIOService::NewChannelFromURIWithProxyFlagsInternal()
diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp
--- a/netwerk/base/nsIOService.cpp
+++ b/netwerk/base/nsIOService.cpp
@@ -1032,17 +1032,23 @@ nsresult nsIOService::NewChannelFromURIW
"doesn't support nsIUploadChannel2. An extension has "
"supplied a non-functional http protocol handler. This will "
"break behavior and in future releases not work at all.");
}
gHasWarnedUploadChannel2 = true;
@@ -1159,7 +1159,13 @@ nsresult nsIOService::NewChannelFromURIW
}
}
@ -29,8 +24,3 @@ diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp
return NS_OK;
}
NS_IMETHODIMP
nsIOService::NewChannelFromURIWithProxyFlags(
nsIURI* aURI, nsIURI* aProxyURI, uint32_t aProxyFlags,
nsINode* aLoadingNode, nsIPrincipal* aLoadingPrincipal,
nsIPrincipal* aTriggeringPrincipal, uint32_t aSecurityFlags,

View File

@ -1,30 +0,0 @@
# HG changeset patch
# User Steve Singer <steve@ssinger.info>
# Date 1558451540 -7200
# Tue May 21 17:12:20 2019 +0200
# Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad
# Parent c0fdccc716e80a6d289c94f5d507ae141c62a3bf
Bug 1005535 - Get skia GPU building on big endian.
diff --git a/gfx/skia/skia/src/gpu/GrColor.h b/gfx/skia/skia/src/gpu/GrColor.h
--- a/gfx/skia/skia/src/gpu/GrColor.h
+++ b/gfx/skia/skia/src/gpu/GrColor.h
@@ -59,17 +59,17 @@ static inline GrColor GrColorPackRGBA(un
#define GrColorUnpackG(color) (((color) >> GrColor_SHIFT_G) & 0xFF)
#define GrColorUnpackB(color) (((color) >> GrColor_SHIFT_B) & 0xFF)
#define GrColorUnpackA(color) (((color) >> GrColor_SHIFT_A) & 0xFF)
/**
* Since premultiplied means that alpha >= color, we construct a color with
* each component==255 and alpha == 0 to be "illegal"
*/
-#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A))
+#define GrColor_ILLEGAL ((uint32_t)(~(0xFF << GrColor_SHIFT_A)))
/** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */
static inline float GrNormalizeByteToFloat(uint8_t value) {
static const float ONE_OVER_255 = 1.f / 255.f;
return value * ONE_OVER_255;
}
/** Used to pick vertex attribute types. */

View File

@ -1,43 +1,34 @@
# HG changeset patch
# Parent b5471d23321d16a0bacc25b7afd27d2e16adba1a
# Parent 9fcbd287056a40084b1e679f787bf683b291f323
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
@@ -130,18 +130,17 @@ static IntRect CalculateSurfaceBounds(co
Rect sampledBounds = inverse.TransformBounds(*aBounds);
if (!sampledBounds.ToIntRect(&bounds)) {
return surfaceBounds;
}
return surfaceBounds.Intersect(bounds);
@@ -156,7 +156,8 @@ static IntRect CalculateSurfaceBounds(co
}
-static const int kARGBAlphaOffset =
static const int kARGBAlphaOffset =
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
+static const int kARGBAlphaOffset = 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
+ 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 ==
+ // SurfaceFormat::B8G8R8A8 ? 3 : 0;
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
const int32_t aStride, SurfaceFormat aFormat) {
if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) {
return true;
}
// We should've initialized the data to be opaque already
// On debug builds, verify that this is actually true.
diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
--- a/gfx/2d/Types.h
+++ b/gfx/2d/Types.h
@@ -84,25 +84,18 @@ enum class SurfaceFormat : int8_t {
Depth,
@@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t {
// This represents the unknown format.
UNKNOWN,
UNKNOWN, // TODO: Replace uses with Maybe<SurfaceFormat>.
// The following values are endian-independent synonyms. The _UINT32 suffix
// indicates that the name reflects the layout when viewed as a uint32_t
// value.
-// The following values are endian-independent synonyms. The _UINT32 suffix
-// indicates that the name reflects the layout when viewed as a uint32_t
-// value.
-#if MOZ_LITTLE_ENDIAN()
+ // The following values are endian-independent synonyms. The _UINT32 suffix
+ // indicates that the name reflects the layout when viewed as a uint32_t
+ // value.
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB
-#elif MOZ_BIG_ENDIAN()
@ -49,20 +40,10 @@ diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
// The following values are OS and endian-independent synonyms.
//
// TODO(aosmond): When everything blocking bug 1581828 has been resolved, we
// can make this use R8B8G8A8 and R8B8G8X8 for non-Windows platforms.
OS_RGBA = A8R8G8B8_UINT32,
OS_RGBX = X8R8G8B8_UINT32
};
diff --git a/gfx/skia/skia/third_party/skcms/skcms.cc b/gfx/skia/skia/third_party/skcms/skcms.cc
--- a/gfx/skia/skia/third_party/skcms/skcms.cc
+++ b/gfx/skia/skia/third_party/skcms/skcms.cc
@@ -25,16 +25,18 @@
// it'd be a lot slower. But we want all those headers included so we
// can use their features after runtime checks later.
#include <smmintrin.h>
#include <avxintrin.h>
#include <avx2intrin.h>
diff --git a/gfx/skia/skia/modules/skcms/skcms.cc b/gfx/skia/skia/modules/skcms/skcms.cc
--- a/gfx/skia/skia/modules/skcms/skcms.cc
+++ b/gfx/skia/skia/modules/skcms/skcms.cc
@@ -30,6 +30,8 @@
#include <avx512fintrin.h>
#include <avx512dqintrin.h>
#endif
@ -70,30 +51,21 @@ diff --git a/gfx/skia/skia/third_party/skcms/skcms.cc b/gfx/skia/skia/third_part
+ #define SKCMS_PORTABLE
#endif
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
// We have better testing on 64-bit machines, so force 32-bit machines to behave like 64-bit.
//
// Please do not use sizeof() directly, and size_t only when required.
// (We have no way of enforcing these requests...)
#define SAFE_SIZEOF(x) ((uint64_t)sizeof(x))
@@ -275,30 +277,38 @@ enum {
skcms_Signature_sf32 = 0x73663332,
// XYZ is also a PCS signature, so it's defined in skcms.h
// skcms_Signature_XYZ = 0x58595A20,
};
static bool runtime_cpu_detection = true;
@@ -324,20 +326,28 @@ enum {
static uint16_t read_big_u16(const uint8_t* ptr) {
uint16_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
- return _byteswap_ushort(be);
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ return be;
+#else
#else
- return __builtin_bswap16(be);
+ #if defined(_MSC_VER)
return _byteswap_ushort(be);
-#else
+ return _byteswap_ushort(be);
+ #else
return __builtin_bswap16(be);
+ return __builtin_bswap16(be);
+ #endif
#endif
}
@ -102,20 +74,16 @@ diff --git a/gfx/skia/skia/third_party/skcms/skcms.cc b/gfx/skia/skia/third_part
uint32_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
- return _byteswap_ulong(be);
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__
+ return be;
+#else
#else
- return __builtin_bswap32(be);
+ #if defined(_MSC_VER)
return _byteswap_ulong(be);
-#else
+ return _byteswap_ulong(be);
+ #else
return __builtin_bswap32(be);
+ return __builtin_bswap32(be);
+ #endif
#endif
}
static int32_t read_big_i32(const uint8_t* ptr) {
return (int32_t)read_big_u32(ptr);
}
static float read_big_fixed(const uint8_t* ptr) {

View File

@ -1,64 +1,17 @@
# HG changeset patch
# Parent d1d66f7e4d0e7fd45e91e4fcee07555e72046d48
# Parent 09cd4ac2cc607e85aa572425b824fbab386af607
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
diff --git a/gfx/skia/skia/include/private/SkNx.h b/gfx/skia/skia/include/private/SkNx.h
--- a/gfx/skia/skia/include/private/SkNx.h
+++ b/gfx/skia/skia/include/private/SkNx.h
@@ -233,17 +233,28 @@ struct SkNx<1,T> {
AI SkNx operator<<(int bits) const { return fVal << bits; }
AI SkNx operator>>(int bits) const { return fVal >> bits; }
AI SkNx operator+(const SkNx& y) const { return fVal + y.fVal; }
AI SkNx operator-(const SkNx& y) const { return fVal - y.fVal; }
AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
+ // On Big endian the commented out variant doesn't work,
+ // and honestly, I have no idea why it exists in the first place.
+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
+ // which gets a 64-bit integer, and FromBits returns 32-bit,
+ // cutting off the wrong half again.
+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
+ // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system)
+#ifdef SK_CPU_BENDIAN
+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
+#else
AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
+#endif
AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
AI SkNx operator==(const SkNx& y) const { return FromBits(fVal == y.fVal ? ~0 : 0); }
AI SkNx operator!=(const SkNx& y) const { return FromBits(fVal != y.fVal ? ~0 : 0); }
AI SkNx operator<=(const SkNx& y) const { return FromBits(fVal <= y.fVal ? ~0 : 0); }
AI SkNx operator>=(const SkNx& y) const { return FromBits(fVal >= y.fVal ? ~0 : 0); }
AI SkNx operator< (const SkNx& y) const { return FromBits(fVal < y.fVal ? ~0 : 0); }
diff --git a/gfx/skia/skia/src/opts/SkBlitMask_opts.h b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
@@ -198,17 +198,23 @@ namespace SK_OPTS_NS {
const SkAlpha* mask, size_t maskRB,
int w, int h) {
auto fn = [](const Sk4px& d, const Sk4px& aa) {
// = (s + d(1-sa))aa + d(1-aa)
// = s*aa + d(1-sa*aa)
@@ -210,6 +210,8 @@ namespace SK_OPTS_NS {
// ~~~>
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
// c = 0*aa + d(1-1*aa) = d(1-aa)
+
+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
+#ifdef SK_CPU_BENDIAN
+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
+#else
return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
+#endif
+ // TODO: Check this for endian-issues!
+ // Do we need to switch 255 to the front for all of those tuples?
return (aa & Sk4px(skvx::byte16{0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255}))
+ d.approxMulDiv255(aa.inv());
};
while (h --> 0) {
Sk4px::MapDstAlpha(w, dst, mask, fn);
dst += dstRB / sizeof(*dst);
mask += maskRB / sizeof(*mask);
}
}

View File

@ -3,15 +3,11 @@
This fixes a broken build for gcc < 9 on ppc64le.
This patch can be removed for newer gcc-versions.
diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp
--- a/js/xpconnect/src/XPCWrappedNative.cpp
+++ b/js/xpconnect/src/XPCWrappedNative.cpp
@@ -1072,17 +1072,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
uint32_t* result);
MOZ_ALWAYS_INLINE bool GetInterfaceTypeFromParam(const nsXPTType& type,
nsID* result) const;
Index: firefox-115.0/js/xpconnect/src/XPCWrappedNative.cpp
===================================================================
--- firefox-115.0.orig/js/xpconnect/src/XPCWrappedNative.cpp
+++ firefox-115.0/js/xpconnect/src/XPCWrappedNative.cpp
@@ -1061,7 +1061,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
MutableHandleValue srcp) const;
@ -24,17 +20,7 @@ diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrapped
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
nsXPTCVariant* GetDispatchParam(uint8_t paramIndex) {
if (paramIndex >= mJSContextIndex) {
paramIndex += 1;
}
if (paramIndex >= mOptArgcIndex) {
@@ -1119,17 +1123,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
{
// Success checked later.
mIFaceInfo->GetMethodInfo(mVTableIndex, &mMethodInfo);
}
@@ -1108,7 +1112,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
~CallMethodHelper();
@ -47,8 +33,3 @@ diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrapped
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
void trace(JSTracer* aTrc);
};
// static
bool XPCWrappedNative::CallMethod(XPCCallContext& ccx,
CallMode mode /*= CALL_METHOD */) {

View File

@ -1,49 +0,0 @@
Author: Bernhard M. Wiedemann <bwiedemann suse de>
Date: 2019-07-22
Allow to override build date with SOURCE_DATE_EPOCH
in order to make builds reproducible.
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.
diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py
--- a/python/mozbuild/mozbuild/action/langpack_manifest.py
+++ b/python/mozbuild/mozbuild/action/langpack_manifest.py
@@ -11,16 +11,17 @@
from __future__ import absolute_import, print_function, unicode_literals
import argparse
import sys
import os
import json
import io
import datetime
+import time
import requests
import mozversioncontrol
import mozpack.path as mozpath
from mozpack.chrome.manifest import (
Manifest,
ManifestLocale,
parse_manifest,
)
@@ -100,17 +101,17 @@ def get_dt_from_hg(path):
# ts == "20170914215617"
###
def get_timestamp_for_locale(path):
dt = None
if os.path.isdir(os.path.join(path, ".hg")):
dt = get_dt_from_hg(path)
if dt is None:
- dt = datetime.datetime.utcnow()
+ dt = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
dt = dt.replace(microsecond=0)
return dt.strftime("%Y%m%d%H%M%S")
###
# Parses multiple defines files into a single key-value pair object.
#

26
mozilla-bmo1775202.patch Normal file
View File

@ -0,0 +1,26 @@
From: Mike Hommey <mh@glandium.org>
Date: Sun, 14 Aug 2022 07:01:33 +0900
Subject: Work around bz#1775202 to fix FTBFS on ppc64el
---
third_party/libwebrtc/moz.build | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build
index 976cf373..311519c 100644
--- a/third_party/libwebrtc/moz.build
+++ b/third_party/libwebrtc/moz.build
@@ -566,6 +566,13 @@ if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] == "Linux":
"/third_party/libwebrtc/third_party/pipewire/pipewire_gn"
]
+if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux":
+
+ DIRS += [
+ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn",
+ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn",
+ ]
+
if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
DIRS += [

View File

@ -1,13 +1,13 @@
# HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent 7332dfc4c47d73f1b88850b7727d33096d68e329
# Parent fa8a5832a374ccd7af5db927b992b5d9f15273ef
diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
--- a/modules/fdlibm/src/math_private.h
+++ b/modules/fdlibm/src/math_private.h
@@ -25,17 +25,21 @@
@@ -25,19 +25,24 @@
#include "mozilla/EndianUtils.h"
#include "fdlibm.h"
/*
* Emulate FreeBSD internal double types.
@ -16,10 +16,13 @@ diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private
+#ifdef __i386__
+typedef long double __double_t;
+typedef long double __float_t;
+#else
typedef double __double_t;
+typedef float __float_t;
+#endif
typedef __double_t double_t;
-typedef float __float_t;
/*
* The original fdlibm code used statements like:
@ -27,3 +30,4 @@ diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private
* ix0 = *(n0+(int*)&x); * high word of x *
* ix1 = *((1-n0)+(int*)&x); * low word of x *
* to dig two 32 bit words out of the 64 bit IEEE floating point
* value. That is non-ANSI, and, moreover, the gcc instruction

View File

@ -6,15 +6,11 @@ Solution: Problem is with skia once again. Output of webgl seems endian-correct,
So we swizzle the output of webgl after reading it from readpixels()
Note: This does not fix all webGL sites, but is a step in the right direction
diff --git a/gfx/gl/GLContext.h b/gfx/gl/GLContext.h
--- a/gfx/gl/GLContext.h
+++ b/gfx/gl/GLContext.h
@@ -1548,16 +1548,23 @@ class GLContext : public GenericAtomicRe
AFTER_GL_CALL;
}
void raw_fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid* pixels) {
Index: firefox-115.0/gfx/gl/GLContext.h
===================================================================
--- firefox-115.0.orig/gfx/gl/GLContext.h
+++ firefox-115.0/gfx/gl/GLContext.h
@@ -1560,6 +1560,13 @@ class GLContext : public GenericAtomicRe
BEFORE_GL_CALL;
mSymbols.fReadPixels(x, y, width, height, format, type, pixels);
OnSyncCall();
@ -28,8 +24,3 @@ diff --git a/gfx/gl/GLContext.h b/gfx/gl/GLContext.h
AFTER_GL_CALL;
mHeavyGLCallsSinceLastFlush = true;
}
void fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid* pixels);
public:

View File

@ -1,15 +1,10 @@
# HG changeset patch
# Parent 2640f2f68373b7bec776bb11d3b3fb75c72a8adb
# Parent af2c24874d79cbebb444727ae96f2fefa3f22b47
diff --git a/media/libopus/silk/arm/arm_silk_map.c b/media/libopus/silk/arm/arm_silk_map.c
--- a/media/libopus/silk/arm/arm_silk_map.c
+++ b/media/libopus/silk/arm/arm_silk_map.c
@@ -23,17 +23,17 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
***********************************************************************/
#ifdef HAVE_CONFIG_H
@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE.
# include "config.h"
#endif
@ -18,8 +13,3 @@ diff --git a/media/libopus/silk/arm/arm_silk_map.c b/media/libopus/silk/arm/arm_
#include "NSQ.h"
#include "SigProc_FIX.h"
#if defined(OPUS_HAVE_RTCD)
# if (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && \
!defined(OPUS_ARM_PRESUME_NEON_INTR))

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,17 @@
# HG changeset patch
# Parent 63747fd31719c6e4f7810512a3c57e75a02b8bfd
# Parent 60fc1933af9d4f1769025a6f1d9a60db6b899315
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
@@ -34,16 +34,18 @@ static const char* sLibs[] = {
"libavcodec.55.dylib",
@@ -36,16 +36,18 @@ static const char* sLibs[] = {
"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.60",
"libavcodec.so.59",
+ "libavcodec.so.58.134",
+ "libavcodec.so.58.91",

View File

@ -3,7 +3,7 @@
# Date 1558442915 -7200
# Tue May 21 14:48:35 2019 +0200
# Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
# Parent bd5d1f49975deb730064a16b3079edb53c4a5f84
# Parent 715f01d61df8627117e6aefca540f0c1bba45011
Do not use gconf for proxy settings if not running within Gnome
Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
===================================================================
@ -13,12 +13,7 @@ retrieving revision 1.1
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
@@ -49,20 +49,24 @@ NS_IMETHODIMP
nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
// dbus prevents us from being threadsafe, but this routine should not block
// anyhow
*aMainThreadOnly = true;
return NS_OK;
@@ -52,10 +52,13 @@ nsUnixSystemProxySettings::GetMainThread
}
void nsUnixSystemProxySettings::Init() {
@ -30,15 +25,9 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
+ if (sessionType && !strcmp(sessionType, "gnome")) {
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
+ if (mGSettings) {
+ mGSettings->GetCollectionForSchema(
+ "org.gnome.system.proxy"_ns,
+ getter_AddRefs(mProxySettings));
+ mGSettings->GetCollectionForSchema("org.gnome.system.proxy"_ns,
+ getter_AddRefs(mProxySettings));
+ }
}
}
nsresult nsUnixSystemProxySettings::GetPACURI(nsACString& aResult) {
if (mProxySettings) {
nsCString proxyMode;
// Check if mode is auto
nsresult rv = mProxySettings->GetString("mode"_ns, proxyMode);

View File

@ -1,18 +1,13 @@
# HG changeset patch
# User Petr Cerny <pcerny@novell.com>
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
# Parent 2361c5db1e70e358b2158325e07fa15bb4569c2c
# Parent 1c6a565013e4c5f3494f964269783939cd5ed0b8
Bug 634334 - call to the ntlm_auth helper fails
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
--- a/extensions/auth/nsAuthSambaNTLM.cpp
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -156,17 +156,17 @@ static uint8_t* ExtractMessage(const nsA
*aLen = (length / 4) * 3 - numEquals;
return reinterpret_cast<uint8_t*>(PL_Base64Decode(s, length, nullptr));
}
nsresult nsAuthSambaNTLM::SpawnNTLMAuthHelper() {
@@ -160,7 +160,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
const char* username = PR_GetEnv("USER");
if (!username) return NS_ERROR_FAILURE;
@ -21,8 +16,3 @@ diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNT
"--helper-protocol",
"ntlmssp-client-1",
"--use-cached-creds",
"--username",
username,
nullptr};
bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID,

View File

@ -0,0 +1,13 @@
Index: firefox-102.4.0/mfbt/EnumSet.h
===================================================================
--- firefox-102.4.0.orig/mfbt/EnumSet.h
+++ firefox-102.4.0/mfbt/EnumSet.h
@@ -326,7 +326,7 @@ class EnumSet {
}
}
- static constexpr size_t kMaxBits = MaxBits();
+ static constexpr size_t kMaxBits = EnumSet().MaxBits();
Serialized mBitField;

View File

@ -1,16 +1,12 @@
# HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent 02ffee15578fd4dc2dd5ade32e7dab907d633b0d
# Parent 9959fe2a13a39cbeb98ca1bef2e21caba16717bd
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":
Index: firefox-115.0/build/moz.configure/lto-pgo.configure
===================================================================
--- firefox-115.0.orig/build/moz.configure/lto-pgo.configure
+++ firefox-115.0/build/moz.configure/lto-pgo.configure
@@ -251,8 +251,8 @@ def lto(
cflags.append("-flto")
ldflags.append("-flto")
else:
@ -19,18 +15,10 @@ diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo
+ cflags.append("-flto")
+ ldflags.append("-flto")
if target.os == "Android" and value == "cross":
if target.os == "Android" and "cross" in values:
# 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":
@@ -268,7 +268,7 @@ def lto(
if "full" in values:
cflags.append("-flto")
else:
- cflags.append("-flto=thin")
@ -38,39 +26,20 @@ diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo
# 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
Index: firefox-115.0/build/pgo/profileserver.py
===================================================================
--- firefox-115.0.orig/build/pgo/profileserver.py
+++ firefox-115.0/build/pgo/profileserver.py
@@ -11,7 +11,7 @@ import subprocess
import sys
import glob
import subprocess
import mozcrash
-from mozbuild.base import MozbuildObject, BinaryNotFoundException
+from mozbuild.base import MozbuildObject, BinaryNotFoundException, BuildEnvironmentNotFoundException
-from mozbuild.base import BinaryNotFoundException, MozbuildObject
+from mozbuild.base import BinaryNotFoundException, MozbuildObject, 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)
@@ -87,9 +87,22 @@ if __name__ == "__main__":
locations = ServerLocations()
locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged")
@ -96,17 +65,7 @@ diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
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:
@@ -213,6 +226,10 @@ if __name__ == "__main__":
print("Firefox exited successfully, but produced a crashreport")
sys.exit(1)
@ -117,61 +76,41 @@ diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
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
Index: firefox-115.0/build/unix/mozconfig.unix
===================================================================
--- firefox-115.0.orig/build/unix/mozconfig.unix
+++ firefox-115.0/build/unix/mozconfig.unix
@@ -4,6 +4,15 @@ 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"
+ 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 += [
mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH"
Index: firefox-115.0/extensions/spellcheck/src/moz.build
===================================================================
--- firefox-115.0.orig/extensions/spellcheck/src/moz.build
+++ firefox-115.0/extensions/spellcheck/src/moz.build
@@ -28,3 +28,5 @@ 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;
}
Index: firefox-115.0/toolkit/components/terminator/nsTerminator.cpp
===================================================================
--- firefox-115.0.orig/toolkit/components/terminator/nsTerminator.cpp
+++ firefox-115.0/toolkit/components/terminator/nsTerminator.cpp
@@ -460,6 +460,11 @@ void nsTerminator::StartWatchdog() {
}
#endif
@ -183,8 +122,3 @@ diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components
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);

View File

@ -1,6 +1,10 @@
--- 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(
# HG changeset patch
# Parent 135d931b3e674a670473f69f8c079e741ac63643
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
@@ -668,7 +668,7 @@ def rust_compile_flags(
debug_assertions = False
if debug_symbols:

View File

@ -0,0 +1,12 @@
diff -rup a/Cargo.toml b/Cargo.toml
--- a/Cargo.toml 2023-07-04 15:15:01.089470619 +0200
+++ b/Cargo.toml 2023-07-04 15:24:31.626226962 +0200
@@ -188,3 +188,8 @@ uniffi_bindgen = "=0.23.0"
uniffi_build = "=0.23.0"
uniffi_macros = "=0.23.0"
weedle2 = "=4.0.0"
+
+# Package code v0.1.4 uses code "that will be rejected by a future version of Rust"
+# Shut up such messages for now to make the build succeed
+[future-incompat-report]
+frequency = "never"

View File

@ -3,51 +3,31 @@
# Date 1558452408 -7200
# Tue May 21 17:26:48 2019 +0200
# Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4
# Parent 136e1f2c44a3099b3e49a576fa62c8ad77aa431e
# Parent 783ceb006fcdabe5ad23bd561362e721c7ed5f8c
[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
@@ -157,16 +157,20 @@ using mozilla::DebugOnly;
# define R32_sig(p) ((p)->uc_mcontext.gp_regs[32])
@@ -174,6 +174,10 @@ using mozilla::DebugOnly;
# define FP_sig(p) ((p)->uc_mcontext.gregs[REG_FPRS])
# define SP_sig(p) ((p)->uc_mcontext.gregs[REG_SP])
# 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
+# 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])
@@ -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)
@@ -416,6 +420,10 @@ struct macos_aarch64_context {
# define FP_sig(p) RFP_sig(p)
# define SP_sig(p) RSP_sig(p)
# define SP_sig(p) R03_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
*reinterpret_cast<uint8_t**>(&PC_sig(context)) = pc;
# else
MOZ_CRASH();
# endif
# elif defined(__riscv)
# define PC_sig(p) RPC_sig(p)
# define FP_sig(p) RFP_sig(p)

View File

@ -1,51 +0,0 @@
# HG changeset patch
# Parent acf59ea86dd1d878b43920832093f082dcfc61c0
diff -r acf59ea86dd1 gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp
--- a/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp Mon Mar 09 08:26:10 2020 +0100
+++ b/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp Fri Mar 27 13:30:28 2020 +0100
@@ -7,7 +7,7 @@
#include "include/core/SkPaint.h"
#include "src/shaders/gradients/Sk4fLinearGradient.h"
-
+#include "src/core/SkEndian.h"
#include <cmath>
#include <utility>
@@ -28,6 +28,9 @@
while (n >= 4) {
DstTraits<premul>::store4x(c0, c1, c2, c3, dst, bias0, bias1);
+#ifdef SK_CPU_BENDIAN
+ SkEndianSwap32s(dst, 4);
+#endif
dst += 4;
c0 = c0 + dc4;
@@ -37,12 +40,23 @@
n -= 4;
}
if (n & 2) {
- DstTraits<premul>::store(c0, dst++, bias0);
- DstTraits<premul>::store(c1, dst++, bias1);
+ DstTraits<premul>::store(c0, dst, bias0);
+#ifdef SK_CPU_BENDIAN
+ *dst = SkEndianSwap32(*dst);
+#endif
+ ++dst;
+ DstTraits<premul>::store(c1, dst, bias1);
+#ifdef SK_CPU_BENDIAN
+ *dst = SkEndianSwap32(*dst);
+#endif
+ ++dst;
c0 = c0 + dc2;
}
if (n & 1) {
DstTraits<premul>::store(c0, dst, bias0);
+#ifdef SK_CPU_BENDIAN
+ *dst = SkEndianSwap32(*dst);
+#endif
}
}

File diff suppressed because it is too large Load Diff

View File

@ -89,7 +89,7 @@ WAYLAND_SUPPORTED=%WAYLAND_SUPPORTED
# $XDG_SESSION_TYPE should contain either x11 or wayland
if [ $WAYLAND_SUPPORTED -eq 1 ] && [ "$XDG_SESSION_TYPE" = "wayland" ] && [ -z "$MOZ_ENABLE_WAYLAND" ]; then
export MOZ_ENABLE_WAYLAND=0
export MOZ_ENABLE_WAYLAND=1
fi
##
@ -100,7 +100,7 @@ if [ "$WAYLAND_DISPLAY" ]; then
fi
# xinput2 (boo#1173320)
source /etc/os-release
. /etc/os-release
if [ "$ID" = "opensuse-tumbleweed" ]; then
export MOZ_USE_XINPUT2=1
fi
@ -151,7 +151,7 @@ if [ $MOZILLA_DOWN -ne 0 ]; then
# Try with a local variant first, then without a local variant
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"`
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"`
function create_langpack_link() {
create_langpack_link() {
local language=$*
local langpack=langpack-${language}@firefox.mozilla.org.xpi
if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then

View File

@ -6,10 +6,10 @@
# Parent 81832d035e101471dcf52dd91de287268add7a91
imported patch one_swizzle_to_rule_them_all.patch
Index: firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
Index: firefox-115.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
===================================================================
--- firefox-102.0.orig/gfx/webrender_bindings/RenderCompositorSWGL.cpp
+++ firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
--- firefox-115.0.orig/gfx/webrender_bindings/RenderCompositorSWGL.cpp
+++ firefox-115.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
@@ -7,6 +7,7 @@
#include "RenderCompositorSWGL.h"
@ -18,7 +18,7 @@ Index: firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
#include "mozilla/widget/CompositorWidget.h"
#ifdef MOZ_WIDGET_GTK
@@ -235,6 +237,13 @@ void RenderCompositorSWGL::CommitMappedB
@@ -242,6 +243,13 @@ void RenderCompositorSWGL::CommitMappedB
}
mDT->Flush();

View File

@ -1,10 +1,10 @@
PRODUCT="thunderbird"
CHANNEL="esr102"
VERSION="102.14.0"
CHANNEL="esr115"
VERSION="115.2.0"
VERSION_SUFFIX=""
PREV_VERSION="102.13.1"
PREV_VERSION="115.1.1"
PREV_VERSION_SUFFIX=""
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
RELEASE_REPO="https://hg.mozilla.org/releases/comm-esr102"
RELEASE_TAG="d83d81499d87f2360995ae0448fcaa40e0cd106a"
RELEASE_TIMESTAMP="20230801134847"
RELEASE_REPO="https://hg.mozilla.org/releases/comm-esr115"
RELEASE_TAG="ffd49506d62c329824f7adb4896602a8c77ec7e8"
RELEASE_TIMESTAMP="20230828145448"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:68514ac2e196b3526588b2957f2ab51b99b366af497fe13d1518a52bf8298c83
size 502877912

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmTJLHwACgkQ4207E/PZ
MnTDMQ//RP0i4TeYipFmuih2+ae5mNjSCuRCsH3Cq+eOXT4l1vr79PCRcWQwDjJN
R4JDfxSE8eUkVEHmoj11TySXFRHRCNOKRIKveRHayGJSn54SMt9aHHicqbZGDdjp
BjESw8ZVlS9u+9TVWGK3Ah0roHBr9oSHxeC3Pj5VtAwz5Bb3RSimMnArk3V8b7dB
oZLZfbm5bWeuL26mhias8NZS3aINDvNLRHyVBOiIHKCODIFh2Upql9NPhSpCmV0x
PXEc2QGozNXnbfNoOcwoBHcrsAeFdqjv6/gVRLIqa9hQ7uhiXjGaG3vJrRzwP9hM
2kFgCcGisnZDWTs1KOhGTEBezcqIQ+p1OSu/NbfrRKQmnUo0bV3+eqIvwQA2dao8
wuzps9IBKdZwVDNC6CFIgOzTVimCg99SvcmFu2PxjjJauTgZ6Hrva5C/4vddBkyl
oignfiDU6+sVK2Prfz44ydHo8ZUdjxz31xfSxFObHEfySkdDTE0UvNUHWU++g+Ci
E0AqbwvNk3SuFfuQirnan/dJlstPGVjxZB8bfc2WG4Qz/z6vrygB0oKzbu2nuPXM
FWC/NQkpMoBB7eXcZA8vIK81DSkk/vPiZ/CjYDjQqaZxnRxaZtWLbfqOgHfBTLDx
kjQh+AdS1unHJE0DhHq5mGGFtCmhyNgh9uk5wJbyseuTGYzgOKw=
=K3lJ
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:57ef08e5134e8370d60b3b3f920ffcf3744721f50b0dfad379ceb260ced6d940
size 531890376

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmTs5TgACgkQ4207E/PZ
MnRV6g/+MCygp8FZE4/x29Y1N+NwqjSMtcAYmd0IET0O04pEimNUI0erITEg3Api
4vMsc1HJ493EDDQeCr/LJmpsIFzopDYJNNCeKska+NAtgFmgTDgciExElPK22v4h
T7xuMiPPkNCVX9kGFg1zmLAdj7WnHgaT6ZMPI1DYixU0CzBwlJIihuNmnWfyTap0
xBrz/KzEtGjzhB2e+BVOumOo2WZ7q2+t2AE6MvHbVtijkKu33RWbb9O2I/lpCfBx
kABdpleNSL4TyxPBvnLfesVmZzTyw8UzPJ7hiiTR2Pj9ELAP5sX84lr4/YTUrxEK
XOrWr5lSaXgzB/Oq72nl9IINDrsLxlTagyyGjdROKc9W6HboQPuVvXL+ShohFt5J
ACv6e9xGAjhQo0nuT4zTCbLnDKGEi4EWnlb50F3CTy99gFRtxVoti3XpGkTU9xn4
VrAnq6QRh1YuJYslPz4v8Sn0kF9TI1gJtl7fzXXOwyvKLPgT1H78Ss0jyZv99J0O
oNB68Di3u0x3A70rx0z41QkL2Ohj+2iIxxjUS9dftQmjmJJ9nbFWKPdWRbR1Noi8
dMrJ1W53VlltaRATDCMSuhAAc145YqCiUTVeR0griRFsh+LEQqEncCx3AeQo3khZ
PLHQ9+cxsvPzGbfeOeilHiiW32P4H0FLh4reXojK2iZcDkWC+5k=
=skc3
-----END PGP SIGNATURE-----