From 474457216de46130a964bd003c7c6b4ea5372a23b769fd2f209456e02a6a361b Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Mon, 9 Dec 2019 07:58:52 +0000 Subject: [PATCH 1/3] - Mozilla Firefox 71.0 * Improvements to Lockwise, our integrated password manager * More information about Enhanced Tracking Protection in action * Native MP3 decoding on Windows, Linux, and macOS * Configuration page (about:config) reimplemented in HTML * New kiosk mode functionality, which allows maximum screen space for customer-facing displays MFSA 2019-36 * CVE-2019-11756 (bmo#1508776) Use-after-free of SFTKSession object * CVE-2019-17008 (bmo#1546331) Use-after-free in worker destruction * CVE-2019-13722 (bmo#1580156) (Windows only) Stack corruption due to incorrect number of arguments in WebRTC code * CVE-2019-17014 (bmo#1322864) Dragging and dropping a cross-origin resource, incorrectly loaded as an image, could result in information disclosure * CVE-2019-17010 (bmo#1581084) Use-after-free when performing device orientation checks * CVE-2019-17005 (bmo#1584170) Buffer overflow in plain text serializer * CVE-2019-17011 (bmo#1591334) Use-after-free when retrieving a document in antitracking * CVE-2019-17012 (bmo#1449736, bmo#1533957, bmo#1560667, bmo#1567209 bmo#1580288, bmo#1585760, bmo#1592502) Memory safety bugs fixed in Firefox 71 and Firefox ESR 68.3 * CVE-2019-17013 (bmo#1298509, bmo#1472328, bmo#1577439, bmo#1577937 bmo#1580320, bmo#1584195, bmo#1585106, bmo#1586293, bmo#1593865 bmo#1594181) Memory safety bugs fixed in Firefox 71 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=789 --- MozillaFirefox.changes | 49 +++++++++++ MozillaFirefox.spec | 147 +++++++++++++++---------------- compare-locales.tar.xz | 3 - create-tar.sh | 108 ++++++++++++++++++----- firefox-70.0.1.source.tar.xz | 3 - firefox-70.0.1.source.tar.xz.asc | 16 ---- firefox-71.0.source.tar.xz | 3 + firefox-71.0.source.tar.xz.asc | 16 ++++ firefox-branded-icons.patch | 10 +-- l10n-70.0.1.tar.xz | 3 - l10n-71.0.tar.xz | 3 + mozilla-bmo1511604.patch | 76 ---------------- mozilla-bmo849632.patch | 23 +++++ mozilla-gcc9-lto.patch | 71 +++++++++++++++ mozilla-openaes-decl.patch | 26 ------ source-stamp.txt | 2 - tar_stamps | 8 +- 17 files changed, 330 insertions(+), 237 deletions(-) delete mode 100644 compare-locales.tar.xz delete mode 100644 firefox-70.0.1.source.tar.xz delete mode 100644 firefox-70.0.1.source.tar.xz.asc create mode 100644 firefox-71.0.source.tar.xz create mode 100644 firefox-71.0.source.tar.xz.asc delete mode 100644 l10n-70.0.1.tar.xz create mode 100644 l10n-71.0.tar.xz delete mode 100644 mozilla-bmo1511604.patch create mode 100644 mozilla-bmo849632.patch create mode 100644 mozilla-gcc9-lto.patch delete mode 100644 mozilla-openaes-decl.patch delete mode 100644 source-stamp.txt diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index 0e2f478..c23cbef 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -1,3 +1,52 @@ +------------------------------------------------------------------- +Mon Dec 2 08:24:05 UTC 2019 - Wolfgang Rosenauer + +- Mozilla Firefox 71.0 + * Improvements to Lockwise, our integrated password manager + * More information about Enhanced Tracking Protection in action + * Native MP3 decoding on Windows, Linux, and macOS + * Configuration page (about:config) reimplemented in HTML + * New kiosk mode functionality, which allows maximum screen space + for customer-facing displays + MFSA 2019-36 + * CVE-2019-11756 (bmo#1508776) + Use-after-free of SFTKSession object + * CVE-2019-17008 (bmo#1546331) + Use-after-free in worker destruction + * CVE-2019-13722 (bmo#1580156) (Windows only) + Stack corruption due to incorrect number of arguments in WebRTC code + * CVE-2019-17014 (bmo#1322864) + Dragging and dropping a cross-origin resource, incorrectly loaded + as an image, could result in information disclosure + * CVE-2019-17010 (bmo#1581084) + Use-after-free when performing device orientation checks + * CVE-2019-17005 (bmo#1584170) + Buffer overflow in plain text serializer + * CVE-2019-17011 (bmo#1591334) + Use-after-free when retrieving a document in antitracking + * CVE-2019-17012 (bmo#1449736, bmo#1533957, bmo#1560667, bmo#1567209 + bmo#1580288, bmo#1585760, bmo#1592502) + Memory safety bugs fixed in Firefox 71 and Firefox ESR 68.3 + * CVE-2019-17013 (bmo#1298509, bmo#1472328, bmo#1577439, bmo#1577937 + bmo#1580320, bmo#1584195, bmo#1585106, bmo#1586293, bmo#1593865 + bmo#1594181) + Memory safety bugs fixed in Firefox 71 +- requires + NSPR >= 4.23 + NSS >= 3.47.1 + rust/cargo >= 1.37 +- reactivate webrtc for platforms where it was disabled +- updated create-tar.sh to cover buildid and origin repo information + -> removed obsolete source-stamp.txt +- removed obsolete patches + mozilla-bmo1511604.patch + mozilla-openaes-decl.patch +- changed locale building procedure + * removed obsolete compare-locales.tar.xz +- added mozilla-gcc9-lto.patch to fix LTO builds with gcc9 but also + switched from gcc to clang for now since gcc builds are broken + in some ways (bmo#1601707, boo#1158466) + ------------------------------------------------------------------- Fri Nov 1 14:16:39 UTC 2019 - Wolfgang Rosenauer diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec index 66556b4..2d548d0 100644 --- a/MozillaFirefox.spec +++ b/MozillaFirefox.spec @@ -1,7 +1,7 @@ # # spec file for package MozillaFirefox # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LLC # 2006-2019 Wolfgang Rosenauer # # All modifications and additions to the file contributed by third parties @@ -18,17 +18,16 @@ # changed with every update -%define major 70 -%define mainver %major.0.1 -%define orig_version 70.0.1 +%define major 71 +%define mainver %major.0 +%define orig_version 71.0 %define orig_suffix %{nil} %define update_channel release %define branding 1 %define devpkg 1 -%define releasedate 20191030021342 # always build with GCC as SUSE Security Team requires that -%define clang_build 0 +%define clang_build 1 # PIE, full relro %define build_hardened 1 @@ -73,7 +72,7 @@ BuildRequires: gcc7-c++ %else BuildRequires: gcc-c++ %endif -BuildRequires: cargo >= 1.36 +BuildRequires: cargo >= 1.37 BuildRequires: libXcomposite-devel BuildRequires: libcurl-devel BuildRequires: libidl-devel @@ -81,14 +80,14 @@ BuildRequires: libiw-devel BuildRequires: libnotify-devel BuildRequires: libproxy-devel BuildRequires: makeinfo -BuildRequires: mozilla-nspr-devel >= 4.22 -BuildRequires: mozilla-nss-devel >= 3.46.1 +BuildRequires: mozilla-nspr-devel >= 4.23 +BuildRequires: mozilla-nss-devel >= 3.47.1 BuildRequires: nasm >= 2.13 BuildRequires: nodejs8 >= 8.11 BuildRequires: python-devel BuildRequires: python2-xml BuildRequires: python3 >= 3.5 -BuildRequires: rust >= 1.36 +BuildRequires: rust >= 1.37 BuildRequires: rust-cbindgen >= 0.9.1 BuildRequires: startup-notification-devel BuildRequires: unzip @@ -138,22 +137,20 @@ Provides: mozilla-kde4-version = %{kde_helper_version} Summary: Mozilla %{appname} Web Browser License: MPL-2.0 Group: Productivity/Networking/Web/Browsers -Url: http://www.mozilla.org/ +URL: http://www.mozilla.org/ %if !%{with only_print_mozconfig} Source: http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz Source1: MozillaFirefox.desktop Source2: MozillaFirefox-rpmlintrc Source3: mozilla.sh.in Source4: tar_stamps -Source5: source-stamp.txt Source7: l10n-%{orig_version}%{orig_suffix}.tar.xz Source8: firefox-mimeinfo.xml Source9: firefox.js -Source10: compare-locales.tar.xz Source11: firefox.1 Source12: mozilla-get-app-id Source13: spellcheck.js -Source14: https://github.com/openSUSE/firefox-scripts/raw/master/create-tar.sh +Source14: https://github.com/openSUSE/firefox-scripts/raw/d414e38/create-tar.sh Source15: firefox-appdata.xml Source16: %{name}.changes # Set up API keys, see http://www.chromium.org/developers/how-tos/api-keys @@ -167,26 +164,26 @@ Source21: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig Patch1: mozilla-nongnome-proxies.patch Patch2: mozilla-kde.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-bmo1504834-part1.patch -Patch17: mozilla-bmo1504834-part2.patch -Patch18: mozilla-bmo1504834-part3.patch -Patch19: mozilla-bmo1511604.patch -Patch20: mozilla-bmo1554971.patch -Patch21: mozilla-bmo1512162.patch -Patch22: mozilla-fix-top-level-asm.patch -Patch23: mozilla-bmo1504834-part4.patch +Patch4: mozilla-aarch64-startup-crash.patch +Patch5: mozilla-bmo1463035.patch +Patch6: mozilla-cubeb-noreturn.patch +Patch7: mozilla-fix-aarch64-libopus.patch +Patch8: mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch +Patch9: mozilla-s390-context.patch +Patch10: mozilla-s390-bigendian.patch +Patch11: mozilla-reduce-rust-debuginfo.patch +Patch12: mozilla-ppc-altivec_static_inline.patch +Patch13: mozilla-bmo1005535.patch +Patch14: mozilla-bmo1568145.patch +Patch15: mozilla-bmo1504834-part1.patch +Patch16: mozilla-bmo1504834-part2.patch +Patch17: mozilla-bmo1504834-part3.patch +Patch18: mozilla-bmo1554971.patch +Patch19: mozilla-bmo1512162.patch +Patch20: mozilla-fix-top-level-asm.patch +Patch21: mozilla-bmo1504834-part4.patch +Patch22: mozilla-bmo849632.patch +Patch23: mozilla-gcc9-lto.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch @@ -293,7 +290,7 @@ if (( $(stat -Lc%s "%{SOURCE7}") < MINSIZE)); then exit 1 fi -%setup -q -n %{srcname}-%{orig_version} -b 7 -b 10 +%setup -q -n %{srcname}-%{orig_version} -b 7 %else %setup -q -n %{srcname}-%{orig_version} %endif @@ -307,10 +304,10 @@ cd $RPM_BUILD_DIR/%{srcname}-%{orig_version} %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -p1 %ifarch s390x ppc64 -%patch11 -p1 +%patch10 -p1 %endif +%patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 @@ -341,15 +338,15 @@ if test "$kdehelperversion" != %{kde_helper_version}; then echo fix kde helper version in the .spec file exit 1 fi -source %{SOURCE5} +source %{SOURCE4} %endif # only_print_mozconfig export CARGO_HOME=${RPM_BUILD_DIR}/%{srcname}-%{orig_version}/.cargo -export MOZ_SOURCE_CHANGESET=$REV -export SOURCE_REPO=$REPO -export source_repo=$REPO -export MOZ_SOURCE_REPO=$REPO -export MOZ_BUILD_DATE=%{releasedate} +export MOZ_SOURCE_CHANGESET=$RELEASE_TAG +export SOURCE_REPO=$RELEASE_REPO +export source_repo=$RELEASE_REPO +export MOZ_SOURCE_REPO=$RELEASE_REPO +export MOZ_BUILD_DATE=$RELEASE_TIMESTAMP export MOZILLA_OFFICIAL=1 export BUILD_OFFICIAL=1 export MOZ_TELEMETRY_REPORTING=1 @@ -446,9 +443,6 @@ ac_add_options --with-arch=armv6 ac_add_options --with-arch=armv7-a %endif %endif -%ifarch aarch64 %arm s390x -ac_add_options --disable-webrtc -%endif # mitigation/workaround for bmo#1512162 %ifarch s390x ac_add_options --enable-optimize="-O1" @@ -478,13 +472,38 @@ rm -f config/external/icu/data/icudt*l.dat xvfb-run --server-args="-screen 0 1920x1080x24" \ %endif ./mach build -v + +# build additional locales +%if %localize +mkdir -p %{buildroot}%{progdir}/browser/extensions +truncate -s 0 %{_tmppath}/translations.{common,other} +sed -r '/^(ja-JP-mac|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \ + | xargs -n 1 -I {} /bin/sh -c ' + locale=$1 + ./mach build langpack-$locale + cp -rL ../obj/dist/xpi-stage/locale-$locale \ + %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org + # remove prefs, profile defaults, and hyphenation from langpack + rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/defaults + rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/hyphenation + # check against the fixed common list and sort into the right filelist + _matched=0 + for _match in ar ca cs da de el en-GB es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do + [ "$_match" = "$locale" ] && _matched=1 + done + [ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other + echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org \ + >> %{_tmppath}/translations.$_l10ntarget +' -- {} +%endif + %endif # only_print_mozconfig %install cd $RPM_BUILD_DIR/obj -source %{SOURCE5} -export MOZ_SOURCE_STAMP=$REV -export MOZ_SOURCE_REPO=$REPO +source %{SOURCE4} +export MOZ_SOURCE_STAMP=$RELEASE_TAG +export MOZ_SOURCE_REPO=$RELEASE_REPO # need to remove default en-US firefox-l10n.js before it gets # populated into browser's omni.ja; it only contains general.useragent.locale # which should be loaded from each language pack (set in firefox.js) @@ -506,35 +525,7 @@ mv %{buildroot}%{progdir}/%{srcname}-bin %{buildroot}%{progdir}/%{progname}-bin install -m 644 %{SOURCE13} %{buildroot}%{progdir}/defaults/pref/ # install browser prefs install -m 644 %{SOURCE9} %{buildroot}%{progdir}/browser/defaults/preferences/firefox.js -# build additional locales -%if %localize -mkdir -p %{buildroot}%{progdir}/browser/extensions -truncate -s 0 %{_tmppath}/translations.{common,other} -sed -r '/^(ja-JP-mac|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \ - | xargs -n 1 -I {} /bin/sh -c ' - locale=$1 - pushd $RPM_BUILD_DIR/compare-locales - PYTHONPATH=lib \ - scripts/compare-locales -m ../l10n-merged/$locale \ - ../%{srcname}-%{orig_version}/browser/locales/l10n.ini ../l10n $locale - popd - LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \ - make -C browser/locales langpack-$locale - cp -rL dist/xpi-stage/locale-$locale \ - %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org - # remove prefs, profile defaults, and hyphenation from langpack - rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/defaults - rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/hyphenation - # check against the fixed common list and sort into the right filelist - _matched=0 - for _match in ar ca cs da de el en-GB es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do - [ "$_match" = "$locale" ] && _matched=1 - done - [ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other - echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org \ - >> %{_tmppath}/translations.$_l10ntarget -' -- {} -%endif + # remove some executable permissions find %{buildroot}%{progdir} \ -name "*.js" -o \ diff --git a/compare-locales.tar.xz b/compare-locales.tar.xz deleted file mode 100644 index c410c0c..0000000 --- a/compare-locales.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0003b046ee9651f94f296658262d1ff04a8edea309288c38605e2c094b9ee6c2 -size 28492 diff --git a/create-tar.sh b/create-tar.sh index 59e28e7..6e96cc5 100644 --- a/create-tar.sh +++ b/create-tar.sh @@ -25,7 +25,8 @@ if [ $# -ne 1 ]; then fi # Sourcing the given tar_stamps-file to have the variables available -source "$1" || print_usage_and_exit +TAR_STAMP="$1" +source "$TAR_STAMP" || print_usage_and_exit # Internal variables BRANCH="releases/mozilla-$CHANNEL" @@ -37,12 +38,19 @@ fi SOURCE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz" FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source" +FTP_CANDIDATES_BASE_URL="https://ftp.mozilla.org/pub/$PRODUCT/candidates" # Make first letter of PRODCUT upper case PRODUCT_CAP="${PRODUCT^}" LOCALES_URL="https://product-details.mozilla.org/1.0/l10n/$PRODUCT_CAP" +PRODUCT_URL="https://product-details.mozilla.org/1.0/$PRODUCT.json" # Exit script on CTRL+C trap "exit" INT +function get_ftp_candidates_url() { + VERSION_WITH_SUFFIX="$1" + echo "$FTP_CANDIDATES_BASE_URL/$VERSION_WITH_SUFFIX-candidates" +} + function check_tarball_source () { TARBALL=$1 # Print out what is going to be done: @@ -73,26 +81,64 @@ function check_for_binary() { fi } -function locales_get() { - TMP_VERSION="$1" - URL_TO_CHECK="${LOCALES_URL}-${TMP_VERSION}" +function get_source_stamp() { + BUILD_ID="$1" + FTP_CANDIDATES_BASE_URL=$(get_ftp_candidates_url $VERSION$VERSION_SUFFIX) + FTP_CANDIDATES_JSON_SUFFIX="${BUILD_ID}/linux-x86_64/en-US/$PRODUCT-$VERSION$VERSION_SUFFIX.json" + BUILD_JSON=$(curl --silent --fail "$FTP_CANDIDATES_BASE_URL/$FTP_CANDIDATES_JSON_SUFFIX") || return 1; + REV=$(echo "$BUILD_JSON" | jq .moz_source_stamp) + SOURCE_REPO=$(echo "$BUILD_JSON" | jq .moz_source_repo) + TIMESTAMP=$(echo "$BUILD_JSON" | jq .buildid) + echo "Extending $TAR_STAMP with:" + echo "RELEASE_REPO=${SOURCE_REPO}" + echo "RELEASE_TAG=${REV}" + echo "RELEASE_TIMESTAMP=${TIMESTAMP}" + # We "remove and add" instead of "replace" in case the entries are not there yet + # Removing the old RELEASE_-tags + sed -i "/RELEASE_\(TAG\|REPO\|TIMESTAMP\)=.*/d" "$TAR_STAMP" + # Appending the new + echo "RELEASE_REPO=$SOURCE_REPO" >> "$TAR_STAMP" + echo "RELEASE_TAG=$REV" >> "$TAR_STAMP" + echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP" +} +function get_build_number() { LAST_FOUND="" - # Unfortunately, locales-files are not associated to releases, but to builds. - # And since we don't know which build was the final build, we go from 9 downwards - # try to find the latest one that exists (assuming there are no more than 9 builds). - # Error only if not even the first one exists - for BUILD_ID in $(seq 9 -1 0); do - FINAL_URL="${URL_TO_CHECK}-build${BUILD_ID}.json" - if wget --quiet --spider "$FINAL_URL"; then - LAST_FOUND="$FINAL_URL" - break - fi - done + VERSION_WITH_SUFFIX="$1" + + BUILD_ID=$(curl --silent "$PRODUCT_URL" | jq -e '.["releases"] | .["'$PRODUCT-$VERSION_WITH_SUFFIX'"] | .["build_number"]') + + # Slow fall-back + if [ $? -ne 0 ]; then + echo "Build number not found in product URL, falling back to slow FTP-parsing." 1>&2 + FTP_CANDIDATES_BASE_URL=$(get_ftp_candidates_url $VERSION_WITH_SUFFIX) + # Unfortunately, locales-files are not associated to releases, but to builds. + # And since we don't know which build was the final build, we grep them all from + # the candidates-page, sort them and take the last one which should be the oldest + # Error only if not even the first one exists + LAST_FOUND=$(curl --silent --fail "$FTP_CANDIDATES_BASE_URL/" | grep -o "build[0-9]*/" | sort | uniq | tail -n 1 | cut -d "/" -f 1) + else + LAST_FOUND="build$BUILD_ID" + fi if [ "$LAST_FOUND" != "" ]; then echo "$LAST_FOUND" return 0 + else + echo "Error: Could not find build-number for Firefox $VERSION_WITH_SUFFIX !" 1>&2 + return 1 + fi +} + + +function locales_get() { + TMP_VERSION="$1" + BUILD_ID="$2" + URL_TO_CHECK="${LOCALES_URL}-${TMP_VERSION}" + FINAL_URL="${URL_TO_CHECK}-${BUILD_ID}.json" + if wget --quiet --spider "$FINAL_URL"; then + echo "$FINAL_URL" + return 0 else echo "Error: Could not find locales-file (json) for Firefox $TMP_VERSION !" 1>&2 return 1 @@ -107,9 +153,11 @@ function locales_parse() { } function locales_unchanged() { + BUILD_ID="$1" + PREV_BUILD_ID=$(get_build_number "$PREV_VERSION$PREV_VERSION_SUFFIX") # If no json-file for one of the versions can be found, we say "they changed" - prev_url=$(locales_get "$PREV_VERSION$PREV_VERSION_SUFFIX") || return 1 - curr_url=$(locales_get "$VERSION$VERSION_SUFFIX") || return 1 + prev_url=$(locales_get "$PREV_VERSION$PREV_VERSION_SUFFIX" "$PREV_BUILD_ID") || return 1 + curr_url=$(locales_get "$VERSION$VERSION_SUFFIX" "$BUILD_ID") || return 1 prev_content=$(locales_parse "$prev_url") || exit 1 curr_content=$(locales_parse "$curr_url") || exit 1 @@ -129,11 +177,14 @@ if (($? != 127)); then compression='-Ipixz' fi +# Get ID +BUILD_ID=$(get_build_number "$VERSION$VERSION_SUFFIX") + if [ -z ${SKIP_LOCALES+x} ]; then # TODO: Thunderbird has usually "default" as locale entry. # There we probably need to double-check Firefox-locals # For now, just download every time for Thunderbird - if [ "$PRODUCT" = "firefox" ] && [ "$PREV_VERSION" != "" ] && locales_unchanged; then + if [ "$PRODUCT" = "firefox" ] && [ "$PREV_VERSION" != "" ] && locales_unchanged "$BUILD_ID"; then printf "%-40s: Did not change. Skipping.\n" "locales" LOCALES_CHANGED=0 else @@ -167,6 +218,7 @@ if [ -e $SOURCE_TARBALL ]; then echo "extract locale changesets" tar -xf $SOURCE_TARBALL $LOCALE_FILE fi + get_source_stamp "$BUILD_ID" else # We are working on a version that is not yet published on the mozilla mirror # so we have to actually check out the repo @@ -208,10 +260,9 @@ else hg update --check $FF_RELEASE_TAG [ "$FF_RELEASE_TAG" == "default" ] || hg update -r $FF_RELEASE_TAG # get repo and source stamp - echo -n "REV=" > ../source-stamp.txt - hg -R . parent --template="{node|short}\n" >> ../source-stamp.txt - echo -n "REPO=" >> ../source-stamp.txt - hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" >> ../source-stamp.txt + REV=$(hg -R . parent --template="{node|short}\n") + SOURCE_REPO=$(hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/") + TIMESTAMP=$(date +%Y%m%d%H%M%S) if [ "$PRODUCT" = "thunderbird" ]; then pushd comm || exit 1 @@ -221,6 +272,19 @@ else fi popd || exit 1 + echo "Extending $TAR_STAMP with:" + echo "RELEASE_REPO=${SOURCE_REPO}" + echo "RELEASE_TAG=${REV}" + echo "RELEASE_TIMESTAMP=${TIMESTAMP}" + + # We "remove and add" instead of "replace" in case the entries are not there yet + # Removing the old RELEASE_-tags + sed -i "/RELEASE_\(TAG\|REPO\|TIMESTAMP\)=.*/d" "$TAR_STAMP" + # Appending the new + echo "RELEASE_REPO=$SOURCE_REPO" >> "$TAR_STAMP" + echo "RELEASE_TAG=$REV" >> "$TAR_STAMP" + echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP" + echo "creating archive..." tar $compression -cf $PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS $PRODUCT-$VERSION fi diff --git a/firefox-70.0.1.source.tar.xz b/firefox-70.0.1.source.tar.xz deleted file mode 100644 index eb5d0a9..0000000 --- a/firefox-70.0.1.source.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f2e9bb26af7682b31e82fdfc3a4b3e04fd1caa8b004469ea608185d33e35691b -size 326335800 diff --git a/firefox-70.0.1.source.tar.xz.asc b/firefox-70.0.1.source.tar.xz.asc deleted file mode 100644 index 5e28da6..0000000 --- a/firefox-70.0.1.source.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl25y/EACgkQ8aZmj7t9 -Vy6ouw/8DZtKPLNpT1OMvrnmvJ/1zjSM6CR6uvr37X1J8ZlvALCqbnGdJ1gx6K9d -ttG0w4N+yYY9VoIA5uadJbh/0+5vNUXtor4hWtyUzYO+48OtOH7oss/Da1t26ItX -ApbNXPKoK2q4JiJuXi1AztkCfwcZt8rWFwYUetV6aDtLYpUDL4Z3qCVnt6bJQGQ8 -Ez+dW3rIswHF4+S95IklBnU8q9HN2T3zTQqnYnX6C5YIWujYUxgPl3lkfwmVawJv -S2inFdZx1c7ppcWXOxKs/71oHAQfZjUhkW4zcTIg8jNVkRJSDE6CdofNpo+2U00O -1vpXhObewTNlgX1jFcTDDnSz1YbZ23QiS67Oh2liKiLmrnoAKck58TxgQFyGc7uR -UdNPRDz3vUupL3IFBckh1QPHcSnhuVrv8QIY6Ten2KB3fSW7wkE3mutbGLFum7n+ -xzBWOKU2E0jxX05mopqS0DkJ3DiqjwXY9g+vBxw1pp95rUUMGIj0JNf7po6ZTzyS -jiQ5EbHrRboKWwYYLgkvZmWJefeZm81hU5ez7/+5YV8NJp18mfHXUdDJZI9aqZGU -PS64tUgC34qhsH2hzwhBhd+SoozvGaD17ecfblXobhRZKMIt4nFzkhvSTdeE7PEh -+zRbndVUAOpD3AZ1c2dQVdFfSAu/Vznx+C4kZNg5ktHQwO4wj10= -=lkqy ------END PGP SIGNATURE----- diff --git a/firefox-71.0.source.tar.xz b/firefox-71.0.source.tar.xz new file mode 100644 index 0000000..f5ae59b --- /dev/null +++ b/firefox-71.0.source.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78304cd58229e7103b56b34718aad051c9a4db30c266512a64f501ba58da7fbe +size 312341460 diff --git a/firefox-71.0.source.tar.xz.asc b/firefox-71.0.source.tar.xz.asc new file mode 100644 index 0000000..1709863 --- /dev/null +++ b/firefox-71.0.source.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl3lA28ACgkQ8aZmj7t9 +Vy5eEg//eGpfCJYD87DGGP9rzfCwr+MVAxQZyj4sWL8JPZ5GmoFFePsw2vSNh/Gj +TCE2ZbPVEaBUAcXyT3G9lf5s4a7/HXMgQjb95EUDn+DjymeI0MjmuG2aZTk4hY76 +OtSFjXIJ1JqMQH2xMHLtkwYRm8JVRH6HFCa0owqm/p2tK2Q5djxTieeiR3qQPXcX +gDF4SOA05WDOYYMpDf0jErXwCnHqWNJKJISsAh9q4yXKu+GoUiWr65Yf6QJRfKBL +yviYBslRYOnziQeRHO1v2v3hNZ67jcSMzUw85oJJjYAmiUn+jfe1C0D1Y/EPGiIu +llAXewHcatNjoecW2DdPgFSRv8JnoPklkeOIN20mB5YcG8XSnp/7ZxKpxeOsKwjp ++84gZVtOTE5MfH5SV4LpH1r4PAtnPJMZF9onOzVf2t1Rk0qRUVt3zsg+bBEvh/gR +5Ay2HtKDUJRw46riMLmtl/pb3IEivVgcQGxoblu+UVU5nTiHIATF/3UJsNtPLZgV +JqrMfnt1z6173m215p55QgCn0YP0W4FUOwHqcKkRsF7f4UYwvRXUQa0bRxnqzkJU +AJ27dcxg0KE/CxWMfEuoTd+beaimiZyZKfffW/WzCWS8uPYaQZ8c4E3ljhkLhjn2 +P2LTUeRL4F+7oj9dWlpMWTjfs9Jkq831oB+mZl4crHbgcxDJe1k= +=GTDV +-----END PGP SIGNATURE----- diff --git a/firefox-branded-icons.patch b/firefox-branded-icons.patch index 348ec4b..5885a82 100644 --- a/firefox-branded-icons.patch +++ b/firefox-branded-icons.patch @@ -1,6 +1,6 @@ # HG changeset patch # Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de -# Parent b75f4c79d0757cd16065811d34a563bdb5cfb15e +# Parent 127964dc93cc35715852bc811dcc67016d918628 diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild --- a/browser/branding/branding-common.mozbuild @@ -43,8 +43,8 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m #endif @RESPATH@/browser/features/* - ; [Webide Files] - @RESPATH@/browser/chrome/webide@JAREXT@ - @RESPATH@/browser/chrome/webide.manifest - ; [DevTools Startup Files] + @RESPATH@/browser/chrome/devtools-startup@JAREXT@ + @RESPATH@/browser/chrome/devtools-startup.manifest + + ; DevTools diff --git a/l10n-70.0.1.tar.xz b/l10n-70.0.1.tar.xz deleted file mode 100644 index 7d74560..0000000 --- a/l10n-70.0.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a1f117ed0beee530e6666a9bd4780b372dd9ed193e63c964636aa4d8d17e5958 -size 50041672 diff --git a/l10n-71.0.tar.xz b/l10n-71.0.tar.xz new file mode 100644 index 0000000..237914c --- /dev/null +++ b/l10n-71.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e99281ff021803c3fbcf1e66d3f9ab76a23d5651baf89d3f9ea5ceb5044d8d8b +size 50890752 diff --git a/mozilla-bmo1511604.patch b/mozilla-bmo1511604.patch deleted file mode 100644 index 16f62d0..0000000 --- a/mozilla-bmo1511604.patch +++ /dev/null @@ -1,76 +0,0 @@ -# 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-bmo849632.patch b/mozilla-bmo849632.patch new file mode 100644 index 0000000..f6dc2c7 --- /dev/null +++ b/mozilla-bmo849632.patch @@ -0,0 +1,23 @@ +Problem: webGL sites are displayed in the wrong color (usually blue-ish) +Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only + knows how to deal with little endian. + So we swizzle the output of webgl after reading it from readpixels() +Note: This does not fix all webGL sites, but is a step in the right direction +diff -r 6b017d3e9733 gfx/gl/GLContext.h +--- a/gfx/gl/GLContext.h Mon Sep 09 10:04:05 2019 +0200 ++++ b/gfx/gl/GLContext.h Wed Nov 13 17:13:04 2019 +0100 +@@ -1551,6 +1551,13 @@ + BEFORE_GL_CALL; + mSymbols.fReadPixels(x, y, width, height, format, type, pixels); + OnSyncCall(); ++#if MOZ_BIG_ENDIAN ++ uint8_t* itr = (uint8_t*)pixels; ++ for (GLsizei i = 0; i < width * height; i++) { ++ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1); ++ itr += 4; ++ } ++#endif + AFTER_GL_CALL; + mHeavyGLCallsSinceLastFlush = true; + } + diff --git a/mozilla-gcc9-lto.patch b/mozilla-gcc9-lto.patch new file mode 100644 index 0000000..078028f --- /dev/null +++ b/mozilla-gcc9-lto.patch @@ -0,0 +1,71 @@ +Workaround GCC/Clang6 not supporting class-temporary#6.7 [1] +Bugs: ++ https://bugzilla.mozilla.org/show_bug.cgi?id=1601707 ++ http://gcc.gnu.org/PR92831 ++ https://bugzilla.redhat.com/show_bug.cgi?id=1779082 + +[1] http://eel.is/c++draft/class.temporary#6.7 + +diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp +--- a/dom/indexedDB/ActorsParent.cpp ++++ b/dom/indexedDB/ActorsParent.cpp +@@ -24311,11 +24311,11 @@ + // if we allow overwrite or not. By not allowing overwrite we raise + // detectable errors rather than corrupting data. + DatabaseConnection::CachedStatement stmt; +- const auto& optReplaceDirective = (!mOverwrite || keyUnset) +- ? NS_LITERAL_CSTRING("") +- : NS_LITERAL_CSTRING("OR REPLACE "); + rv = aConnection->GetCachedStatement( +- NS_LITERAL_CSTRING("INSERT ") + optReplaceDirective + ++ NS_LITERAL_CSTRING("INSERT ") + ++ ((!mOverwrite || keyUnset) ++ ? NS_LITERAL_CSTRING("") ++ : NS_LITERAL_CSTRING("OR REPLACE ")) + + NS_LITERAL_CSTRING("INTO object_data " + "(object_store_id, key, file_ids, data) " + "VALUES (:") + +@@ -26076,9 +26076,6 @@ + + const bool usingKeyRange = mOptionalKeyRange.isSome(); + +- const auto& indexTable = mCursor->mUniqueIndex +- ? NS_LITERAL_CSTRING("unique_index_data") +- : NS_LITERAL_CSTRING("index_data"); + + NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column"); + +@@ -26099,7 +26096,9 @@ + "object_data.file_ids, " + "object_data.data " + "FROM ") + +- indexTable + ++ (mCursor->mUniqueIndex ++ ? NS_LITERAL_CSTRING("unique_index_data") ++ : NS_LITERAL_CSTRING("index_data")) + + NS_LITERAL_CSTRING( + " AS index_table " + "JOIN object_data " +@@ -26198,9 +26197,6 @@ + + const bool usingKeyRange = mOptionalKeyRange.isSome(); + +- const auto& table = mCursor->mUniqueIndex +- ? NS_LITERAL_CSTRING("unique_index_data") +- : NS_LITERAL_CSTRING("index_data"); + + NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column"); + +@@ -26218,7 +26214,10 @@ + NS_LITERAL_CSTRING( + "object_data_key " + " FROM ") + +- table + NS_LITERAL_CSTRING(" WHERE index_id = :") + ++ (mCursor->mUniqueIndex ++ ? NS_LITERAL_CSTRING("unique_index_data") ++ : NS_LITERAL_CSTRING("index_data")) + ++ NS_LITERAL_CSTRING(" WHERE index_id = :") + + kStmtParamNameId; + + const auto keyRangeClause = + diff --git a/mozilla-openaes-decl.patch b/mozilla-openaes-decl.patch deleted file mode 100644 index c341812..0000000 --- a/mozilla-openaes-decl.patch +++ /dev/null @@ -1,26 +0,0 @@ -# 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/source-stamp.txt b/source-stamp.txt deleted file mode 100644 index c96ecb3..0000000 --- a/source-stamp.txt +++ /dev/null @@ -1,2 +0,0 @@ -REV=21ce5fdd3146e9f8cd108b96e75562f6335e0a8e -REPO=http://hg.mozilla.org/releases/mozilla-release diff --git a/tar_stamps b/tar_stamps index 67c8244..790227c 100644 --- a/tar_stamps +++ b/tar_stamps @@ -1,9 +1,11 @@ PRODUCT="firefox" CHANNEL="release" -VERSION="70.0.1" +VERSION="71.0" VERSION_SUFFIX="" -RELEASE_TAG="21ce5fdd3146e9f8cd108b96e75562f6335e0a8e" -PREV_VERSION="70.0" +PREV_VERSION="70.0.1" PREV_VERSION_SUFFIX="" #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation +RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release" +RELEASE_TAG="501aef7fe1d9622236600a7e53843d40d163a123" +RELEASE_TIMESTAMP="20191202093317" From d61baa9d358c6ae2d8398a6c23a591ea7906179f8e88457b6401ed5b81818f91 Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Tue, 10 Dec 2019 08:08:57 +0000 Subject: [PATCH 2/3] - added mozilla-bmo849632.patch to fix big endian issues in skia used for WebGL OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=790 --- MozillaFirefox.changes | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index c23cbef..87e6e1c 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -46,6 +46,8 @@ Mon Dec 2 08:24:05 UTC 2019 - Wolfgang Rosenauer - added mozilla-gcc9-lto.patch to fix LTO builds with gcc9 but also switched from gcc to clang for now since gcc builds are broken in some ways (bmo#1601707, boo#1158466) +- added mozilla-bmo849632.patch to fix big endian issues in skia + used for WebGL ------------------------------------------------------------------- Fri Nov 1 14:16:39 UTC 2019 - Wolfgang Rosenauer From 5863c2f0e9e0f70b2d65c85990a03a5b2483812ffe73fc50110e0bf08187ace1 Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Wed, 18 Dec 2019 17:50:22 +0000 Subject: [PATCH 3/3] - added mozilla-bmo1601707.patch to fix gcc/LTO builds (bmo#1601707, boo#1158466) OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=791 --- MozillaFirefox.changes | 5 ++- MozillaFirefox.spec | 4 +-- mozilla-bmo1601707.patch | 52 +++++++++++++++++++++++++++++ mozilla-gcc9-lto.patch | 71 ---------------------------------------- 4 files changed, 56 insertions(+), 76 deletions(-) create mode 100644 mozilla-bmo1601707.patch delete mode 100644 mozilla-gcc9-lto.patch diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index 87e6e1c..d30c95e 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -43,9 +43,8 @@ Mon Dec 2 08:24:05 UTC 2019 - Wolfgang Rosenauer mozilla-openaes-decl.patch - changed locale building procedure * removed obsolete compare-locales.tar.xz -- added mozilla-gcc9-lto.patch to fix LTO builds with gcc9 but also - switched from gcc to clang for now since gcc builds are broken - in some ways (bmo#1601707, boo#1158466) +- added mozilla-bmo1601707.patch to fix gcc/LTO builds + (bmo#1601707, boo#1158466) - added mozilla-bmo849632.patch to fix big endian issues in skia used for WebGL diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec index 2d548d0..685fe4b 100644 --- a/MozillaFirefox.spec +++ b/MozillaFirefox.spec @@ -27,7 +27,7 @@ %define devpkg 1 # always build with GCC as SUSE Security Team requires that -%define clang_build 1 +%define clang_build 0 # PIE, full relro %define build_hardened 1 @@ -183,7 +183,7 @@ Patch19: mozilla-bmo1512162.patch Patch20: mozilla-fix-top-level-asm.patch Patch21: mozilla-bmo1504834-part4.patch Patch22: mozilla-bmo849632.patch -Patch23: mozilla-gcc9-lto.patch +Patch23: mozilla-bmo1601707.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch diff --git a/mozilla-bmo1601707.patch b/mozilla-bmo1601707.patch new file mode 100644 index 0000000..c61a8cb --- /dev/null +++ b/mozilla-bmo1601707.patch @@ -0,0 +1,52 @@ +diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp +--- a/dom/indexedDB/ActorsParent.cpp ++++ b/dom/indexedDB/ActorsParent.cpp +@@ -24311,9 +24311,9 @@ + // if we allow overwrite or not. By not allowing overwrite we raise + // detectable errors rather than corrupting data. + DatabaseConnection::CachedStatement stmt; +- const auto& optReplaceDirective = (!mOverwrite || keyUnset) +- ? NS_LITERAL_CSTRING("") +- : NS_LITERAL_CSTRING("OR REPLACE "); ++ const auto optReplaceDirective = (!mOverwrite || keyUnset) ++ ? NS_LITERAL_CSTRING("") ++ : NS_LITERAL_CSTRING("OR REPLACE "); + rv = aConnection->GetCachedStatement( + NS_LITERAL_CSTRING("INSERT ") + optReplaceDirective + + NS_LITERAL_CSTRING("INTO object_data " +@@ -25869,7 +25869,7 @@ + } + } + +- const auto& comparisonChar = ++ const auto comparisonChar = + isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<"); + + mCursor->mContinueToQuery = +@@ -26076,9 +26076,9 @@ + + const bool usingKeyRange = mOptionalKeyRange.isSome(); + +- const auto& indexTable = mCursor->mUniqueIndex +- ? NS_LITERAL_CSTRING("unique_index_data") +- : NS_LITERAL_CSTRING("index_data"); ++ const auto indexTable = mCursor->mUniqueIndex ++ ? NS_LITERAL_CSTRING("unique_index_data") ++ : NS_LITERAL_CSTRING("index_data"); + + NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column"); + +@@ -26198,9 +26198,9 @@ + + const bool usingKeyRange = mOptionalKeyRange.isSome(); + +- const auto& table = mCursor->mUniqueIndex +- ? NS_LITERAL_CSTRING("unique_index_data") +- : NS_LITERAL_CSTRING("index_data"); ++ const auto table = mCursor->mUniqueIndex ++ ? NS_LITERAL_CSTRING("unique_index_data") ++ : NS_LITERAL_CSTRING("index_data"); + + NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column"); + + diff --git a/mozilla-gcc9-lto.patch b/mozilla-gcc9-lto.patch deleted file mode 100644 index 078028f..0000000 --- a/mozilla-gcc9-lto.patch +++ /dev/null @@ -1,71 +0,0 @@ -Workaround GCC/Clang6 not supporting class-temporary#6.7 [1] -Bugs: -+ https://bugzilla.mozilla.org/show_bug.cgi?id=1601707 -+ http://gcc.gnu.org/PR92831 -+ https://bugzilla.redhat.com/show_bug.cgi?id=1779082 - -[1] http://eel.is/c++draft/class.temporary#6.7 - -diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp ---- a/dom/indexedDB/ActorsParent.cpp -+++ b/dom/indexedDB/ActorsParent.cpp -@@ -24311,11 +24311,11 @@ - // if we allow overwrite or not. By not allowing overwrite we raise - // detectable errors rather than corrupting data. - DatabaseConnection::CachedStatement stmt; -- const auto& optReplaceDirective = (!mOverwrite || keyUnset) -- ? NS_LITERAL_CSTRING("") -- : NS_LITERAL_CSTRING("OR REPLACE "); - rv = aConnection->GetCachedStatement( -- NS_LITERAL_CSTRING("INSERT ") + optReplaceDirective + -+ NS_LITERAL_CSTRING("INSERT ") + -+ ((!mOverwrite || keyUnset) -+ ? NS_LITERAL_CSTRING("") -+ : NS_LITERAL_CSTRING("OR REPLACE ")) + - NS_LITERAL_CSTRING("INTO object_data " - "(object_store_id, key, file_ids, data) " - "VALUES (:") + -@@ -26076,9 +26076,6 @@ - - const bool usingKeyRange = mOptionalKeyRange.isSome(); - -- const auto& indexTable = mCursor->mUniqueIndex -- ? NS_LITERAL_CSTRING("unique_index_data") -- : NS_LITERAL_CSTRING("index_data"); - - NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column"); - -@@ -26099,7 +26096,9 @@ - "object_data.file_ids, " - "object_data.data " - "FROM ") + -- indexTable + -+ (mCursor->mUniqueIndex -+ ? NS_LITERAL_CSTRING("unique_index_data") -+ : NS_LITERAL_CSTRING("index_data")) + - NS_LITERAL_CSTRING( - " AS index_table " - "JOIN object_data " -@@ -26198,9 +26197,6 @@ - - const bool usingKeyRange = mOptionalKeyRange.isSome(); - -- const auto& table = mCursor->mUniqueIndex -- ? NS_LITERAL_CSTRING("unique_index_data") -- : NS_LITERAL_CSTRING("index_data"); - - NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column"); - -@@ -26218,7 +26214,10 @@ - NS_LITERAL_CSTRING( - "object_data_key " - " FROM ") + -- table + NS_LITERAL_CSTRING(" WHERE index_id = :") + -+ (mCursor->mUniqueIndex -+ ? NS_LITERAL_CSTRING("unique_index_data") -+ : NS_LITERAL_CSTRING("index_data")) + -+ NS_LITERAL_CSTRING(" WHERE index_id = :") + - kStmtParamNameId; - - const auto keyRangeClause = -