Accepting request 733855 from mozilla:Factory
OBS-URL: https://build.opensuse.org/request/show/733855 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/MozillaThunderbird?expand=0&rev=217
This commit is contained in:
commit
9a16dc0e1f
@ -1,3 +1,75 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 25 11:46:51 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
|
||||
- Mozilla Thunderbird 68.1.1
|
||||
Bugfixes
|
||||
* Issues with attachments in IMAP messages
|
||||
* Gmail accounts ignored a non-standard trash folder selection
|
||||
* Entering/pasting lists of recipients into the addressing widget or
|
||||
mailing list not working reliably, especially when lists contained
|
||||
multiple commas or semicolons
|
||||
* Edit mailing list not working
|
||||
* Various theme fixes, especially dark theme improvements for Calendar
|
||||
* Contrast between tag label and background not optimal
|
||||
* Account Central pane always loaded at start-up
|
||||
* "Config Editor" button not removed if blocked by policy
|
||||
* Calendar: Free/busy information in attendees dialog not scrolled
|
||||
correctly. Note: Scroll arrows still not behaving correctly
|
||||
MFSA 2019-32
|
||||
* CVE-2019-11755 (bmo#1240290, boo#1152375)
|
||||
Spoofing a message author via a crafted S/MIME message
|
||||
- require nodejs8 instead of generic nodejs for better cross-distribution
|
||||
support
|
||||
- call desktop database update on install
|
||||
- updated translations-other locale list
|
||||
- build correct ICU for Big Endian
|
||||
- remove kde.js since disabling instantApply breaks extensions and
|
||||
is obsolete with the move to HTML views for preferences (boo#1151186)
|
||||
- update create-tar.sh to latest revision and adjust tar_stamps
|
||||
- added platform patches from Firefox 68esr
|
||||
mozilla-bmo1005535.patch
|
||||
mozilla-bmo1463035.patch
|
||||
mozilla-bmo1504834-part1.patch
|
||||
mozilla-bmo1504834-part2.patch
|
||||
mozilla-bmo1504834-part3.patch
|
||||
mozilla-bmo1511604.patch
|
||||
mozilla-bmo1554971.patch
|
||||
mozilla-bmo1573381.patch
|
||||
mozilla-cubeb-noreturn.patch
|
||||
mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
|
||||
mozilla-fix-aarch64-libopus.patch
|
||||
mozilla-fix-top-level-asm.patch
|
||||
mozilla-nestegg-big-endian.patch
|
||||
mozilla-ntlm-full-path.patch
|
||||
mozilla-openaes-decl.patch
|
||||
mozilla-ppc-altivec_static_inline.patch
|
||||
mozilla-reduce-rust-debuginfo.patch
|
||||
mozilla-s390-bigendian.patch
|
||||
mozilla-s390-context.patch
|
||||
mozilla-bmo1512162.patch
|
||||
thunderbird-broken-locales-build.patch
|
||||
- removed renamed patches
|
||||
fix-missing-return-warning.patch
|
||||
fix-top-level-asm-issue.patch
|
||||
thunderbird-locale-build.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 20 15:59:25 UTC 2019 - munix9@googlemail.com
|
||||
|
||||
- repack the lightning xpi with all available locales (boo#939153) (lp#545778)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 20 09:49:41 UTC 2019 - Martin Liška <mliska@suse.cz>
|
||||
|
||||
- Add fix-top-level-asm-issue.patch in order to fix LTO build.
|
||||
- Enable LTO on TW on x86_64.
|
||||
- Use GCC.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 20 08:24:23 UTC 2019 - Bernhard Wiedemann <bwiedemann@suse.com>
|
||||
|
||||
- added mozilla-bmo1568145.patch to make builds reproducible (boo#1047218)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 10 07:33:52 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
|
||||
@ -7,21 +79,21 @@ Tue Sep 10 07:33:52 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
alternative.
|
||||
* several bugfixes
|
||||
MFSA 2019-30
|
||||
* CVE-2019-11739 (bmo#1571481)
|
||||
* CVE-2019-11739 (bmo#1571481, boo#1150939)
|
||||
Covert Content Attack on S/MIME encryption using a crafted
|
||||
multipart/alternative message
|
||||
* CVE-2019-11746 (bmo#1564449)
|
||||
* CVE-2019-11746 (bmo#1564449, boo#1149297)
|
||||
Use-after-free while manipulating video
|
||||
* CVE-2019-11744 (bmo#1562033)
|
||||
* CVE-2019-11744 (bmo#1562033, boo#1149304)
|
||||
XSS by breaking out of title and textarea elements using innerHTML
|
||||
* CVE-2019-11742 (bmo#1559715)
|
||||
* CVE-2019-11742 (bmo#1559715, boo#1149303)
|
||||
Same-origin policy violation with SVG filters and canvas to steal
|
||||
cross-origin images
|
||||
* CVE-2019-11752 (bmo#1501152)
|
||||
* CVE-2019-11752 (bmo#1501152, boo#1149296)
|
||||
Use-after-free while extracting a key value in IndexedDB
|
||||
* CVE-2019-11743 (bmo#1560495)
|
||||
* CVE-2019-11743 (bmo#1560495, boo#1149298)
|
||||
Cross-origin access to unload event attributes
|
||||
* CVE-2019-11740 (bmo#1563133,bmo#1573160)
|
||||
* CVE-2019-11740 (bmo#1563133,bmo#1573160, boo#1149299)
|
||||
Memory safety bugs fixed in Firefox 69, Firefox ESR 68.1, and Firefox
|
||||
ESR 60.9, Thunderbird 68.1, and Thunderbird 60.9
|
||||
- removed upstreamed fix-build-after-y2038-changes-in-glibc.patch
|
||||
|
@ -18,20 +18,29 @@
|
||||
|
||||
|
||||
# changed with every update
|
||||
%define major 68
|
||||
%define mainver %major.1.0
|
||||
%define version_postfix %{nil}
|
||||
%define update_channel release
|
||||
%define releasedate 20190909201201
|
||||
%define source_prefix thunderbird-%{mainver}
|
||||
# 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 68
|
||||
%define mainver %major.1.1
|
||||
%define orig_version 68.1.1
|
||||
%define orig_suffix %{nil}
|
||||
%define update_channel release
|
||||
%define releasedate 20190924105435
|
||||
%define source_prefix thunderbird-%{mainver}
|
||||
|
||||
# always build with GCC as SUSE Security Team requires that
|
||||
# TODO: Deactivate this as the next step
|
||||
%define clang_build 1
|
||||
%define clang_build 0
|
||||
|
||||
# PIE, full relro
|
||||
%define build_hardened 1
|
||||
|
||||
%bcond_with only_print_mozconfig
|
||||
|
||||
%bcond_without mozilla_tb_kde4
|
||||
%bcond_with mozilla_tb_valgrind
|
||||
%bcond_without mozilla_tb_optimize_for_size
|
||||
@ -75,7 +84,7 @@ BuildRequires: memory-constraints
|
||||
BuildRequires: mozilla-nspr-devel >= 4.21
|
||||
BuildRequires: mozilla-nss-devel >= 3.44.1
|
||||
BuildRequires: nasm >= 2.13
|
||||
BuildRequires: nodejs >= 8.11
|
||||
BuildRequires: nodejs8 >= 8.11
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: python2-xml
|
||||
BuildRequires: python3 >= 3.5
|
||||
@ -116,9 +125,9 @@ BuildRequires: clang4-devel
|
||||
Recommends: libavcodec-full >= 0.10.16
|
||||
Version: %{mainver}
|
||||
Release: 0
|
||||
Provides: MozillaThunderbird-devel = %version
|
||||
Obsoletes: MozillaThunderbird-devel < %version
|
||||
Provides: MozillaThunderbird-devel = %{version}
|
||||
Provides: thunderbird = %{version}
|
||||
Obsoletes: MozillaThunderbird-devel < %{version}
|
||||
Provides: appdata()
|
||||
Provides: appdata(thunderbird.appdata.xml)
|
||||
%if %{with mozilla_tb_kde4}
|
||||
@ -131,32 +140,50 @@ Summary: An integrated email, news feeds, chat, and newsgroups client
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Email/Clients
|
||||
Url: https://www.thunderbird.net/
|
||||
Source: http://ftp.mozilla.org/pub/%{progname}/releases/%{version}%{version_postfix}/source/%{progname}-%{version}%{version_postfix}.source.tar.xz
|
||||
%if !%{with only_print_mozconfig}
|
||||
Source: http://ftp.mozilla.org/pub/%{progname}/releases/%{orig_version}%{orig_suffix}/source/%{progname}-%{orig_version}%{orig_suffix}.source.tar.xz
|
||||
Source1: thunderbird.desktop
|
||||
Source2: tar_stamps
|
||||
Source2: thunderbird-rpmlintrc
|
||||
Source3: mozilla.sh.in
|
||||
Source4: l10n-%{version}.tar.xz
|
||||
Source4: tar_stamps
|
||||
Source6: suse-default-prefs.js
|
||||
Source8: thunderbird-rpmlintrc
|
||||
Source7: l10n-%{version}.tar.xz
|
||||
Source9: thunderbird.appdata.xml
|
||||
Source10: create-tar.sh
|
||||
Source11: compare-locales.tar.xz
|
||||
Source12: kde.js
|
||||
Source13: https://ftp.mozilla.org/pub/thunderbird/releases/%{version}/source/thunderbird-%{version}.source.tar.xz.asc
|
||||
Source14: http://ftp.mozilla.org/pub/thunderbird/releases/%{version}/KEY#/%{name}.keyring
|
||||
Source10: compare-locales.tar.xz
|
||||
Source14: https://github.com/openSUSE/firefox-scripts/raw/master/create-tar.sh
|
||||
Source20: https://ftp.mozilla.org/pub/%{progname}/releases/%{orig_version}%{orig_suffix}/source/%{progname}-%{orig_version}%{orig_suffix}.source.tar.xz.asc
|
||||
Source21: https://ftp.mozilla.org/pub/%{progname}/releases/%{orig_version}/KEY#/mozilla.keyring
|
||||
# Gecko/Toolkit
|
||||
Patch1: mozilla-nongnome-proxies.patch
|
||||
Patch2: mozilla-kde.patch
|
||||
Patch3: mozilla-aarch64-startup-crash.patch
|
||||
Patch4: fix-missing-return-warning.patch
|
||||
Patch5: thunderbird-locale-build.patch
|
||||
Patch3: mozilla-ntlm-full-path.patch
|
||||
Patch4: mozilla-openaes-decl.patch
|
||||
Patch5: mozilla-aarch64-startup-crash.patch
|
||||
Patch6: mozilla-bmo1463035.patch
|
||||
Patch7: mozilla-cubeb-noreturn.patch
|
||||
Patch8: mozilla-fix-aarch64-libopus.patch
|
||||
Patch9: mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
|
||||
Patch10: mozilla-s390-context.patch
|
||||
Patch11: mozilla-s390-bigendian.patch
|
||||
Patch12: mozilla-reduce-rust-debuginfo.patch
|
||||
Patch13: mozilla-ppc-altivec_static_inline.patch
|
||||
Patch14: mozilla-bmo1005535.patch
|
||||
Patch15: mozilla-bmo1568145.patch
|
||||
Patch16: mozilla-bmo1573381.patch
|
||||
Patch17: mozilla-bmo1504834-part1.patch
|
||||
Patch18: mozilla-bmo1504834-part2.patch
|
||||
Patch19: mozilla-bmo1504834-part3.patch
|
||||
Patch20: mozilla-bmo1511604.patch
|
||||
Patch21: mozilla-bmo1554971.patch
|
||||
Patch22: mozilla-nestegg-big-endian.patch
|
||||
Patch23: mozilla-bmo1512162.patch
|
||||
Patch24: mozilla-fix-top-level-asm.patch
|
||||
Patch100: thunderbird-broken-locales-build.patch
|
||||
%endif # only_print_mozconfig
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
PreReq: coreutils fileutils textutils /bin/sh
|
||||
Recommends: libcanberra0
|
||||
Recommends: libpulse0
|
||||
# Exclude bigendian archs for now, have not built
|
||||
# since version 45.8.0
|
||||
ExcludeArch: ppc ppc64 s390 s390x
|
||||
### build options
|
||||
%ifarch aarch64 ppc ppc64 ppc64le s390 s390x ia64 %arm
|
||||
%define crashreporter 0
|
||||
@ -169,7 +196,8 @@ ExcludeArch: ppc ppc64 s390 s390x
|
||||
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libldap.*|libldif.*|libprldap.*)$
|
||||
Requires: mozilla-nspr >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nspr)
|
||||
Requires: mozilla-nss >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nss)
|
||||
Conflicts: thunderbird-esr
|
||||
Requires(post): desktop-file-utils
|
||||
Requires(postun): desktop-file-utils
|
||||
%define libgssapi libgssapi_krb5.so.2
|
||||
|
||||
%description
|
||||
@ -179,7 +207,6 @@ managing email, news feeds, chat, and news groups. It is a local
|
||||
yet easy to use.
|
||||
|
||||
%if %localize
|
||||
|
||||
%package translations-common
|
||||
Summary: Common translations for %{appname}
|
||||
Group: System/Localization
|
||||
@ -194,7 +221,7 @@ of %{appname}.
|
||||
%package translations-other
|
||||
Summary: Extra translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ast;be;bg;bn_BD;br;et;eu;fy_NL;ga_IE;gd;gl;he;hr;hy_AM;id;is;lt;nn_NO;pa_IN;rm;ro;si;sk;sl;sq;sr;ta_LK;tr;uk;vi)
|
||||
Provides: locale(%{name}:ast;be;bg;br;cak;cy;dsb;et;eu;fy_NL;ga_IE;gd;gl;he;hr;hsb;hy_AM;id;is;ka;kab;kk;lt;ms;nn_NO;rm;ro;si;sk;sl;sq;sr;tr;uk;uz;vi)
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
@ -213,16 +240,17 @@ This subpackage contains the Breakpad created and compatible debugging
|
||||
symbols meant for upload to Mozilla's crash collector database.
|
||||
%endif
|
||||
|
||||
%if !%{with only_print_mozconfig}
|
||||
%prep
|
||||
%if %localize
|
||||
# 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 "%{SOURCE4}") < MINSIZE)); then
|
||||
if (( $(stat -Lc%s "%{SOURCE7}") < MINSIZE)); then
|
||||
echo "Translations tarball %{SOURCE7} not generated properly."
|
||||
exit 1
|
||||
fi
|
||||
%setup -q -n %{source_prefix} -b 4 -b 11
|
||||
%setup -q -n %{source_prefix} -b 7 -b 10
|
||||
%else
|
||||
%setup -q -n %{source_prefix}
|
||||
%endif
|
||||
@ -233,11 +261,33 @@ fi
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%ifarch s390x
|
||||
%patch11 -p1
|
||||
%endif
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
# Thunderbird
|
||||
%patch100 -p1
|
||||
%endif # only_print_mozconfig
|
||||
|
||||
%build
|
||||
#
|
||||
# Limit RAM usage to avoid OOM
|
||||
|
||||
%if !%{with only_print_mozconfig}
|
||||
%define _lto_cflags %{nil}
|
||||
# no need to add build time to binaries
|
||||
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
|
||||
@ -252,14 +302,12 @@ if test "$kdehelperversion" != %{kde_helper_version}; then
|
||||
exit 1
|
||||
fi
|
||||
%endif
|
||||
%endif # only_print_mozconfig
|
||||
|
||||
export SUSE_ASNEEDED=0
|
||||
export MOZ_BUILD_DATE=%{releasedate}
|
||||
export MOZILLA_OFFICIAL=1
|
||||
export BUILD_OFFICIAL=1
|
||||
%if %{update_channel} == "esr"
|
||||
export MOZ_ESR=1
|
||||
%endif
|
||||
%if 0%{?suse_version} <= 1320
|
||||
export CC=gcc-7
|
||||
%else
|
||||
@ -285,10 +333,16 @@ export CXXFLAGS="$CFLAGS"
|
||||
export RUSTFLAGS="-Cdebuginfo=0"
|
||||
%endif
|
||||
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
|
||||
%if %{with only_print_mozconfig}
|
||||
echo "export CC=$CC"
|
||||
echo "export CXX=$CXX"
|
||||
echo "export CFLAGS=\"$CFLAGS\""
|
||||
echo "export LDFLAGS=\"$LDFLAGS\""
|
||||
echo "export RUSTFLAGS=\"$RUSTFLAGS\""
|
||||
echo ""
|
||||
cat << EOF
|
||||
%else
|
||||
%limit_build -m 2000
|
||||
# -g might be part of RPM_OPT_FLAGS, depending on the debuginfo setting in prj config
|
||||
# gcc lacks a an explicit -noop, so use something similar to make sure -g
|
||||
# is not forced into CFLAGS
|
||||
export MOZ_DEBUG_FLAGS="-pipe"
|
||||
cat << EOF > $MOZCONFIG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
@ -336,33 +390,58 @@ ac_add_options --enable-startup-notification
|
||||
ac_add_options --enable-official-branding
|
||||
ac_add_options --disable-necko-wifi
|
||||
ac_add_options --enable-update-channel=%{update_channel}
|
||||
ac_add_options --with-unsigned-addon-scopes=app
|
||||
%if %has_system_cairo
|
||||
ac_add_options --enable-system-cairo
|
||||
%endif
|
||||
%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
|
||||
%if %{with mozilla_tb_valgrind}
|
||||
ac_add_options --disable-jemalloc
|
||||
ac_add_options --enable-valgrind
|
||||
%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
|
||||
%endif
|
||||
%endif
|
||||
EOF
|
||||
%endif
|
||||
%if !%{with only_print_mozconfig}
|
||||
%ifarch ppc64 s390x s390
|
||||
# NOTE: Currently, system-icu is too old, so we can't build with that,
|
||||
# but have to generate the .dat-file freshly. This seems to be a
|
||||
# less fragile approach anyways.
|
||||
# ac_add_options --with-system-icu
|
||||
echo "Generate big endian version of config/external/icu/data/icud58l.dat"
|
||||
./mach python intl/icu_sources_data.py .
|
||||
ls -l config/external/icu/data
|
||||
rm -f config/external/icu/data/icudt*l.dat
|
||||
%endif
|
||||
./mach build
|
||||
%endif # only_print_mozconfig
|
||||
|
||||
%install
|
||||
cd $RPM_BUILD_DIR/obj
|
||||
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/thunderbird/* %{buildroot}%{progdir}
|
||||
install -m 644 %{SOURCE13} %{buildroot}%{progdir}/defaults/pref/
|
||||
%if %{with mozilla_tb_kde4}
|
||||
# install kde.js
|
||||
install -m 644 %{SOURCE12} %{buildroot}%{progdir}/defaults/pref/kde.js
|
||||
# make sure that instantApply is true by default
|
||||
# (TODO: mozilla-kde.patch needs to be improved to really not load kde.js in non-KDE envs)
|
||||
echo 'pref("browser.preferences.instantApply", true);' > %{buildroot}%{progdir}/defaults/pref/all-thunderbird.js
|
||||
%endif
|
||||
cp -rf $RPM_BUILD_DIR/obj/dist/%{progname}/* %{buildroot}%{progdir}
|
||||
# build additional locales
|
||||
%if %localize
|
||||
mkdir -p %{buildroot}%{progdir}/extensions/
|
||||
@ -390,6 +469,23 @@ sed -r '/^(ja-JP-mac|en-US|$)/d;s/ .*$//' $RPM_BUILD_DIR/%{source_prefix}/comm/m
|
||||
echo %{progdir}/extensions/langpack-$locale@thunderbird.mozilla.org \
|
||||
>> %{_tmppath}/translations.$_l10ntarget
|
||||
' -- {}
|
||||
# repack the lightning xpi with all available locales (boo#939153) (lp#545778)
|
||||
_extid="{e2fda1a4-762b-4020-b5ad-a41df1933103}"
|
||||
rm -rf _lightning
|
||||
mkdir -p _lightning
|
||||
unzip -q -d _lightning "%{buildroot}%{progdir}/distribution/extensions/${_extid}.xpi"
|
||||
_langpacks=$(cd "%{buildroot}%{progdir}/extensions/" && find langpack-* -type d -prune -print|cut -d'-' -f2-|cut -d'@' -f1)
|
||||
for _loc in $_langpacks ; do
|
||||
_dir="%{buildroot}%{progdir}/extensions/langpack-${_loc}@thunderbird.mozilla.org"
|
||||
_dir="${_dir}/distribution/extensions/${_extid}"
|
||||
test -d "_lightning/chrome/calendar-${_loc}" && continue
|
||||
test -d "_lightning/chrome/lightning-${_loc}" && continue
|
||||
test -f "${_dir}/chrome.manifest" || continue
|
||||
cp -rL "${_dir}"/chrome/{calendar,lightning}-"${_loc}" _lightning/chrome/
|
||||
cat "${_dir}/chrome.manifest" >> _lightning/chrome.manifest
|
||||
done
|
||||
(cd _lightning && zip -q9r ../"${_extid}.xpi" *)
|
||||
cp -p "${_extid}.xpi" %{buildroot}%{progdir}/distribution/extensions/
|
||||
%endif
|
||||
# overwrite the mozilla start-script and link it to /usr/bin
|
||||
mkdir --parents %{buildroot}%{_bindir}/
|
||||
@ -449,10 +545,12 @@ rm -f %{buildroot}%{progdir}/nspr-config
|
||||
%fdupes %{buildroot}%{progdir}
|
||||
%fdupes %{buildroot}%{_libdir}/mozilla
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
# create breakpad debugsymbols
|
||||
%if %crashreporter
|
||||
SYMBOLS_NAME="thunderbird-%{version}-%{release}.%{_arch}-%{suse_version}-symbols"
|
||||
make buildsymbols \
|
||||
SYMBOL_INDEX_NAME="$SYMBOLS_NAME.txt" \
|
||||
SYMBOL_FULL_ARCHIVE_BASENAME="$SYMBOLS_NAME-full" \
|
||||
SYMBOL_ARCHIVE_BASENAME="$SYMBOLS_NAME"
|
||||
if [ -e dist/*symbols.zip ]; then
|
||||
mkdir -p %{buildroot}%{_datadir}/mozilla/
|
||||
@ -467,10 +565,12 @@ rm -rf %{_tmppath}/translations.*
|
||||
%endif
|
||||
|
||||
%post
|
||||
%desktop_database_post
|
||||
%icon_theme_cache_post
|
||||
exit 0
|
||||
|
||||
%postun
|
||||
%desktop_database_postun
|
||||
%icon_theme_cache_postun
|
||||
exit 0
|
||||
|
||||
@ -487,9 +587,6 @@ exit 0
|
||||
%{progdir}/gtk2/libmozgtk.so
|
||||
%{progdir}/*.so
|
||||
%{progdir}/omni.ja
|
||||
%if %crashreporter
|
||||
%{progdir}/minidump-analyzer
|
||||
%endif
|
||||
%{progdir}/pingsender
|
||||
%{progdir}/platform.ini
|
||||
%{progdir}/plugin-container
|
||||
@ -498,6 +595,7 @@ exit 0
|
||||
%if %crashreporter
|
||||
%{progdir}/crashreporter
|
||||
%{progdir}/crashreporter.ini
|
||||
%{progdir}/minidump-analyzer
|
||||
%{progdir}/Throbber-small.gif
|
||||
%endif
|
||||
%dir %{progdir}/chrome/
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:74bff7abaceafcb71628e1be0dede58249467fe36a71bde992ab6e5a350db739
|
||||
size 28500
|
||||
oid sha256:7882c9c5c073a24f48abf4c7ea46070746a49f95ba75d49e7cb8a814cf2ec513
|
||||
size 28496
|
||||
|
@ -1,9 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
function print_usage_and_exit() {
|
||||
echo "Usage: create-tar.sh tar_stamp"
|
||||
echo "Usage: create-tar.sh tar_stamps"
|
||||
echo ""
|
||||
echo "Where tar_stamp should look like this:"
|
||||
echo "Where tar_stamps should look like this:"
|
||||
echo ""
|
||||
cat << EOF
|
||||
# Node ID: 64ee63facd4ff96b3e8590cff559d7e97ac6b061
|
||||
@ -11,8 +11,7 @@ PRODUCT="firefox" # "firefox" or "thunderbird"
|
||||
CHANNEL="esr60"
|
||||
VERSION="60.7.0"
|
||||
VERSION_SUFFIX="esr"
|
||||
FF_RELEASE_TAG="" # Needs only to be set if no tar-ball can be downloaded
|
||||
TB_RELEASE_TAG="" # Only relevant for Thunderbird
|
||||
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 and compare-locales-generation
|
||||
@ -25,7 +24,7 @@ if [ $# -ne 1 ]; then
|
||||
print_usage_and_exit
|
||||
fi
|
||||
|
||||
# Sourcing the given tar_stamp-file to have the variables available
|
||||
# Sourcing the given tar_stamps-file to have the variables available
|
||||
source "$1" || print_usage_and_exit
|
||||
|
||||
# Internal variables
|
||||
@ -193,10 +192,19 @@ else
|
||||
echo "cloning new $BRANCH..."
|
||||
hg clone http://hg.mozilla.org/$BRANCH $PRODUCT-$VERSION
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
hg clone http://hg.mozilla.org/releases/comm-$CHANNEL thunderbird-$VERSION/comm
|
||||
hg clone http://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
|
||||
@ -207,7 +215,7 @@ else
|
||||
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
pushd comm || exit 1
|
||||
hg update --check $TB_RELEASE_TAG
|
||||
hg update --check $RELEASE_TAG
|
||||
popd || exit 1
|
||||
rm -rf thunderbird-${VERSION}/{,comm/}other-licenses/7zstub
|
||||
fi
|
||||
@ -241,7 +249,7 @@ if [ $LOCALES_CHANGED -ne 0 ]; then
|
||||
else
|
||||
hg clone "http://hg.mozilla.org/l10n-central/$locale" "l10n/$locale"
|
||||
fi
|
||||
[ "$FF_RELEASE_TAG" == "default" ] || hg -R "l10n/$locale" up -C -r "$changeset"
|
||||
[ "$RELEASE_TAG" == "default" ] || hg -R "l10n/$locale" up -C -r "$changeset"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
@ -1,10 +0,0 @@
|
||||
diff -rup thunderbird-68.0.orig/media/libcubeb/src/cubeb_utils.cpp thunderbird-68.0/media/libcubeb/src/cubeb_utils.cpp
|
||||
--- thunderbird-68.0.orig/media/libcubeb/src/cubeb_utils.cpp 2019-08-26 23:32:14.000000000 +0200
|
||||
+++ thunderbird-68.0/media/libcubeb/src/cubeb_utils.cpp 2019-08-30 09:22:26.213301561 +0200
|
||||
@@ -20,4 +20,6 @@ size_t cubeb_sample_size(cubeb_sample_fo
|
||||
// should never happen as all cases are handled above.
|
||||
assert(false);
|
||||
}
|
||||
+ // silence the compiler here:
|
||||
+ return 0;
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c541911ac4b533acbdde32928dd825716bec8c64d74a66f0537fd1ad2d95af68
|
||||
size 28439160
|
3
l10n-68.1.1.tar.xz
Normal file
3
l10n-68.1.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:80110e0c17901459c11b3e716c048259b9a9c1f6d841a5eb3d67e4e13e8626f7
|
||||
size 28450164
|
20
mozilla-bmo1005535.patch
Normal file
20
mozilla-bmo1005535.patch
Normal file
@ -0,0 +1,20 @@
|
||||
# HG changeset patch
|
||||
# User Steve Singer <steve@ssinger.info>
|
||||
# Date 1558451540 -7200
|
||||
# Tue May 21 17:12:20 2019 +0200
|
||||
# Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad
|
||||
# Parent 42c99b59a87b904063bad3193f10c51d068d2eac
|
||||
Bug 1005535 - Get skia GPU building on big endian.
|
||||
|
||||
diff -r 42c99b59a87b -r 433beec63e6b gfx/skia/skia/include/private/GrColor.h
|
||||
--- a/gfx/skia/skia/include/private/GrColor.h Wed Jun 05 08:48:08 2019 +0200
|
||||
+++ b/gfx/skia/skia/include/private/GrColor.h Tue May 21 17:12:20 2019 +0200
|
||||
@@ -63,7 +63,7 @@
|
||||
* Since premultiplied means that alpha >= color, we construct a color with
|
||||
* each component==255 and alpha == 0 to be "illegal"
|
||||
*/
|
||||
-#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A))
|
||||
+#define GrColor_ILLEGAL ((uint32_t)(~(0xFF << GrColor_SHIFT_A)))
|
||||
|
||||
/** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */
|
||||
static inline float GrNormalizeByteToFloat(uint8_t value) {
|
78
mozilla-bmo1463035.patch
Normal file
78
mozilla-bmo1463035.patch
Normal file
@ -0,0 +1,78 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Mike Hommey <mh+mozilla@glandium.org>
|
||||
# Date 1526871862 -32400
|
||||
# Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43
|
||||
# Parent fc741a5ea37dbe145e0ca5f85e5dfb100f3c9091
|
||||
Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
|
||||
|
||||
For some reason, GNU as is not happy with the assembly generated after
|
||||
bug 1238661 anymore on Debian armel.
|
||||
|
||||
OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this
|
||||
workaround anymore, so let's just kill it.
|
||||
|
||||
diff --git a/mfbt/moz.build b/mfbt/moz.build
|
||||
--- a/mfbt/moz.build
|
||||
+++ b/mfbt/moz.build
|
||||
@@ -122,20 +122,16 @@ EXPORTS["double-conversion"] = [
|
||||
LOCAL_INCLUDES += [
|
||||
'/mfbt/double-conversion',
|
||||
]
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
EXPORTS.mozilla += [
|
||||
'WindowsVersion.h',
|
||||
]
|
||||
-elif CONFIG['OS_ARCH'] == 'Linux':
|
||||
- EXPORTS.mozilla += [
|
||||
- 'LinuxSignal.h',
|
||||
- ]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
'Assertions.cpp',
|
||||
'ChaosMode.cpp',
|
||||
'double-conversion/double-conversion/bignum-dtoa.cc',
|
||||
'double-conversion/double-conversion/bignum.cc',
|
||||
'double-conversion/double-conversion/cached-powers.cc',
|
||||
'double-conversion/double-conversion/diy-fp.cc',
|
||||
diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp
|
||||
--- a/tools/profiler/core/platform-linux-android.cpp
|
||||
+++ b/tools/profiler/core/platform-linux-android.cpp
|
||||
@@ -55,17 +55,16 @@
|
||||
#ifdef __GLIBC__
|
||||
# include <execinfo.h> // backtrace, backtrace_symbols
|
||||
#endif // def __GLIBC__
|
||||
#include <strings.h> // index
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "prenv.h"
|
||||
-#include "mozilla/LinuxSignal.h"
|
||||
#include "mozilla/PodOperations.h"
|
||||
#include "mozilla/DebugOnly.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <list>
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
@@ -248,17 +247,17 @@ Sampler::Sampler(PSLockRef aLock)
|
||||
|
||||
// NOTE: We don't initialize LUL here, instead initializing it in
|
||||
// SamplerThread's constructor. This is because with the
|
||||
// profiler_suspend_and_sample_thread entry point, we want to be able to
|
||||
// sample without waiting for LUL to be initialized.
|
||||
|
||||
// Request profiling signals.
|
||||
struct sigaction sa;
|
||||
- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
|
||||
+ sa.sa_sigaction = SigprofHandler;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
|
||||
MOZ_CRASH("Error installing SIGPROF handler in the profiler");
|
||||
}
|
||||
}
|
||||
|
||||
void Sampler::Disable(PSLockRef aLock) {
|
81
mozilla-bmo1504834-part1.patch
Normal file
81
mozilla-bmo1504834-part1.patch
Normal file
@ -0,0 +1,81 @@
|
||||
# HG changeset patch
|
||||
# Parent 051b75a600dfbf7503c3485cebfd34d4eb29be96
|
||||
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
|
||||
|
||||
diff -r 051b75a600df gfx/2d/DrawTargetSkia.cpp
|
||||
--- a/gfx/2d/DrawTargetSkia.cpp Fri Jul 05 12:42:44 2019 +0200
|
||||
+++ b/gfx/2d/DrawTargetSkia.cpp Mon Jul 08 10:59:30 2019 +0200
|
||||
@@ -138,8 +138,7 @@
|
||||
return surfaceBounds.Intersect(bounds);
|
||||
}
|
||||
|
||||
-static const int kARGBAlphaOffset =
|
||||
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
|
||||
+static const int kARGBAlphaOffset = 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
|
||||
|
||||
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
|
||||
const int32_t aStride, SurfaceFormat aFormat) {
|
||||
diff -r 051b75a600df gfx/2d/Types.h
|
||||
--- a/gfx/2d/Types.h Fri Jul 05 12:42:44 2019 +0200
|
||||
+++ b/gfx/2d/Types.h Mon Jul 08 10:59:30 2019 +0200
|
||||
@@ -85,15 +85,8 @@
|
||||
// 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
|
||||
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
|
||||
};
|
||||
|
||||
static inline int BytesPerPixel(SurfaceFormat aFormat) {
|
||||
diff -r 051b75a600df gfx/skia/skia/third_party/skcms/skcms.cc
|
||||
--- a/gfx/skia/skia/third_party/skcms/skcms.cc Fri Jul 05 12:42:44 2019 +0200
|
||||
+++ b/gfx/skia/skia/third_party/skcms/skcms.cc Mon Jul 08 10:59:30 2019 +0200
|
||||
@@ -17,6 +17,8 @@
|
||||
#include <arm_neon.h>
|
||||
#elif defined(__SSE__)
|
||||
#include <immintrin.h>
|
||||
+#else
|
||||
+ #define SKCMS_PORTABLE
|
||||
#endif
|
||||
|
||||
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
|
||||
@@ -124,20 +126,28 @@
|
||||
static uint16_t read_big_u16(const uint8_t* ptr) {
|
||||
uint16_t be;
|
||||
memcpy(&be, ptr, sizeof(be));
|
||||
-#if defined(_MSC_VER)
|
||||
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
+ return be;
|
||||
+#else
|
||||
+ #if defined(_MSC_VER)
|
||||
return _byteswap_ushort(be);
|
||||
-#else
|
||||
+ #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)
|
||||
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__
|
||||
+ return be;
|
||||
+#else
|
||||
+ #if defined(_MSC_VER)
|
||||
return _byteswap_ulong(be);
|
||||
-#else
|
||||
+ #else
|
||||
return __builtin_bswap32(be);
|
||||
+ #endif
|
||||
#endif
|
||||
}
|
||||
|
88
mozilla-bmo1504834-part2.patch
Normal file
88
mozilla-bmo1504834-part2.patch
Normal file
@ -0,0 +1,88 @@
|
||||
# HG changeset patch
|
||||
# Parent 36563351309ddbc6c29559ba50a41d005f925abb
|
||||
Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla)
|
||||
has no interest in maintaining big endian.
|
||||
So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes
|
||||
out again, we transform back to BE.
|
||||
|
||||
diff -r 36563351309d gfx/2d/ConvolutionFilter.cpp
|
||||
--- a/gfx/2d/ConvolutionFilter.cpp Mon Sep 09 17:59:28 2019 +0200
|
||||
+++ b/gfx/2d/ConvolutionFilter.cpp Tue Sep 10 08:25:13 2019 +0200
|
||||
@@ -35,9 +35,38 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
+static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
|
||||
+ uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
|
||||
+ for (int pxl = 0; pxl < size; ++pxl) {
|
||||
+ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
|
||||
+ uint32_t rgba = array[pxl];
|
||||
+ array[pxl] = NativeEndian::swapToLittleEndian(rgba);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
|
||||
bool aHasAlpha) {
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ int outputSize = mFilter->numValues();
|
||||
+
|
||||
+ // Input size isn't handed in, so we have to calculate it quickly
|
||||
+ int inputSize = 0;
|
||||
+ for (int xx = 0; xx < outputSize; ++xx) {
|
||||
+ // Get the filter that determines the current output pixel.
|
||||
+ int filterOffset, filterLength;
|
||||
+ mFilter->FilterForValue(xx, &filterOffset, &filterLength);
|
||||
+ inputSize = std::max(inputSize, filterOffset + filterLength);
|
||||
+ }
|
||||
+
|
||||
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
||||
+#endif
|
||||
+
|
||||
SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
||||
+ ByteSwapArray(aDst, outputSize);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst,
|
||||
@@ -49,8 +78,26 @@
|
||||
int32_t filterLength;
|
||||
auto filterValues =
|
||||
mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
||||
+ // Skia only knows LE, so we have to swizzle the input
|
||||
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
|
||||
aHasAlpha);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ // After skia is finished, we swizzle back to BE, in case
|
||||
+ // the input is used again somewhere else
|
||||
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
||||
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
||||
+ }
|
||||
+ // The destination array as well
|
||||
+ ByteSwapArray(aDst, aRowSize);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* ConvolutionFilter::ComputeResizeFactor is derived from Skia's
|
||||
diff -r 36563351309d gfx/skia/skia/include/core/SkPreConfig.h
|
||||
--- a/gfx/skia/skia/include/core/SkPreConfig.h Mon Sep 09 17:59:28 2019 +0200
|
||||
+++ b/gfx/skia/skia/include/core/SkPreConfig.h Tue Sep 10 08:25:13 2019 +0200
|
||||
@@ -73,7 +73,7 @@
|
||||
defined(__ppc__) || defined(__hppa) || \
|
||||
defined(__PPC__) || defined(__PPC64__) || \
|
||||
defined(_MIPSEB) || defined(__ARMEB__) || \
|
||||
- defined(__s390__) || \
|
||||
+ defined(__s390__) || defined(__s390x__) || \
|
||||
(defined(__sh__) && defined(__BIG_ENDIAN__)) || \
|
||||
(defined(__ia64) && defined(__BIG_ENDIAN__))
|
||||
#define SK_CPU_BENDIAN
|
44
mozilla-bmo1504834-part3.patch
Normal file
44
mozilla-bmo1504834-part3.patch
Normal file
@ -0,0 +1,44 @@
|
||||
# HG changeset patch
|
||||
# Parent aecb4600e5da17443b224c79eee178c1d8e155e3
|
||||
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 -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
|
||||
--- a/gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200
|
||||
+++ b/gfx/skia/skia/include/private/SkNx.h Mon Sep 09 10:04:06 2019 +0200
|
||||
@@ -238,7 +238,18 @@
|
||||
AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
|
||||
AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
|
||||
|
||||
+ // On Big endian the commented out variant doesn't work,
|
||||
+ // and honestly, I have no idea why it exists in the first place.
|
||||
+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
|
||||
+ // which gets a 64-bit integer, and FromBits returns 32-bit,
|
||||
+ // cutting off the wrong half again.
|
||||
+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
|
||||
+ // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system)
|
||||
+#ifdef SK_CPU_BENDIAN
|
||||
+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
|
||||
+#else
|
||||
AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
|
||||
+#endif
|
||||
AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
|
||||
AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
|
||||
|
||||
diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h
|
||||
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200
|
||||
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h Mon Sep 09 10:04:06 2019 +0200
|
||||
@@ -203,7 +203,13 @@
|
||||
// ~~~>
|
||||
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
|
||||
// c = 0*aa + d(1-1*aa) = d(1-aa)
|
||||
+
|
||||
+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
|
||||
+#ifdef SK_CPU_BENDIAN
|
||||
+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
|
||||
+#else
|
||||
return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
|
||||
+#endif
|
||||
+ d.approxMulDiv255(aa.inv());
|
||||
};
|
||||
while (h --> 0) {
|
53
mozilla-bmo1511604.patch
Normal file
53
mozilla-bmo1511604.patch
Normal file
@ -0,0 +1,53 @@
|
||||
# HG changeset patch
|
||||
# User A. Wilcox <AWilcox@Wilcox-Tech.com>
|
||||
# Date 1543674229 0
|
||||
# Sat Dec 01 14:23:49 2018 +0000
|
||||
# Node ID 0309ff19e46b126c527e633518d7de8570442114
|
||||
# Parent 5b5a6a164acbd4da6131808bd12e42e7b0a33c2a
|
||||
Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
|
||||
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1511604
|
||||
|
||||
This is very closely related to mozilla-bmo1504834
|
||||
|
||||
Again, input for skia is swizzled to LE, as skia only understands LE.
|
||||
|
||||
diff -r 5b5a6a164acb gfx/ycbcr/YCbCrUtils.cpp
|
||||
--- a/gfx/ycbcr/YCbCrUtils.cpp Mon Sep 09 17:59:29 2019 +0200
|
||||
+++ b/gfx/ycbcr/YCbCrUtils.cpp Tue Sep 10 08:22:10 2019 +0200
|
||||
@@ -3,7 +3,9 @@
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
+#include "mozilla/EndianUtils.h"
|
||||
#include "gfx2DGlue.h"
|
||||
+#include "mozilla/gfx/Swizzle.h"
|
||||
|
||||
#include "YCbCrUtils.h"
|
||||
#include "yuv_convert.h"
|
||||
@@ -236,6 +238,13 @@
|
||||
yuvtype,
|
||||
srcData.mYUVColorSpace);
|
||||
}
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ // libyuv makes endian-correct result, which needs to be swapped to BGRX
|
||||
+ if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
|
||||
+ gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
|
||||
+ aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
|
||||
+ srcData.mPicSize);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void
|
||||
@@ -257,6 +266,12 @@
|
||||
aSrcStrideYA,
|
||||
aSrcStrideUV,
|
||||
aDstStrideARGB);
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ // libyuv makes endian-correct result, which needs to be swapped to BGRA
|
||||
+ gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
|
||||
+ aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
|
||||
+ IntSize(aWidth, aHeight));
|
||||
+#endif
|
||||
}
|
||||
|
||||
} // namespace gfx
|
502
mozilla-bmo1512162.patch
Normal file
502
mozilla-bmo1512162.patch
Normal file
@ -0,0 +1,502 @@
|
||||
# HG changeset patch
|
||||
# Parent d4ba07ab572268a34e98c63792beb2ce6d78e7a1
|
||||
This patch is upstream
|
||||
|
||||
diff -r d4ba07ab5722 js/xpconnect/src/XPCWrappedNative.cpp
|
||||
--- a/js/xpconnect/src/XPCWrappedNative.cpp Fri Sep 20 07:56:01 2019 +0200
|
||||
+++ b/js/xpconnect/src/XPCWrappedNative.cpp Fri Sep 20 08:00:19 2019 +0200
|
||||
@@ -1157,10 +1157,6 @@
|
||||
return helper.get().Call();
|
||||
}
|
||||
|
||||
-#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||
-// Work around a compiler bug on ppc64le (bug 1512162).
|
||||
-__attribute__ ((noinline,noclone))
|
||||
-#endif
|
||||
bool CallMethodHelper::Call() {
|
||||
mCallContext.SetRetVal(JS::UndefinedValue());
|
||||
|
||||
@@ -1319,10 +1315,6 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
-#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||
-// Work around a compiler bug on ppc64le (bug 1512162).
|
||||
-__attribute__ ((noinline,noclone))
|
||||
-#endif
|
||||
bool CallMethodHelper::GatherAndConvertResults() {
|
||||
// now we iterate through the native params to gather and convert results
|
||||
uint8_t paramCount = mMethodInfo->GetParamCount();
|
||||
diff -r d4ba07ab5722 xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc64_linux.S
|
||||
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc64_linux.S Fri Sep 20 07:56:01 2019 +0200
|
||||
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_ppc64_linux.S Fri Sep 20 08:00:19 2019 +0200
|
||||
@@ -151,10 +151,10 @@
|
||||
ld r2,STACK_TOC(r1) # Load our own TOC pointer
|
||||
ld r1,0(r1) # Revert stack frame
|
||||
ld 0,16(r1) # Reload lr
|
||||
+ mtlr 0
|
||||
ld 29,-24(r1) # Restore NVGPRS
|
||||
ld 30,-16(r1)
|
||||
ld 31,-8(r1)
|
||||
- mtlr 0
|
||||
blr
|
||||
|
||||
#if _CALL_ELF == 2
|
||||
diff -r d4ba07ab5722 xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp
|
||||
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp Fri Sep 20 07:56:01 2019 +0200
|
||||
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp Fri Sep 20 08:00:19 2019 +0200
|
||||
@@ -5,93 +5,126 @@
|
||||
|
||||
// Platform specific code to invoke XPCOM methods on native objects
|
||||
|
||||
+#include "xptcprivate.h"
|
||||
+
|
||||
// The purpose of NS_InvokeByIndex() is to map a platform
|
||||
// independent call to the platform ABI. To do that,
|
||||
// NS_InvokeByIndex() has to determine the method to call via vtable
|
||||
// access. The parameters for the method are read from the
|
||||
// nsXPTCVariant* and prepared for the native ABI.
|
||||
-
|
||||
-// The PowerPC64 platform ABI can be found here:
|
||||
-// http://www.freestandards.org/spec/ELF/ppc64/
|
||||
+//
|
||||
+// Prior to POWER8, all 64-bit Power ISA systems used ELF v1 ABI, found
|
||||
+// here:
|
||||
+// https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html
|
||||
// and in particular:
|
||||
-// http://www.freestandards.org/spec/ELF/ppc64/PPC-elf64abi-1.9.html#FUNC-CALL
|
||||
-
|
||||
-#include <stdio.h>
|
||||
-#include "xptcprivate.h"
|
||||
+// https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#FUNC-CALL
|
||||
+// Little-endian ppc64le, however, uses ELF v2 ABI, which is here:
|
||||
+// http://openpowerfoundation.org/wp-content/uploads/resources/leabi/leabi-20170510.pdf
|
||||
+// and in particular section 2.2, page 22. However, most big-endian ppc64
|
||||
+// systems still use ELF v1, so this file should support both.
|
||||
|
||||
-// 8 integral parameters are passed in registers, not including 'that'
|
||||
-#define GPR_COUNT 7
|
||||
+// 7 integral parameters are passed in registers, not including |this|
|
||||
+// (i.e., r3-r10, with r3 being |this|).
|
||||
+const uint32_t GPR_COUNT = 7;
|
||||
|
||||
-// 8 floating point parameters are passed in registers, floats are
|
||||
-// promoted to doubles when passed in registers
|
||||
-#define FPR_COUNT 13
|
||||
-
|
||||
-extern "C" uint32_t
|
||||
-invoke_count_words(uint32_t paramCount, nsXPTCVariant* s)
|
||||
-{
|
||||
- return uint32_t(((paramCount * 2) + 3) & ~3);
|
||||
-}
|
||||
+// 13 floating point parameters are passed in registers, either single or
|
||||
+// double precision (i.e., f1-f13).
|
||||
+const uint32_t FPR_COUNT = 13;
|
||||
|
||||
-extern "C" void
|
||||
-invoke_copy_to_stack(uint64_t* gpregs,
|
||||
- double* fpregs,
|
||||
- uint32_t paramCount,
|
||||
- nsXPTCVariant* s,
|
||||
- uint64_t* d)
|
||||
+// Both ABIs use the same register assignment strategy, as per this
|
||||
+// example from V1 ABI section 3.2.3 and V2 ABI section 2.2.3.2 [page 43]:
|
||||
+//
|
||||
+// typedef struct {
|
||||
+// int a;
|
||||
+// double dd;
|
||||
+// } sparm;
|
||||
+// sparm s, t;
|
||||
+// int c, d, e;
|
||||
+// long double ld;
|
||||
+// double ff, gg, hh;
|
||||
+//
|
||||
+// x = func(c, ff, d, ld, s, gg, t, e, hh);
|
||||
+//
|
||||
+// Parameter Register Offset in parameter save area
|
||||
+// c r3 0-7 (not stored in parameter save area)
|
||||
+// ff f1 8-15 (not stored)
|
||||
+// d r5 16-23 (not stored)
|
||||
+// ld f2,f3 24-39 (not stored)
|
||||
+// s r8,r9 40-55 (not stored)
|
||||
+// gg f4 56-63 (not stored)
|
||||
+// t (none) 64-79 (stored in parameter save area)
|
||||
+// e (none) 80-87 (stored)
|
||||
+// hh f5 88-95 (not stored)
|
||||
+//
|
||||
+// i.e., each successive FPR usage skips a GPR, but not the other way around.
|
||||
+
|
||||
+extern "C" void invoke_copy_to_stack(uint64_t* gpregs, double* fpregs,
|
||||
+ uint32_t paramCount, nsXPTCVariant* s,
|
||||
+ uint64_t* d)
|
||||
{
|
||||
- uint64_t tempu64;
|
||||
+ uint32_t nr_gpr = 0u;
|
||||
+ uint32_t nr_fpr = 0u;
|
||||
+ uint64_t value = 0u;
|
||||
|
||||
- for(uint32_t i = 0; i < paramCount; i++, s++) {
|
||||
- if(s->IsIndirect())
|
||||
- tempu64 = (uint64_t) &s->val;
|
||||
+ for (uint32_t i = 0; i < paramCount; i++, s++) {
|
||||
+ if (s->IsIndirect())
|
||||
+ value = (uint64_t) &s->val;
|
||||
else {
|
||||
- switch(s->type) {
|
||||
- case nsXPTType::T_FLOAT: break;
|
||||
- case nsXPTType::T_DOUBLE: break;
|
||||
- case nsXPTType::T_I8: tempu64 = s->val.i8; break;
|
||||
- case nsXPTType::T_I16: tempu64 = s->val.i16; break;
|
||||
- case nsXPTType::T_I32: tempu64 = s->val.i32; break;
|
||||
- case nsXPTType::T_I64: tempu64 = s->val.i64; break;
|
||||
- case nsXPTType::T_U8: tempu64 = s->val.u8; break;
|
||||
- case nsXPTType::T_U16: tempu64 = s->val.u16; break;
|
||||
- case nsXPTType::T_U32: tempu64 = s->val.u32; break;
|
||||
- case nsXPTType::T_U64: tempu64 = s->val.u64; break;
|
||||
- case nsXPTType::T_BOOL: tempu64 = s->val.b; break;
|
||||
- case nsXPTType::T_CHAR: tempu64 = s->val.c; break;
|
||||
- case nsXPTType::T_WCHAR: tempu64 = s->val.wc; break;
|
||||
- default: tempu64 = (uint64_t) s->val.p; break;
|
||||
+ switch (s->type) {
|
||||
+ case nsXPTType::T_FLOAT: break;
|
||||
+ case nsXPTType::T_DOUBLE: break;
|
||||
+ case nsXPTType::T_I8: value = s->val.i8; break;
|
||||
+ case nsXPTType::T_I16: value = s->val.i16; break;
|
||||
+ case nsXPTType::T_I32: value = s->val.i32; break;
|
||||
+ case nsXPTType::T_I64: value = s->val.i64; break;
|
||||
+ case nsXPTType::T_U8: value = s->val.u8; break;
|
||||
+ case nsXPTType::T_U16: value = s->val.u16; break;
|
||||
+ case nsXPTType::T_U32: value = s->val.u32; break;
|
||||
+ case nsXPTType::T_U64: value = s->val.u64; break;
|
||||
+ case nsXPTType::T_BOOL: value = s->val.b; break;
|
||||
+ case nsXPTType::T_CHAR: value = s->val.c; break;
|
||||
+ case nsXPTType::T_WCHAR: value = s->val.wc; break;
|
||||
+ default: value = (uint64_t) s->val.p; break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!s->IsIndirect() && s->type == nsXPTType::T_DOUBLE) {
|
||||
- if (i < FPR_COUNT)
|
||||
- fpregs[i] = s->val.d;
|
||||
- else
|
||||
- *(double *)d = s->val.d;
|
||||
+ if (nr_fpr < FPR_COUNT) {
|
||||
+ fpregs[nr_fpr++] = s->val.d;
|
||||
+ nr_gpr++;
|
||||
+ } else {
|
||||
+ *((double *)d) = s->val.d;
|
||||
+ d++;
|
||||
+ }
|
||||
}
|
||||
else if (!s->IsIndirect() && s->type == nsXPTType::T_FLOAT) {
|
||||
- if (i < FPR_COUNT) {
|
||||
- fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles
|
||||
+ if (nr_fpr < FPR_COUNT) {
|
||||
+ // Single-precision floats are passed in FPRs too.
|
||||
+ fpregs[nr_fpr++] = s->val.f;
|
||||
+ nr_gpr++;
|
||||
} else {
|
||||
- float *p = (float *)d;
|
||||
-#ifndef __LITTLE_ENDIAN__
|
||||
+#ifdef __LITTLE_ENDIAN__
|
||||
+ *((float *)d) = s->val.f;
|
||||
+#else
|
||||
+ // Big endian needs adjustment to point to the least
|
||||
+ // significant word.
|
||||
+ float* p = (float*)d;
|
||||
p++;
|
||||
+ *p = s->val.f;
|
||||
#endif
|
||||
- *p = s->val.f;
|
||||
+ d++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
- if (i < GPR_COUNT)
|
||||
- gpregs[i] = tempu64;
|
||||
- else
|
||||
- *d = tempu64;
|
||||
+ if (nr_gpr < GPR_COUNT) {
|
||||
+ gpregs[nr_gpr++] = value;
|
||||
+ } else {
|
||||
+ *d++ = value;
|
||||
+ }
|
||||
}
|
||||
- if (i >= 7)
|
||||
- d++;
|
||||
}
|
||||
}
|
||||
|
||||
EXPORT_XPCOM_API(nsresult)
|
||||
-NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
|
||||
- uint32_t paramCount, nsXPTCVariant* params);
|
||||
-
|
||||
+NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex, uint32_t paramCount,
|
||||
+ nsXPTCVariant* params);
|
||||
diff -r d4ba07ab5722 xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp
|
||||
--- a/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp Fri Sep 20 07:56:01 2019 +0200
|
||||
+++ b/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp Fri Sep 20 08:00:19 2019 +0200
|
||||
@@ -7,36 +7,64 @@
|
||||
|
||||
#include "xptcprivate.h"
|
||||
|
||||
-// The Linux/PPC64 ABI passes the first 8 integral
|
||||
-// parameters and the first 13 floating point parameters in registers
|
||||
-// (r3-r10 and f1-f13), no stack space is allocated for these by the
|
||||
-// caller. The rest of the parameters are passed in the caller's stack
|
||||
-// area. The stack pointer has to retain 16-byte alignment.
|
||||
+// Prior to POWER8, all 64-bit Power ISA systems used ELF v1 ABI, found
|
||||
+// here:
|
||||
+// https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html
|
||||
+// and in particular:
|
||||
+// https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#FUNC-CALL
|
||||
+// Little-endian ppc64le, however, uses ELF v2 ABI, which is here:
|
||||
+// http://openpowerfoundation.org/wp-content/uploads/resources/leabi/leabi-20170510.pdf
|
||||
+// and in particular section 2.2, page 22. However, most big-endian ppc64
|
||||
+// systems still use ELF v1, so this file should support both.
|
||||
+//
|
||||
+// Both ABIs pass the first 8 integral parameters and the first 13 floating
|
||||
+// point parameters in registers r3-r10 and f1-f13. No stack space is
|
||||
+// allocated for these by the caller. The rest of the parameters are passed
|
||||
+// in the caller's stack area. The stack pointer must stay 16-byte aligned.
|
||||
|
||||
-// The PowerPC64 platform ABI can be found here:
|
||||
-// http://www.freestandards.org/spec/ELF/ppc64/
|
||||
-// and in particular:
|
||||
-// http://www.freestandards.org/spec/ELF/ppc64/PPC-elf64abi-1.9.html#FUNC-CALL
|
||||
-
|
||||
-#define PARAM_BUFFER_COUNT 16
|
||||
-#define GPR_COUNT 7
|
||||
-#define FPR_COUNT 13
|
||||
+const uint32_t PARAM_BUFFER_COUNT = 16;
|
||||
+const uint32_t GPR_COUNT = 7;
|
||||
+const uint32_t FPR_COUNT = 13;
|
||||
|
||||
// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
|
||||
//
|
||||
// - 'args[]' contains the arguments passed on stack
|
||||
-// - 'gprData[]' contains the arguments passed in integer registers
|
||||
-// - 'fprData[]' contains the arguments passed in floating point registers
|
||||
+// - 'gpregs[]' contains the arguments passed in integer registers
|
||||
+// - 'fpregs[]' contains the arguments passed in floating point registers
|
||||
//
|
||||
// The parameters are mapped into an array of type 'nsXPTCMiniVariant'
|
||||
// and then the method gets called.
|
||||
-#include <stdio.h>
|
||||
+//
|
||||
+// Both ABIs use the same register assignment strategy, as per this
|
||||
+// example from V1 ABI section 3.2.3 and V2 ABI section 2.2.3.2 [page 43]:
|
||||
+//
|
||||
+// typedef struct {
|
||||
+// int a;
|
||||
+// double dd;
|
||||
+// } sparm;
|
||||
+// sparm s, t;
|
||||
+// int c, d, e;
|
||||
+// long double ld;
|
||||
+// double ff, gg, hh;
|
||||
+//
|
||||
+// x = func(c, ff, d, ld, s, gg, t, e, hh);
|
||||
+//
|
||||
+// Parameter Register Offset in parameter save area
|
||||
+// c r3 0-7 (not stored in parameter save area)
|
||||
+// ff f1 8-15 (not stored)
|
||||
+// d r5 16-23 (not stored)
|
||||
+// ld f2,f3 24-39 (not stored)
|
||||
+// s r8,r9 40-55 (not stored)
|
||||
+// gg f4 56-63 (not stored)
|
||||
+// t (none) 64-79 (stored in parameter save area)
|
||||
+// e (none) 80-87 (stored)
|
||||
+// hh f5 88-95 (not stored)
|
||||
+//
|
||||
+// i.e., each successive FPR usage skips a GPR, but not the other way around.
|
||||
+
|
||||
extern "C" nsresult ATTRIBUTE_USED
|
||||
-PrepareAndDispatch(nsXPTCStubBase* self,
|
||||
- uint64_t methodIndex,
|
||||
- uint64_t* args,
|
||||
- uint64_t *gprData,
|
||||
- double *fprData)
|
||||
+PrepareAndDispatch(nsXPTCStubBase * self, uint32_t methodIndex,
|
||||
+ uint64_t * args, uint64_t * gpregs, double *fpregs)
|
||||
{
|
||||
nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
|
||||
nsXPTCMiniVariant* dispatchParams = nullptr;
|
||||
@@ -48,7 +76,7 @@
|
||||
|
||||
self->mEntry->GetMethodInfo(uint16_t(methodIndex), &info);
|
||||
NS_ASSERTION(info,"no method info");
|
||||
- if (! info)
|
||||
+ if (!info)
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
|
||||
paramCount = info->GetParamCount();
|
||||
@@ -66,9 +94,11 @@
|
||||
const uint8_t indexOfJSContext = info->IndexOfJSContext();
|
||||
|
||||
uint64_t* ap = args;
|
||||
- uint32_t iCount = 0;
|
||||
- uint32_t fpCount = 0;
|
||||
- uint64_t tempu64;
|
||||
+ // |that| is implicit in the calling convention; we really do start at the
|
||||
+ // first GPR (as opposed to x86_64).
|
||||
+ uint32_t nr_gpr = 0;
|
||||
+ uint32_t nr_fpr = 0;
|
||||
+ uint64_t value;
|
||||
|
||||
for(i = 0; i < paramCount; i++) {
|
||||
const nsXPTParamInfo& param = info->GetParam(i);
|
||||
@@ -76,67 +106,67 @@
|
||||
nsXPTCMiniVariant* dp = &dispatchParams[i];
|
||||
|
||||
if (i == indexOfJSContext) {
|
||||
- if (iCount < GPR_COUNT)
|
||||
- iCount++;
|
||||
+ if (nr_gpr < GPR_COUNT)
|
||||
+ nr_gpr++;
|
||||
else
|
||||
ap++;
|
||||
}
|
||||
|
||||
if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
|
||||
- if (fpCount < FPR_COUNT) {
|
||||
- dp->val.d = fprData[fpCount++];
|
||||
- }
|
||||
- else
|
||||
- dp->val.d = *(double*) ap;
|
||||
- } else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
|
||||
- if (fpCount < FPR_COUNT) {
|
||||
- dp->val.f = (float) fprData[fpCount++]; // in registers floats are passed as doubles
|
||||
+ if (nr_fpr < FPR_COUNT) {
|
||||
+ dp->val.d = fpregs[nr_fpr++];
|
||||
+ nr_gpr++;
|
||||
+ } else {
|
||||
+ dp->val.d = *(double*)ap++;
|
||||
}
|
||||
- else {
|
||||
- float *p = (float *)ap;
|
||||
-#ifndef __LITTLE_ENDIAN__
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
|
||||
+ if (nr_fpr < FPR_COUNT) {
|
||||
+ // Single-precision floats are passed in FPRs too.
|
||||
+ dp->val.f = (float)fpregs[nr_fpr++];
|
||||
+ nr_gpr++;
|
||||
+ } else {
|
||||
+#ifdef __LITTLE_ENDIAN__
|
||||
+ dp->val.f = *(float*)ap++;
|
||||
+#else
|
||||
+ // Big endian needs adjustment to point to the least
|
||||
+ // significant word.
|
||||
+ float* p = (float*)ap;
|
||||
p++;
|
||||
-#endif
|
||||
dp->val.f = *p;
|
||||
+ ap++;
|
||||
+#endif
|
||||
}
|
||||
- } else { /* integer type or pointer */
|
||||
- if (iCount < GPR_COUNT)
|
||||
- tempu64 = gprData[iCount];
|
||||
- else
|
||||
- tempu64 = *ap;
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (nr_gpr < GPR_COUNT)
|
||||
+ value = gpregs[nr_gpr++];
|
||||
+ else
|
||||
+ value = *ap++;
|
||||
|
||||
- if (param.IsOut() || !type.IsArithmetic())
|
||||
- dp->val.p = (void*) tempu64;
|
||||
- else if (type == nsXPTType::T_I8)
|
||||
- dp->val.i8 = (int8_t) tempu64;
|
||||
- else if (type == nsXPTType::T_I16)
|
||||
- dp->val.i16 = (int16_t) tempu64;
|
||||
- else if (type == nsXPTType::T_I32)
|
||||
- dp->val.i32 = (int32_t) tempu64;
|
||||
- else if (type == nsXPTType::T_I64)
|
||||
- dp->val.i64 = (int64_t) tempu64;
|
||||
- else if (type == nsXPTType::T_U8)
|
||||
- dp->val.u8 = (uint8_t) tempu64;
|
||||
- else if (type == nsXPTType::T_U16)
|
||||
- dp->val.u16 = (uint16_t) tempu64;
|
||||
- else if (type == nsXPTType::T_U32)
|
||||
- dp->val.u32 = (uint32_t) tempu64;
|
||||
- else if (type == nsXPTType::T_U64)
|
||||
- dp->val.u64 = (uint64_t) tempu64;
|
||||
- else if (type == nsXPTType::T_BOOL)
|
||||
- dp->val.b = (bool) tempu64;
|
||||
- else if (type == nsXPTType::T_CHAR)
|
||||
- dp->val.c = (char) tempu64;
|
||||
- else if (type == nsXPTType::T_WCHAR)
|
||||
- dp->val.wc = (wchar_t) tempu64;
|
||||
- else
|
||||
- NS_ERROR("bad type");
|
||||
+ if (param.IsOut() || !type.IsArithmetic()) {
|
||||
+ dp->val.p = (void*) value;
|
||||
+ continue;
|
||||
}
|
||||
|
||||
- if (iCount < GPR_COUNT)
|
||||
- iCount++; // gprs are skipped for fp args, so this always needs inc
|
||||
- else
|
||||
- ap++;
|
||||
+ switch (type) {
|
||||
+ case nsXPTType::T_I8: dp->val.i8 = (int8_t) value; break;
|
||||
+ case nsXPTType::T_I16: dp->val.i16 = (int16_t) value; break;
|
||||
+ case nsXPTType::T_I32: dp->val.i32 = (int32_t) value; break;
|
||||
+ case nsXPTType::T_I64: dp->val.i64 = (int64_t) value; break;
|
||||
+ case nsXPTType::T_U8: dp->val.u8 = (uint8_t) value; break;
|
||||
+ case nsXPTType::T_U16: dp->val.u16 = (uint16_t) value; break;
|
||||
+ case nsXPTType::T_U32: dp->val.u32 = (uint32_t) value; break;
|
||||
+ case nsXPTType::T_U64: dp->val.u64 = (uint64_t) value; break;
|
||||
+ case nsXPTType::T_BOOL: dp->val.b = (bool) value; break;
|
||||
+ case nsXPTType::T_CHAR: dp->val.c = (char) value; break;
|
||||
+ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) value; break;
|
||||
+
|
||||
+ default:
|
||||
+ NS_ERROR("bad type");
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
|
||||
nsresult result = self->mOuter->CallMethod((uint16_t) methodIndex, info,
|
||||
@@ -150,23 +180,19 @@
|
||||
|
||||
// Load r11 with the constant 'n' and branch to SharedStub().
|
||||
//
|
||||
+// As G++3 ABI contains the length of the functionname in the mangled
|
||||
+// name, it is difficult to get a generic assembler mechanism like
|
||||
+// in the G++ 2.95 case.
|
||||
// XXX Yes, it's ugly that we're relying on gcc's name-mangling here;
|
||||
// however, it's quick, dirty, and'll break when the ABI changes on
|
||||
// us, which is what we want ;-).
|
||||
-
|
||||
-
|
||||
-// gcc-3 version
|
||||
-//
|
||||
-// As G++3 ABI contains the length of the functionname in the mangled
|
||||
-// name, it is difficult to get a generic assembler mechanism like
|
||||
-// in the G++ 2.95 case.
|
||||
// Create names would be like:
|
||||
// _ZN14nsXPTCStubBase5Stub1Ev
|
||||
// _ZN14nsXPTCStubBase6Stub12Ev
|
||||
// _ZN14nsXPTCStubBase7Stub123Ev
|
||||
// _ZN14nsXPTCStubBase8Stub1234Ev
|
||||
// etc.
|
||||
-// Use assembler directives to get the names right...
|
||||
+// Use assembler directives to get the names right.
|
||||
|
||||
#if _CALL_ELF == 2
|
||||
# define STUB_ENTRY(n) \
|
||||
@@ -252,7 +278,7 @@
|
||||
#define SENTINEL_ENTRY(n) \
|
||||
nsresult nsXPTCStubBase::Sentinel##n() \
|
||||
{ \
|
||||
- NS_ERROR("nsXPTCStubBase::Sentinel called"); \
|
||||
+ NS_ERROR("nsXPTCStubBase::Sentinel called"); \
|
||||
return NS_ERROR_NOT_IMPLEMENTED; \
|
||||
}
|
||||
|
22
mozilla-bmo1554971.patch
Normal file
22
mozilla-bmo1554971.patch
Normal file
@ -0,0 +1,22 @@
|
||||
# HG changeset patch
|
||||
# Parent a25cebecb02d5460b8ad757fe9cb4a9c8d1d7658
|
||||
Eliminate startup error message:
|
||||
JavaScript error: , line 0: Error: Type error for platformInfo value (Error processing arch: Invalid enumeration value "s390x") for runtime.getPlatformInfo.
|
||||
|
||||
Reported here: https://bugzilla.mozilla.org/show_bug.cgi?id=1554971
|
||||
|
||||
Uncertain if this is causing real problems or not. Also uncertain if the fix actually fixes anything.
|
||||
No response from upstream yet.
|
||||
|
||||
diff -r a25cebecb02d -r 378b81b00e73 toolkit/components/extensions/schemas/runtime.json
|
||||
--- a/toolkit/components/extensions/schemas/runtime.json Fri Jul 05 12:42:44 2019 +0200
|
||||
+++ b/toolkit/components/extensions/schemas/runtime.json Fri Jul 19 13:19:30 2019 +0200
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
"id": "PlatformArch",
|
||||
"type": "string",
|
||||
- "enum": ["arm", "x86-32", "x86-64"],
|
||||
+ "enum": ["arm", "x86-32", "x86-64", "s390x", "aarch64", "ppc64le"],
|
||||
"allowedContexts": ["content", "devtools"],
|
||||
"description": "The machine's processor architecture."
|
||||
},
|
30
mozilla-bmo1568145.patch
Normal file
30
mozilla-bmo1568145.patch
Normal file
@ -0,0 +1,30 @@
|
||||
Author: Bernhard M. Wiedemann <bwiedemann suse de>
|
||||
Date: 2019-07-22
|
||||
|
||||
Allow to override build date with SOURCE_DATE_EPOCH
|
||||
in order to make builds reproducible.
|
||||
See https://reproducible-builds.org/ for why this is good
|
||||
and https://reproducible-builds.org/specs/source-date-epoch/
|
||||
for the definition of this variable.
|
||||
|
||||
diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
index 6f72697..d4cca96 100644
|
||||
--- a/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
+++ b/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
@@ -16,6 +16,7 @@ import os
|
||||
import json
|
||||
import io
|
||||
import datetime
|
||||
+import time
|
||||
import requests
|
||||
import mozversioncontrol
|
||||
import mozpack.path as mozpath
|
||||
@@ -100,7 +101,7 @@ def get_timestamp_for_locale(path):
|
||||
dt = get_dt_from_hg(path)
|
||||
|
||||
if dt is None:
|
||||
- dt = datetime.datetime.utcnow()
|
||||
+ dt = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
|
||||
|
||||
dt = dt.replace(microsecond=0)
|
||||
return dt.strftime("%Y%m%d%H%M%S")
|
22
mozilla-bmo1573381.patch
Normal file
22
mozilla-bmo1573381.patch
Normal file
@ -0,0 +1,22 @@
|
||||
# HG changeset patch
|
||||
# Parent 45680ce4ca06795cbca1ea5a9ae8a7a11ab95cf1
|
||||
The code tries to find a codec in a list of codecs. For this it searches for a given prefix.
|
||||
But the prefix is of type char16_t, which means 2 bytes per character instead of 1, as was compared here.
|
||||
On big endian this created some false positives, as the order of bytes is different and some characters only
|
||||
occupy "the first" byte, having the second null'ed out.
|
||||
Noticed because of gtest: MediaMIMETypes.MediaCodecs
|
||||
|
||||
Upstream bugreport: https://bugzilla.mozilla.org/show_bug.cgi?id=1573381
|
||||
|
||||
diff -r 45680ce4ca06 -r 381102061fcc dom/media/MediaMIMETypes.cpp
|
||||
--- a/dom/media/MediaMIMETypes.cpp Mon Aug 05 09:28:53 2019 +0200
|
||||
+++ b/dom/media/MediaMIMETypes.cpp Tue Aug 13 07:51:27 2019 +0200
|
||||
@@ -87,7 +87,7 @@
|
||||
const size_t prefixLength = aCodecPrefix.Length();
|
||||
for (const auto& myCodec : Range()) {
|
||||
if (myCodec.Length() >= prefixLength &&
|
||||
- memcmp(myCodec.Data(), aCodecPrefix.Data(), prefixLength) == 0) {
|
||||
+ memcmp(myCodec.Data(), aCodecPrefix.Data(), prefixLength * sizeof(char16_t)) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
18
mozilla-cubeb-noreturn.patch
Normal file
18
mozilla-cubeb-noreturn.patch
Normal file
@ -0,0 +1,18 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent a9d61a2614b01b1e0ca37d00a6b11b2571868f86
|
||||
|
||||
diff --git a/media/libcubeb/src/cubeb_utils.cpp b/media/libcubeb/src/cubeb_utils.cpp
|
||||
--- a/media/libcubeb/src/cubeb_utils.cpp
|
||||
+++ b/media/libcubeb/src/cubeb_utils.cpp
|
||||
@@ -15,9 +15,10 @@ size_t cubeb_sample_size(cubeb_sample_fo
|
||||
return sizeof(int16_t);
|
||||
case CUBEB_SAMPLE_FLOAT32LE:
|
||||
case CUBEB_SAMPLE_FLOAT32BE:
|
||||
return sizeof(float);
|
||||
default:
|
||||
// should never happen as all cases are handled above.
|
||||
assert(false);
|
||||
}
|
||||
+ return 0;
|
||||
}
|
11
mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
Normal file
11
mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp 2019-05-16 11:25:13.260881532 +0200
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp 2019-05-16 11:24:35.164589301 +0200
|
||||
@@ -243,7 +243,7 @@ using mozilla::DebugOnly;
|
||||
// emulation here.
|
||||
|
||||
#if defined(__linux__) && defined(__arm__)
|
||||
-# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
+// # define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
#endif
|
||||
|
||||
#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
25
mozilla-fix-aarch64-libopus.patch
Normal file
25
mozilla-fix-aarch64-libopus.patch
Normal file
@ -0,0 +1,25 @@
|
||||
# HG changeset patch
|
||||
# Parent 1317782cd47f1d1f2410712a1dd283b305393eae
|
||||
|
||||
diff --git a/media/libopus/silk/arm/arm_silk_map.c b/media/libopus/silk/arm/arm_silk_map.c
|
||||
--- a/media/libopus/silk/arm/arm_silk_map.c
|
||||
+++ b/media/libopus/silk/arm/arm_silk_map.c
|
||||
@@ -23,17 +23,17 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
***********************************************************************/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
-#include "main_FIX.h"
|
||||
+#include "../fixed/main_FIX.h"
|
||||
#include "NSQ.h"
|
||||
#include "SigProc_FIX.h"
|
||||
|
||||
#if defined(OPUS_HAVE_RTCD)
|
||||
|
||||
# if (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && \
|
||||
!defined(OPUS_ARM_PRESUME_NEON_INTR))
|
||||
|
42
mozilla-fix-top-level-asm.patch
Normal file
42
mozilla-fix-top-level-asm.patch
Normal file
@ -0,0 +1,42 @@
|
||||
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
|
||||
index aae85843e9f6..208368dfd189 100644
|
||||
--- a/security/sandbox/linux/moz.build
|
||||
+++ b/security/sandbox/linux/moz.build
|
||||
@@ -61,7 +61,6 @@ UNIFIED_SOURCES += [
|
||||
'../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',
|
||||
@@ -77,6 +76,7 @@ UNIFIED_SOURCES += [
|
||||
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',
|
||||
]
|
||||
@@ -96,6 +96,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
||||
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
|
||||
--
|
||||
2.23.0
|
||||
|
38
mozilla-nestegg-big-endian.patch
Normal file
38
mozilla-nestegg-big-endian.patch
Normal file
@ -0,0 +1,38 @@
|
||||
# HG changeset patch
|
||||
# Parent 381102061fccdec40efda75c7423a766f68201ba
|
||||
Bug-behavior: Youtube-videos using VP9 and opus as audio-codec started loading but did not play
|
||||
Reason: While parsing the audio-stream, the sampling frequency (short rate) was wrongly parsed by
|
||||
nestegg, returning 0 all the time. This led to the audio-track reporting that it neither had
|
||||
valid video nor audio. Which led to an endless-loop in the video state machine.
|
||||
Solution: Correct parsing of rate in nestegg, which is a float and cuts of bytes.
|
||||
Link: https://github.com/kinetiknz/nestegg/issues/64
|
||||
|
||||
diff -r 381102061fcc -r 8da4be020b1e media/libnestegg/src/nestegg.c
|
||||
--- a/media/libnestegg/src/nestegg.c Tue Aug 13 07:51:27 2019 +0200
|
||||
+++ b/media/libnestegg/src/nestegg.c Tue Aug 20 07:59:54 2019 +0200
|
||||
@@ -768,7 +768,15 @@
|
||||
{
|
||||
union {
|
||||
uint64_t u;
|
||||
- float f;
|
||||
+ struct {
|
||||
+#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
+ uint32_t _pad;
|
||||
+ float f;
|
||||
+#else
|
||||
+ float f;
|
||||
+ uint32_t _pad;
|
||||
+#endif
|
||||
+ } f;
|
||||
double d;
|
||||
} value;
|
||||
int r;
|
||||
@@ -780,7 +788,7 @@
|
||||
if (r != 1)
|
||||
return r;
|
||||
if (length == 4)
|
||||
- *val = value.f;
|
||||
+ *val = value.f.f;
|
||||
else
|
||||
*val = value.d;
|
||||
return 1;
|
28
mozilla-ntlm-full-path.patch
Normal file
28
mozilla-ntlm-full-path.patch
Normal file
@ -0,0 +1,28 @@
|
||||
# HG changeset patch
|
||||
# User Petr Cerny <pcerny@novell.com>
|
||||
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
|
||||
# Parent 6ab277cf616dc2748e9855101100a97a6cec10a6
|
||||
Bug 634334 - call to the ntlm_auth helper fails
|
||||
|
||||
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
--- a/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
@@ -156,17 +156,17 @@ static uint8_t* ExtractMessage(const nsA
|
||||
*aLen = (length / 4) * 3 - numEquals;
|
||||
return reinterpret_cast<uint8_t*>(PL_Base64Decode(s, length, nullptr));
|
||||
}
|
||||
|
||||
nsresult nsAuthSambaNTLM::SpawnNTLMAuthHelper() {
|
||||
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",
|
||||
"--username",
|
||||
username,
|
||||
nullptr};
|
||||
|
||||
bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID,
|
26
mozilla-openaes-decl.patch
Normal file
26
mozilla-openaes-decl.patch
Normal file
@ -0,0 +1,26 @@
|
||||
# HG changeset patch
|
||||
# Parent 33024abb3c58dab7239e32388df58e14f99defd5
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 0cfd693fdbbb0635787f1aeacee2dda43b01c495
|
||||
|
||||
diff --git a/media/gmp-clearkey/0.1/openaes/oaes_lib.c b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
|
||||
--- a/media/gmp-clearkey/0.1/openaes/oaes_lib.c
|
||||
+++ b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
|
||||
@@ -24,16 +24,17 @@
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
+#include <stdio.h>
|
||||
#include <stddef.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "mozilla/Sprintf.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include <process.h>
|
20
mozilla-ppc-altivec_static_inline.patch
Normal file
20
mozilla-ppc-altivec_static_inline.patch
Normal file
@ -0,0 +1,20 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558452418 -7200
|
||||
# Tue May 21 17:26:58 2019 +0200
|
||||
# Node ID 6cd963b6c82ea6629aaf4050851789b78f310338
|
||||
# Parent 602e92722e765a3c238d3b96b26c0c8063b5eeb4
|
||||
imported patch mozilla-ppc-altivec_static_inline.patch
|
||||
|
||||
diff -r 602e92722e76 -r 6cd963b6c82e gfx/qcms/transform-altivec.c
|
||||
--- a/gfx/qcms/transform-altivec.c Tue May 21 17:26:48 2019 +0200
|
||||
+++ b/gfx/qcms/transform-altivec.c Tue May 21 17:26:58 2019 +0200
|
||||
@@ -30,7 +30,7 @@
|
||||
static const ALIGN float floatScaleX4 = FLOATSCALE;
|
||||
static const ALIGN float clampMaxValueX4 = CLAMPMAXVAL;
|
||||
|
||||
-inline vector float load_aligned_float(float *dataPtr)
|
||||
+static inline vector float load_aligned_float(float *dataPtr)
|
||||
{
|
||||
vector float data = vec_lde(0, dataPtr);
|
||||
vector unsigned char moveToStart = vec_lvsl(0, dataPtr);
|
34
mozilla-reduce-rust-debuginfo.patch
Normal file
34
mozilla-reduce-rust-debuginfo.patch
Normal file
@ -0,0 +1,34 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1560754926 -7200
|
||||
# Mon Jun 17 09:02:06 2019 +0200
|
||||
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
|
||||
# Parent 6cd963b6c82ea6629aaf4050851789b78f310338
|
||||
#Description: reduce the rust debuginfo level on selected architectures where
|
||||
# compiling with debuginfo=2 causes the OOM killer to interrupt the build on
|
||||
# launchpad builders. Initially this was only on 32 bit architectures, but with
|
||||
# firefox 63 it started happening frequently on arm64 and ppc64el too.
|
||||
|
||||
diff -r 6cd963b6c82e -r 428161c3b959 build/moz.configure/toolchain.configure
|
||||
--- a/build/moz.configure/toolchain.configure Tue May 21 17:26:58 2019 +0200
|
||||
+++ b/build/moz.configure/toolchain.configure Mon Jun 17 09:02:06 2019 +0200
|
||||
@@ -1865,8 +1865,8 @@
|
||||
return '1' if moz_optimize.optimize else '0'
|
||||
|
||||
|
||||
-@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols')
|
||||
-def rust_compile_flags(opt_level, debug_rust, debug_symbols):
|
||||
+@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', host)
|
||||
+def rust_compile_flags(opt_level, debug_rust, debug_symbols, host):
|
||||
# Cargo currently supports only two interesting profiles for building:
|
||||
# development and release. Those map (roughly) to --enable-debug and
|
||||
# --disable-debug in Gecko, respectively.
|
||||
@@ -1889,6 +1889,8 @@
|
||||
|
||||
if debug_symbols:
|
||||
debug_info = '2'
|
||||
+ if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64':
|
||||
+ debug_info = '1'
|
||||
|
||||
opts = []
|
||||
|
20
mozilla-s390-bigendian.patch
Normal file
20
mozilla-s390-bigendian.patch
Normal file
@ -0,0 +1,20 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558452126 -7200
|
||||
# Tue May 21 17:22:06 2019 +0200
|
||||
# Node ID a3cc550d25e3a04d906f516928cbcbe50efd585e
|
||||
# Parent 433beec63e6b5f409683af20a0c1ab137cc7bfad
|
||||
[mq]: mozilla-s390-bigendian.patch
|
||||
|
||||
diff -r 433beec63e6b -r a3cc550d25e3 build/autoconf/icu.m4
|
||||
--- a/build/autoconf/icu.m4 Tue May 21 17:12:20 2019 +0200
|
||||
+++ b/build/autoconf/icu.m4 Tue May 21 17:22:06 2019 +0200
|
||||
@@ -78,7 +78,7 @@
|
||||
# TODO: the l is actually endian-dependent
|
||||
# We could make this set as 'l' or 'b' for little or big, respectively,
|
||||
# but we'd need to check in a big-endian version of the file.
|
||||
- ICU_DATA_FILE="icudt${version}l.dat"
|
||||
+ ICU_DATA_FILE="icudt${version}b.dat"
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_ICU_VERSION)
|
36
mozilla-s390-context.patch
Normal file
36
mozilla-s390-context.patch
Normal file
@ -0,0 +1,36 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558452408 -7200
|
||||
# Tue May 21 17:26:48 2019 +0200
|
||||
# Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4
|
||||
# Parent a3cc550d25e3a04d906f516928cbcbe50efd585e
|
||||
[mq]: mozilla-s390-context.patch
|
||||
|
||||
diff -r a3cc550d25e3 -r 602e92722e76 js/src/wasm/WasmSignalHandlers.cpp
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:22:06 2019 +0200
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:26:48 2019 +0200
|
||||
@@ -154,6 +154,10 @@
|
||||
# define R01_sig(p) ((p)->uc_mcontext.gp_regs[1])
|
||||
# define R32_sig(p) ((p)->uc_mcontext.gp_regs[32])
|
||||
# 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])
|
||||
@@ -385,8 +389,13 @@
|
||||
# define PC_sig(p) R32_sig(p)
|
||||
# define SP_sig(p) R01_sig(p)
|
||||
# define FP_sig(p) R01_sig(p)
|
||||
+#elif defined(__s390x__)
|
||||
+# define PC_sig(p) PSWa_sig(p)
|
||||
+# define SP_sig(p) GR_sig(p, 15)
|
||||
+# define FP_sig(p) GR_sig(p, 11)
|
||||
#endif
|
||||
|
||||
+
|
||||
static void SetContextPC(CONTEXT* context, uint8_t* pc) {
|
||||
#ifdef PC_sig
|
||||
*reinterpret_cast<uint8_t**>(&PC_sig(context)) = pc;
|
@ -1,9 +1,8 @@
|
||||
PRODUCT="thunderbird"
|
||||
CHANNEL="esr68"
|
||||
VERSION="68.1.0"
|
||||
VERSION="68.1.1"
|
||||
VERSION_SUFFIX=""
|
||||
FF_RELEASE_TAG="0efe7ab505b59f1986ebedc0c114a7d24fd93168"
|
||||
TB_RELEASE_TAG="9317dad8cb7fd80a47cb3b40253c73127f776535"
|
||||
RELEASE_TAG="41c0a3653f95cf6158a2b49ab7cb19327c50e9e8"
|
||||
PREV_VERSION=""
|
||||
PREV_VERSION_SUFFIX=""
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:de0e5c7d1d5576f451e386e4779f155b7af97621a4e22caac0c6dee3c9d76eef
|
||||
size 333332920
|
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl125ZoACgkQ8aZmj7t9
|
||||
Vy70YBAAm1wopZ2gjKfBXWbfxASnWP+9+WIKa/o62qpJTybDbPGiopMXp/v8fBX5
|
||||
WIIftd7cacl3WQHVWmlaFLwJl6vGo7Zro7AHXkxZ+z28kaokh5HtN5/qwcq6C5Gg
|
||||
2lFMcDGWCKx3qqgRynruEEPCSmQt7JTFEpmGxuCJNYDRbSF01yIsGC6DXi9H/uQr
|
||||
di+YD/iEcdinjSUyZ7vCpBgelgFxF1+kp0DpcBS/1YK/U1Sl4MYfoE8P4SoXETJY
|
||||
t2AVa8t10UlV+B0SMtShK0EN/M5A1H2YCnZsQVsWJRRxDQPbW9TsWpv8GSKbg2uQ
|
||||
sY+uUwHUxB6uqfwMFW1b7i1yfY+vuiXIw/X0DzLSbGqXvfAj0q3Xce5DiMNttuQM
|
||||
JtSrX2p3hdBe9L+xmRuB+2WZHgidPDOh40ICdPCmQnBeVMXWfiMaXZjrGkd7+2TE
|
||||
2dVIFk4SF3fI13b26wgyPEKh/EkodOtaMsd80b64NzogHB3Ouz1t30nvLdtQq5r7
|
||||
j4hh38Pmw2l53WbGXuk40EF6EuLlkRnXyUsftew1b/2CdzQzfW8lvUwyEqHhTJgk
|
||||
I+JVfONgj2z2f/yVvDnMdfTTvSsflWCXzoWjx4MCuKHbxPQK60KIZk9nkTVLO9cL
|
||||
nqZFUgvYzuwkll1JsdaH5HE5WF/p/36EnZT3ngToVGlheQLjZCg=
|
||||
=03dy
|
||||
-----END PGP SIGNATURE-----
|
3
thunderbird-68.1.1.source.tar.xz
Normal file
3
thunderbird-68.1.1.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4f27fec94b2565a1d1da1c90975327a3d56e5918d517cc25bd8a5dd1a81983bb
|
||||
size 330615656
|
16
thunderbird-68.1.1.source.tar.xz.asc
Normal file
16
thunderbird-68.1.1.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl2KK6QACgkQ8aZmj7t9
|
||||
Vy60WBAAjqeEGvftvGemlGodK7fg6caRZQt49TQawplpSzF00JeF2ZGZ9wo41x5d
|
||||
ekXAlK8GG9reNArPOw4PkVLG4caOaaF0LL3l3zYjs/u7zP4Tl88tHohAYEL7ejZT
|
||||
iPSgU41IC3qRJdWC0JY4rtwLI2MSXNyBbFpbqfkyGaDh96QPbp5dM0+g5u90qYPB
|
||||
aVVmoTblED5qH/ahKLyHAFiJ7ua8z4+3FpoZCLqtPHmfozSKeTxolcdtTS4Io9uL
|
||||
5YyzNI9ayFy1bIecIlh7aK5Rmuw7WOdrFTXNihensMs17Aw1nJh/G+BqGlboi5A3
|
||||
lgt9cN+lH/xOLr6m2AcoiOFaULCQfuVEAwCbos9AHo4uKw59Uyq2JB1kWAnArrhQ
|
||||
b+3CpCmyl5KJh4qagSgvFbqm08tEE1A0a7/SD1ArL5CZa3mgwFlkLHWox+JZZYTF
|
||||
slF8rtLzzWNeP3ZbYUzmnA4igiLcW6L82ysMcnqigwauzqMJ7eNx9umaC5fnRFn/
|
||||
0HsKlbSS5TzjRji7GZVokvcgsBA5WDfHeFYLtF/UhNQ5R4FjucAnOhHx6zwxEw4C
|
||||
UdRn5Ks+hOLfgaSap1nkzGFAtPD0bO6dvJQO9lLX2aITfJISnJ6L/8z+/xZY6d+y
|
||||
sClFqcBMHq2foqQO/WDb1g5mEN57TzxOmPpOR8VHm5Kg4l7MwcQ=
|
||||
=k6iB
|
||||
-----END PGP SIGNATURE-----
|
16
thunderbird-broken-locales-build.patch
Normal file
16
thunderbird-broken-locales-build.patch
Normal file
@ -0,0 +1,16 @@
|
||||
# HG changeset patch
|
||||
# Parent b2d2d5ae8d2a00ddbf496e415fdde16d08e35884
|
||||
This has been submitted upstream:
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1580701
|
||||
|
||||
diff -r b2d2d5ae8d2a -r 91fa98f1d233 comm/mail/locales/l10n.ini
|
||||
--- a/comm/mail/locales/l10n.ini Fri May 31 11:28:11 2019 +0200
|
||||
+++ b/comm/mail/locales/l10n.ini Wed Sep 11 15:01:55 2019 +0200
|
||||
@@ -13,5 +13,5 @@
|
||||
# include toolkit from mozilla.
|
||||
# Don't specify which, use l10n-central.ini and friends if you're
|
||||
# not working on a local check-out
|
||||
-toolkit = mozilla/toolkit/locales/l10n.ini
|
||||
-devtools_client = mozilla/devtools/client/locales/l10n.ini
|
||||
+toolkit = ../toolkit/locales/l10n.ini
|
||||
+devtools_client = ../devtools/client/locales/l10n.ini
|
@ -1,12 +0,0 @@
|
||||
diff --git a/comm/mail/locales/l10n.ini b/comm/mail/locales/l10n.ini
|
||||
index eac6bfa..8700472 100644
|
||||
--- a/comm/mail/locales/l10n.ini
|
||||
+++ b/comm/mail/locales/l10n.ini
|
||||
@@ -13,5 +13,5 @@ dirs = mail
|
||||
# include toolkit from mozilla.
|
||||
# Don't specify which, use l10n-central.ini and friends if you're
|
||||
# not working on a local check-out
|
||||
-toolkit = mozilla/toolkit/locales/l10n.ini
|
||||
-devtools_client = mozilla/devtools/client/locales/l10n.ini
|
||||
+toolkit = ../toolkit/locales/l10n.ini
|
||||
+devtools_client = ../devtools/client/locales/l10n.ini
|
Loading…
Reference in New Issue
Block a user