diff --git a/MozillaThunderbird.changes b/MozillaThunderbird.changes index 8716e9b..bbec171 100644 --- a/MozillaThunderbird.changes +++ b/MozillaThunderbird.changes @@ -1,3 +1,52 @@ +------------------------------------------------------------------- +Wed Sep 25 11:46:51 UTC 2019 - Wolfgang Rosenauer + +- 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 +- 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 +- removed renamed patches + fix-missing-return-warning.patch + fix-top-level-asm-issue.patch + ------------------------------------------------------------------- Fri Sep 20 15:59:25 UTC 2019 - munix9@googlemail.com diff --git a/MozillaThunderbird.spec b/MozillaThunderbird.spec index c8a325b..5f9d929 100644 --- a/MozillaThunderbird.spec +++ b/MozillaThunderbird.spec @@ -18,12 +18,20 @@ # 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 %define clang_build 0 @@ -31,6 +39,8 @@ # 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 @@ -74,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 @@ -115,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} @@ -130,34 +140,49 @@ 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#/%{name}.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 -Patch6: mozilla-bmo1568145.patch -Patch7: fix-top-level-asm-issue.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-fix-top-level-asm.patch +Patch100: thunderbird-locale-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 @@ -170,7 +195,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 @@ -180,7 +206,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 @@ -195,7 +220,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} @@ -214,16 +239,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 @@ -236,11 +262,30 @@ fi %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 +# 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")" @@ -255,14 +300,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 @@ -288,10 +331,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 @@ -339,40 +388,59 @@ 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} +cp -rf $RPM_BUILD_DIR/obj/dist/%{progname}/* %{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 # build additional locales %if %localize mkdir -p %{buildroot}%{progdir}/extensions/ @@ -476,10 +544,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/ @@ -494,10 +564,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 @@ -514,9 +586,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 @@ -525,6 +594,7 @@ exit 0 %if %crashreporter %{progdir}/crashreporter %{progdir}/crashreporter.ini +%{progdir}/minidump-analyzer %{progdir}/Throbber-small.gif %endif %dir %{progdir}/chrome/ diff --git a/compare-locales.tar.xz b/compare-locales.tar.xz index f6dade8..2bba393 100644 --- a/compare-locales.tar.xz +++ b/compare-locales.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:74bff7abaceafcb71628e1be0dede58249467fe36a71bde992ab6e5a350db739 -size 28500 +oid sha256:7882c9c5c073a24f48abf4c7ea46070746a49f95ba75d49e7cb8a814cf2ec513 +size 28496 diff --git a/create-tar.sh b/create-tar.sh index 5a3cf37..59e28e7 100644 --- a/create-tar.sh +++ b/create-tar.sh @@ -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 diff --git a/fix-missing-return-warning.patch b/fix-missing-return-warning.patch deleted file mode 100644 index c7df984..0000000 --- a/fix-missing-return-warning.patch +++ /dev/null @@ -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; - } diff --git a/kde.js b/kde.js deleted file mode 100644 index f06d73a..0000000 --- a/kde.js +++ /dev/null @@ -1 +0,0 @@ -pref("browser.preferences.instantApply", false); diff --git a/l10n-68.1.0.tar.xz b/l10n-68.1.0.tar.xz deleted file mode 100644 index 9bba565..0000000 --- a/l10n-68.1.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c541911ac4b533acbdde32928dd825716bec8c64d74a66f0537fd1ad2d95af68 -size 28439160 diff --git a/l10n-68.1.1.tar.xz b/l10n-68.1.1.tar.xz new file mode 100644 index 0000000..6f49405 --- /dev/null +++ b/l10n-68.1.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80110e0c17901459c11b3e716c048259b9a9c1f6d841a5eb3d67e4e13e8626f7 +size 28450164 diff --git a/mozilla-bmo1005535.patch b/mozilla-bmo1005535.patch new file mode 100644 index 0000000..ddfa2da --- /dev/null +++ b/mozilla-bmo1005535.patch @@ -0,0 +1,20 @@ +# HG changeset patch +# User Steve Singer +# 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) { diff --git a/mozilla-bmo1463035.patch b/mozilla-bmo1463035.patch new file mode 100644 index 0000000..ad785f3 --- /dev/null +++ b/mozilla-bmo1463035.patch @@ -0,0 +1,78 @@ + +# HG changeset patch +# User Mike Hommey +# 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 // backtrace, backtrace_symbols + #endif // def __GLIBC__ + #include // index + #include + #include + + #include "prenv.h" +-#include "mozilla/LinuxSignal.h" + #include "mozilla/PodOperations.h" + #include "mozilla/DebugOnly.h" + + #include + #include + + 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) { diff --git a/mozilla-bmo1504834-part1.patch b/mozilla-bmo1504834-part1.patch new file mode 100644 index 0000000..7990ff5 --- /dev/null +++ b/mozilla-bmo1504834-part1.patch @@ -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 + #elif defined(__SSE__) + #include ++#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 + } + diff --git a/mozilla-bmo1504834-part2.patch b/mozilla-bmo1504834-part2.patch new file mode 100644 index 0000000..6f699a2 --- /dev/null +++ b/mozilla-bmo1504834-part2.patch @@ -0,0 +1,112 @@ +# HG changeset patch +# Parent 6fa4b62427433e8f445d05c557e5db096667d880 +Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla) +has no interest in maintaining big endian. +So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes +out again, we transform back to BE. + +diff --git a/gfx/2d/ConvolutionFilter.cpp b/gfx/2d/ConvolutionFilter.cpp +--- a/gfx/2d/ConvolutionFilter.cpp ++++ b/gfx/2d/ConvolutionFilter.cpp +@@ -30,32 +30,79 @@ bool ConvolutionFilter::GetFilterOffsetA + int32_t* aResultLength) { + if (aRowIndex >= mFilter->numValues()) { + return false; + } + mFilter->FilterForValue(aRowIndex, aResultOffset, aResultLength); + return true; + } + ++static void ByteSwapArray(uint8_t *u8Array, int32_t size) { ++ uint32_t *array = reinterpret_cast(u8Array); ++ for (int pxl = 0; pxl < size; ++pxl) { ++ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB. ++ uint32_t rgba = array[pxl]; ++ array[pxl] = NativeEndian::swapToLittleEndian(rgba); ++ } ++} ++ + void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst, + bool aHasAlpha) { ++#if MOZ_BIG_ENDIAN ++ int outputSize = mFilter->numValues(); ++ ++ // Input size isn't handed in, so we have to calculate it quickly ++ int inputSize = 0; ++ for (int xx = 0; xx < outputSize; ++xx) { ++ // Get the filter that determines the current output pixel. ++ int filterOffset, filterLength; ++ mFilter->FilterForValue(xx, &filterOffset, &filterLength); ++ inputSize = std::max(inputSize, filterOffset + filterLength); ++ } ++ ++ ByteSwapArray((uint8_t*)aSrc, inputSize); ++#endif ++ + SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha); ++ ++#if MOZ_BIG_ENDIAN ++ ByteSwapArray((uint8_t*)aSrc, inputSize); ++ ByteSwapArray(aDst, outputSize); ++#endif + } + + void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst, + int32_t aRowIndex, int32_t aRowSize, + bool aHasAlpha) { + MOZ_ASSERT(aRowIndex < mFilter->numValues()); + + int32_t filterOffset; + int32_t filterLength; + auto filterValues = + mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength); ++ ++#if MOZ_BIG_ENDIAN ++ for (int filterY = 0; filterY < filterLength; filterY++) { ++ // Skia only knows LE, so we have to swizzle the input ++ ByteSwapArray(aSrc[filterY], aRowSize); ++ } ++#endif ++ + SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst, + aHasAlpha); ++ ++#if MOZ_BIG_ENDIAN ++ // After skia is finished, we swizzle back to BE, in case ++ // the input is used again somewhere else ++ for (int filterY = 0; filterY < filterLength; filterY++) { ++ ByteSwapArray(aSrc[filterY], aRowSize); ++ } ++ // The destination array as well ++ ByteSwapArray(aDst, aRowSize); ++#endif + } + + /* ConvolutionFilter::ComputeResizeFactor is derived from Skia's + * SkBitmapScaler/SkResizeFilter::computeFactors. It is governed by Skia's + * BSD-style license (see gfx/skia/LICENSE) and the following copyright: + * Copyright (c) 2015 Google Inc. + */ + bool ConvolutionFilter::ComputeResizeFilter(ResizeMethod aResizeMethod, +diff --git a/gfx/skia/skia/include/core/SkPreConfig.h b/gfx/skia/skia/include/core/SkPreConfig.h +--- a/gfx/skia/skia/include/core/SkPreConfig.h ++++ b/gfx/skia/skia/include/core/SkPreConfig.h +@@ -68,17 +68,17 @@ + #define SK_CPU_BENDIAN + #elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + #define SK_CPU_LENDIAN + #elif defined(__sparc) || defined(__sparc__) || \ + defined(_POWER) || defined(__powerpc__) || \ + defined(__ppc__) || defined(__hppa) || \ + defined(__PPC__) || defined(__PPC64__) || \ + defined(_MIPSEB) || defined(__ARMEB__) || \ +- defined(__s390__) || \ ++ defined(__s390__) || defined(__s390x__) || \ + (defined(__sh__) && defined(__BIG_ENDIAN__)) || \ + (defined(__ia64) && defined(__BIG_ENDIAN__)) + #define SK_CPU_BENDIAN + #else + #define SK_CPU_LENDIAN + #endif + #endif + diff --git a/mozilla-bmo1504834-part3.patch b/mozilla-bmo1504834-part3.patch new file mode 100644 index 0000000..c623e81 --- /dev/null +++ b/mozilla-bmo1504834-part3.patch @@ -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) { diff --git a/mozilla-bmo1511604.patch b/mozilla-bmo1511604.patch new file mode 100644 index 0000000..16f62d0 --- /dev/null +++ b/mozilla-bmo1511604.patch @@ -0,0 +1,76 @@ +# HG changeset patch +# User A. Wilcox +# Date 1543674229 0 +# Sat Dec 01 14:23:49 2018 +0000 +# Node ID 0309ff19e46b126c527e633518d7de8570442114 +# Parent ba2c9b0542c95cc5ee26c264e8338fc9ba94c958 +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 --git a/gfx/ycbcr/YCbCrUtils.cpp b/gfx/ycbcr/YCbCrUtils.cpp +--- a/gfx/ycbcr/YCbCrUtils.cpp ++++ b/gfx/ycbcr/YCbCrUtils.cpp +@@ -1,14 +1,16 @@ + /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * 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" + #include "ycbcr_to_rgb565.h" + + namespace mozilla { + namespace gfx { + +@@ -231,16 +233,23 @@ ConvertYCbCrToRGB(const layers::PlanarYC + srcData.mPicSize.width, + srcData.mPicSize.height, + srcData.mYStride, + srcData.mCbCrStride, + aStride, + 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 + ConvertYCbCrAToARGB(const uint8_t* aSrcY, + const uint8_t* aSrcU, + const uint8_t* aSrcV, + const uint8_t* aSrcA, + int aSrcStrideYA, int aSrcStrideUV, +@@ -252,12 +261,18 @@ ConvertYCbCrAToARGB(const uint8_t* aSrcY + aSrcV, + aSrcA, + aDstARGB, + aWidth, + aHeight, + 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 + } // namespace mozilla diff --git a/mozilla-bmo1554971.patch b/mozilla-bmo1554971.patch new file mode 100644 index 0000000..e6e3042 --- /dev/null +++ b/mozilla-bmo1554971.patch @@ -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." + }, diff --git a/mozilla-bmo1573381.patch b/mozilla-bmo1573381.patch new file mode 100644 index 0000000..c649735 --- /dev/null +++ b/mozilla-bmo1573381.patch @@ -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; + } + } diff --git a/mozilla-cubeb-noreturn.patch b/mozilla-cubeb-noreturn.patch new file mode 100644 index 0000000..7c02cd7 --- /dev/null +++ b/mozilla-cubeb-noreturn.patch @@ -0,0 +1,18 @@ +# HG changeset patch +# User Wolfgang Rosenauer +# 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; + } diff --git a/mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch b/mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch new file mode 100644 index 0000000..2103134 --- /dev/null +++ b/mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch @@ -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 diff --git a/mozilla-fix-aarch64-libopus.patch b/mozilla-fix-aarch64-libopus.patch new file mode 100644 index 0000000..8d3f42f --- /dev/null +++ b/mozilla-fix-aarch64-libopus.patch @@ -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)) + diff --git a/fix-top-level-asm-issue.patch b/mozilla-fix-top-level-asm.patch similarity index 100% rename from fix-top-level-asm-issue.patch rename to mozilla-fix-top-level-asm.patch diff --git a/mozilla-nestegg-big-endian.patch b/mozilla-nestegg-big-endian.patch new file mode 100644 index 0000000..484388e --- /dev/null +++ b/mozilla-nestegg-big-endian.patch @@ -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; diff --git a/mozilla-ntlm-full-path.patch b/mozilla-ntlm-full-path.patch new file mode 100644 index 0000000..aa36c98 --- /dev/null +++ b/mozilla-ntlm-full-path.patch @@ -0,0 +1,28 @@ +# HG changeset patch +# User Petr Cerny +# 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(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(args), &mChildPID, diff --git a/mozilla-openaes-decl.patch b/mozilla-openaes-decl.patch new file mode 100644 index 0000000..c341812 --- /dev/null +++ b/mozilla-openaes-decl.patch @@ -0,0 +1,26 @@ +# HG changeset patch +# Parent 33024abb3c58dab7239e32388df58e14f99defd5 +# User Wolfgang Rosenauer +# 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 ++#include + #include + #include + #include + + #include "mozilla/Sprintf.h" + + #ifdef WIN32 + #include diff --git a/mozilla-ppc-altivec_static_inline.patch b/mozilla-ppc-altivec_static_inline.patch new file mode 100644 index 0000000..973054e --- /dev/null +++ b/mozilla-ppc-altivec_static_inline.patch @@ -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); diff --git a/mozilla-reduce-rust-debuginfo.patch b/mozilla-reduce-rust-debuginfo.patch new file mode 100644 index 0000000..908b2b4 --- /dev/null +++ b/mozilla-reduce-rust-debuginfo.patch @@ -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 = [] + diff --git a/mozilla-s390-bigendian.patch b/mozilla-s390-bigendian.patch new file mode 100644 index 0000000..a776bfa --- /dev/null +++ b/mozilla-s390-bigendian.patch @@ -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) diff --git a/mozilla-s390-context.patch b/mozilla-s390-context.patch new file mode 100644 index 0000000..357cf9e --- /dev/null +++ b/mozilla-s390-context.patch @@ -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(&PC_sig(context)) = pc; diff --git a/tar_stamps b/tar_stamps index cecaeb0..a5feedc 100644 --- a/tar_stamps +++ b/tar_stamps @@ -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 diff --git a/thunderbird-68.1.0.source.tar.xz b/thunderbird-68.1.0.source.tar.xz deleted file mode 100644 index e5559f9..0000000 --- a/thunderbird-68.1.0.source.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de0e5c7d1d5576f451e386e4779f155b7af97621a4e22caac0c6dee3c9d76eef -size 333332920 diff --git a/thunderbird-68.1.0.source.tar.xz.asc b/thunderbird-68.1.0.source.tar.xz.asc deleted file mode 100644 index 9ddf74e..0000000 --- a/thunderbird-68.1.0.source.tar.xz.asc +++ /dev/null @@ -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----- diff --git a/thunderbird-68.1.1.source.tar.xz b/thunderbird-68.1.1.source.tar.xz new file mode 100644 index 0000000..5f7a797 --- /dev/null +++ b/thunderbird-68.1.1.source.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f27fec94b2565a1d1da1c90975327a3d56e5918d517cc25bd8a5dd1a81983bb +size 330615656 diff --git a/thunderbird-68.1.1.source.tar.xz.asc b/thunderbird-68.1.1.source.tar.xz.asc new file mode 100644 index 0000000..077b15c --- /dev/null +++ b/thunderbird-68.1.1.source.tar.xz.asc @@ -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-----