forked from pool/MozillaThunderbird
- Mozilla Thunderbird 115.15.0
MFSA 2024-44 (bsc#1229821) * CVE-2024-8381 (bmo#1912715) Type confusion when looking up a property name in a "with" block * CVE-2024-8382 (bmo#1906744) Internal event interfaces were exposed to web content when browser EventHandler listener callbacks ran * CVE-2024-8384 (bmo#1911288) Garbage collection could mis-color cross-compartment objects in OOM conditions - Use gcc13 on Tumbleweed and where it is available. - Don't use gcc14 as sources don't compile. OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=770
This commit is contained in:
commit
96fa744639
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
6629
MozillaThunderbird.changes
Normal file
6629
MozillaThunderbird.changes
Normal file
File diff suppressed because it is too large
Load Diff
670
MozillaThunderbird.spec
Normal file
670
MozillaThunderbird.spec
Normal file
@ -0,0 +1,670 @@
|
||||
#
|
||||
# spec file for package MozillaThunderbird
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# 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
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define _dwz_low_mem_die_limit 40000000
|
||||
%define _dwz_max_die_limit 200000000
|
||||
|
||||
# changed with every update
|
||||
# orig_version vs. mainver: To have beta-builds
|
||||
# FF70beta3 would be released as FF69.99
|
||||
# orig_version would be the upstream tar ball
|
||||
# orig_version 70.0
|
||||
# orig_suffix b3
|
||||
# major 69
|
||||
# mainver %%major.99
|
||||
%define major 115
|
||||
%define mainver %major.15.0
|
||||
%define orig_version 115.15.0
|
||||
%define orig_suffix %nil
|
||||
%define update_channel release
|
||||
%define source_prefix thunderbird-%{orig_version}
|
||||
|
||||
# PGO builds do not work in TW currently (bmo#1680306)
|
||||
%define do_profiling 0
|
||||
|
||||
# upstream default is clang (to use gcc for large parts set to 0)
|
||||
%define clang_build 0
|
||||
|
||||
%bcond_with only_print_mozconfig
|
||||
|
||||
%bcond_without mozilla_tb_kde4
|
||||
%bcond_with mozilla_tb_valgrind
|
||||
%bcond_without mozilla_tb_optimize_for_size
|
||||
|
||||
# define if ccache should be used or not
|
||||
%define useccache 0
|
||||
|
||||
# Firefox only supports i686
|
||||
%ifarch %ix86
|
||||
ExclusiveArch: i586 i686
|
||||
BuildArch: i686
|
||||
%{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
|
||||
%define pkgname MozillaThunderbird
|
||||
%define srcname thunderbird
|
||||
%define appname Thunderbird
|
||||
%define progdir %{_prefix}/%_lib/%{progname}
|
||||
%define gnome_dir %{_prefix}
|
||||
%define desktop_file_name %{progname}
|
||||
%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
|
||||
%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
|
||||
%define with_pipewire0_3 0
|
||||
# Wayland is too old on Leap <=15.1 as well
|
||||
%define wayland_supported 0
|
||||
%endif
|
||||
|
||||
Name: %{pkgname}
|
||||
BuildRequires: Mesa-devel
|
||||
BuildRequires: alsa-devel
|
||||
BuildRequires: autoconf213
|
||||
BuildRequires: dbus-1-glib-devel
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: memory-constraints
|
||||
%if 0%{?suse_version} >= 1699
|
||||
BuildRequires: gcc13
|
||||
BuildRequires: gcc13-c++
|
||||
%else
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600
|
||||
BuildRequires: gcc13
|
||||
BuildRequires: gcc13-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
%endif
|
||||
BuildRequires: cargo1.72
|
||||
BuildRequires: rust1.72
|
||||
%if 0%{useccache} != 0
|
||||
BuildRequires: ccache
|
||||
%endif
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: mozilla-nspr-devel >= 4.35
|
||||
BuildRequires: mozilla-nss-devel >= 3.90
|
||||
BuildRequires: nasm >= 2.14
|
||||
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.7
|
||||
BuildRequires: python3-curses
|
||||
BuildRequires: python3-devel
|
||||
%endif
|
||||
BuildRequires: rust-cbindgen >= 0.24.3
|
||||
BuildRequires: unzip
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: xorg-x11-libXt-devel
|
||||
%if 0%{?do_profiling}
|
||||
BuildRequires: xvfb-run
|
||||
%endif
|
||||
BuildRequires: yasm
|
||||
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
|
||||
BuildRequires: pkgconfig(gtk+-unix-print-3.0)
|
||||
BuildRequires: pkgconfig(libffi)
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
%if %{with_pipewire0_3}
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
%endif
|
||||
%if %{with mozilla_tb_valgrind}
|
||||
BuildRequires: pkgconfig(valgrind)
|
||||
%endif
|
||||
# libavcodec is required for H.264 support but the
|
||||
# openSUSE version is currently not able to play H.264
|
||||
# therefore the Packman version is required
|
||||
# minimum version of libavcodec is 53
|
||||
Recommends: libavcodec-full >= 0.10.16
|
||||
Version: %{mainver}
|
||||
Release: 0
|
||||
Provides: MozillaThunderbird-devel = %{version}
|
||||
Provides: thunderbird = %{version}
|
||||
Obsoletes: MozillaThunderbird-devel < %{version}
|
||||
Provides: appdata()
|
||||
Provides: appdata(thunderbird.appdata.xml)
|
||||
%if %{with mozilla_tb_kde4}
|
||||
# this is needed to match this package with the kde4 helper package without the main package
|
||||
# having a hard requirement on the kde4 package
|
||||
%define kde_helper_version 6
|
||||
Provides: mozilla-kde4-version = %{kde_helper_version}
|
||||
%endif
|
||||
Summary: An integrated email, news feeds, chat, and newsgroups client
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Email/Clients
|
||||
URL: https://www.thunderbird.net/
|
||||
%if !%{with only_print_mozconfig}
|
||||
Source: http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz
|
||||
Source1: thunderbird.desktop
|
||||
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/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-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
|
||||
Patch23: thunderbird-fix-CVE-2024-34703.patch
|
||||
%if 0%{?product_libs_llvm_ver} > 17
|
||||
# LLVM18 breaks building Firefox ESR:
|
||||
Patch30: mozilla-fix-issues-with-llvm18.patch
|
||||
%endif
|
||||
%endif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
PreReq: /bin/sh
|
||||
PreReq: coreutils
|
||||
PreReq: fileutils
|
||||
PreReq: textutils
|
||||
### build options end
|
||||
%requires_ge mozilla-nspr
|
||||
%requires_ge mozilla-nss
|
||||
%requires_ge libfreetype6
|
||||
Recommends: libcanberra0
|
||||
Recommends: libotr5
|
||||
Recommends: libpulse0
|
||||
Requires: %{name}-openpgp
|
||||
Suggests: %{name}-openpgp-librnp
|
||||
Requires(post): desktop-file-utils
|
||||
Requires(postun): desktop-file-utils
|
||||
%define libgssapi libgssapi_krb5.so.2
|
||||
ExcludeArch: armv6l armv6hl
|
||||
|
||||
%description
|
||||
Thunderbird is a free, open-source, cross-platform application for
|
||||
managing email, news feeds, chat, and news groups. It is a local
|
||||
(rather than browser- or web-based) email application that is powerful
|
||||
yet easy to use.
|
||||
|
||||
%package openpgp-librnp
|
||||
Summary: Thunderbird's upstream OpenPGP implementation
|
||||
Group: Productivity/Networking/Email/Clients
|
||||
Requires: %{name} = %{version}
|
||||
Provides: %{name}-openpgp
|
||||
Conflicts: %{name}-openpgp
|
||||
|
||||
%description openpgp-librnp
|
||||
Thunderbird's upstream OpenPGP implementation.
|
||||
|
||||
%if %localize
|
||||
%package translations-common
|
||||
Summary: Common translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}: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)
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
%description translations-common
|
||||
This package contains several common languages for the user interface
|
||||
of %{appname}.
|
||||
|
||||
%package translations-other
|
||||
Summary: Extra translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ach;af;an;ast;az;be;bg;bn;br;bs;cak;cy;dsb;en_CA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;ia;id;is;ka;kab;kk;km;kn;lij;lt;lv;mk;mr;ms;my;ne_NP;nn_NO;oc;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;ur;uz;vi;xh)
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
%description translations-other
|
||||
This package contains rarely used languages for the user interface
|
||||
of %{appname}.
|
||||
%endif
|
||||
|
||||
%if !%{with only_print_mozconfig}
|
||||
%prep
|
||||
%if %localize
|
||||
|
||||
# If generated incorrectly, the tarball will be ~270B in
|
||||
# size, so 1MB seems like good enough limit to check.
|
||||
MINSIZE=1048576
|
||||
if (( $(stat -Lc%s "%{SOURCE7}") < MINSIZE)); then
|
||||
echo "Translations tarball %{SOURCE7} not generated properly."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
%setup -q -n %{srcname}-%{orig_version} -b 7
|
||||
%else
|
||||
%setup -q -n %{srcname}-%{orig_version}
|
||||
%endif
|
||||
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}/%{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" {} +
|
||||
|
||||
%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
|
||||
echo fix kde helper version in the .spec file
|
||||
exit 1
|
||||
fi
|
||||
%endif
|
||||
|
||||
# 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 MOZILLA_OFFICIAL=1
|
||||
export BUILD_OFFICIAL=1
|
||||
export MOZ_TELEMETRY_REPORTING=1
|
||||
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
|
||||
export CFLAGS="%{optflags}"
|
||||
%if 0%{?suse_version} >= 1699
|
||||
export CC=gcc-13
|
||||
export CXX=g++-13
|
||||
%else
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600
|
||||
export CC=gcc-13
|
||||
export CXX=g++-13
|
||||
%else
|
||||
%if 0%{?clang_build} == 0
|
||||
export CC=gcc
|
||||
export CXX=g++
|
||||
%if 0%{?gcc_version:%{gcc_version}} >= 12
|
||||
export CFLAGS="\$CFLAGS -fimplicit-constexpr"
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
%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
|
||||
%if 0%{?clang_build} == 0
|
||||
#export CFLAGS="\$CFLAGS -mminimal-toc"
|
||||
%endif
|
||||
%endif
|
||||
%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
|
||||
EOF
|
||||
# Done with env-variables.
|
||||
source ./.obsenv.sh
|
||||
|
||||
%ifarch aarch64 %arm ppc64 ppc64le riscv64
|
||||
%limit_build -m 2500
|
||||
%endif
|
||||
|
||||
# Generating mozconfig
|
||||
cat << EOF > $MOZCONFIG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
|
||||
mk_add_options MOZ_OBJDIR=$RPM_BUILD_DIR/obj
|
||||
ac_add_options --disable-bootstrap
|
||||
ac_add_options --prefix=%{_prefix}
|
||||
ac_add_options --libdir=%{_libdir}
|
||||
ac_add_options --includedir=%{_includedir}
|
||||
ac_add_options --enable-application=comm/mail
|
||||
ac_add_options --enable-release
|
||||
%if 0%{wayland_supported}
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
|
||||
%else
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
%endif
|
||||
# bmo#1441155 - Disable the generation of Rust debug symbols on Linux32
|
||||
%ifarch %ix86 %arm
|
||||
ac_add_options --disable-debug-symbols
|
||||
%else
|
||||
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
|
||||
%ifarch %arm %ix86 x86_64
|
||||
ac_add_options --disable-elf-hack
|
||||
%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
|
||||
ac_add_options --enable-alsa
|
||||
ac_add_options --disable-debug
|
||||
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
|
||||
%endif
|
||||
%ifarch %arm
|
||||
ac_add_options --with-fpu=vfpv3-d16
|
||||
ac_add_options --with-float-abi=hard
|
||||
%ifarch armv6l armv6hl
|
||||
ac_add_options --with-arch=armv6
|
||||
%else
|
||||
ac_add_options --with-arch=armv7-a
|
||||
%endif
|
||||
%endif
|
||||
# mitigation/workaround for bmo#1512162
|
||||
%ifarch s390x
|
||||
ac_add_options --enable-optimize="-O1"
|
||||
%endif
|
||||
%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
|
||||
%if 0%{?do_profiling}
|
||||
ac_add_options MOZ_PGO=1
|
||||
%endif
|
||||
%endif
|
||||
%if %{with mozilla_tb_valgrind}
|
||||
ac_add_options --disable-jemalloc
|
||||
ac_add_options --enable-valgrind
|
||||
%endif
|
||||
%endif
|
||||
EOF
|
||||
|
||||
%if %{with only_print_mozconfig}
|
||||
cat ./.obsenv.sh
|
||||
cat $MOZCONFIG
|
||||
%else
|
||||
|
||||
%if 0%{useccache} != 0
|
||||
ccache -s
|
||||
%endif
|
||||
%if 0%{?do_profiling}
|
||||
xvfb-run --server-args="-screen 0 1920x1080x24" \
|
||||
%endif
|
||||
./mach build -v
|
||||
|
||||
# build additional locales
|
||||
%if %localize
|
||||
truncate -s 0 %{_tmppath}/translations.{common,other}
|
||||
# langpack-build can not be done in parallel easily (see https://bugzilla.mozilla.org/show_bug.cgi?id=1660943)
|
||||
# Therefore, we have to have a separate obj-dir for each language
|
||||
# We do this, by creating a mozconfig-template with the necessary switches
|
||||
# and a placeholder obj-dir, which gets copied and modified for each language
|
||||
|
||||
# Create mozconfig-template for langbuild
|
||||
cat << EOF > ${MOZCONFIG}_LANG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
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-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|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
|
||||
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 -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.xpi \
|
||||
>> %{_tmppath}/translations.$_l10ntarget
|
||||
' -- {}
|
||||
%endif
|
||||
|
||||
%if 0%{useccache} != 0
|
||||
ccache -s
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%install
|
||||
cd $RPM_BUILD_DIR/obj
|
||||
source %{SOURCE4}
|
||||
export MOZ_SOURCE_STAMP=$RELEASE_TAG
|
||||
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/%{srcname}/* %{buildroot}%{progdir}
|
||||
mkdir -p %{buildroot}%{progdir}/extensions
|
||||
cp -rf $RPM_BUILD_DIR/langpacks_artifacts/* %{buildroot}%{progdir}/extensions/
|
||||
|
||||
# remove some executable permissions
|
||||
find %{buildroot}%{progdir} \
|
||||
-name "*.js" -o \
|
||||
-name "*.jsm" -o \
|
||||
-name "*.rdf" -o \
|
||||
-name "*.properties" -o \
|
||||
-name "*.dtd" -o \
|
||||
-name "*.txt" -o \
|
||||
-name "*.xml" -o \
|
||||
-name "*.css" \
|
||||
-exec chmod a-x {} +
|
||||
# remove mkdir.done files from installed base
|
||||
find %{buildroot}%{progdir} -type f -name ".mkdir.done" -delete
|
||||
# overwrite the mozilla start-script and link it to /usr/bin
|
||||
mkdir --parents %{buildroot}%{_bindir}/
|
||||
sed "s:%%PREFIX:%{_prefix}:g
|
||||
s:%%PROGDIR:%{progdir}:g
|
||||
s:%%APPNAME:%{progname}:g
|
||||
s:%%WAYLAND_SUPPORTED:%{wayland_supported}:g
|
||||
s:%%PROFILE:.thunderbird:g" \
|
||||
%{SOURCE3} > %{buildroot}%{progdir}/%{progname}.sh
|
||||
chmod 755 %{buildroot}%{progdir}/%{progname}.sh
|
||||
ln -sf ../..%{progdir}/%{progname}.sh %{buildroot}%{_bindir}/%{progname}
|
||||
# desktop file
|
||||
mkdir -p %{buildroot}%{_datadir}/applications
|
||||
install -m 644 %{SOURCE1} \
|
||||
%{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||
%suse_update_desktop_file %{desktop_file_name} Network Email GTK
|
||||
# appdata
|
||||
mkdir -p %{buildroot}%{_datadir}/appdata
|
||||
cp %{SOURCE9} %{buildroot}%{_datadir}/appdata/%{desktop_file_name}.appdata.xml
|
||||
# apply SUSE defaults
|
||||
sed -e 's,RPM_VERSION,%{mainversion},g
|
||||
s,GSSAPI,%{libgssapi},g' \
|
||||
%{SOURCE6} > suse-default-prefs
|
||||
cp suse-default-prefs %{buildroot}%{progdir}/defaults/pref/all-opensuse.js
|
||||
rm suse-default-prefs
|
||||
# use correct locale for useragent
|
||||
cat > %{buildroot}%{progdir}/defaults/pref/all-l10n.js << EOF
|
||||
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
|
||||
EOF
|
||||
#
|
||||
# Install symbolic icon for GNOME
|
||||
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 256; do
|
||||
mkdir -p %{buildroot}%{gnome_dir}/share/icons/hicolor/${size}x${size}/apps/
|
||||
cp %{buildroot}%{progdir}/chrome/icons/default/default$size.png \
|
||||
%{buildroot}%{gnome_dir}/share/icons/hicolor/${size}x${size}/apps/%{progname}.png
|
||||
done
|
||||
# excluded files
|
||||
rm -f %{buildroot}%{progdir}/thunderbird
|
||||
rm -f %{buildroot}%{progdir}/removed-files
|
||||
rm -f %{buildroot}%{progdir}/precomplete
|
||||
rm -f %{buildroot}%{progdir}/updater
|
||||
rm -f %{buildroot}%{progdir}/updater.ini
|
||||
rm -f %{buildroot}%{progdir}/update.locale
|
||||
rm -f %{buildroot}%{progdir}/dictionaries/en-US*
|
||||
rm -f %{buildroot}%{progdir}/nspr-config
|
||||
# Some sites use different partitions for /usr/(lib|lib64) and /usr/share. Since you
|
||||
# can't create hardlinks across partitions, we'll do this more than once.
|
||||
%fdupes %{buildroot}%{progdir}
|
||||
%fdupes %{buildroot}%{_libdir}/mozilla
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
|
||||
%post
|
||||
# update mime and desktop database
|
||||
%mime_database_post
|
||||
%desktop_database_post
|
||||
%icon_theme_cache_post
|
||||
exit 0
|
||||
|
||||
%postun
|
||||
%icon_theme_cache_postun
|
||||
%desktop_database_postun
|
||||
%mime_database_postun
|
||||
exit 0
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%attr(755,root,root) %{progdir}/%{progname}.sh
|
||||
%dir %{progdir}
|
||||
%{progdir}/application.ini
|
||||
%{progdir}/dependentlibs.list
|
||||
%{progdir}/*.so
|
||||
%exclude %{progdir}/librnp.so
|
||||
%{progdir}/glxtest
|
||||
%if 0%{wayland_supported}
|
||||
%{progdir}/vaapitest
|
||||
%endif
|
||||
%{progdir}/omni.ja
|
||||
%{progdir}/fonts/
|
||||
%{progdir}/pingsender
|
||||
%{progdir}/platform.ini
|
||||
%{progdir}/plugin-container
|
||||
%{progdir}/rnp-cli
|
||||
%{progdir}/rnpkeys
|
||||
%{progdir}/thunderbird-bin
|
||||
# crashreporter files
|
||||
%if %crashreporter
|
||||
%{progdir}/crashreporter
|
||||
%{progdir}/crashreporter.ini
|
||||
%{progdir}/Throbber-small.gif
|
||||
%{progdir}/minidump-analyzer
|
||||
%endif
|
||||
%dir %{progdir}/chrome/
|
||||
%{progdir}/chrome/icons/
|
||||
%{progdir}/defaults/
|
||||
%{progdir}/isp/
|
||||
%{_datadir}/appdata/
|
||||
%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||
%{_datadir}/icons/hicolor/*/apps/%{progname}.png
|
||||
%{_datadir}/icons/hicolor/symbolic/apps/%{progname}-symbolic.svg
|
||||
%{_bindir}/%{progname}
|
||||
|
||||
%files openpgp-librnp
|
||||
%{progdir}/librnp.so
|
||||
|
||||
%if %localize
|
||||
%files translations-common -f %{_tmppath}/translations.common
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}/extensions/
|
||||
|
||||
%files translations-other -f %{_tmppath}/translations.other
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}/extensions/
|
||||
%endif
|
||||
|
||||
%changelog
|
60
_constraints
Normal file
60
_constraints
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<constraints>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">36</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">9</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
<hostlabel exclude="true">SLOW_CPU</hostlabel>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>armv6l</arch>
|
||||
<arch>armv7l</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">12</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">5</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">16</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>ppc64</arch>
|
||||
<arch>ppc64le</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">11</size>
|
||||
</physicalmemory>
|
||||
<memoryperjob>
|
||||
<size unit="M">2500</size>
|
||||
</memoryperjob>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>x86_64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">18</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
569
create-tar.sh
Normal file
569
create-tar.sh
Normal file
@ -0,0 +1,569 @@
|
||||
#!/bin/bash
|
||||
|
||||
function main() {
|
||||
# Exit script on CTRL+C
|
||||
trap "exit" INT
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
print_usage_and_exit
|
||||
fi
|
||||
|
||||
check_required_tools
|
||||
|
||||
# Sourcing the given tar_stamps-file to have the variables available
|
||||
TAR_STAMP="$1"
|
||||
source "$TAR_STAMP" || print_usage_and_exit
|
||||
|
||||
set_internal_variables
|
||||
|
||||
check_what_to_do_with_source_tarballs
|
||||
download_upstream_source_tarballs
|
||||
|
||||
if [ -z ${SKIP_LOCALES+x} ]; then
|
||||
check_what_to_do_with_locales_tarballs
|
||||
create_locales_tarballs
|
||||
else
|
||||
printf "%-40s: User forced skip (SKIP_LOCALES set)\n" "locales"
|
||||
fi
|
||||
|
||||
clean_up_old_tarballs
|
||||
}
|
||||
|
||||
function print_usage_and_exit() {
|
||||
echo "Usage: create-tar.sh tar_stamps"
|
||||
echo ""
|
||||
echo "Where tar_stamps should look like this:"
|
||||
echo ""
|
||||
cat << EOF
|
||||
# Node ID: 64ee63facd4ff96b3e8590cff559d7e97ac6b061
|
||||
PRODUCT="firefox" # "firefox" or "thunderbird"
|
||||
CHANNEL="esr60"
|
||||
VERSION="60.7.0"
|
||||
VERSION_SUFFIX="esr"
|
||||
RELEASE_TAG="" # Needs only to be set if no tar-ball can be downloaded
|
||||
PREV_VERSION="60.6.3" # Prev. version only needed for locales (leave empty to force l10n-generation)
|
||||
PREV_VERSION_SUFFIX="esr"
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n-generation
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
function check_required_tools() {
|
||||
# check required tools
|
||||
check_for_binary /usr/bin/hg "mercurial"
|
||||
check_for_binary /usr/bin/jq "jq"
|
||||
which python3 > /dev/null || exit 1
|
||||
|
||||
# use parallel compression, if available
|
||||
compression='-J'
|
||||
pixz -h > /dev/null 2>&1
|
||||
if (($? != 127)); then
|
||||
compression='-Ipixz'
|
||||
fi
|
||||
}
|
||||
|
||||
function set_internal_variables() {
|
||||
# Internal variables
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
if [ "$PRODUCT" = "firefox" ]; then
|
||||
FF_LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json"
|
||||
else
|
||||
FF_LOCALE_FILE="thunderbird-$VERSION/browser/locales/l10n-changesets.json"
|
||||
TB_LOCALE_FILE="thunderbird-$VERSION/comm/mail/locales/l10n-changesets.json"
|
||||
FF_PREV_LOCALE_FILE="thunderbird-$PREV_VERSION/browser/locales/l10n-changesets.json"
|
||||
TB_PREV_LOCALE_FILE="thunderbird-$PREV_VERSION/comm/mail/locales/l10n-changesets.json"
|
||||
L10N_STRING_PATTERNS="thunderbird-$VERSION/comm/python/l10n/tbxchannel/l10n_merge.py"
|
||||
fi
|
||||
|
||||
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"
|
||||
PRODUCT_URL="https://product-details.mozilla.org/1.0"
|
||||
ALREADY_EXTRACTED_LOCALES_FILE=0
|
||||
}
|
||||
|
||||
function get_ftp_candidates_url() {
|
||||
local CURR_PRODUCT="$1"
|
||||
local VERSION_WITH_SUFFIX="$2"
|
||||
printf "$FTP_CANDIDATES_BASE_URL/$VERSION_WITH_SUFFIX-candidates" "$CURR_PRODUCT"
|
||||
}
|
||||
|
||||
function check_tarball_source () {
|
||||
TARBALL=$1
|
||||
# Print out what is going to be done:
|
||||
if [ -e "$TARBALL" ]; then
|
||||
echo "Reuse existing file"
|
||||
elif wget --spider "$FTP_URL/$TARBALL" 2> /dev/null; then
|
||||
echo "Download file"
|
||||
else
|
||||
local CANDIDATE_TARBALL_LOCATION=""
|
||||
CANDIDATE_TARBALL_LOCATION="$(printf "%s/%s/source/%s" "$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")" "$BUILD_ID" "$TARBALL" )"
|
||||
if wget --spider "$CANDIDATE_TARBALL_LOCATION" 2> /dev/null; then
|
||||
echo "Download UNRELEASED candidate ($BUILD_ID)"
|
||||
else
|
||||
echo "Mercurial checkout"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function ask_cont_abort_question() {
|
||||
while true; do
|
||||
read -r -p "$1 [(c)ontinue/(a)bort] " ca
|
||||
case $ca in
|
||||
[Cc]* ) return 0 ;;
|
||||
[Aa]* ) return 1 ;;
|
||||
* ) echo "Please answer c or a.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
function check_for_binary() {
|
||||
if ! test -x "$1"; then
|
||||
echo "$1 is missing: execute zypper in $2"
|
||||
exit 5
|
||||
fi
|
||||
}
|
||||
|
||||
function get_source_stamp() {
|
||||
local CURR_BUILD_ID="$1"
|
||||
local FTP_CANDIDATES_BASE_URL=$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")
|
||||
local FTP_CANDIDATES_JSON_SUFFIX="${CURR_BUILD_ID}/linux-x86_64/en-US/$PRODUCT-$VERSION$VERSION_SUFFIX.json"
|
||||
local BUILD_JSON=$(curl --silent --fail "$FTP_CANDIDATES_BASE_URL/$FTP_CANDIDATES_JSON_SUFFIX") || return 1;
|
||||
local REV=$(echo "$BUILD_JSON" | jq .moz_source_stamp)
|
||||
local SOURCE_REPO=$(echo "$BUILD_JSON" | jq .moz_source_repo)
|
||||
local TIMESTAMP=$(echo "$BUILD_JSON" | jq .buildid)
|
||||
echo "Extending $TAR_STAMP with:"
|
||||
echo "RELEASE_REPO=${SOURCE_REPO}"
|
||||
echo "RELEASE_TAG=${REV}"
|
||||
echo "RELEASE_TIMESTAMP=${TIMESTAMP}"
|
||||
# We "remove and add" instead of "replace" in case the entries are not there yet
|
||||
# Removing the old RELEASE_-tags
|
||||
sed -i "/RELEASE_\(TAG\|REPO\|TIMESTAMP\)=.*/d" "$TAR_STAMP"
|
||||
# Appending the new
|
||||
echo "RELEASE_REPO=$SOURCE_REPO" >> "$TAR_STAMP"
|
||||
echo "RELEASE_TAG=$REV" >> "$TAR_STAMP"
|
||||
echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP"
|
||||
}
|
||||
|
||||
function get_build_number() {
|
||||
local LAST_FOUND=""
|
||||
local CURR_PRODUCT="$1"
|
||||
local VERSION_WITH_SUFFIX="$2"
|
||||
local CURR_BUILD_ID=""
|
||||
local CURR_FTP_BASE_URL=""
|
||||
CURR_BUILD_ID=$(curl --silent "$PRODUCT_URL/$CURR_PRODUCT.json" | jq -e '.["releases"] | .["'$CURR_PRODUCT-$VERSION_WITH_SUFFIX'"] | .["build_number"]')
|
||||
|
||||
# Slow fall-back
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Build number not found in product URL, falling back to slow FTP-parsing." 1>&2
|
||||
CURR_FTP_BASE_URL=$(get_ftp_candidates_url "$CURR_PRODUCT" "$VERSION_WITH_SUFFIX")
|
||||
# Unfortunately, locales-files are not associated to releases, but to builds.
|
||||
# And since we don't know which build was the final build, we grep them all from
|
||||
# the candidates-page, sort them and take the last one which should be the oldest
|
||||
# Error only if not even the first one exists
|
||||
LAST_FOUND=$(curl --silent --fail "$CURR_FTP_BASE_URL/" | grep -o "build[0-9]*/" | sort | uniq | tail -n 1 | cut -d "/" -f 1)
|
||||
else
|
||||
LAST_FOUND="build$CURR_BUILD_ID"
|
||||
fi
|
||||
|
||||
if [ "$LAST_FOUND" != "" ]; then
|
||||
echo "$LAST_FOUND"
|
||||
return 0
|
||||
else
|
||||
echo "Error: Could not find build-number for $CURR_PRODUCT $VERSION_WITH_SUFFIX !" 1>&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_get() {
|
||||
local CURR_PRODUCT="$1"
|
||||
local TMP_VERSION="$2"
|
||||
local CURR_BUILD_ID="$3"
|
||||
# Make first letter of CURR_PRODUCT upper case
|
||||
CURR_PRODUCT_CAP="${CURR_PRODUCT^}"
|
||||
URL_TO_CHECK="${LOCALES_URL}/${CURR_PRODUCT_CAP}-${TMP_VERSION}"
|
||||
FINAL_URL="${URL_TO_CHECK}-${CURR_BUILD_ID}.json"
|
||||
if wget --quiet --spider "$FINAL_URL"; then
|
||||
echo "$FINAL_URL"
|
||||
return 0
|
||||
else
|
||||
echo "Error: Could not find locales-file (json) for Firefox $TMP_VERSION !" 1>&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_parse_file() {
|
||||
FILE="$1"
|
||||
python3 -c "import json; import sys; \
|
||||
print('\n'.join(['{} {}'.format(key, value['revision']) \
|
||||
for key, value in sorted(json.load(sys.stdin).items())]));" < "$FILE"
|
||||
}
|
||||
|
||||
function locales_parse_url() {
|
||||
URL="$1"
|
||||
curl -s "$URL" | python3 -c "import json; import sys; \
|
||||
print('\n'.join(['{} {}'.format(key, value['changeset']) \
|
||||
for key, value in sorted(json.load(sys.stdin)['locales'].items())]));"
|
||||
}
|
||||
|
||||
function extract_locales_file() {
|
||||
if [ $ALREADY_EXTRACTED_LOCALES_FILE -ne 1 ]; then
|
||||
# still need to extract the locale information from the archive
|
||||
echo "extract locale changesets"
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
tar -xf "$SOURCE_TARBALL" "$FF_LOCALE_FILE" "$TB_LOCALE_FILE" "$L10N_STRING_PATTERNS"
|
||||
else
|
||||
tar -xf "$SOURCE_TARBALL" "$FF_LOCALE_FILE"
|
||||
fi
|
||||
ALREADY_EXTRACTED_LOCALES_FILE=1
|
||||
else
|
||||
echo "Skipping locale changeset extraction, as it was already done."
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_unchanged() {
|
||||
local CURR_PRODUCT="$1"
|
||||
local CURR_BUILD_ID="$2"
|
||||
local PREV_BUILD_ID=$(get_build_number "$CURR_PRODUCT" "$PREV_VERSION$PREV_VERSION_SUFFIX")
|
||||
# If no json-file for one of the versions can be found, we say "they changed"
|
||||
prev_url=$(locales_get "$CURR_PRODUCT" "$PREV_VERSION$PREV_VERSION_SUFFIX" "$PREV_BUILD_ID") || return 1
|
||||
prev_content=$(locales_parse_url "$prev_url") || exit 1
|
||||
|
||||
curr_url=$(locales_get "$CURR_PRODUCT" "$VERSION$VERSION_SUFFIX" "$CURR_BUILD_ID")
|
||||
if [ $? -ne 0 ]; then
|
||||
# We did not find a locales file upstream on the servers
|
||||
if [ -e "$SOURCE_TARBALL" ]; then
|
||||
# We can find out what the locales are, by extracting the json-file from the tar-ball
|
||||
# instead of getting it from the server
|
||||
extract_locales_file || return 1
|
||||
curr_content=$(locales_parse_file "$FF_LOCALE_FILE") || exit 1
|
||||
else
|
||||
# We can't know what the locales are in the current version
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
curr_content=$(locales_parse_url "$curr_url") || exit 1
|
||||
fi
|
||||
|
||||
diff -y --suppress-common-lines -d <(echo "$prev_content") <(echo "$curr_content")
|
||||
}
|
||||
|
||||
function get_locales_directories() {
|
||||
pattern="$1"
|
||||
|
||||
# This file contains a list of directories, upstream uses to build locales
|
||||
# If it is there, use it. If not, default to all FF + 3 TB-dirs.
|
||||
if [ -e "$L10N_STRING_PATTERNS" ]; then
|
||||
python3 -c "import os; import sys; \
|
||||
sys.path.append(os.path.dirname(\"$L10N_STRING_PATTERNS\")); \
|
||||
from l10n_merge import $pattern; \
|
||||
print(\" \".join([p.strip('*') for p in $pattern]));"
|
||||
else
|
||||
if [ "$pattern" = "GECKO_STRINGS_PATTERNS" ]; then
|
||||
# Default of Firefox: Take all
|
||||
echo "{lang}/"
|
||||
else
|
||||
# Default of Thunderbird: Take those 3 dirs
|
||||
echo "{lang}/calendar/" "{lang}/chat/" "{lang}/mail/"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function create_and_copy_locales() {
|
||||
locale="$1"
|
||||
source_base="$2"
|
||||
source_template="$3"
|
||||
final_dest="$4"
|
||||
|
||||
# Replace {lang} with the actual language-basedir
|
||||
for template in $source_template; do
|
||||
locale_source=$(echo "$template" | sed "s|{lang}|./$source_base/$locale|g")
|
||||
locale_dest=$(echo "$template" | sed "s|{lang}|./$final_dest/$locale|g")
|
||||
|
||||
# Create intermediary folders
|
||||
for destdir in $locale_dest; do
|
||||
mkdir -p "$destdir"
|
||||
done
|
||||
|
||||
# Copy over FF-files
|
||||
cp -r "$locale_source"/* "$locale_dest"
|
||||
done
|
||||
}
|
||||
|
||||
function check_what_to_do_with_source_tarballs() {
|
||||
# Get ID
|
||||
BUILD_ID=$(get_build_number "$PRODUCT" "$VERSION$VERSION_SUFFIX")
|
||||
|
||||
# Check what is going to be done and ask for consent
|
||||
for ff in $SOURCE_TARBALL $SOURCE_TARBALL.asc; do
|
||||
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
|
||||
|
||||
if [ "$PREV_VERSION" != "" ]; then
|
||||
# If we have a previous version, check either FF or (TB and FF)
|
||||
if [ "$PRODUCT" = "firefox" ]; then
|
||||
locales_unchanged "$PRODUCT" "$BUILD_ID"
|
||||
else
|
||||
# Currently, upstream 'forgets' which Firefox-locales get used for which Thunderbird-release upon release
|
||||
# so, instead of parsing upstream JSON-files, we rely on the previous tarball being there and comparing
|
||||
# the lang-files directly
|
||||
# FF_BUILD_ID=$(get_build_number "firefox" "$VERSION$VERSION_SUFFIX")
|
||||
# locales_unchanged "$PRODUCT" "$BUILD_ID" && locales_unchanged "firefox" "$FF_BUILD_ID"
|
||||
if [ -e "$PREV_SOURCE_TARBALL" ]; then
|
||||
echo "extract previous locale changesets"
|
||||
tar -xf "$PREV_SOURCE_TARBALL" "$FF_PREV_LOCALE_FILE" "$TB_PREV_LOCALE_FILE"
|
||||
|
||||
curr_ff_content=$(locales_parse_file "$FF_LOCALE_FILE") || exit 1
|
||||
prev_ff_content=$(locales_parse_file "$FF_PREV_LOCALE_FILE") || exit 1
|
||||
curr_tb_content=$(locales_parse_file "$TB_LOCALE_FILE") || exit 1
|
||||
prev_tb_content=$(locales_parse_file "$TB_PREV_LOCALE_FILE") || exit 1
|
||||
|
||||
diff -y --suppress-common-lines -d <(echo "$prev_ff_content") <(echo "$curr_ff_content") ||
|
||||
diff -y --suppress-common-lines -d <(echo "$prev_tb_content") <(echo "$curr_tb_content")
|
||||
fi
|
||||
fi
|
||||
LOCALES_CHANGED=$?
|
||||
fi
|
||||
|
||||
# New line for better visibility
|
||||
echo ""
|
||||
if [ $LOCALES_CHANGED -eq 1 ]; then
|
||||
printf "%-40s: Need to download.\n" "locales"
|
||||
ask_cont_abort_question "Is this ok?" || exit 0
|
||||
else
|
||||
printf "%-40s: Did not change. Skipping.\n" "locales"
|
||||
fi
|
||||
}
|
||||
|
||||
function download_release_or_candidate_file() {
|
||||
local upstream_file="$1"
|
||||
if [ -e "$upstream_file" ]; then
|
||||
return;
|
||||
fi
|
||||
|
||||
if ! wget --quiet --show-progress --progress=bar "$FTP_URL/$upstream_file"; then
|
||||
local CANDIDATE_TARBALL_LOCATION=""
|
||||
CANDIDATE_TARBALL_LOCATION="$(printf "%s/%s/source/%s" "$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")" "$BUILD_ID" "$upstream_file" )"
|
||||
wget --quiet --show-progress --progress=bar "$CANDIDATE_TARBALL_LOCATION"
|
||||
fi
|
||||
}
|
||||
|
||||
function download_upstream_source_tarballs() {
|
||||
# Try to download tar-ball from officiall mozilla-mirror
|
||||
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"
|
||||
else
|
||||
# We are working on a version that is not yet published on the mozilla mirror
|
||||
# so we have to actually check out the repo
|
||||
clone_and_repackage_sources
|
||||
fi
|
||||
}
|
||||
|
||||
function clone_and_repackage_sources() {
|
||||
if [ -d "$PRODUCT-$VERSION" ]; then
|
||||
pushd "$PRODUCT-$VERSION" || exit 1
|
||||
_repourl=$(hg paths)
|
||||
case "$_repourl" in
|
||||
*$BRANCH*)
|
||||
echo "updating previous tree"
|
||||
hg pull
|
||||
popd || exit 1
|
||||
;;
|
||||
* )
|
||||
echo "removing obsolete tree"
|
||||
popd || exit 1
|
||||
rm -rf "$PRODUCT-$VERSION"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -d "$PRODUCT-$VERSION" ]; then
|
||||
echo "cloning new $BRANCH..."
|
||||
hg clone "https://hg.mozilla.org/$BRANCH $PRODUCT-$VERSION"
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
hg clone "https://hg.mozilla.org/releases/comm-$CHANNEL" "$PRODUCT-$VERSION/comm"
|
||||
fi
|
||||
fi
|
||||
pushd "$PRODUCT-$VERSION" || exit 1
|
||||
|
||||
# parse out the Firefox-release tag for this Thunderbird-checkout
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
FF_RELEASE_TAG=$(grep ^GECKO_HEAD_REV ./comm/.gecko_rev.yml | awk -F ' ' '{print $2}') || exit 1
|
||||
echo "Parsed Firefox base ID from .gecko_rev.yml: $FF_RELEASE_TAG"
|
||||
else
|
||||
FF_RELEASE_TAG="$RELEASE_TAG"
|
||||
fi
|
||||
|
||||
hg update --check "$FF_RELEASE_TAG"
|
||||
[ "$FF_RELEASE_TAG" == "default" ] || hg update -r "$FF_RELEASE_TAG"
|
||||
# get repo and source stamp
|
||||
local REV=$(hg -R . parent --template="{node|short}\n")
|
||||
local SOURCE_REPO=$(hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/https:/")
|
||||
local TIMESTAMP=$(date +%Y%m%d%H%M%S)
|
||||
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
pushd comm || exit 1
|
||||
hg update --check "$RELEASE_TAG"
|
||||
popd || exit 1
|
||||
rm -rf thunderbird-"${VERSION}"/{,comm/}other-licenses/7zstub
|
||||
fi
|
||||
popd || exit 1
|
||||
|
||||
echo "Extending $TAR_STAMP with:"
|
||||
echo "RELEASE_REPO=${SOURCE_REPO}"
|
||||
echo "RELEASE_TAG=${REV}"
|
||||
echo "RELEASE_TIMESTAMP=${TIMESTAMP}"
|
||||
|
||||
# We "remove and add" instead of "replace" in case the entries are not there yet
|
||||
# Removing the old RELEASE_-tags
|
||||
sed -i "/RELEASE_\(TAG\|REPO\|TIMESTAMP\)=.*/d" "$TAR_STAMP"
|
||||
# Appending the new
|
||||
echo "RELEASE_REPO=$SOURCE_REPO" >> "$TAR_STAMP"
|
||||
echo "RELEASE_TAG=$REV" >> "$TAR_STAMP"
|
||||
echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP"
|
||||
|
||||
echo "creating archive..."
|
||||
tar "$compression" -cf "$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz" --exclude-vcs "$PRODUCT-$VERSION"
|
||||
ALREADY_EXTRACTED_LOCALES_FILE=1
|
||||
}
|
||||
|
||||
function create_locales_tarballs() {
|
||||
if [ ! -z ${SKIP_LOCALES+x} ]; then
|
||||
echo "Skipping locales-creation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
function clone_and_repackage_locales() {
|
||||
# l10n
|
||||
FINAL_L10N_BASE="l10n"
|
||||
FF_L10N_BASE="l10n" # Only change this in TB-builds to a separate dir
|
||||
TB_L10N_BASE="l10n_tb"
|
||||
|
||||
# If we are doing Thunderbird, we'll have to checkout both TB and FF l10n-repos
|
||||
# Thunderbird has one single mono-repo, FF has one for each language
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
echo "Fetching Thunderbird locales..."
|
||||
if [ -d "$TB_L10N_BASE/.hg" ]; then
|
||||
pushd "$TB_L10N_BASE/" || exit 1
|
||||
hg pull || exit 1
|
||||
popd || exit 1
|
||||
else
|
||||
hg clone "https://hg.mozilla.org/projects/comm-l10n/" "$TB_L10N_BASE/" || exit 1
|
||||
fi
|
||||
# Just using the first entry here, as all languages have the same changeset
|
||||
tb_changeset=$(jq -r 'to_entries[0]| "\(.key) \(.value|.revision)"' "$TB_LOCALE_FILE" | cut -d " " -f 2)
|
||||
[ "$RELEASE_TAG" == "default" ] || hg -R "$TB_L10N_BASE/" up -C -r "$tb_changeset" || exit 1
|
||||
FF_L10N_BASE="l10n_ff"
|
||||
fi
|
||||
|
||||
test ! -d $FF_L10N_BASE && mkdir $FF_L10N_BASE
|
||||
# No-op, if we are building FF:
|
||||
test ! -d $FINAL_L10N_BASE && mkdir $FINAL_L10N_BASE
|
||||
|
||||
# This is only relevant for Thunderbird-builds
|
||||
# Here, the relevant directories we need to copy from FF and from TB
|
||||
# are specified in a python-file in the tarball
|
||||
# Is of form '{lang}/Foo/bar/ {lang}/Baz/bar/ ..'
|
||||
ff_locale_template=$(get_locales_directories "GECKO_STRINGS_PATTERNS")
|
||||
tb_locale_template=$(get_locales_directories "COMM_STRINGS_PATTERNS")
|
||||
|
||||
echo "Fetching Browser locales..."
|
||||
jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' "$FF_LOCALE_FILE" | \
|
||||
while read -r locale changeset ; do
|
||||
case $locale in
|
||||
ja-JP-mac|en-US)
|
||||
;;
|
||||
*)
|
||||
echo "reading changeset information for $locale"
|
||||
echo "fetching $locale changeset $changeset ..."
|
||||
if [ -d "$FF_L10N_BASE/$locale/.hg" ]; then
|
||||
pushd "$FF_L10N_BASE/$locale" || exit 1
|
||||
hg pull || exit 1
|
||||
popd || exit 1
|
||||
else
|
||||
hg clone "https://hg.mozilla.org/l10n-central/$locale" "$FF_L10N_BASE/$locale" || exit 1
|
||||
fi
|
||||
[ "$RELEASE_TAG" == "default" ] || hg -R "$FF_L10N_BASE/$locale" up -C -r "$changeset" || exit 1
|
||||
|
||||
# If we are doing TB, we have to merge both l10n-repos
|
||||
if [ "$PRODUCT" = "thunderbird" ] && test -d "$TB_L10N_BASE/$locale/" ; then
|
||||
create_and_copy_locales "$locale" "$FF_L10N_BASE" "$ff_locale_template" "$FINAL_L10N_BASE"
|
||||
create_and_copy_locales "$locale" "$TB_L10N_BASE" "$tb_locale_template" "$FINAL_L10N_BASE"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
echo "creating l10n archive..."
|
||||
local TAR_FLAGS="--exclude-vcs"
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
TAR_FLAGS="$TAR_FLAGS --exclude=suite"
|
||||
fi
|
||||
tar "$compression" -cf "l10n-$VERSION$VERSION_SUFFIX.tar.xz" $TAR_FLAGS "$FINAL_L10N_BASE"
|
||||
}
|
||||
|
||||
function clean_up_old_tarballs() {
|
||||
if [ -e "$PREV_SOURCE_TARBALL" ]; then
|
||||
echo ""
|
||||
echo "Deleting old sources tarball $PREV_SOURCE_TARBALL"
|
||||
ask_cont_abort_question "Is this ok?" || exit 0
|
||||
rm "$PREV_SOURCE_TARBALL"
|
||||
rm "$PREV_SOURCE_TARBALL.asc"
|
||||
# if old and new lang-tarball are there, delete the old one
|
||||
if [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ] && [ -f "l10n-$VERSION$VERSION_SUFFIX.tar.xz" ]; then
|
||||
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 "$@"
|
3
l10n-115.13.0.tar.xz
Normal file
3
l10n-115.13.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6cfbb88684d6a32bdeda1505178e3e72def6f650a0ca10f61505e1edcf69fe57
|
||||
size 30001028
|
3
l10n-115.14.0.tar.xz
Normal file
3
l10n-115.14.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:172a381e8712eb00dbed57b0f7f4e9ff23891854f4716af1c478f47c8f361c42
|
||||
size 30003396
|
3
l10n-115.15.0.tar.xz
Normal file
3
l10n-115.15.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:14f891ecacb5296f675dad6075e512089902824b28928c20ea3a2998797db58b
|
||||
size 30459468
|
26
mozilla-aarch64-startup-crash.patch
Normal file
26
mozilla-aarch64-startup-crash.patch
Normal file
@ -0,0 +1,26 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558442998 -7200
|
||||
# Tue May 21 14:49:58 2019 +0200
|
||||
# Node ID 386083b58d8558141901d796ec6919a4aba7ad3a
|
||||
# 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
|
||||
@@ -1159,7 +1159,13 @@ nsresult nsIOService::NewChannelFromURIW
|
||||
}
|
||||
}
|
||||
|
||||
+#if defined(__aarch64__)
|
||||
+ if (result) {
|
||||
+ channel.forget(result);
|
||||
+ }
|
||||
+#else
|
||||
channel.forget(result);
|
||||
+#endif
|
||||
return NS_OK;
|
||||
}
|
||||
|
89
mozilla-bmo1504834-part1.patch
Normal file
89
mozilla-bmo1504834-part1.patch
Normal file
@ -0,0 +1,89 @@
|
||||
# HG changeset patch
|
||||
# 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
|
||||
@@ -156,7 +156,8 @@ static IntRect CalculateSurfaceBounds(co
|
||||
}
|
||||
|
||||
static const int kARGBAlphaOffset =
|
||||
- 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) {
|
||||
diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
|
||||
--- a/gfx/2d/Types.h
|
||||
+++ b/gfx/2d/Types.h
|
||||
@@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t {
|
||||
// This represents the unknown format.
|
||||
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.
|
||||
-#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()
|
||||
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
|
||||
- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB
|
||||
-#else
|
||||
-# error "bad endianness"
|
||||
-#endif
|
||||
|
||||
// The following values are OS and endian-independent synonyms.
|
||||
//
|
||||
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
|
||||
+#else
|
||||
+ #define SKCMS_PORTABLE
|
||||
#endif
|
||||
|
||||
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
|
||||
- return __builtin_bswap16(be);
|
||||
+ #if defined(_MSC_VER)
|
||||
+ return _byteswap_ushort(be);
|
||||
+ #else
|
||||
+ return __builtin_bswap16(be);
|
||||
+ #endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static uint32_t read_big_u32(const uint8_t* ptr) {
|
||||
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
|
||||
- return __builtin_bswap32(be);
|
||||
+ #if defined(_MSC_VER)
|
||||
+ return _byteswap_ulong(be);
|
||||
+ #else
|
||||
+ return __builtin_bswap32(be);
|
||||
+ #endif
|
||||
#endif
|
||||
}
|
||||
|
17
mozilla-bmo1504834-part3.patch
Normal file
17
mozilla-bmo1504834-part3.patch
Normal file
@ -0,0 +1,17 @@
|
||||
# HG changeset patch
|
||||
# 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/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
|
||||
@@ -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)
|
||||
+ // 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());
|
||||
};
|
35
mozilla-bmo1512162.patch
Normal file
35
mozilla-bmo1512162.patch
Normal file
@ -0,0 +1,35 @@
|
||||
# HG changeset patch
|
||||
# Parent f9f5af4c88f2f3172a4f30d7e42bd2131bf24146
|
||||
This fixes a broken build for gcc < 9 on ppc64le.
|
||||
This patch can be removed for newer gcc-versions.
|
||||
|
||||
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;
|
||||
|
||||
- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
|
||||
+#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||
+// Work around a compiler bug on ppc64le (bug 1512162).
|
||||
+ MOZ_ALWAYS_INLINE
|
||||
+#endif
|
||||
+ bool GatherAndConvertResults();
|
||||
|
||||
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
|
||||
|
||||
@@ -1108,7 +1112,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
||||
|
||||
~CallMethodHelper();
|
||||
|
||||
- MOZ_ALWAYS_INLINE bool Call();
|
||||
+#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||
+// Work around a compiler bug on ppc64le (bug 1512162).
|
||||
+ MOZ_ALWAYS_INLINE
|
||||
+#endif
|
||||
+ bool Call();
|
||||
|
||||
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
|
||||
void trace(JSTracer* aTrc);
|
26
mozilla-bmo1775202.patch
Normal file
26
mozilla-bmo1775202.patch
Normal 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 += [
|
33
mozilla-bmo531915.patch
Normal file
33
mozilla-bmo531915.patch
Normal file
@ -0,0 +1,33 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# 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,19 +25,24 @@
|
||||
|
||||
#include "fdlibm.h"
|
||||
|
||||
/*
|
||||
* Emulate FreeBSD internal double types.
|
||||
* Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
|
||||
*/
|
||||
|
||||
+#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:
|
||||
* n0 = ((*(int*)&one)>>29)^1; * index of high word *
|
||||
* 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
|
26
mozilla-bmo849632.patch
Normal file
26
mozilla-bmo849632.patch
Normal file
@ -0,0 +1,26 @@
|
||||
# HG changeset patch
|
||||
# Parent 3de59fe1b8708c01e134ce698c4232b8a854f617
|
||||
Problem: webGL sites are displayed in the wrong color (usually blue-ish)
|
||||
Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only
|
||||
knows how to deal with little endian.
|
||||
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
|
||||
|
||||
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();
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ uint8_t* itr = (uint8_t*)pixels;
|
||||
+ for (GLsizei i = 0; i < width * height; i++) {
|
||||
+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
|
||||
+ itr += 4;
|
||||
+ }
|
||||
+#endif
|
||||
AFTER_GL_CALL;
|
||||
mHeavyGLCallsSinceLastFlush = true;
|
||||
}
|
29
mozilla-bmo998749.patch
Normal file
29
mozilla-bmo998749.patch
Normal file
@ -0,0 +1,29 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1583738770 -3600
|
||||
# Mon Mar 09 08:26:10 2020 +0100
|
||||
# Node ID 34676feac1a542e409e22acf5b98735f8313b1ce
|
||||
# Parent 506857dace0a08d1c9685e3ac264646590b3e27f
|
||||
[mq]: mozilla-bmo998749.patch
|
||||
|
||||
diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h
|
||||
--- a/gfx/2d/FilterProcessing.h Fri Feb 28 12:31:51 2020 +0100
|
||||
+++ b/gfx/2d/FilterProcessing.h Mon Mar 09 08:26:10 2020 +0100
|
||||
@@ -13,10 +13,17 @@
|
||||
namespace mozilla {
|
||||
namespace gfx {
|
||||
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 3;
|
||||
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 2;
|
||||
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 1;
|
||||
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 0;
|
||||
+#else
|
||||
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 0;
|
||||
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 1;
|
||||
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 2;
|
||||
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 3;
|
||||
+#endif
|
||||
|
||||
class FilterProcessing {
|
||||
public:
|
15
mozilla-fix-aarch64-libopus.patch
Normal file
15
mozilla-fix-aarch64-libopus.patch
Normal file
@ -0,0 +1,15 @@
|
||||
# HG changeset patch
|
||||
# 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
|
||||
@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
-#include "main_FIX.h"
|
||||
+#include "../fixed/main_FIX.h"
|
||||
#include "NSQ.h"
|
||||
#include "SigProc_FIX.h"
|
||||
|
94
mozilla-fix-issues-with-llvm18.patch
Normal file
94
mozilla-fix-issues-with-llvm18.patch
Normal file
@ -0,0 +1,94 @@
|
||||
Adapt the shipped rust-bindgen copy for LLVM-18 and later,
|
||||
and tell cargo we've modified the code of rust-bindgen so
|
||||
the checksum verification of this crate should be skipped
|
||||
|
||||
diff -rup a/Cargo.lock b/Cargo.lock
|
||||
--- a/Cargo.lock 2024-03-14 06:21:23.000000000 +0100
|
||||
+++ b/Cargo.lock 2024-03-20 13:15:35.146224179 +0100
|
||||
@@ -414,8 +414,8 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "bindgen"
|
||||
version = "0.64.0"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4"
|
||||
+#source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
+#checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"cexpr",
|
||||
diff -rup a/Cargo.toml b/Cargo.toml
|
||||
--- a/Cargo.toml 2024-03-20 13:09:16.152828408 +0100
|
||||
+++ b/Cargo.toml 2024-03-20 13:14:09.072867031 +0100
|
||||
@@ -193,3 +193,8 @@ weedle2 = "=4.0.0"
|
||||
# Shut up such messages for now to make the build succeed
|
||||
[future-incompat-report]
|
||||
frequency = "never"
|
||||
+
|
||||
+[patch.crates-io.bindgen_0_64_0]
|
||||
+package = "bindgen"
|
||||
+version = "0.64.0"
|
||||
+path = "third_party/rust/bindgen"
|
||||
diff -rup a/third_party/rust/bindgen/ir/item.rs b/third_party/rust/bindgen/ir/item.rs
|
||||
--- a/third_party/rust/bindgen/ir/item.rs 2024-03-14 06:21:40.000000000 +0100
|
||||
+++ b/third_party/rust/bindgen/ir/item.rs 2024-03-20 13:11:32.062844514 +0100
|
||||
@@ -1434,6 +1434,7 @@ impl Item {
|
||||
// We allowlist cursors here known to be unhandled, to prevent being
|
||||
// too noisy about this.
|
||||
match cursor.kind() {
|
||||
+ CXCursor_LinkageSpec => return Err(ParseError::Recurse),
|
||||
CXCursor_MacroDefinition |
|
||||
CXCursor_MacroExpansion |
|
||||
CXCursor_UsingDeclaration |
|
||||
|
||||
|
||||
Adapt the WebRTC code to use 64-bit timestamp to fix a build
|
||||
failure with Clang-18 and later
|
||||
|
||||
diff -rup a/dom/media/gmp-plugin-openh264/gmp-fake-openh264.cpp b/dom/media/gmp-plugin-openh264/gmp-fake-openh264.cpp
|
||||
--- a/dom/media/gmp-plugin-openh264/gmp-fake-openh264.cpp 2024-03-14 06:21:25.000000000 +0100
|
||||
+++ b/dom/media/gmp-plugin-openh264/gmp-fake-openh264.cpp 2024-03-20 13:17:20.839584778 +0100
|
||||
@@ -99,7 +99,7 @@ struct EncodedFrame {
|
||||
uint8_t y_;
|
||||
uint8_t u_;
|
||||
uint8_t v_;
|
||||
- uint32_t timestamp_;
|
||||
+ uint64_t timestamp_;
|
||||
} idr_nalu;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
diff -rup a/dom/media/gtest/TestGMPRemoveAndDelete.cpp b/dom/media/gtest/TestGMPRemoveAndDelete.cpp
|
||||
--- a/dom/media/gtest/TestGMPRemoveAndDelete.cpp 2024-03-14 06:21:25.000000000 +0100
|
||||
+++ b/dom/media/gtest/TestGMPRemoveAndDelete.cpp 2024-03-20 13:17:20.839584778 +0100
|
||||
@@ -361,7 +361,7 @@ void GMPRemoveTest::gmp_Decode() {
|
||||
uint8_t y_;
|
||||
uint8_t u_;
|
||||
uint8_t v_;
|
||||
- uint32_t timestamp_;
|
||||
+ uint64_t timestamp_;
|
||||
} idr_nalu;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
diff -rup a/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp b/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp
|
||||
--- a/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp 2024-03-14 06:21:24.000000000 +0100
|
||||
+++ b/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp 2024-03-20 13:17:20.842918112 +0100
|
||||
@@ -540,7 +540,7 @@ void WebrtcGmpVideoEncoder::Encoded(
|
||||
|
||||
webrtc::VideoFrameType ft;
|
||||
GmpFrameTypeToWebrtcFrameType(aEncodedFrame->FrameType(), &ft);
|
||||
- uint32_t timestamp = (aEncodedFrame->TimeStamp() * 90ll + 999) / 1000;
|
||||
+ uint64_t timestamp = (aEncodedFrame->TimeStamp() * 90ll + 999) / 1000;
|
||||
|
||||
GMP_LOG_DEBUG("GMP Encoded: %" PRIu64 ", type %d, len %d",
|
||||
aEncodedFrame->TimeStamp(), aEncodedFrame->BufferType(),
|
||||
diff -rup a/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.h b/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.h
|
||||
--- a/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.h 2024-03-14 06:21:24.000000000 +0100
|
||||
+++ b/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.h 2024-03-20 13:17:32.442921055 +0100
|
||||
@@ -302,7 +302,7 @@ class WebrtcGmpVideoEncoder : public GMP
|
||||
int64_t timestamp_us;
|
||||
};
|
||||
// Map rtp time -> input image data
|
||||
- DataMutex<std::map<uint32_t, InputImageData>> mInputImageMap;
|
||||
+ DataMutex<std::map<uint64_t, InputImageData>> mInputImageMap;
|
||||
|
||||
MediaEventProducer<uint64_t> mInitPluginEvent;
|
||||
MediaEventProducer<uint64_t> mReleasePluginEvent;
|
66
mozilla-fix-top-level-asm.patch
Normal file
66
mozilla-fix-top-level-asm.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From 91bb79836ee274855393bdf6ab10e24899b1b349 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Liska <mliska@suse.cz>
|
||||
Date: Fri, 17 May 2019 14:41:35 +0200
|
||||
Subject: [PATCH] Fix top-level asm issue.
|
||||
|
||||
---
|
||||
security/sandbox/linux/moz.build | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
|
||||
--- a/security/sandbox/linux/moz.build
|
||||
+++ b/security/sandbox/linux/moz.build
|
||||
@@ -66,32 +66,32 @@ UNIFIED_SOURCES += [
|
||||
"../chromium/base/time/time_now_posix.cc",
|
||||
"../chromium/sandbox/linux/bpf_dsl/bpf_dsl.cc",
|
||||
"../chromium/sandbox/linux/bpf_dsl/codegen.cc",
|
||||
"../chromium/sandbox/linux/bpf_dsl/dump_bpf.cc",
|
||||
"../chromium/sandbox/linux/bpf_dsl/policy.cc",
|
||||
"../chromium/sandbox/linux/bpf_dsl/policy_compiler.cc",
|
||||
"../chromium/sandbox/linux/bpf_dsl/syscall_set.cc",
|
||||
"../chromium/sandbox/linux/seccomp-bpf/die.cc",
|
||||
- "../chromium/sandbox/linux/seccomp-bpf/syscall.cc",
|
||||
"broker/SandboxBrokerCommon.cpp",
|
||||
"Sandbox.cpp",
|
||||
"SandboxBrokerClient.cpp",
|
||||
"SandboxFilter.cpp",
|
||||
"SandboxFilterUtil.cpp",
|
||||
"SandboxHooks.cpp",
|
||||
"SandboxInfo.cpp",
|
||||
"SandboxLogging.cpp",
|
||||
"SandboxOpenedFiles.cpp",
|
||||
"SandboxReporterClient.cpp",
|
||||
]
|
||||
|
||||
SOURCES += [
|
||||
"../chromium/base/strings/safe_sprintf.cc",
|
||||
"../chromium/base/third_party/icu/icu_utf.cc",
|
||||
+ "../chromium/sandbox/linux/seccomp-bpf/syscall.cc",
|
||||
"../chromium/sandbox/linux/seccomp-bpf/trap.cc",
|
||||
"../chromium/sandbox/linux/services/syscall_wrappers.cc",
|
||||
]
|
||||
|
||||
# This copy of SafeSPrintf doesn't need to avoid the Chromium logging
|
||||
# dependency like the one in libxul does, but this way the behavior is
|
||||
# consistent. See also the comment in SandboxLogging.h.
|
||||
SOURCES["../chromium/base/strings/safe_sprintf.cc"].flags += ["-DNDEBUG"]
|
||||
@@ -105,16 +105,19 @@ if CONFIG["CC_TYPE"] in ("clang", "gcc")
|
||||
"-Wno-unreachable-code-return"
|
||||
]
|
||||
|
||||
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
|
||||
CXXFLAGS += ["-Wno-error=stack-protector"]
|
||||
SOURCES["../chromium/sandbox/linux/services/syscall_wrappers.cc"].flags += [
|
||||
"-Wno-empty-body",
|
||||
]
|
||||
+ SOURCES['../chromium/sandbox/linux/seccomp-bpf/syscall.cc'].flags += [
|
||||
+ '-fno-lto'
|
||||
+ ]
|
||||
|
||||
# gcc lto likes to put the top level asm in syscall.cc in a different partition
|
||||
# from the function using it which breaks the build. Work around that by
|
||||
# forcing there to be only one partition.
|
||||
for f in CONFIG["OS_CXXFLAGS"]:
|
||||
if f.startswith("-flto") and CONFIG["CC_TYPE"] != "clang":
|
||||
LDFLAGS += ["--param lto-partitions=1"]
|
||||
|
1405
mozilla-kde.patch
Normal file
1405
mozilla-kde.patch
Normal file
File diff suppressed because it is too large
Load Diff
25
mozilla-libavcodec58_91.patch
Normal file
25
mozilla-libavcodec58_91.patch
Normal file
@ -0,0 +1,25 @@
|
||||
# HG changeset patch
|
||||
# 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
|
||||
@@ -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",
|
||||
"libavcodec.so.58",
|
||||
"libavcodec-ffmpeg.so.58",
|
||||
"libavcodec-ffmpeg.so.57",
|
||||
"libavcodec-ffmpeg.so.56",
|
||||
"libavcodec.so.57",
|
||||
"libavcodec.so.56",
|
||||
"libavcodec.so.55",
|
||||
"libavcodec.so.54",
|
33
mozilla-nongnome-proxies.patch
Normal file
33
mozilla-nongnome-proxies.patch
Normal file
@ -0,0 +1,33 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer
|
||||
# Date 1558442915 -7200
|
||||
# Tue May 21 14:48:35 2019 +0200
|
||||
# Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
|
||||
# Parent 715f01d61df8627117e6aefca540f0c1bba45011
|
||||
Do not use gconf for proxy settings if not running within Gnome
|
||||
Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
===================================================================
|
||||
RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
|
||||
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
|
||||
@@ -52,10 +52,13 @@ nsUnixSystemProxySettings::GetMainThread
|
||||
}
|
||||
|
||||
void nsUnixSystemProxySettings::Init() {
|
||||
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
||||
- if (mGSettings) {
|
||||
- mGSettings->GetCollectionForSchema("org.gnome.system.proxy"_ns,
|
||||
- getter_AddRefs(mProxySettings));
|
||||
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
|
||||
+ if (sessionType && !strcmp(sessionType, "gnome")) {
|
||||
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
||||
+ if (mGSettings) {
|
||||
+ mGSettings->GetCollectionForSchema("org.gnome.system.proxy"_ns,
|
||||
+ getter_AddRefs(mProxySettings));
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
18
mozilla-ntlm-full-path.patch
Normal file
18
mozilla-ntlm-full-path.patch
Normal file
@ -0,0 +1,18 @@
|
||||
# HG changeset patch
|
||||
# User Petr Cerny <pcerny@novell.com>
|
||||
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
|
||||
# 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
|
||||
@@ -160,7 +160,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
|
||||
const char* username = PR_GetEnv("USER");
|
||||
if (!username) return NS_ERROR_FAILURE;
|
||||
|
||||
- const char* const args[] = {"ntlm_auth",
|
||||
+ const char* const args[] = {"/usr/bin/ntlm_auth",
|
||||
"--helper-protocol",
|
||||
"ntlmssp-client-1",
|
||||
"--use-cached-creds",
|
13
mozilla-partial-revert-1768632.patch
Normal file
13
mozilla-partial-revert-1768632.patch
Normal 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;
|
||||
|
124
mozilla-pgo.patch
Normal file
124
mozilla-pgo.patch
Normal file
@ -0,0 +1,124 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 9959fe2a13a39cbeb98ca1bef2e21caba16717bd
|
||||
|
||||
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:
|
||||
- cflags.append("-flto=thin")
|
||||
- ldflags.append("-flto=thin")
|
||||
+ cflags.append("-flto")
|
||||
+ ldflags.append("-flto")
|
||||
|
||||
if target.os == "Android" and "cross" in values:
|
||||
# Work around https://github.com/rust-lang/rust/issues/90088
|
||||
@@ -268,7 +268,7 @@ def lto(
|
||||
if "full" in values:
|
||||
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")
|
||||
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 mozcrash
|
||||
-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
|
||||
@@ -87,9 +87,22 @@ if __name__ == "__main__":
|
||||
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
|
||||
@@ -213,6 +226,10 @@ if __name__ == "__main__":
|
||||
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")
|
||||
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"
|
||||
+ 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:$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']
|
||||
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
|
||||
|
||||
+ // 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
|
15
mozilla-reduce-rust-debuginfo.patch
Normal file
15
mozilla-reduce-rust-debuginfo.patch
Normal file
@ -0,0 +1,15 @@
|
||||
# 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:
|
||||
- debug_info = "2"
|
||||
+ debug_info = '1'
|
||||
|
||||
opts = []
|
||||
|
12
mozilla-rust-disable-future-incompat.patch
Normal file
12
mozilla-rust-disable-future-incompat.patch
Normal 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"
|
33
mozilla-s390-context.patch
Normal file
33
mozilla-s390-context.patch
Normal file
@ -0,0 +1,33 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558452408 -7200
|
||||
# Tue May 21 17:26:48 2019 +0200
|
||||
# Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4
|
||||
# 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
|
||||
@@ -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(__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])
|
||||
@@ -416,6 +420,10 @@ struct macos_aarch64_context {
|
||||
# define FP_sig(p) RFP_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)
|
||||
# elif defined(__riscv)
|
||||
# define PC_sig(p) RPC_sig(p)
|
||||
# define FP_sig(p) RFP_sig(p)
|
604
mozilla-silence-no-return-type.patch
Normal file
604
mozilla-silence-no-return-type.patch
Normal file
@ -0,0 +1,604 @@
|
||||
# HG changeset patch
|
||||
# Parent 5df550d4b5fc674268055e504f60392389eb9ea7
|
||||
|
||||
Index: firefox-115.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
||||
+++ firefox-115.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
||||
@@ -41,6 +41,7 @@ static inline SkMatrix SkEncodedOriginTo
|
||||
case kLeftBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0, 1, 0, -1, 0, h, 0, 0, 1);
|
||||
}
|
||||
SK_ABORT("Unexpected origin");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
/**
|
||||
Index: firefox-115.0/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
|
||||
+++ firefox-115.0/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
|
||||
@@ -325,6 +325,7 @@ static inline bool GrTextureTypeHasRestr
|
||||
default:
|
||||
SK_ABORT("Unexpected texture type");
|
||||
}
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
Index: firefox-115.0/gfx/skia/skia/src/core/SkDescriptor.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/core/SkDescriptor.cpp
|
||||
+++ firefox-115.0/gfx/skia/skia/src/core/SkDescriptor.cpp
|
||||
@@ -26,6 +26,7 @@ std::unique_ptr<SkDescriptor> SkDescript
|
||||
void SkDescriptor::operator delete(void* p) { ::operator delete(p); }
|
||||
void* SkDescriptor::operator new(size_t) {
|
||||
SK_ABORT("Descriptors are created with placement new.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
void SkDescriptor::flatten(SkWriteBuffer& buffer) const {
|
||||
Index: firefox-115.0/gfx/skia/skia/src/core/SkGeometry.h
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/core/SkGeometry.h
|
||||
+++ firefox-115.0/gfx/skia/skia/src/core/SkGeometry.h
|
||||
@@ -281,6 +281,7 @@ static inline bool SkCubicIsDegenerate(S
|
||||
return true;
|
||||
}
|
||||
SK_ABORT("Invalid SkCubicType");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
static inline const char* SkCubicTypeName(SkCubicType type) {
|
||||
@@ -293,6 +294,7 @@ static inline const char* SkCubicTypeNam
|
||||
case SkCubicType::kLineOrPoint: return "kLineOrPoint";
|
||||
}
|
||||
SK_ABORT("Invalid SkCubicType");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
/** Returns the cubic classification.
|
||||
Index: firefox-115.0/gfx/skia/skia/src/core/SkTextBlob.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/core/SkTextBlob.cpp
|
||||
+++ firefox-115.0/gfx/skia/skia/src/core/SkTextBlob.cpp
|
||||
@@ -204,6 +204,7 @@ void SkTextBlob::operator delete(void* p
|
||||
|
||||
void* SkTextBlob::operator new(size_t) {
|
||||
SK_ABORT("All blobs are created by placement new.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
void* SkTextBlob::operator new(size_t, void* p) {
|
||||
Index: firefox-115.0/gfx/skia/skia/src/core/SkTypeface_remote.h
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/core/SkTypeface_remote.h
|
||||
+++ firefox-115.0/gfx/skia/skia/src/core/SkTypeface_remote.h
|
||||
@@ -95,12 +95,14 @@ public:
|
||||
bool isLogging() const {return fIsLogging;}
|
||||
|
||||
protected:
|
||||
- int onGetUPEM() const override { SK_ABORT("Should never be called."); }
|
||||
+ int onGetUPEM() const override { SK_ABORT("Should never be called."); SkUNREACHABLE; }
|
||||
std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
bool onGlyphMaskNeedsCurrentColor() const override {
|
||||
return fGlyphMaskNeedsCurrentColor;
|
||||
@@ -108,10 +110,12 @@ protected:
|
||||
int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[],
|
||||
int coordinateCount) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
int onGetVariationDesignParameters(SkFontParameters::Variation::Axis parameters[],
|
||||
int parameterCount) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
void onGetFamilyName(SkString* familyName) const override {
|
||||
// Used by SkStrikeCache::DumpMemoryStatistics.
|
||||
@@ -119,15 +123,19 @@ protected:
|
||||
}
|
||||
bool onGetPostScriptName(SkString*) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
int onGetTableTags(SkFontTableTag tags[]) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
size_t onGetTableData(SkFontTableTag, size_t offset, size_t length, void* data) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
std::unique_ptr<SkScalerContext> onCreateScalerContext(
|
||||
const SkScalerContextEffects& effects, const SkDescriptor* desc) const override
|
||||
@@ -141,20 +149,25 @@ protected:
|
||||
}
|
||||
void onGetFontDescriptor(SkFontDescriptor*, bool*) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
void getGlyphToUnicodeMap(SkUnichar*) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
void getPostScriptGlyphNames(SkString*) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
std::unique_ptr<SkAdvancedTypefaceMetrics> onGetAdvancedMetrics() const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
void onCharsToGlyphs(const SkUnichar* chars, int count, SkGlyphID glyphs[]) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
int onCountGlyphs() const override {
|
||||
return this->glyphCount();
|
||||
@@ -162,6 +175,7 @@ protected:
|
||||
|
||||
void* onGetCTFontRef() const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
private:
|
||||
Index: firefox-115.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
||||
+++ firefox-115.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
||||
@@ -815,6 +815,7 @@ sk_sp<SkSpecialImage> cpu_blur(
|
||||
return maker;
|
||||
}
|
||||
SK_ABORT("Sigma is out of range.");
|
||||
+ SkUNREACHABLE;
|
||||
};
|
||||
|
||||
PassMaker* makerX = makeMaker(sigma.x());
|
||||
Index: firefox-115.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
||||
+++ firefox-115.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
||||
@@ -69,6 +69,7 @@ void SkFontMgr_Indirect::onGetFamilyName
|
||||
|
||||
SkFontStyleSet* SkFontMgr_Indirect::onCreateStyleSet(int index) const {
|
||||
SK_ABORT("Not implemented");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
SkFontStyleSet* SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const {
|
||||
Index: firefox-115.0/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
|
||||
+++ firefox-115.0/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
|
||||
@@ -162,18 +162,22 @@ public:
|
||||
protected:
|
||||
int onCountFamilies() const override {
|
||||
SK_ABORT("Not implemented.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
void onGetFamilyName(int index, SkString* familyName) const override {
|
||||
SK_ABORT("Not implemented.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
SkFontStyleSet* onCreateStyleSet(int index) const override {
|
||||
SK_ABORT("Not implemented.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
SkFontStyleSet* onMatchFamily(const char familyName[]) const override {
|
||||
SK_ABORT("Not implemented.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
SkTypeface* onMatchFamilyStyle(const char requestedFamilyName[],
|
||||
Index: firefox-115.0/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
|
||||
+++ firefox-115.0/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
|
||||
@@ -277,6 +277,7 @@ std::unique_ptr<Expression> Compiler::co
|
||||
}
|
||||
default:
|
||||
SK_ABORT("unsupported symbol type %d\n", (int) result->kind());
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
}
|
||||
|
||||
Index: firefox-115.0/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||
+++ firefox-115.0/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||
@@ -51,7 +51,7 @@ OperatorPrecedence Operator::getBinaryPr
|
||||
case Kind::BITWISEXOREQ: // fall through
|
||||
case Kind::BITWISEOREQ: return OperatorPrecedence::kAssignment;
|
||||
case Kind::COMMA: return OperatorPrecedence::kSequence;
|
||||
- default: SK_ABORT("unsupported binary operator");
|
||||
+ default: SkUNREACHABLE;
|
||||
}
|
||||
}
|
||||
|
||||
Index: firefox-115.0/gfx/skia/skia/src/sksl/ir/SkSLType.h
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/sksl/ir/SkSLType.h
|
||||
+++ firefox-115.0/gfx/skia/skia/src/sksl/ir/SkSLType.h
|
||||
@@ -422,6 +422,7 @@ public:
|
||||
|
||||
virtual const std::vector<Field>& fields() const {
|
||||
SK_ABORT("Internal error: not a struct");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
/**
|
||||
Index: firefox-115.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||
+++ firefox-115.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||
@@ -140,6 +140,7 @@ struct SpotVerticesFactory {
|
||||
return true;
|
||||
}
|
||||
SK_ABORT("Uninitialized occluder type?");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
sk_sp<SkVertices> makeVertices(const SkPath& path, const SkMatrix& ctm,
|
||||
Index: firefox-115.0/intl/icu/source/i18n/number_rounding.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/intl/icu/source/i18n/number_rounding.cpp
|
||||
+++ firefox-115.0/intl/icu/source/i18n/number_rounding.cpp
|
||||
@@ -283,6 +283,7 @@ FractionPrecision Precision::constructFr
|
||||
settings.fMaxFrac = static_cast<digits_t>(maxFrac);
|
||||
settings.fMinSig = -1;
|
||||
settings.fMaxSig = -1;
|
||||
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
|
||||
PrecisionUnion union_;
|
||||
union_.fracSig = settings;
|
||||
return {RND_FRACTION, union_};
|
||||
@@ -294,6 +295,7 @@ Precision Precision::constructSignifican
|
||||
settings.fMaxFrac = -1;
|
||||
settings.fMinSig = static_cast<digits_t>(minSig);
|
||||
settings.fMaxSig = static_cast<digits_t>(maxSig);
|
||||
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
|
||||
PrecisionUnion union_;
|
||||
union_.fracSig = settings;
|
||||
return {RND_SIGNIFICANT, union_};
|
||||
Index: firefox-115.0/js/src/irregexp/imported/regexp-parser.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/js/src/irregexp/imported/regexp-parser.cc
|
||||
+++ firefox-115.0/js/src/irregexp/imported/regexp-parser.cc
|
||||
@@ -2656,6 +2656,7 @@ bool MayContainStrings(ClassSetOperandTy
|
||||
if (operand->IsClassRanges()) return false;
|
||||
return operand->AsClassSetExpression()->may_contain_strings();
|
||||
}
|
||||
+ UNREACHABLE();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-115.0/third_party/libwebrtc/api/adaptation/resource.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/api/adaptation/resource.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/api/adaptation/resource.cc
|
||||
@@ -22,6 +22,7 @@ const char* ResourceUsageStateToString(R
|
||||
return "kUnderuse";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
ResourceListener::~ResourceListener() {}
|
||||
Index: firefox-115.0/third_party/libwebrtc/api/rtp_parameters.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/api/rtp_parameters.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/api/rtp_parameters.cc
|
||||
@@ -32,6 +32,7 @@ const char* DegradationPreferenceToStrin
|
||||
return "balanced";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
const double kDefaultBitratePriority = 1.0;
|
||||
Index: firefox-115.0/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||
@@ -106,6 +106,8 @@ const char* VideoFrameBufferTypeToString
|
||||
default:
|
||||
RTC_DCHECK_NOTREACHED();
|
||||
}
|
||||
+ RTC_DCHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
int I420BufferInterface::ChromaWidth() const {
|
||||
Index: firefox-115.0/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||
@@ -118,6 +118,7 @@ const char* CodecTypeToPayloadString(Vid
|
||||
return kPayloadNameGeneric;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
VideoCodecType PayloadStringToCodecType(const std::string& name) {
|
||||
Index: firefox-115.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||
@@ -163,6 +163,7 @@ class VideoEncoderSoftwareFallbackWrappe
|
||||
return fallback_encoder_.get();
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
// Updates encoder with last observed parameters, such as callbacks, rates,
|
||||
@@ -343,6 +344,7 @@ int32_t VideoEncoderSoftwareFallbackWrap
|
||||
return fallback_encoder_->Encode(frame, frame_types);
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return WEBRTC_VIDEO_CODEC_ERROR;
|
||||
}
|
||||
|
||||
int32_t VideoEncoderSoftwareFallbackWrapper::EncodeWithMainEncoder(
|
||||
Index: firefox-115.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||
@@ -168,6 +168,7 @@ const char* Adaptation::StatusToString(A
|
||||
return "kRejectedByConstraint";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
Adaptation::Adaptation(int validation_id,
|
||||
@@ -390,6 +391,7 @@ VideoStreamAdapter::RestrictionsOrState
|
||||
return Adaptation::Status::kAdaptationDisabled;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return Adaptation::Status::kAdaptationDisabled;
|
||||
}
|
||||
|
||||
Adaptation VideoStreamAdapter::GetAdaptationDown() {
|
||||
@@ -472,6 +474,7 @@ VideoStreamAdapter::GetAdaptationDownSte
|
||||
return Adaptation::Status::kAdaptationDisabled;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return Adaptation::Status::kAdaptationDisabled;
|
||||
}
|
||||
|
||||
VideoStreamAdapter::RestrictionsOrState VideoStreamAdapter::DecreaseResolution(
|
||||
@@ -625,6 +628,8 @@ Adaptation VideoStreamAdapter::GetAdaptD
|
||||
}
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return RestrictionsOrStateToAdaptation(
|
||||
+ Adaptation::Status::kAdaptationDisabled, input_state);
|
||||
}
|
||||
|
||||
VideoStreamAdapter::RestrictionsOrState
|
||||
Index: firefox-115.0/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||
@@ -407,7 +407,7 @@ absl::optional<FrameDependencyStructure>
|
||||
case VideoCodecType::kVideoCodecMultiplex:
|
||||
return absl::nullopt;
|
||||
}
|
||||
- RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
void RtpPayloadParams::GenericToGeneric(int64_t shared_frame_id,
|
||||
Index: firefox-115.0/third_party/libwebrtc/call/video_send_stream.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/call/video_send_stream.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/call/video_send_stream.cc
|
||||
@@ -30,6 +30,7 @@ const char* StreamTypeToString(VideoSend
|
||||
return "flexfec";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||
@@ -378,7 +378,7 @@ std::unique_ptr<ClippingPredictor> Creat
|
||||
config.reference_window_delay, config.clipping_threshold,
|
||||
/*adaptive_step_estimation=*/false);
|
||||
}
|
||||
- RTC_DCHECK_NOTREACHED();
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
|
||||
@@ -48,6 +48,7 @@ constexpr absl::string_view MetricNamePr
|
||||
case InputVolumeType::kRecommended:
|
||||
return "WebRTC.Audio.Apm.RecommendedInputVolume.";
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
metrics::Histogram* CreateVolumeHistogram(InputVolumeType input_volume_type) {
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
||||
@@ -59,6 +59,8 @@ rtc::FunctionView<float(float)> GetActiv
|
||||
case ActivationFunction::kSigmoidApproximated:
|
||||
return ::rnnoise::SigmoidApproximated;
|
||||
}
|
||||
+ // supposed to be never reached apparently therefore returning bogus
|
||||
+ return ::rnnoise::TansigApproximated;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
@@ -99,6 +99,7 @@ GainControl::Mode Agc1ConfigModeToInterf
|
||||
return GainControl::kFixedDigital;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return GainControl::kAdaptiveAnalog;
|
||||
}
|
||||
|
||||
bool MinimizeProcessingForUnusedOutput() {
|
||||
@@ -166,7 +167,7 @@ int AudioFormatValidityToErrorCode(Audio
|
||||
case AudioFormatValidity::kInvalidChannelCount:
|
||||
return AudioProcessing::kBadNumberChannelsError;
|
||||
}
|
||||
- RTC_DCHECK(false);
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
// Returns an AudioProcessing::Error together with the best possible option for
|
||||
@@ -2421,6 +2422,7 @@ void AudioProcessingImpl::InitializeNois
|
||||
return NsConfig::SuppressionLevel::k21dB;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return NsConfig::SuppressionLevel::k6dB;
|
||||
};
|
||||
|
||||
NsConfig cfg;
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
||||
@@ -32,6 +32,7 @@ std::string NoiseSuppressionLevelToStrin
|
||||
return "VeryHigh";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
std::string GainController1ModeToString(const Agc1Config::Mode& mode) {
|
||||
@@ -44,6 +45,7 @@ std::string GainController1ModeToString(
|
||||
return "FixedDigital";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
||||
@@ -53,6 +53,7 @@ std::string GetVadModeLabel(TransientSup
|
||||
case TransientSuppressor::VadMode::kNoVad:
|
||||
return "no VAD";
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||
@@ -44,6 +44,7 @@ ScreenCastPortal::CaptureSourceType Scre
|
||||
case CaptureType::kAnyScreenContent:
|
||||
return ScreenCastPortal::CaptureSourceType::kAnyScreenContent;
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
ScreenCastPortal::ScreenCastPortal(CaptureType type, PortalNotifier* notifier)
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
|
||||
@@ -38,6 +38,7 @@ std::unique_ptr<VideoRtpDepacketizer> Cr
|
||||
return std::make_unique<VideoRtpDepacketizerGeneric>();
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||
@@ -142,6 +142,7 @@ bool IsNonVolatile(RTPExtensionType type
|
||||
#endif
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool HasBweExtension(const RtpHeaderExtensionMap& extensions_map) {
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
|
||||
@@ -45,6 +45,7 @@ namespace {
|
||||
return "audio_cn";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
constexpr char kIncludeCaptureClockOffset[] =
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||
@@ -110,6 +110,7 @@ size_t BufferToIndex(Vp8BufferReference
|
||||
case Vp8FrameConfig::Vp8BufferReference::kNone:
|
||||
RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-115.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
|
||||
@@ -30,6 +30,7 @@ TemporalLayersChecker::CreateTemporalLay
|
||||
return std::make_unique<TemporalLayersChecker>(num_temporal_layers);
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
TemporalLayersChecker::TemporalLayersChecker(int num_temporal_layers)
|
||||
Index: firefox-115.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||
+++ firefox-115.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||
@@ -63,6 +63,7 @@ std::string ToString(VideoAdaptationReas
|
||||
return "cpu";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
std::vector<bool> GetActiveLayersFlags(const VideoCodec& codec) {
|
405
mozilla.keyring
Normal file
405
mozilla.keyring
Normal file
@ -0,0 +1,405 @@
|
||||
This file contains the public PGP key that is used to sign builds and
|
||||
artifacts of Mozilla projects (such as Firefox and Thunderbird).
|
||||
|
||||
Please realize that this file itself or the public key servers may be
|
||||
compromised. You are encouraged to validate the authenticity of these keys in
|
||||
an out-of-band manner.
|
||||
|
||||
Mozilla users: pgp < KEY
|
||||
|
||||
pub rsa4096 2015-07-17 [SC]
|
||||
14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||
uid [ full ] Mozilla Software Releases <release@mozilla.com>
|
||||
sub rsa4096 2015-07-17 [S] [expired: 2017-07-16]
|
||||
sub rsa4096 2017-06-22 [S] [expired: 2019-06-22]
|
||||
sub rsa4096 2019-05-30 [S] [expired: 2021-05-29]
|
||||
sub rsa4096 2021-05-17 [S] [expired: 2023-05-17]
|
||||
sub rsa4096 2023-05-05 [S] [expires: 2025-05-04]
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
fxyRMB5BEeLY0+qVPyvOxpXEGnlSHYmdIS4=
|
||||
=ZEQW
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
210
mozilla.sh.in
Normal file
210
mozilla.sh.in
Normal file
@ -0,0 +1,210 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org Code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Wolfgang Rosenauer <wolfgang.rosenauer@suse.de>
|
||||
# <wr@rosenauer.org>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
##
|
||||
## Usage:
|
||||
##
|
||||
## $ mozilla [args]
|
||||
##
|
||||
## This script is meant to run a mozilla program from the mozilla
|
||||
## rpm installation.
|
||||
##
|
||||
## The script will setup all the environment voodoo needed to make
|
||||
## mozilla work.
|
||||
|
||||
cmdname=`basename $0`
|
||||
|
||||
##
|
||||
## Variables
|
||||
##
|
||||
MOZ_DIST_BIN="%PREFIX"
|
||||
MOZ_DIST_LIB="%PROGDIR"
|
||||
MOZ_APPNAME="%APPNAME"
|
||||
MOZ_PROGRAM="$MOZ_DIST_LIB/$MOZ_APPNAME-bin"
|
||||
MOZ_LANGPACKS_DIR="$MOZ_DIST_LIB/langpacks"
|
||||
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
|
||||
|
||||
MOZ_APP_LAUNCHER="$MOZ_DIST_LIB/$MOZ_APPNAME.sh"
|
||||
if [ "$0" = "$MOZ_APP_LAUNCHER" ]; then
|
||||
[ -h "/usr/bin/$MOZ_APPNAME" ] && \
|
||||
_link=$(readlink -f "/usr/bin/$MOZ_APPNAME")
|
||||
if [ "$_link" = "$MOZ_APP_LAUNCHER" ]; then
|
||||
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
|
||||
fi
|
||||
else
|
||||
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
|
||||
fi
|
||||
|
||||
MOZILLA_FIVE_HOME="$MOZ_DIST_LIB"
|
||||
export MOZILLA_FIVE_HOME
|
||||
LD_LIBRARY_PATH=$MOZ_DIST_LIB${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
# needed for SUN Java under Xorg >= 7.2
|
||||
export LIBXCB_ALLOW_SLOPPY_LOCK=1
|
||||
|
||||
# disable Gnome crash dialog (doesn't make sense anyway)
|
||||
export GNOME_DISABLE_CRASH_DIALOG=1
|
||||
|
||||
# Wayland
|
||||
# Only supported on newer systems
|
||||
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=1
|
||||
fi
|
||||
|
||||
##
|
||||
## Use D-Bus remote exclusively when there's Wayland display.
|
||||
##
|
||||
if [ "$WAYLAND_DISPLAY" ]; then
|
||||
export MOZ_DBUS_REMOTE=1
|
||||
fi
|
||||
|
||||
# xinput2 (boo#1173320)
|
||||
. /etc/os-release
|
||||
if [ "$ID" = "opensuse-tumbleweed" ]; then
|
||||
export MOZ_USE_XINPUT2=1
|
||||
fi
|
||||
|
||||
##
|
||||
## To disable the use of Firefox localization handling for
|
||||
## the home profile, set MOZ_DISABLE_LANGPACKS=1
|
||||
## in your environment before launching Firefox.
|
||||
## currently disabled by default since langpacks
|
||||
## are shipped as app sideloading addons
|
||||
##
|
||||
#
|
||||
MOZ_DISABLE_LANGPACKS=1
|
||||
export MOZ_DISABLE_LANGPACKS
|
||||
#
|
||||
|
||||
##
|
||||
## Automatically installed langpacks are tracked by .suse-langpack-install
|
||||
## config file.
|
||||
##
|
||||
SUSE_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.suse-langpack-install"
|
||||
|
||||
# MOZ_DISABLE_LANGPACKS disables language packs completely
|
||||
MOZILLA_DOWN=0
|
||||
if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
|
||||
if [ -x $MOZ_PROGRAM ]; then
|
||||
# Is firefox running?
|
||||
/bin/pidof %APPNAME% > /dev/null 2>&1
|
||||
MOZILLA_DOWN=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Modify language pack configuration only when firefox is not running
|
||||
# and language packs are not disabled
|
||||
if [ $MOZILLA_DOWN -ne 0 ]; then
|
||||
# Clear already installed langpacks
|
||||
mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR
|
||||
if [ -f $SUSE_LANGPACK_CONFIG ]; then
|
||||
rm `cat $SUSE_LANGPACK_CONFIG` > /dev/null 2>&1
|
||||
rm $SUSE_LANGPACK_CONFIG > /dev/null 2>&1
|
||||
# remove all empty langpacks dirs while they block installation of langpacks
|
||||
rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1
|
||||
fi
|
||||
# Get locale from system
|
||||
CURRENT_LOCALE=$LC_ALL
|
||||
CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES}
|
||||
CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
|
||||
# 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"`
|
||||
create_langpack_link() {
|
||||
local language=$*
|
||||
local langpack=langpack-${language}@firefox.mozilla.org.xpi
|
||||
if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then
|
||||
rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
|
||||
# If the target file is a symlink (the fallback langpack),
|
||||
# install the original file instead of the fallback one
|
||||
if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then
|
||||
langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack`
|
||||
fi
|
||||
ln -s $MOZ_LANGPACKS_DIR/$langpack \
|
||||
$MOZ_EXTENSIONS_PROFILE_DIR/$langpack
|
||||
echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $SUSE_LANGPACK_CONFIG
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true
|
||||
fi
|
||||
|
||||
|
||||
moz_debug=0
|
||||
script_args=""
|
||||
pass_arg_count=0
|
||||
while [ $# -gt $pass_arg_count ]
|
||||
do
|
||||
case "$1" in
|
||||
-d | --debugger)
|
||||
moz_debugger=$2;
|
||||
if [ "${moz_debugger}" != "" ]; then
|
||||
shift 2
|
||||
moz_debug=1
|
||||
else
|
||||
echo "-d requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Move the unrecognized argument to the end of the list.
|
||||
arg="$1"
|
||||
shift
|
||||
set -- "$@" "$arg"
|
||||
pass_arg_count=`expr $pass_arg_count + 1`
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $moz_debug -eq 1 ]; then
|
||||
tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; }
|
||||
trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
|
||||
echo "set args ${1+"$@"}" > $tmpfile
|
||||
echo "run" >> $tmpfile
|
||||
echo "$moz_debugger $MOZ_PROGRAM -x $tmpfile"
|
||||
exec $moz_debugger "$MOZ_PROGRAM" -x $tmpfile
|
||||
else
|
||||
exec $MOZ_PROGRAM "$@"
|
||||
fi
|
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-115.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"
|
||||
|
||||
#include "mozilla/gfx/Logging.h"
|
||||
+#include "mozilla/gfx/Swizzle.h"
|
||||
#include "mozilla/widget/CompositorWidget.h"
|
||||
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
@@ -242,6 +243,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();
|
1
spellcheck.js
Normal file
1
spellcheck.js
Normal file
@ -0,0 +1 @@
|
||||
pref("spellchecker.dictionary_path", "/usr/share/myspell");
|
20
suse-default-prefs.js
Normal file
20
suse-default-prefs.js
Normal file
@ -0,0 +1,20 @@
|
||||
pref("general.useragent.vendor", "SUSE");
|
||||
pref("general.useragent.vendorSub", "RPM_VERSION");
|
||||
pref("font.default", "sans-serif");
|
||||
pref("font.default.x-western", "sans-serif");
|
||||
pref("font.name.monospace.x-western", "monospace");
|
||||
pref("font.name.monospace.x-unicode", "monospace");
|
||||
pref("network.negotiate-auth.gsslib", "GSSAPI");
|
||||
pref("print.print_edge_top", 14); // 1/100 of an inch
|
||||
pref("print.print_edge_left", 16); // 1/100 of an inch
|
||||
pref("print.print_edge_right", 16); // 1/100 of an inch
|
||||
pref("print.print_edge_bottom", 14); // 1/100 of an inch
|
||||
pref("intl.locale.requested", "");
|
||||
pref("intl.multilingual.enabled", true);
|
||||
|
||||
// do not disable system-global or app-global extensions
|
||||
pref("extensions.autoDisableScopes", 3);
|
||||
pref("extensions.shownSelectionUI", true);
|
||||
|
||||
// spellcheck
|
||||
pref("spellchecker.dictionary_path", "/usr/share/myspell");
|
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.
|
10
tar_stamps
Normal file
10
tar_stamps
Normal file
@ -0,0 +1,10 @@
|
||||
PRODUCT="thunderbird"
|
||||
CHANNEL="esr115"
|
||||
VERSION="115.15.0"
|
||||
VERSION_SUFFIX=""
|
||||
PREV_VERSION="115.14.0"
|
||||
PREV_VERSION_SUFFIX=""
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||
RELEASE_REPO="https://hg.mozilla.org/releases/comm-esr115"
|
||||
RELEASE_TAG="aa5ac5425f0381ec6c3e3d9122b5b9d14cc7e60d"
|
||||
RELEASE_TIMESTAMP="20240903191356"
|
3
thunderbird-115.13.0.source.tar.xz
Normal file
3
thunderbird-115.13.0.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:057f9436b383d668fc266d96dc62b50e669a68ee2af462e020997f5e274fc59e
|
||||
size 531342044
|
16
thunderbird-115.13.0.source.tar.xz.asc
Normal file
16
thunderbird-115.13.0.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmaNskQACgkQ4207E/PZ
|
||||
MnQFpA/9G4Ony2Yv2hqeM3wNgO9ZdtvN55iF9xSL0OUXxMEQrjt+FdGTNyJQ8uw2
|
||||
hroSGS8QSo/uwcUsVUwj3CD+bTxftf5bcfqv8noXwSk46nqSbklMtM105iGjEnpr
|
||||
jegHz1X018B+sYrPhmTyMAwP2cHZa6mUma4hErr0VdcNuGQFACzmsgR3NzTsG6pQ
|
||||
ecnoJVTRi3ZJIAFRUbdEbn2NugOKkwEwFTTycS1eXH41df6nZkKgmOsBXsT2ZuQr
|
||||
9jIR7TUBopcZCUA1Cr7HB6FtBbj+7LKcKykpvZrowyh375x+4ehs1md2xWvQm8Ur
|
||||
t4SnbxZ7Bf37PsL/FJYqhwDaMa/GVthh7h5GKhPURMqht3zlpF+gQnz/jRyAgLQA
|
||||
4CaIFqTLaEQF29vMIns5Dvb56OI9bNQYEe8GTvFhh/jF+GQwN38M/x6zwjQcHiv5
|
||||
hPHVO6dEuOtg9B2QadJRQGhol/+MGqAaAVpBkNUCmT6ANUPrt2dRZC3wn14Nb1SL
|
||||
hhDIMe6sTt0ZdF67Nb0lYxN2f7XO4idX7B8AQOfsWCDJJqOj2y/Lo0uPEDvlY5KS
|
||||
D1w04m7Go8NZMvUBHIgS1O6d7PGFFLO35ncYTdTWYNprfIH5Sx1nMCnb+Y/jCFsl
|
||||
58Z7fVySgSXkl2+GDFspPGWCgmvvuOFrH5Y6KWBRPWYgWNqPz0E=
|
||||
=on8F
|
||||
-----END PGP SIGNATURE-----
|
3
thunderbird-115.14.0.source.tar.xz
Normal file
3
thunderbird-115.14.0.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:037fc3f03f5ee4f23d4947ad285504d280e926c4e1a6b224d7351f668c6ed7f0
|
||||
size 533296972
|
16
thunderbird-115.14.0.source.tar.xz.asc
Normal file
16
thunderbird-115.14.0.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmar6QAACgkQ4207E/PZ
|
||||
MnQKUQ//auM1mf53PcOxpyX3VNGH6VcquXbFfzdmxStOyijdaVV1q47W6BQjY4uL
|
||||
3+ITqfw63C0rmrlNBS20w0YdRLiQdaRPrLI4Gj6GOLA8oeeYr5yEiXPuDuWvIpL2
|
||||
71UjOiPABanEiXCmnmB4A6zXzeCGLo5lrCfsjJ1Q64uvqL/B6C0T83N2caxzJeRB
|
||||
FIjTHs/HP5jEDNgkPZlRYC6EQzwsu35P8fhx/XjzkZefVsRt9g6EgNjK/fF4Auty
|
||||
LeyjbL4rz20izyh0tJ8f41cZWTHChydp6W9XA7+z7tVlTC92AmhyhKbiJJaC55Gj
|
||||
LptssG21AKyvuAT7q9S1BeZ9oNX5wBfwUGp5YcJGPVssQ0ZGRdpVyLyehsqK5HZM
|
||||
XmkzAoyyqBKRe+0MyiWgGj36STf68wh2ZdRt2yvmymZiWBgtOgSCa3qlXYzFwVWT
|
||||
5GxXbLACO6JKmXg+1PWOLPVvpLMjj2uHOPMWfb8IrgEndA81+D2qQUYh/2VncoRF
|
||||
RdML2m6Yf403xSw+6Ckauhhsx739CnjoISJRTtu9qvYm9wDY9RRZwg6zQsKpww+9
|
||||
0RQntiWLT48uG5/D2OB/jpngsb6QPhpzyLa2qiY1+ctcAcGqPN6MdDrfFIQbpPbO
|
||||
cTWi3ljxL+nbfHVJdHY77IkXF3qwBTQVT4yzS5qWgqPf5kC7c0g=
|
||||
=YzDJ
|
||||
-----END PGP SIGNATURE-----
|
3
thunderbird-115.15.0.source.tar.xz
Normal file
3
thunderbird-115.15.0.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eb04e62171586570e83ce538d4e2feca51c24b2def84fb5c1d0baa9269d41cc7
|
||||
size 534455612
|
16
thunderbird-115.15.0.source.tar.xz.asc
Normal file
16
thunderbird-115.15.0.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmbXrwUACgkQ4207E/PZ
|
||||
MnSSXBAAjscNC/NThi+i8p+exea5QWpM96FZkF5eRJ/jS9dWLm2UH9xZDPyDCJvy
|
||||
PXArlpWlIWWG21Pws7fy4g3RZcceim94QWhgMd75DJCKmZ9dgKJLtZla3Qs226b9
|
||||
G1DwXfonJUEh/cd1fQQ3ewRUwdnzgjyRMvJeDDdzClKqApuEF9hr7h7aJNObzU1R
|
||||
2n2gEpQrKIpWT5ijTlcr4tBTGqs3JkmXhzsH68XpzqXspWcpSJzSiEntH2iBvC8Z
|
||||
dfedsgGBA03gbyuFd+haD3/vxsARHAmme/o5xbrUcUIrZTkRVpI6mnFY0CzFx30K
|
||||
IilGvGy1mW7oxyakNAQvPpSTCcy8FPXdbi1oGRN1nS8kgpJhiW0pb7m7oh5ul1xi
|
||||
Hw1nT3ZJfikr/U2t8nTsXwgiuEnG6hqEh5Us6QR/f8rEEWd9TrbfLWXW4NfWImHZ
|
||||
OafCrzLzAUK4nSzN6AI+ZQqUBq0mru6z67I1CX6t2KCo7GdZwDhsWm8CrN/I0JlF
|
||||
5RuimLUpCs6Q25ZuPFaLojQHzImgXO48Y/lUHtaDYSdHHBhF7GYhLj3zA3ljuDIv
|
||||
rxmJpSaMBgn4zk4igQn7y3ScY5Ht0yHHdd3bkewcD02AuOWqYyFKuYmm3kTU+GjZ
|
||||
nY9j30eL+zXgVDWuD4vlTFvgieag9P6+HK/K8uzflJ8FiHzXy6U=
|
||||
=VPte
|
||||
-----END PGP SIGNATURE-----
|
20
thunderbird-fix-CVE-2024-34703.patch
Normal file
20
thunderbird-fix-CVE-2024-34703.patch
Normal file
@ -0,0 +1,20 @@
|
||||
https://github.com/randombit/botan/commit/94e9154c143aa5264da6254a6a1be5bc66ee2b5a
|
||||
|
||||
diff --git a/comm/third_party/botan/src/lib/pubkey/ec_group/ec_group.cpp b/comm/third_party/botan/src/lib/pubkey/ec_group/ec_group.cpp
|
||||
index bb60bacf7ba..214751b4eb0 100644
|
||||
--- a/comm/third_party/botan/src/lib/pubkey/ec_group/ec_group.cpp
|
||||
+++ b/comm/third_party/botan/src/lib/pubkey/ec_group/ec_group.cpp
|
||||
@@ -334,8 +334,11 @@ std::shared_ptr<EC_Group_Data> EC_Group::BER_decode_EC_group(const uint8_t bits[
|
||||
.end_cons()
|
||||
.verify_end();
|
||||
|
||||
- if(p.bits() < 64 || p.is_negative() || !is_bailie_psw_probable_prime(p))
|
||||
- throw Decoding_Error("Invalid ECC p parameter");
|
||||
+ if(p.bits() < 112 || p.bits() > 1024)
|
||||
+ throw Decoding_Error("ECC p parameter is invalid size");
|
||||
+
|
||||
+ if(p.is_negative() || !is_bailie_psw_probable_prime(p))
|
||||
+ throw Decoding_Error("ECC p parameter is not a prime");
|
||||
|
||||
if(a.is_negative() || a >= p)
|
||||
throw Decoding_Error("Invalid ECC a parameter");
|
1
thunderbird-rpmlintrc
Normal file
1
thunderbird-rpmlintrc
Normal file
@ -0,0 +1 @@
|
||||
addFilter("no-jar-manifest")
|
22
thunderbird.appdata.xml
Normal file
22
thunderbird.appdata.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Upstream does not want to ship it https://bugzilla.mozilla.org/show_bug.cgi?id=1071065
|
||||
so maintain a stub in here.
|
||||
-->
|
||||
|
||||
<application>
|
||||
<id type="desktop">thunderbird.desktop</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<description>
|
||||
<p>
|
||||
Thunderbird is a free, open-source, cross-platform application for
|
||||
managing email, news feeds, chat, and news groups. It is a local
|
||||
(rather than browser- or web-based) email application that is powerful
|
||||
yet easy to use.
|
||||
</p>
|
||||
</description>
|
||||
<url type="homepage">https://www.thunderbird.net/</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">https://upload.wikimedia.org/wikipedia/commons/9/9d/Mozilla_Thunderbird_GNOME.png</screenshot>
|
||||
</screenshots>
|
||||
</application>
|
12
thunderbird.desktop
Normal file
12
thunderbird.desktop
Normal file
@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=Thunderbird
|
||||
GenericName=Mail/News Client
|
||||
Comment=Mail/News Client
|
||||
TryExec=thunderbird
|
||||
Exec=thunderbird %u
|
||||
Icon=thunderbird
|
||||
Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
MimeType=x-scheme-handler/mailto;
|
Loading…
Reference in New Issue
Block a user