merge latest release to default
authorWolfgang Rosenauer <wr@rosenauer.org>
Thu, 11 Jun 2020 22:04:26 +0200
changeset 1129 146af4f081b9
parent 1116 52b1745787cf (current diff)
parent 1128 0d95fa645411 (diff)
child 1130 ea7152ed4a37
merge latest release to default
--- a/MozillaFirefox/MozillaFirefox.changes	Mon Nov 25 08:41:45 2019 +0100
+++ b/MozillaFirefox/MozillaFirefox.changes	Thu Jun 11 22:04:26 2020 +0200
@@ -1,7 +1,356 @@
 -------------------------------------------------------------------
-Tue Nov 19 09:30:19 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
-
-- Mozilla Firefox 71.0b11
+Wed Jun 10 07:17:15 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
+
+- Exclude armv6, since it is unbuildable since about 3 years
+
+-------------------------------------------------------------------
+Wed Jun  3 21:39:11 UTC 2020 - Andreas Stieger <andreas.stieger@gmx.de>
+
+- Mozilla Firefox 77.0.1
+  * Disable automatic selection of DNS over HTTPS providers during
+    a test to enable wider deployment in a more controlled way
+    (bmo#1642723)
+
+-------------------------------------------------------------------
+Fri May 29 11:49:36 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 77.0
+  * view and manage web certificates more easily on the new
+    about:certificate page
+  * improvements in accessibility
+  * significant improvements to JavaScript debugging
+  MFSA 2020-20 (bsc#1172402)
+  * CVE-2020-12399 (bmo#1631576)
+    Timing attack on DSA signatures in NSS library
+    (fixed with external NSS >= 3.52.1)
+  * CVE-2020-12405 (bmo#1631618)
+    Use-after-free in SharedWorkerService
+  * CVE-2020-12406 (bmo#1639590)
+    JavaScript type confusion with NativeTypes
+  * CVE-2020-12407 (bmo#1637112)
+    WebRender leaking GPU memory when using border-image CSS
+    directive
+  * CVE-2020-12408 (bmo#1623888)
+    URL spoofing when using IP addresses
+  * CVE-2020-12409 (bmo#1619305, bmo#1632717)
+    Memory safety bugs fixed in Firefox 77 and Firefox ESR 68.9
+  * CVE-2020-12411 (bmo#1620972, bmo#1625333)
+    Memory safety bugs fixed in Firefox 77
+- requires
+  * NSS >= 3.52.1
+  * rust-cbindgen >= 1.14.1
+  * clang >= 5
+- added mozilla-bmo1634646.patch as part of fixing PGO build
+  (still not working)
+
+-------------------------------------------------------------------
+Wed May 13 12:21:13 UTC 2020 - Michel Normand <normand@linux.vnet.ibm.com>
+
+- change again _constraints for ppc64le use <physicalmemory>
+  and increase limit_build in spec file to reduce max_jobs.
+
+-------------------------------------------------------------------
+Sat May  9 11:45:39 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 76.0.1
+  * Fixed a bug causing some add-ons such as Amazon Assistant to see
+    multiple onConnect events, impairing functionality (bmo#1635637)
+
+-------------------------------------------------------------------
+Fri May  1 11:59:58 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 76.0
+  * Lockwise improvements
+  * Improvements in Picture-in-Picture feature
+  * Support Audio Worklets
+  MFSA-2020-16 (bsc#1171186)
+  * CVE-2020-12387 (bmo#1545345)
+    Use-after-free during worker shutdown
+  * CVE-2020-12388 (bmo#1618911)
+    Sandbox escape with improperly guarded Access Tokens
+  * CVE-2020-12389 (bmo#1554110)
+    Sandbox escape with improperly separated process types
+  * CVE-2020-6831 (bmo#1632241)
+    Buffer overflow in SCTP chunk input validation
+  * CVE-2020-12390 (bmo#1141959)
+    Incorrect serialization of nsIPrincipal.origin for IPv6 addresses
+  * CVE-2020-12391 (bmo#1457100)
+    Content-Security-Policy bypass using object elements
+  * CVE-2020-12392 (bmo#1614468)
+    Arbitrary local file access with 'Copy as cURL'
+  * CVE-2020-12393 (bmo#1615471)
+    Devtools' 'Copy as cURL' feature did not fully escape
+    website-controlled data, potentially leading to command injection
+  * CVE-2020-12394 (bmo#1628288)
+    URL spoofing in location bar when unfocussed
+  * CVE-2020-12395 (bmo#1595886, bmo#1611482, bmo#1614704, bmo#1624098,
+    bmo#1625749, bmo#1626382, bmo#1628076, bmo#1631508)
+    Memory safety bugs fixed in Firefox 76 and Firefox ESR 68.8
+  * CVE-2020-12396 (bmo#1339601, bmo#1611938, bmo#1620488,
+    bmo#1622291, bmo#1627644)
+    Memory safety bugs fixed in Firefox 76
+- requires
+  * NSS >= 3.51.1
+  * nasm >= 2.14
+- removed obsolete patch mozilla-bmo1622013.patch
+- fix URI creation for KDE file selector integration (boo#1160331)
+
+-------------------------------------------------------------------
+Tue Apr  7 12:18:27 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 75.0
+  * https://www.mozilla.org/en-US/firefox/75.0/releasenotes
+  MFSA 2020-12 (bsc#1168874)
+  * CVE-2020-6821 (bmo#1625404)
+    Uninitialized memory could be read when using the WebGL
+    copyTexSubImage method
+  * CVE-2020-6822 (bmo#1544181)
+    Out of bounds write in GMPDecodeData when processing large images
+  * CVE-2020-6823 (bmo#1614919)
+    Malicious Extension could obtain auth codes from OAuth login flows
+  * CVE-2020-6824 (bmo#1621853)
+    Generated passwords may be identical on the same site between
+    separate private browsing sessions
+  * CVE-2020-6825 (bmo#1572541,bmo#1620193,bmo#1620203)
+    Memory safety bugs fixed in Firefox 75 and Firefox ESR 68.7
+  * CVE-2020-6826 (bmo#1613009,bmo#1613195,bmo#1616734,bmo#1617488,
+    bmo#1619229,bmo#1620719,bmo#1624897)
+    Memory safety bugs fixed in Firefox 75
+- removed obsolete patch
+  mozilla-bmo1609538.patch
+- requires
+  * rust >= 1.41
+  * rust-cbindgen >= 0.13.1
+  * mozilla-nss >= 3.51
+  * nodejs10 >= 10.19
+- fix build issue in libvpx for i586 via mozilla-bmo1622013.patch
+
+-------------------------------------------------------------------
+Mon Apr  6 11:19:24 UTC 2020 - Michel Normand <normand@linux.vnet.ibm.com>
+
+- increase _constraints memory for ppc64le
+
+-------------------------------------------------------------------
+Fri Apr  3 15:23:28 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 74.0.1
+  MFSA 2020-11 (boo#1168630)
+  * CVE-2020-6819 (bmo#1620818)
+    Use-after-free while running the nsDocShell destructor
+  * CVE-2020-6820 (bmo#1626728)
+    Use-after-free when handling a ReadableStream
+
+-------------------------------------------------------------------
+Wed Mar 25 07:30:39 UTC 2020 - Marcus Meissner <meissner@suse.com>
+
+- mozilla-sandbox-fips.patch: allow /proc/sys/crypto/fips_enabled
+  to be read, as openssl 1.1.1 FIPS aborts if it cannot access it
+  (bsc#1167132)
+
+-------------------------------------------------------------------
+Sat Mar  7 08:51:06 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 74.0
+  * https://www.mozilla.org/en-US/firefox/74.0/releasenotes/
+  MFSA 2020-08 (bsc#1166238)
+  * CVE-2020-6805 (bmo#1610880)
+    Use-after-free when removing data about origins
+  * CVE-2020-6806 (bmo#1612308)
+    BodyStream::OnInputStreamReady was missing protections against
+    state confusion
+  * CVE-2020-6807 (bmo#1614971)
+    Use-after-free in cubeb during stream destruction
+  * CVE-2020-6808 (bmo#1247968)
+    URL Spoofing via javascript: URL
+  * CVE-2020-6809 (bmo#1420296)
+    Web Extensions with the all-urls permission could access local
+    files
+  * CVE-2020-6810 (bmo#1432856)
+    Focusing a popup while in fullscreen could have obscured the
+    fullscreen notification
+  * CVE-2020-6811 (bmo#1607742)
+    Devtools' 'Copy as cURL' feature did not fully escape
+    website-controlled data, potentially leading to command injection
+  * CVE-2019-20503 (bmo#1613765)
+    Out of bounds reads in sctp_load_addresses_from_init
+  * CVE-2020-6812 (bmo#1616661)
+    The names of AirPods with personally identifiable information
+    were exposed to websites with camera or microphone permission
+  * CVE-2020-6813 (bmo#1605814)
+    @import statements in CSS could bypass the Content Security
+    Policy nonce feature
+  * CVE-2020-6814 (bmo#1592078,bmo#1604847,bmo#1608256,bmo#1612636,
+    bmo#1614339)
+    Memory safety bugs fixed in Firefox 74 and Firefox ESR 68.6
+  * CVE-2020-6815 (bmo#1181957,bmo#1557732,bmo#1557739,bmo#1611457,
+    bmo#1612431)
+    Memory and script safety bugs fixed in Firefox 74
+- requires
+  * NSPR 4.25
+  * NSS 3.50
+  * rust-cbindgen 0.13.0
+- removed obsolete patches
+  mozilla-bmo1610814.patch
+  mozilla-cubeb-noreturn.patch
+- add mozilla-bmo1609538.patch to fix wayland issues with mutter 3.36
+  (bmo#1609538, boo#1166471)
+
+-------------------------------------------------------------------
+Wed Feb 26 08:12:00 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- big endian fixes
+
+-------------------------------------------------------------------
+Tue Feb 25 14:17:00 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
+
+- Fix build on aarch64/armv7 with:
+  * mozilla-bmo1610814.patch (boo#1164845, bmo#1610814)
+
+-------------------------------------------------------------------
+Thu Feb 20 13:40:59 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 73.0.1
+  * Resolved problems connecting to the RBC Royal Bank website
+    (bmo#1613943)
+  * Fixed Firefox unexpectedly exiting when leaving Print Preview mode
+    (bmo#1611133)
+  * Fixed crashes when playing encrypted content on some Linux systems
+    (bmo#1614535, boo#1164646)
+- start in wayland mode when running under wayland session
+
+-------------------------------------------------------------------
+Sun Feb  9 07:45:00 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 73.0
+  * Added support for setting a default zoom level applicable for all
+    web content
+  * High-contrast mode has been updated to allow background images
+  * Improved audio quality when playing back audio at a faster or
+    slower speed
+  * Added NextDNS as alternative option for DNS over HTTPS
+  MFSA 2020-05 (bsc#1163368)
+  * CVE-2020-6796 (bmo#1610426)
+    Missing bounds check on shared memory read in the parent process
+  * CVE-2020-6797 (bmo#1596668) (MacOS X only)
+    Extensions granted downloads.open permission could open arbitrary
+    applications on Mac OSX
+  * CVE-2020-6798 (bmo#1602944)
+    Incorrect parsing of template tag could result in JavaScript injection
+  * CVE-2020-6799 (bmo#1606596) (Windows only)
+    Arbitrary code execution when opening pdf links from other
+    applications, when Firefox is configured as default pdf reader
+  * CVE-2020-6800 (bmo#1595786,bmo#1596706,bmo#1598543,bmo#1604851,
+    bmo#1608580,bmo#1608785,bmo#1605777)
+    Memory safety bugs fixed in Firefox 73 and Firefox ESR 68.5
+  * CVE-2020-6801 (bmo#1601024,bmo#1601712,bmo#1604836,bmo#1606492)
+    Memory safety bugs fixed in Firefox 73
+- updated requirements
+  * rust >= 1.39
+  * NSS >= 3.49.2
+  * rust-cbindgen >= 0.12.0
+- rebased patches
+- removed obsolete patch
+  * mozilla-bmo1601707.patch
+- switched to cairo-gtk3-wayland build
+  (to fully enable wayland MOZ_ENABLE_WAYLAND=1 needs to be set)
+- disabled elfhack due to failing packager
+  https://github.com/openSUSE/firefox-maintenance/issues/28
+- disabled PGO due to build failure
+  https://github.com/openSUSE/firefox-maintenance/issues/29
+
+-------------------------------------------------------------------
+Tue Jan 28 07:30:16 UTC 2020 - Stasiek Michalski <stasiek@michalski.cc>
+
+- Use a symbolic icon from branding internals
+- Pixmaps no longer required for the desktops
+
+-------------------------------------------------------------------
+Wed Jan 22 10:30:21 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 72.0.2
+  * Various stability fixes
+  * Fixed issues opening files with spaces in their path (bmo#1601905)
+  * Fixed a hang opening about:logins when a master password is set
+    (bmo#1606992)
+  * Fixed a web compatibility issue with CSS Shadow Parts which
+    shipped in Firefox 72 (bmo#1604989)
+  * Fixed inconsistent playback performance for fullscreen 1080p
+    videos on some systems (bmo#1608485)
+
+-------------------------------------------------------------------
+Tue Jan 21 12:59:54 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
+
+- Fix build for aarch64/ppc64le (do not update config.sub file
+  for libbacktrace)
+
+-------------------------------------------------------------------
+Wed Jan  8 08:19:12 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 72.0.1
+  MFSA 2020-03 (bsc#1160498)
+  * CVE-2019-17026 (bmo#1607443)
+    IonMonkey type confusion with StoreElementHole and FallibleStoreElement
+- Mozilla Firefox 72.0
+  * block fingerprinting scripts by default
+  * new notification pop-ups
+  * Picture-in-picture video
+  MFSA 2020-01 (bsc#1160305)
+  * CVE-2019-17016 (bmo#1599181)
+    Bypass of @namespace CSS sanitization during pasting
+  * CVE-2019-17017 (bmo#1603055)
+    Type Confusion in XPCVariant.cpp
+  * CVE-2019-17020 (bmo#1597645)
+    Content Security Policy not applied to XSL stylesheets applied
+    to XML documents
+  * CVE-2019-17022 (bmo#1602843)
+    CSS sanitization does not escape HTML tags
+  * CVE-2019-17023 (bmo#1590001) (fixed in NSS FIXME)
+    NSS may negotiate TLS 1.2 or below after a TLS 1.3
+    HelloRetryRequest had been sent
+  * CVE-2019-17024 (bmo#1507180,bmo#1595470,bmo#1598605,bmo#1601826)
+    Memory safety bugs fixed in Firefox 72 and Firefox ESR 68.4
+  * CVE-2019-17025 (bmo#1328295,bmo#1328300,bmo#1590447,bmo#1590965
+    bmo#1595692,bmo#1597321,bmo#1597481)
+    Memory safety bugs fixed in Firefox 72
+- update create-tar.sh to skip compare-locales
+- requires NSPR 4.24 and NSS 3.48
+- removed usage of browser-plugins convention for NPAPI plugins
+  from start wrapper and changed the RPM macro to the
+  /usr/$LIB/mozilla/plugins location (boo#1160302)
+
+-------------------------------------------------------------------
+Mon Dec  2 08:24:05 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- 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
@@ -12,6 +361,12 @@
 - removed obsolete patches
   mozilla-bmo1511604.patch
   mozilla-openaes-decl.patch
+- changed locale building procedure
+  * removed obsolete compare-locales.tar.xz
+- 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
 
 -------------------------------------------------------------------
 Fri Nov  1 14:16:39 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
--- a/MozillaFirefox/MozillaFirefox.spec	Mon Nov 25 08:41:45 2019 +0100
+++ b/MozillaFirefox/MozillaFirefox.spec	Thu Jun 11 22:04:26 2020 +0200
@@ -1,8 +1,8 @@
 #
 # spec file for package MozillaFirefox
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
-#               2006-2019 Wolfgang Rosenauer <wr@rosenauer.org>
+# Copyright (c) 2020 SUSE LLC
+#               2006-2020 Wolfgang Rosenauer <wr@rosenauer.org>
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,15 +18,18 @@
 
 
 # changed with every update
-%define major          70
-%define mainver        %major.99
-%define orig_version   71.0
-%define orig_suffix    b11
-%define update_channel beta
+%define major          77
+%define mainver        %major.0.1
+%define orig_version   77.0.1
+%define orig_suffix    %{nil}
+%define update_channel release
 %define branding       1
 %define devpkg         1
 
-# always build with GCC as SUSE Security Team requires that
+# PGO builds do not work in TW currently (bmo#1642410)
+%define do_profiling   0
+
+# upstream default is clang (to use gcc for large parts set to 0)
 %define clang_build 0
 
 # PIE, full relro
@@ -72,7 +75,7 @@
 %else
 BuildRequires:  gcc-c++
 %endif
-BuildRequires:  cargo >= 1.37
+BuildRequires:  cargo >= 1.41
 BuildRequires:  libXcomposite-devel
 BuildRequires:  libcurl-devel
 BuildRequires:  libidl-devel
@@ -80,15 +83,15 @@
 BuildRequires:  libnotify-devel
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
-BuildRequires:  mozilla-nspr-devel >= 4.23
-BuildRequires:  mozilla-nss-devel >= 3.47.1
-BuildRequires:  nasm >= 2.13
-BuildRequires:  nodejs8 >= 8.11
+BuildRequires:  mozilla-nspr-devel >= 4.25
+BuildRequires:  mozilla-nss-devel >= 3.52.1
+BuildRequires:  nasm >= 2.14
+BuildRequires:  nodejs10 >= 10.19.0
 BuildRequires:  python-devel
 BuildRequires:  python2-xml
 BuildRequires:  python3 >= 3.5
-BuildRequires:  rust >= 1.37
-BuildRequires:  rust-cbindgen >= 0.9.1
+BuildRequires:  rust >= 1.41
+BuildRequires:  rust-cbindgen >= 0.14.1
 BuildRequires:  startup-notification-devel
 BuildRequires:  unzip
 BuildRequires:  update-desktop-files
@@ -101,6 +104,7 @@
 %if 0%{?suse_version} < 1550
 BuildRequires:  pkgconfig(gconf-2.0) >= 1.2.1
 %endif
+BuildRequires:  clang-devel >= 5
 BuildRequires:  pkgconfig(gdk-x11-2.0)
 BuildRequires:  pkgconfig(glib-2.0) >= 2.22
 BuildRequires:  pkgconfig(gobject-2.0)
@@ -110,12 +114,6 @@
 BuildRequires:  pkgconfig(gtk+-unix-print-3.0)
 BuildRequires:  pkgconfig(libffi)
 BuildRequires:  pkgconfig(libpulse)
-%if 0%{?suse_version} > 1320
-BuildRequires:  llvm-clang-devel >= 3.9.0
-%else
-# this covers the workaround to compile on Leap 42 in OBS
-BuildRequires:  clang4-devel
-%endif
 # libavcodec is required for H.264 support but the
 # openSUSE version is currently not able to play H.264
 # therefore the Packman version is required
@@ -137,7 +135,7 @@
 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
@@ -147,11 +145,10 @@
 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/04d38e104a6ecdea33442755282688e8090ffa66/create-tar.sh
+Source14:       https://github.com/openSUSE/firefox-scripts/raw/8a54002/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,7 +164,7 @@
 Patch3:         mozilla-ntlm-full-path.patch
 Patch4:         mozilla-aarch64-startup-crash.patch
 Patch5:         mozilla-bmo1463035.patch
-Patch6:         mozilla-cubeb-noreturn.patch
+Patch6:         mozilla-sandbox-fips.patch
 Patch7:         mozilla-fix-aarch64-libopus.patch
 Patch8:         mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
 Patch9:         mozilla-s390-context.patch
@@ -184,6 +181,7 @@
 Patch20:        mozilla-fix-top-level-asm.patch
 Patch21:        mozilla-bmo1504834-part4.patch
 Patch22:        mozilla-bmo849632.patch
+Patch23:        mozilla-bmo1634646.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
@@ -205,7 +203,7 @@
 %if 0%{?suse_version} < 1220
 Obsoletes:      libproxy1-pacrunner-mozjs <= 0.4.7
 %endif
-##BuildArch:      i686 x86_64 aarch64 ppc64le
+ExcludeArch:    armv6l armv6hl
 
 %description
 Mozilla Firefox is a standalone web browser, designed for standards
@@ -290,7 +288,7 @@
     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
@@ -319,6 +317,7 @@
 %patch20 -p1
 %patch21 -p1
 %patch22 -p1
+%patch23 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
@@ -380,7 +379,11 @@
 echo ""
 cat << EOF
 %else
+%ifarch ppc64 ppc64le
+%limit_build -m 2500
+%else
 %limit_build -m 2000
+%endif
 cat << EOF > $MOZCONFIG
 %endif
 mk_add_options MOZILLA_OFFICIAL=1
@@ -392,7 +395,7 @@
 ac_add_options --libdir=%{_libdir}
 ac_add_options --includedir=%{_includedir}
 ac_add_options --enable-release
-ac_add_options --enable-default-toolkit=cairo-gtk3
+ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
 %if 0%{?suse_version} >= 1550
 ac_add_options --disable-gconf
 %endif
@@ -402,11 +405,12 @@
 %else
 ac_add_options --enable-debug-symbols
 %endif
-%if 0%{?suse_version} > 1549
+# building with elf-hack started to fail everywhere with FF73
+#%if 0%{?suse_version} > 1549
 %ifnarch aarch64 ppc64 ppc64le s390x
 ac_add_options --disable-elf-hack
 %endif
-%endif
+#%endif
 ac_add_options --with-system-nspr
 ac_add_options --with-system-nss
 %if %{localize}
@@ -471,6 +475,31 @@
 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
@@ -499,35 +528,7 @@
 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 \
@@ -572,10 +573,11 @@
 #
 mkdir -p %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
 mkdir -p %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
-mkdir -p %{buildroot}/usr/share/pixmaps/
-ln -sf %{progdir}/browser/chrome/icons/default/default128.png %{buildroot}/usr/share/pixmaps/%{progname}.png
-ln -sf %{progdir}/browser/chrome/icons/default/default128.png %{buildroot}/usr/share/pixmaps/%{progname}-gnome.png
 %if %branding
+# Install symbolic icon for GNOME
+mkdir -p %{buildroot}%{gnome_dir}/share/icons/hicolor/symbolic/apps/
+cp %{_builddir}/%{srcname}-%{orig_version}/browser/branding/official/content/identity-icons-brand.svg \
+   %{buildroot}%{gnome_dir}/share/icons/hicolor/symbolic/apps/%{progname}-symbolic.svg
 for size in 16 22 24 32 48 64 128 256; do
 %else
 for size in 16 32 48; do
@@ -605,7 +607,7 @@
 %%firefox_version            %{version}
 %%firefox_mainver            %{mainver}
 %%firefox_mozillapath        %%{_libdir}/%{progname}
-%%firefox_pluginsdir         %%{_libdir}/browser-plugins
+%%firefox_pluginsdir         %%{_libdir}/mozilla/plugins
 %%firefox_appid              \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
 %%firefox_extdir             %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
 
@@ -659,8 +661,6 @@
 %{progdir}/browser/defaults
 %{progdir}/browser/features/
 %{progdir}/browser/chrome/icons
-%{progdir}/browser/blocklist.xml
-%{progdir}/browser/chrome.manifest
 %{progdir}/browser/omni.ja
 %dir %{progdir}/distribution/
 %{progdir}/distribution/extensions/
@@ -672,7 +672,6 @@
 %{progdir}/%{progname}
 %{progdir}/%{progname}-bin
 %{progdir}/application.ini
-%{progdir}/chrome.manifest
 %{progdir}/dependentlibs.list
 %{progdir}/*.so
 %{progdir}/omni.ja
@@ -689,7 +688,6 @@
 %endif
 %{_datadir}/applications/%{desktop_file_name}.desktop
 %{_datadir}/mime/packages/%{progname}.xml
-%{_datadir}/pixmaps/firefox*
 %dir %{_datadir}/mozilla
 %dir %{_datadir}/mozilla/extensions
 %dir %{_datadir}/mozilla/extensions/%{firefox_appid}
--- a/MozillaFirefox/_constraints	Mon Nov 25 08:41:45 2019 +0100
+++ b/MozillaFirefox/_constraints	Thu Jun 11 22:04:26 2020 +0200
@@ -42,4 +42,17 @@
       </memory>
     </hardware>
   </overwrite>
+  <overwrite>
+    <conditions>
+      <arch>ppc64le</arch>
+    </conditions>
+    <hardware>
+      <disk>
+        <size unit="G">25</size>
+      </disk>
+      <physicalmemory>
+        <size unit="G">10</size>
+      </physicalmemory>
+    </hardware>
+  </overwrite>
 </constraints>
--- a/MozillaFirefox/create-tar.sh	Mon Nov 25 08:41:45 2019 +0100
+++ b/MozillaFirefox/create-tar.sh	Thu Jun 11 22:04:26 2020 +0200
@@ -14,7 +14,7 @@
 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
+#SKIP_LOCALES="" # Uncomment to skip l10n-generation
 EOF
 
 exit 1
@@ -42,6 +42,7 @@
 # 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
 
@@ -83,7 +84,7 @@
 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/firefox-$VERSION$VERSION_SUFFIX.json"
+  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)
@@ -104,12 +105,21 @@
 function get_build_number() {
   LAST_FOUND=""
   VERSION_WITH_SUFFIX="$1"
-  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)
+
+  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"
@@ -250,10 +260,9 @@
   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
@@ -263,6 +272,19 @@
   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
@@ -309,15 +331,3 @@
   echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to l10n-$VERSION$VERSION_SUFFIX.tar.xz"
   mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" "l10n-$VERSION$VERSION_SUFFIX.tar.xz"
 fi
-
-# compare-locales
-echo "creating compare-locales"
-if [ -d compare-locales/.hg ]; then
-  pushd compare-locales || exit 1
-  hg pull
-  popd || exit 1
-else
-  hg clone http://hg.mozilla.org/build/compare-locales
-fi
-tar $compression -cf compare-locales.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg compare-locales
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-bmo1634646.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -0,0 +1,1 @@
+../mozilla-bmo1634646.patch
\ No newline at end of file
--- a/MozillaFirefox/mozilla-cubeb-noreturn.patch	Mon Nov 25 08:41:45 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-cubeb-noreturn.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-sandbox-fips.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -0,0 +1,1 @@
+../mozilla-sandbox-fips.patch
\ No newline at end of file
--- a/MozillaFirefox/mozilla.sh.in	Mon Nov 25 08:41:45 2019 +0100
+++ b/MozillaFirefox/mozilla.sh.in	Thu Jun 11 22:04:26 2020 +0200
@@ -70,15 +70,6 @@
   export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
 fi
 
-mozilla_lib=`file $MOZ_PROGRAM`
-LIB=lib
-echo $mozilla_lib | grep -q -E 'ELF.64-bit.*(x86-64|S/390|PowerPC|ARM aarch64)' && LIB=lib64
-
-BROWSER_PLUGIN_DIR=/usr/$LIB/browser-plugins
-if [ ! -d $BROWSER_PLUGIN_DIR ]; then
-  BROWSER_PLUGIN_DIR=/opt/netscape/plugins
-fi
-
 MOZILLA_FIVE_HOME="$MOZ_DIST_LIB"
 export MOZILLA_FIVE_HOME
 LD_LIBRARY_PATH=$MOZ_DIST_LIB${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
@@ -87,21 +78,15 @@
 # needed for SUN Java under Xorg >= 7.2
 export LIBXCB_ALLOW_SLOPPY_LOCK=1
 
-##
-if [ -z "$MOZ_PLUGIN_PATH" ]; then
-  export MOZ_PLUGIN_PATH=$BROWSER_PLUGIN_DIR
-else
-  # make sure that BROWSER_PLUGIN_DIR is in MOZ_PLUGIN_PATH
-  echo "$MOZ_PLUGIN_PATH" | grep "$BROWSER_PLUGIN_DIR" 2>&1 >/dev/null
-  _retval=$?
-  if [ ${_retval} -ne 0 ]; then
-    export MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$BROWSER_PLUGIN_DIR
-  fi
-fi
-
 # disable Gnome crash dialog (doesn't make sense anyway)
 export GNOME_DISABLE_CRASH_DIALOG=1
 
+# Wayland
+# $XDG_SESSION_TYPE should contain either x11 or wayland
+if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
+  export MOZ_ENABLE_WAYLAND=1
+fi
+
 # enable xinput2 (boo#1032003)
 # breaks too many things right now (boo#1053959)
 #export MOZ_USE_XINPUT2=1
--- a/MozillaFirefox/tar_stamps	Mon Nov 25 08:41:45 2019 +0100
+++ b/MozillaFirefox/tar_stamps	Thu Jun 11 22:04:26 2020 +0200
@@ -1,11 +1,11 @@
 PRODUCT="firefox"
-CHANNEL="beta"
-VERSION="71.0"
-VERSION_SUFFIX="b11"
-PREV_VERSION="70.0.1"
+CHANNEL="release"
+VERSION="77.0.1"
+VERSION_SUFFIX=""
+PREV_VERSION="77.0"
 PREV_VERSION_SUFFIX=""
 #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
 
-RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-beta"
-RELEASE_TAG="5c921325dd03885c3392512722c7cede4ed9e00e"
-RELEASE_TIMESTAMP="20191118154140"
+RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
+RELEASE_TAG="b8d272601020250ac2897e113b3fc3b53b72cf4b"
+RELEASE_TIMESTAMP="20200602222727"
--- a/firefox-branded-icons.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/firefox-branded-icons.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,6 +1,6 @@
 # HG changeset patch
 # Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
-# Parent  127964dc93cc35715852bc811dcc67016d918628
+# Parent  91064bb25b378c1fdcc2d99a89aeaf5e821b1689
 
 diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
 --- a/browser/branding/branding-common.mozbuild
@@ -24,7 +24,7 @@
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -246,20 +246,23 @@
+@@ -249,20 +249,23 @@
  @RESPATH@/browser/chrome/pdfjs.manifest
  @RESPATH@/browser/chrome/pdfjs/*
  @RESPATH@/chrome/toolkit@JAREXT@
--- a/firefox-kde.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/firefox-kde.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,7 +3,7 @@
 # Date 1559300151 -7200
 #      Fri May 31 12:55:51 2019 +0200
 # Node ID 54d41b0033b8d649d842a1f862c6fed8b9874dec
-# Parent  4faaad3619f286bd6077754d8e59d339a5142b80
+# Parent  0fd58e0df883086574263e0881e1503cf110562a
 How to apply this patch:
 1. Import and apply it
 2. cp browser/base/content/browser.xul browser/base/content/browser-kde.xul
@@ -11,10 +11,10 @@
 4. Replace #ifndef with #ifdef in the line above (this hanges the button order from Gnome-style to KDE-style)
 5. hg qrefresh
 
-diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
---- a/browser/components/preferences/in-content/main.js
-+++ b/browser/components/preferences/in-content/main.js
-@@ -341,16 +341,23 @@ var gMainPane = {
+diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
+--- a/browser/components/preferences/main.js
++++ b/browser/components/preferences/main.js
+@@ -336,16 +336,23 @@ var gMainPane = {
          }, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]);
        };
  
@@ -38,7 +38,7 @@
      );
      let performanceSettingsUrl =
        Services.urlFormatter.formatURLPref("app.support.baseURL") +
-@@ -1199,16 +1206,27 @@ var gMainPane = {
+@@ -1301,16 +1308,27 @@ var gMainPane = {
        this._backoffIndex = 0;
  
        let shellSvc = getShellService();
@@ -69,7 +69,7 @@
 diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
 --- a/browser/components/shell/moz.build
 +++ b/browser/components/shell/moz.build
-@@ -28,16 +28,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
+@@ -34,16 +34,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
      ]
  elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
      XPIDL_SOURCES += [
@@ -81,13 +81,13 @@
 +        'nsKDEShellService.cpp',
 +        'nsUnixShellService.cpp',
      ]
- elif CONFIG['OS_ARCH'] == 'WINNT':
-     SOURCES += [
-         'nsWindowsShellService.cpp',
-     ]
-     LOCAL_INCLUDES += [
-         '../../../other-licenses/nsis/Contrib/CityHash/cityhash',
-     ]
+     if CONFIG['MOZ_ENABLE_DBUS']:
+         SOURCES += [
+             'nsGNOMEShellDBusHelper.cpp',
+             'nsGNOMEShellSearchProvider.cpp',
+         ]
+         include('/ipc/chromium/chromium-config.mozbuild')
+ 
 diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp
 new file mode 100644
 --- /dev/null
--- a/mozilla-aarch64-startup-crash.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-aarch64-startup-crash.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,14 +3,19 @@
 # Date 1558442998 -7200
 #      Tue May 21 14:49:58 2019 +0200
 # Node ID 386083b58d8558141901d796ec6919a4aba7ad3a
-# Parent  835641be7eb9408aa1eff0d38b37f6c523d2ef98
+# Parent  a30a9b9aae5740f096a16118ed9e4bc45d3d1c35
 bsc#991344 - Rpi3: Firefox crashes after a few seconds of usage
 bmo#1302554 - ARM/AARCH64: Firefox crashes on NULL nsIChannel** result pointer in nsIOService::NewChannelFromURIWithProxyFlagsInternal()
 
-diff -r 835641be7eb9 -r 386083b58d85 netwerk/base/nsIOService.cpp
---- a/netwerk/base/nsIOService.cpp	Fri Feb 26 16:20:09 2016 +0000
-+++ b/netwerk/base/nsIOService.cpp	Tue May 21 14:49:58 2019 +0200
-@@ -1000,7 +1000,13 @@
+diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp
+--- a/netwerk/base/nsIOService.cpp
++++ b/netwerk/base/nsIOService.cpp
+@@ -1032,17 +1032,23 @@ nsresult nsIOService::NewChannelFromURIW
+             "doesn't support nsIUploadChannel2. An extension has "
+             "supplied a non-functional http protocol handler. This will "
+             "break behavior and in future releases not work at all.");
+       }
+       gHasWarnedUploadChannel2 = true;
      }
    }
  
@@ -24,3 +29,8 @@
    return NS_OK;
  }
  
+ NS_IMETHODIMP
+ nsIOService::NewChannelFromURIWithProxyFlags(
+     nsIURI* aURI, nsIURI* aProxyURI, uint32_t aProxyFlags,
+     nsINode* aLoadingNode, nsIPrincipal* aLoadingPrincipal,
+     nsIPrincipal* aTriggeringPrincipal, uint32_t aSecurityFlags,
--- a/mozilla-bmo1005535.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1005535.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,13 +3,18 @@
 # Date 1558451540 -7200
 #      Tue May 21 17:12:20 2019 +0200
 # Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad
-# Parent  42c99b59a87b904063bad3193f10c51d068d2eac
+# Parent  c0fdccc716e80a6d289c94f5d507ae141c62a3bf
 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 @@
+diff --git a/gfx/skia/skia/src/gpu/GrColor.h b/gfx/skia/skia/src/gpu/GrColor.h
+--- a/gfx/skia/skia/src/gpu/GrColor.h
++++ b/gfx/skia/skia/src/gpu/GrColor.h
+@@ -59,17 +59,17 @@ static inline GrColor GrColorPackRGBA(un
+ #define GrColorUnpackG(color)   (((color) >> GrColor_SHIFT_G) & 0xFF)
+ #define GrColorUnpackB(color)   (((color) >> GrColor_SHIFT_B) & 0xFF)
+ #define GrColorUnpackA(color)   (((color) >> GrColor_SHIFT_A) & 0xFF)
+ 
+ /**
   *  Since premultiplied means that alpha >= color, we construct a color with
   *  each component==255 and alpha == 0 to be "illegal"
   */
@@ -18,3 +23,8 @@
  
  /** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */
  static inline float GrNormalizeByteToFloat(uint8_t value) {
+     static const float ONE_OVER_255 = 1.f / 255.f;
+     return value * ONE_OVER_255;
+ }
+ 
+ /** Used to pick vertex attribute types. */
--- a/mozilla-bmo1463035.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1463035.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,7 +3,7 @@
 # User Mike Hommey <mh+mozilla@glandium.org>
 # Date 1526871862 -32400
 # Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43
-# Parent  5dc1d2186f44dd6ccfc4b28b9e1ed859cffc63bb
+# Parent  0b7e1398ca2e15e27da93144ba9fb30db38367b1
 Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
 
 For some reason, GNU as is not happy with the assembly generated after
@@ -12,30 +12,6 @@
 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/mozglue/baseprofiler/core/platform-linux-android.cpp b/mozglue/baseprofiler/core/platform-linux-android.cpp
 --- a/mozglue/baseprofiler/core/platform-linux-android.cpp
 +++ b/mozglue/baseprofiler/core/platform-linux-android.cpp
@@ -79,25 +55,7 @@
 diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp
 --- a/tools/profiler/core/platform-linux-android.cpp
 +++ b/tools/profiler/core/platform-linux-android.cpp
-@@ -55,17 +55,16 @@
- #ifdef __GLIBC__
- #  include <execinfo.h>  // backtrace, backtrace_symbols
- #endif                   // def __GLIBC__
- #include <strings.h>     // index
- #include <errno.h>
- #include <stdarg.h>
- 
- #include "prenv.h"
--#include "mozilla/LinuxSignal.h"
- #include "mozilla/PodOperations.h"
- #include "mozilla/DebugOnly.h"
- 
- #include <string.h>
- #include <list>
- 
- using namespace mozilla;
- 
-@@ -257,17 +256,17 @@ Sampler::Sampler(PSLockRef aLock)
+@@ -258,17 +258,17 @@ Sampler::Sampler(PSLockRef aLock)
  
    // NOTE: We don't initialize LUL here, instead initializing it in
    // SamplerThread's constructor. This is because with the
--- a/mozilla-bmo1504834-part1.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1504834-part1.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,11 +1,16 @@
 # HG changeset patch
-# Parent  051b75a600dfbf7503c3485cebfd34d4eb29be96
+# Parent  b5471d23321d16a0bacc25b7afd27d2e16adba1a
 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 @@
+diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
+--- a/gfx/2d/DrawTargetSkia.cpp
++++ b/gfx/2d/DrawTargetSkia.cpp
+@@ -130,18 +130,17 @@ static IntRect CalculateSurfaceBounds(co
+   Rect sampledBounds = inverse.TransformBounds(*aBounds);
+   if (!sampledBounds.ToIntRect(&bounds)) {
+     return surfaceBounds;
+   }
+ 
    return surfaceBounds.Intersect(bounds);
  }
  
@@ -15,38 +20,68 @@
  
  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 @@
+   if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) {
+     return true;
+   }
+   // We should've initialized the data to be opaque already
+   // On debug builds, verify that this is actually true.
+diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
+--- a/gfx/2d/Types.h
++++ b/gfx/2d/Types.h
+@@ -84,25 +84,18 @@ enum class SurfaceFormat : int8_t {
+   Depth,
+ 
+   // This represents the unknown format.
+   UNKNOWN,
+ 
  // 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
+-#if MOZ_LITTLE_ENDIAN()
    A8R8G8B8_UINT32 = B8G8R8A8,  // 0xAARRGGBB
-   X8R8G8B8_UINT32 = B8G8R8X8   // 0x00RRGGBB
--#elif MOZ_BIG_ENDIAN
+   X8R8G8B8_UINT32 = B8G8R8X8,  // 0x00RRGGBB
+-#elif MOZ_BIG_ENDIAN()
 -  A8R8G8B8_UINT32 = A8R8G8B8,  // 0xAARRGGBB
--  X8R8G8B8_UINT32 = X8R8G8B8   // 0x00RRGGBB
+-  X8R8G8B8_UINT32 = X8R8G8B8,  // 0x00RRGGBB
 -#else
 -#  error "bad endianness"
 -#endif
+ 
+   // The following values are OS and endian-independent synonyms.
+   //
+   // TODO(aosmond): When everything blocking bug 1581828 has been resolved, we
+   // can make this use R8B8G8A8 and R8B8G8X8 for non-Windows platforms.
+   OS_RGBA = A8R8G8B8_UINT32,
+   OS_RGBX = X8R8G8B8_UINT32
  };
- 
- static inline int BytesPerPixel(SurfaceFormat aFormat) {
-diff -r 051b75a600df gfx/skia/skia/third_party/skcms/skcms.cc
---- a/gfx/skia/skia/third_party/skcms/skcms.cc	Fri Jul 05 12:42:44 2019 +0200
-+++ b/gfx/skia/skia/third_party/skcms/skcms.cc	Mon Jul 08 10:59:30 2019 +0200
-@@ -17,6 +17,8 @@
-     #include <arm_neon.h>
- #elif defined(__SSE__)
-     #include <immintrin.h>
+diff --git a/gfx/skia/skia/third_party/skcms/skcms.cc b/gfx/skia/skia/third_party/skcms/skcms.cc
+--- a/gfx/skia/skia/third_party/skcms/skcms.cc
++++ b/gfx/skia/skia/third_party/skcms/skcms.cc
+@@ -25,16 +25,18 @@
+         // it'd be a lot slower.  But we want all those headers included so we
+         // can use their features after runtime checks later.
+         #include <smmintrin.h>
+         #include <avxintrin.h>
+         #include <avx2intrin.h>
+         #include <avx512fintrin.h>
+         #include <avx512dqintrin.h>
+     #endif
 +#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 @@
+ // We have better testing on 64-bit machines, so force 32-bit machines to behave like 64-bit.
+ //
+ // Please do not use sizeof() directly, and size_t only when required.
+ // (We have no way of enforcing these requests...)
+ #define SAFE_SIZEOF(x) ((uint64_t)sizeof(x))
+@@ -275,30 +277,38 @@ enum {
+     skcms_Signature_sf32 = 0x73663332,
+     // XYZ is also a PCS signature, so it's defined in skcms.h
+     // skcms_Signature_XYZ = 0x58595A20,
+ };
+ 
  static uint16_t read_big_u16(const uint8_t* ptr) {
      uint16_t be;
      memcpy(&be, ptr, sizeof(be));
@@ -79,3 +114,8 @@
  #endif
  }
  
+ static int32_t read_big_i32(const uint8_t* ptr) {
+     return (int32_t)read_big_u32(ptr);
+ }
+ 
+ static float read_big_fixed(const uint8_t* ptr) {
--- a/mozilla-bmo1504834-part2.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1504834-part2.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  6fa4b62427433e8f445d05c557e5db096667d880
+# Parent  9319844dca3133fa8bd7107079f1d1ddc5c0bf70
 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
@@ -8,7 +8,7 @@
 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
+@@ -29,32 +29,79 @@ bool ConvolutionFilter::GetFilterOffsetA
                                                   int32_t* aResultLength) {
    if (aRowIndex >= mFilter->numValues()) {
      return false;
@@ -28,7 +28,7 @@
 +
  void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
                                               bool aHasAlpha) {
-+#if MOZ_BIG_ENDIAN
++#if MOZ_BIG_ENDIAN()
 +    int outputSize = mFilter->numValues();
 +
 +    // Input size isn't handed in, so we have to calculate it quickly
@@ -45,7 +45,7 @@
 +
    SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
 +
-+#if MOZ_BIG_ENDIAN
++#if MOZ_BIG_ENDIAN()
 +    ByteSwapArray((uint8_t*)aSrc, inputSize);
 +    ByteSwapArray(aDst, outputSize);
 +#endif
@@ -61,7 +61,7 @@
    auto filterValues =
        mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
 +
-+#if MOZ_BIG_ENDIAN
++#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);
@@ -71,7 +71,7 @@
    SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
                                aHasAlpha);
 +
-+#if MOZ_BIG_ENDIAN
++#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++) {
--- a/mozilla-bmo1504834-part3.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1504834-part3.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,12 +1,17 @@
 # HG changeset patch
-# Parent  aecb4600e5da17443b224c79eee178c1d8e155e3
+# Parent  d1d66f7e4d0e7fd45e91e4fcee07555e72046d48
 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 @@
+diff --git a/gfx/skia/skia/include/private/SkNx.h b/gfx/skia/skia/include/private/SkNx.h
+--- a/gfx/skia/skia/include/private/SkNx.h
++++ b/gfx/skia/skia/include/private/SkNx.h
+@@ -233,17 +233,28 @@ struct SkNx<1,T> {
+     AI SkNx operator<<(int bits) const { return fVal << bits; }
+     AI SkNx operator>>(int bits) const { return fVal >> bits; }
+ 
+     AI SkNx operator+(const SkNx& y) const { return fVal + y.fVal; }
+     AI SkNx operator-(const SkNx& y) const { return fVal - y.fVal; }
      AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
      AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
  
@@ -25,10 +30,20 @@
      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 @@
+     AI SkNx operator==(const SkNx& y) const { return FromBits(fVal == y.fVal ? ~0 : 0); }
+     AI SkNx operator!=(const SkNx& y) const { return FromBits(fVal != y.fVal ? ~0 : 0); }
+     AI SkNx operator<=(const SkNx& y) const { return FromBits(fVal <= y.fVal ? ~0 : 0); }
+     AI SkNx operator>=(const SkNx& y) const { return FromBits(fVal >= y.fVal ? ~0 : 0); }
+     AI SkNx operator< (const SkNx& y) const { return FromBits(fVal <  y.fVal ? ~0 : 0); }
+diff --git a/gfx/skia/skia/src/opts/SkBlitMask_opts.h b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
+--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h
++++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
+@@ -198,17 +198,23 @@ namespace SK_OPTS_NS {
+                                        const SkAlpha* mask, size_t maskRB,
+                                        int w, int h) {
+         auto fn = [](const Sk4px& d, const Sk4px& aa) {
+             //   = (s + d(1-sa))aa + d(1-aa)
+             //   = s*aa + d(1-sa*aa)
              //   ~~~>
              // a = 1*aa + d(1-1*aa) = aa + d(1-aa)
              // c = 0*aa + d(1-1*aa) =      d(1-aa)
@@ -42,3 +57,8 @@
                   + d.approxMulDiv255(aa.inv());
          };
          while (h --> 0) {
+             Sk4px::MapDstAlpha(w, dst, mask, fn);
+             dst  +=  dstRB / sizeof(*dst);
+             mask += maskRB / sizeof(*mask);
+         }
+     }
--- a/mozilla-bmo1504834-part4.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1504834-part4.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,23 +1,28 @@
 # HG changeset patch
-# Parent  46ea866ca3acb8bb5e1709ceb799b9c94f591dec
+# Parent  883d2c7fec80b9714ccfefa461a02f5b09e3ee09
 Problem description: Tab-titles that are too long to fit into a tab get faded out.
-                     On big endian this is broken and instead of fading out, the 
+                     On big endian this is broken and instead of fading out, the
                      tab gets white and the font transparent, leading to an unreadable
                      tab-title
 Solution: This is not a real solution, but a hack. The real solution would have been
           to byte-swap the correct buffer, but I could not find it.
           So the next best thing is to deactivate the fading-effect. Now all tab-titles
-          are readable, albeit not as pretty to look at as they could be. 
+          are readable, albeit not as pretty to look at as they could be.
 Side-effects: I have not yet found an unwanted side-effect.
 
-diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
---- a/gfx/2d/DrawTargetSkia.cpp	Tue Oct 22 12:27:22 2019 +0200
-+++ b/gfx/2d/DrawTargetSkia.cpp	Thu Oct 31 09:11:56 2019 +0100
-@@ -1861,6 +1861,14 @@
+diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
+--- a/gfx/2d/DrawTargetSkia.cpp
++++ b/gfx/2d/DrawTargetSkia.cpp
+@@ -1856,16 +1856,24 @@ void DrawTargetSkia::PushLayerWithBlend(
+   }
+ 
+   SkCanvas::SaveLayerRec saveRec(
+       aBounds.IsEmpty() ? nullptr : &bounds, &paint, nullptr, clipImage.get(),
+       &clipMatrix,
        SkCanvas::kPreserveLCDText_SaveLayerFlag |
            (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
  
-+#if MOZ_BIG_ENDIAN
++#if MOZ_BIG_ENDIAN()
 +  // Pushing a layer where an aMask is defined produces wrong output.
 +  // We _should_ endian swap the data, but I couldn't find a workable way to do so
 +  // Therefore I deactivate those layers in the meantime.
@@ -28,3 +33,8 @@
    mCanvas->saveLayer(saveRec);
  
    SetPermitSubpixelAA(aOpaque);
+ 
+ #ifdef MOZ_WIDGET_COCOA
+   CGContextRelease(mCG);
+   mCG = nullptr;
+ #endif
--- a/mozilla-bmo1512162.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1512162.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,12 +1,17 @@
 # HG changeset patch
-# Parent  e5858dc7ab007042436496f7cfb9a5abf10f5082
+# Parent  e42a036a5533ea6a60ebc22fd2a150c384d42fda
 This fixes a broken build for gcc < 9 on ppc64le.
 This patch can be removed for newer gcc-versions.
 
-diff -r e5858dc7ab00 -r 5d3469aabe61 js/xpconnect/src/XPCWrappedNative.cpp
---- a/js/xpconnect/src/XPCWrappedNative.cpp	Thu Nov 29 10:07:29 2018 +0100
-+++ b/js/xpconnect/src/XPCWrappedNative.cpp	Tue Sep 10 12:42:13 2019 +0200
-@@ -1092,7 +1092,11 @@
+diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp
+--- a/js/xpconnect/src/XPCWrappedNative.cpp
++++ b/js/xpconnect/src/XPCWrappedNative.cpp
+@@ -1080,17 +1080,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
+                                                uint32_t* result);
+ 
+   MOZ_ALWAYS_INLINE bool GetInterfaceTypeFromParam(const nsXPTType& type,
+                                                    nsID* result) const;
+ 
    MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
                                             MutableHandleValue srcp) const;
  
@@ -19,7 +24,17 @@
  
    MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
  
-@@ -1139,7 +1143,11 @@
+   nsXPTCVariant* GetDispatchParam(uint8_t paramIndex) {
+     if (paramIndex >= mJSContextIndex) {
+       paramIndex += 1;
+     }
+     if (paramIndex >= mOptArgcIndex) {
+@@ -1127,17 +1131,21 @@ class MOZ_STACK_CLASS CallMethodHelper f
+ 
+   {
+     // Success checked later.
+     mIFaceInfo->GetMethodInfo(mVTableIndex, &mMethodInfo);
+   }
  
    ~CallMethodHelper();
  
@@ -32,3 +47,8 @@
  
    // Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
    void trace(JSTracer* aTrc);
+ };
+ 
+ // static
+ bool XPCWrappedNative::CallMethod(XPCCallContext& ccx,
+                                   CallMode mode /*= CALL_METHOD */) {
--- a/mozilla-bmo1554971.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1554971.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  a25cebecb02d5460b8ad757fe9cb4a9c8d1d7658
+# Parent  38d48db62539afe61d542c9d21e32d57d4b00a73
 Eliminate startup error message:
 JavaScript error: , line 0: Error: Type error for platformInfo value (Error processing arch: Invalid enumeration value "s390x") for runtime.getPlatformInfo.
 
@@ -8,10 +8,15 @@
 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 @@
+diff --git a/toolkit/components/extensions/schemas/runtime.json b/toolkit/components/extensions/schemas/runtime.json
+--- a/toolkit/components/extensions/schemas/runtime.json
++++ b/toolkit/components/extensions/schemas/runtime.json
+@@ -59,17 +59,17 @@
+         "type": "string",
+         "allowedContexts": ["content", "devtools"],
+         "description": "The operating system the browser is running on.",
+         "enum": ["mac", "win", "android", "cros", "linux", "openbsd"]
+       },
        {
          "id": "PlatformArch",
          "type": "string",
@@ -20,3 +25,8 @@
          "allowedContexts": ["content", "devtools"],
          "description": "The machine's processor architecture."
        },
+       {
+         "id": "PlatformInfo",
+         "type": "object",
+         "allowedContexts": ["content", "devtools"],
+         "description": "An object containing information about the current platform.",
--- a/mozilla-bmo1568145.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo1568145.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -8,10 +8,14 @@
 for the definition of this variable.
 
 diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py
-index 6f72697..d4cca96 100644
 --- a/python/mozbuild/mozbuild/action/langpack_manifest.py
 +++ b/python/mozbuild/mozbuild/action/langpack_manifest.py
-@@ -16,6 +16,7 @@ import os
+@@ -11,16 +11,17 @@
+ from __future__ import absolute_import, print_function, unicode_literals
+ 
+ import argparse
+ import sys
+ import os
  import json
  import io
  import datetime
@@ -19,7 +23,17 @@
  import requests
  import mozversioncontrol
  import mozpack.path as mozpath
-@@ -100,7 +101,7 @@ def get_timestamp_for_locale(path):
+ from mozpack.chrome.manifest import (
+     Manifest,
+     ManifestLocale,
+     parse_manifest,
+ )
+@@ -94,17 +95,17 @@ def get_dt_from_hg(path):
+ #    ts == "20170914215617"
+ ###
+ def get_timestamp_for_locale(path):
+     dt = None
+     if os.path.isdir(os.path.join(path, '.hg')):
          dt = get_dt_from_hg(path)
  
      if dt is None:
@@ -28,3 +42,8 @@
  
      dt = dt.replace(microsecond=0)
      return dt.strftime("%Y%m%d%H%M%S")
+ 
+ 
+ ###
+ # Parses multiple defines files into a single key-value pair object.
+ #
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-bmo1634646.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -0,0 +1,26 @@
+# HG changeset patch
+# User Wolfgang Rosenauer <wr@rosenauer.org>
+# Parent  43820d9e289abee98a2e3cdb4314848de3bc8622
+
+diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
+--- a/build/pgo/profileserver.py
++++ b/build/pgo/profileserver.py
+@@ -127,17 +127,17 @@ if __name__ == '__main__':
+         # Bug 1553850 considers fixing this.
+         env["MOZ_DISABLE_CONTENT_SANDBOX"] = "1"
+         env["MOZ_DISABLE_RDD_SANDBOX"] = "1"
+ 
+         # Ensure different pids write to different files
+         env["LLVM_PROFILE_FILE"] = "default_%p_random_%m.profraw"
+ 
+         # Write to an output file if we're running in automation
+-        process_args = {}
++        process_args = {'universal_newlines': True}
+         if 'UPLOAD_PATH' in env:
+             process_args['logfile'] = os.path.join(env['UPLOAD_PATH'], 'profile-run-1.log')
+ 
+         # Run Firefox a first time to initialize its profile
+         runner = FirefoxRunner(profile=profile,
+                                binary=binary,
+                                cmdargs=['data:text/html,<script>Quitter.quit()</script>'],
+                                env=env,
--- a/mozilla-bmo849632.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-bmo849632.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,16 +1,24 @@
+# HG changeset patch
+# Parent  3de59fe1b8708c01e134ce698c4232b8a854f617
 Problem:  webGL sites are displayed in the wrong color (usually blue-ish)
 Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only
           knows how to deal with little endian.
           So we swizzle the output of webgl after reading it from readpixels()
 Note:     This does not fix all webGL sites, but is a step in the right direction
-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 @@
+
+diff --git a/gfx/gl/GLContext.h b/gfx/gl/GLContext.h
+--- a/gfx/gl/GLContext.h
++++ b/gfx/gl/GLContext.h
+@@ -1548,16 +1548,23 @@ class GLContext : public GenericAtomicRe
+     AFTER_GL_CALL;
+   }
+ 
+   void raw_fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
+                        GLenum format, GLenum type, GLvoid* pixels) {
      BEFORE_GL_CALL;
      mSymbols.fReadPixels(x, y, width, height, format, type, pixels);
      OnSyncCall();
-+#if MOZ_BIG_ENDIAN
++#if MOZ_BIG_ENDIAN()
 +    uint8_t* itr = (uint8_t*)pixels;
 +    for (GLsizei i = 0; i < width * height; i++) {
 +      NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
@@ -20,4 +28,8 @@
      AFTER_GL_CALL;
      mHeavyGLCallsSinceLastFlush = true;
    }
-
+ 
+   void fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
+                    GLenum format, GLenum type, GLvoid* pixels);
+ 
+  public:
--- a/mozilla-cubeb-noreturn.patch	Mon Nov 25 08:41:45 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-# HG changeset patch
-# User Wolfgang Rosenauer <wr@rosenauer.org>
-# Parent  a9d61a2614b01b1e0ca37d00a6b11b2571868f86
-
-diff --git a/media/libcubeb/src/cubeb_utils.cpp b/media/libcubeb/src/cubeb_utils.cpp
---- a/media/libcubeb/src/cubeb_utils.cpp
-+++ b/media/libcubeb/src/cubeb_utils.cpp
-@@ -15,9 +15,10 @@ size_t cubeb_sample_size(cubeb_sample_fo
-       return sizeof(int16_t);
-     case CUBEB_SAMPLE_FLOAT32LE:
-     case CUBEB_SAMPLE_FLOAT32BE:
-       return sizeof(float);
-     default:
-       // should never happen as all cases are handled above.
-       assert(false);
-   }
-+  return 0;
- }
--- a/mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,6 +1,15 @@
---- 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;
+# HG changeset patch
+# Parent  9bc02ee6567ae3f1dad1f8578e650c0a1faa0179
+
+diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
+--- a/js/src/wasm/WasmSignalHandlers.cpp
++++ b/js/src/wasm/WasmSignalHandlers.cpp
+@@ -240,17 +240,17 @@ using mozilla::DebugOnly;
+ // Those definitions are however not present in the headers of every Linux
+ // distro - Raspbian is known to be a problem, for example.  However those
+ // distros are tier-3 platforms.
+ //
+ // If you run into compile problems on a tier-3 platform, you can disable the
  // emulation here.
  
  #if defined(__linux__) && defined(__arm__)
@@ -9,3 +18,8 @@
  #endif
  
  #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #  include <sys/user.h>
+ #endif
+ 
+ #if defined(ANDROID)
+ // Not all versions of the Android NDK define ucontext_t or mcontext_t.
--- a/mozilla-fix-aarch64-libopus.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-fix-aarch64-libopus.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  1317782cd47f1d1f2410712a1dd283b305393eae
+# Parent  2640f2f68373b7bec776bb11d3b3fb75c72a8adb
 
 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
--- a/mozilla-fix-top-level-asm.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-fix-top-level-asm.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -8,10 +8,14 @@
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
-index aae85843e9f6..208368dfd189 100644
 --- a/security/sandbox/linux/moz.build
 +++ b/security/sandbox/linux/moz.build
-@@ -61,7 +61,6 @@ UNIFIED_SOURCES += [
+@@ -56,32 +56,32 @@ UNIFIED_SOURCES += [
+     '../chromium/base/time/time_now_posix.cc',
+     '../chromium/sandbox/linux/bpf_dsl/bpf_dsl.cc',
+     '../chromium/sandbox/linux/bpf_dsl/codegen.cc',
+     '../chromium/sandbox/linux/bpf_dsl/dump_bpf.cc',
+     '../chromium/sandbox/linux/bpf_dsl/policy.cc',
      '../chromium/sandbox/linux/bpf_dsl/policy_compiler.cc',
      '../chromium/sandbox/linux/bpf_dsl/syscall_set.cc',
      '../chromium/sandbox/linux/seccomp-bpf/die.cc',
@@ -19,7 +23,15 @@
      'broker/SandboxBrokerCommon.cpp',
      'Sandbox.cpp',
      'SandboxBrokerClient.cpp',
-@@ -77,6 +76,7 @@ UNIFIED_SOURCES += [
+     'SandboxFilter.cpp',
+     'SandboxFilterUtil.cpp',
+     'SandboxHooks.cpp',
+     'SandboxInfo.cpp',
+     'SandboxLogging.cpp',
+     'SandboxOpenedFiles.cpp',
+     'SandboxReporterClient.cpp',
+ ]
+ 
  SOURCES += [
      '../chromium/base/strings/safe_sprintf.cc',
      '../chromium/base/third_party/icu/icu_utf.cc',
@@ -27,7 +39,17 @@
      '../chromium/sandbox/linux/seccomp-bpf/trap.cc',
      '../chromium/sandbox/linux/services/syscall_wrappers.cc',
  ]
-@@ -96,6 +96,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
+ 
+ # This copy of SafeSPrintf doesn't need to avoid the Chromium logging
+ # dependency like the one in libxul does, but this way the behavior is
+ # consistent.  See also the comment in SandboxLogging.h.
+ SOURCES['../chromium/base/strings/safe_sprintf.cc'].flags += ['-DNDEBUG']
+@@ -91,16 +91,19 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc')
+     SOURCES['../chromium/base/third_party/icu/icu_utf.cc'].flags += ['-Wno-implicit-fallthrough']
+     SOURCES['../chromium/sandbox/linux/seccomp-bpf/trap.cc'].flags += ['-Wno-unreachable-code-return']
+ 
+ if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
+     CXXFLAGS += ['-Wno-shadow']
      SOURCES['../chromium/sandbox/linux/services/syscall_wrappers.cc'].flags += [
          '-Wno-empty-body',
      ]
@@ -37,6 +59,8 @@
  
  # gcc lto likes to put the top level asm in syscall.cc in a different partition
  # from the function using it which breaks the build.  Work around that by
--- 
-2.23.0
-
+ # forcing there to be only one partition.
+ for f in CONFIG['OS_CXXFLAGS']:
+     if f.startswith('-flto') and CONFIG['CC_TYPE'] != 'clang':
+         LDFLAGS += ['--param lto-partitions=1']
+ 
--- a/mozilla-kde.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-kde.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,7 +3,7 @@
 # Date 1559294891 -7200
 #      Fri May 31 11:28:11 2019 +0200
 # Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
-# Parent  86d7ace0b36abf542e56fbb702a5f9b308b9bf77
+# Parent  b517aa8dfa37d729db9590fe699caa38f899dfba
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -13,7 +13,7 @@
 diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
 --- a/modules/libpref/Preferences.cpp
 +++ b/modules/libpref/Preferences.cpp
-@@ -88,16 +88,17 @@
+@@ -83,16 +83,17 @@
  #include "nsXPCOM.h"
  #include "nsXULAppAPI.h"
  #include "nsZipArchive.h"
@@ -31,7 +31,7 @@
  #ifdef MOZ_MEMORY
  #  include "mozmemory.h"
  #endif
-@@ -4542,25 +4543,37 @@ nsresult Preferences::InitInitialObjects
+@@ -4566,25 +4567,37 @@ nsresult Preferences::InitInitialObjects
    // application pref files for backwards compatibility.
    static const char* specialFiles[] = {
  #if defined(XP_MACOSX)
@@ -69,7 +69,7 @@
  
    // Load jar:$app/omni.jar!/defaults/preferences/*.js
    // or jar:$gre/omni.jar!/defaults/preferences/*.js.
-@@ -4606,17 +4619,17 @@ nsresult Preferences::InitInitialObjects
+@@ -4630,17 +4643,17 @@ nsresult Preferences::InitInitialObjects
        }
  
        nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
@@ -87,11 +87,11 @@
      SetupTelemetryPref();
    }
  
-   NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID, nullptr,
+   if (aIsStartup) {
 diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
 --- a/modules/libpref/moz.build
 +++ b/modules/libpref/moz.build
-@@ -110,16 +110,20 @@ EXPORTS.mozilla += [
+@@ -114,16 +114,20 @@ EXPORTS.mozilla += [
  ]
  EXPORTS.mozilla += sorted(['!' + g for g in gen_h])
  
@@ -136,7 +136,7 @@
 diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py
 --- a/python/mozbuild/mozpack/chrome/manifest.py
 +++ b/python/mozbuild/mozpack/chrome/manifest.py
-@@ -36,16 +36,17 @@ class ManifestEntry(object):
+@@ -37,16 +37,17 @@ class ManifestEntry(object):
          'platformversion',
          'os',
          'osversion',
@@ -157,7 +157,7 @@
 diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
 --- a/toolkit/components/downloads/moz.build
 +++ b/toolkit/components/downloads/moz.build
-@@ -41,10 +41,14 @@ XPCOM_MANIFESTS += [
+@@ -46,10 +46,14 @@ XPCOM_MANIFESTS += [
  
  if CONFIG['MOZ_PLACES']:
      EXTRA_JS_MODULES += [
@@ -175,7 +175,7 @@
 diff --git a/toolkit/mozapps/downloads/HelperAppDlg.jsm b/toolkit/mozapps/downloads/HelperAppDlg.jsm
 --- a/toolkit/mozapps/downloads/HelperAppDlg.jsm
 +++ b/toolkit/mozapps/downloads/HelperAppDlg.jsm
-@@ -1199,36 +1199,66 @@ nsUnknownContentTypeDialog.prototype = {
+@@ -1205,36 +1205,66 @@ nsUnknownContentTypeDialog.prototype = {
          params.handlerApp &&
          params.handlerApp.executable &&
          params.handlerApp.executable.isFile()
@@ -265,7 +265,7 @@
 diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
-@@ -14,16 +14,17 @@
+@@ -13,16 +13,17 @@
  #include "nsPrintfCString.h"
  #include "nsNetCID.h"
  #include "nsNetUtil.h"
@@ -283,7 +283,7 @@
    NS_DECL_ISUPPORTS
    NS_DECL_NSISYSTEMPROXYSETTINGS
  
-@@ -37,16 +38,18 @@ class nsUnixSystemProxySettings final : 
+@@ -36,16 +37,18 @@ class nsUnixSystemProxySettings final : 
    nsCOMPtr<nsIGSettingsCollection> mProxySettings;
    nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection>
        mSchemeProxySettings;
@@ -302,7 +302,7 @@
  nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
    // dbus prevents us from being threadsafe, but this routine should not block
    // anyhow
-@@ -381,21 +384,50 @@ nsresult nsUnixSystemProxySettings::GetP
+@@ -384,21 +387,50 @@ nsresult nsUnixSystemProxySettings::GetP
    return NS_OK;
  }
  
@@ -356,7 +356,7 @@
 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
 --- a/toolkit/xre/moz.build
 +++ b/toolkit/xre/moz.build
-@@ -85,17 +85,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
+@@ -88,17 +88,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
          '../components/printingui',
      ]
  elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
@@ -800,7 +800,7 @@
  using mozilla::dom::RemoteHandlerApp;
  
  namespace {
-@@ -288,17 +288,17 @@ mozilla::ipc::IPCResult HandlerServicePa
+@@ -294,17 +294,17 @@ mozilla::ipc::IPCResult HandlerServicePa
  mozilla::ipc::IPCResult HandlerServiceParent::RecvExistsForProtocolOS(
      const nsCString& aProtocolScheme, bool* aHandlerExists) {
    if (aProtocolScheme.Length() > MAX_SCHEME_LENGTH) {
@@ -819,7 +819,7 @@
  
  /*
   * Check if a handler exists for the provided protocol. Check the datastore
-@@ -317,17 +317,17 @@ mozilla::ipc::IPCResult HandlerServicePa
+@@ -323,17 +323,17 @@ mozilla::ipc::IPCResult HandlerServicePa
    nsCOMPtr<nsIExternalProtocolService> protoSvc =
        do_GetService(NS_EXTERNALPROTOCOLSERVICE_CONTRACTID, &rv);
    if (NS_WARN_IF(NS_FAILED(rv))) {
@@ -841,7 +841,7 @@
 diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
 --- a/uriloader/exthandler/moz.build
 +++ b/uriloader/exthandler/moz.build
-@@ -83,17 +83,19 @@ else:
+@@ -85,17 +85,19 @@ else:
      SOURCES += [
          osdir + '/nsOSHelperAppService.cpp',
      ]
@@ -861,7 +861,7 @@
          'android/nsExternalURLHandlerService.cpp',
          'android/nsMIMEInfoAndroid.cpp',
      ]
-@@ -133,16 +135,17 @@ include('/ipc/chromium/chromium-config.m
+@@ -135,16 +137,17 @@ include('/ipc/chromium/chromium-config.m
  FINAL_LIBRARY = 'xul'
  
  LOCAL_INCLUDES += [
@@ -974,7 +974,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/uriloader/exthandler/unix/nsKDERegistry.cpp
-@@ -0,0 +1,87 @@
+@@ -0,0 +1,86 @@
 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 +/* 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
@@ -985,7 +985,6 @@
 +#include "prmem.h"
 +#include "nsString.h"
 +#include "nsMIMEInfoUnix.h"
-+#include "nsAutoPtr.h"
 +#include "nsKDEUtils.h"
 +
 +/* static */ bool
@@ -1104,7 +1103,7 @@
 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
 --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
 +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
-@@ -1,47 +1,50 @@
+@@ -1,46 +1,49 @@
  /* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*-
   *
   * This Source Code Form is subject to the terms of the Mozilla Public
@@ -1117,7 +1116,6 @@
  #include "nsIGIOService.h"
  #include "nsNetCID.h"
  #include "nsIIOService.h"
- #include "nsAutoPtr.h"
  #ifdef MOZ_ENABLE_DBUS
  #  include "nsDBusHandlerApp.h"
  #endif
@@ -1160,7 +1158,7 @@
    if (*_retval) return NS_OK;
  
    return NS_OK;
-@@ -51,16 +54,33 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWi
+@@ -50,16 +53,33 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWi
    // if mDefaultApplication is set, it means the application has been set from
    // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
    // give the GNOME answer.
@@ -1213,10 +1211,10 @@
  #include "nsString.h"
  #include "nsReadableUtils.h"
  #include "nsUnicharUtils.h"
- #include "nsIURL.h"
  #include "nsIFileStreams.h"
  #include "nsILineInputStream.h"
-@@ -1025,17 +1025,17 @@ nsresult nsOSHelperAppService::GetHandle
+ #include "nsIFile.h"
+@@ -1023,17 +1023,17 @@ nsresult nsOSHelperAppService::GetHandle
  
  nsresult nsOSHelperAppService::OSProtocolHandlerExists(
      const char* aProtocolScheme, bool* aHandlerExists) {
@@ -1235,7 +1233,7 @@
      nsCOMPtr<nsIHandlerService> handlerSvc =
          do_GetService(NS_HANDLERSERVICE_CONTRACTID, &rv);
      if (NS_SUCCEEDED(rv) && handlerSvc) {
-@@ -1045,17 +1045,17 @@ nsresult nsOSHelperAppService::OSProtoco
+@@ -1043,17 +1043,17 @@ nsresult nsOSHelperAppService::OSProtoco
    }
  
    return rv;
@@ -1252,9 +1250,9 @@
  #endif
  }
  
- nsresult nsOSHelperAppService::GetFileTokenForPath(
-     const char16_t* platformAppPath, nsIFile** aFile) {
-@@ -1136,17 +1136,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
+ NS_IMETHODIMP nsOSHelperAppService::IsCurrentAppOSDefaultForProtocol(
+     const nsACString& aScheme, bool* _retval) {
+@@ -1140,17 +1140,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
    nsresult rv =
        LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
                                 minorType, mime_types_description, true);
@@ -1273,7 +1271,7 @@
  
      rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
                                    minorType, mime_types_description, false);
-@@ -1248,17 +1248,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
+@@ -1252,17 +1252,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
  
    // Now look up our extensions
    nsAutoString extensions, mime_types_description;
@@ -1295,7 +1293,7 @@
 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
 --- a/widget/gtk/moz.build
 +++ b/widget/gtk/moz.build
-@@ -126,16 +126,17 @@ include('/ipc/chromium/chromium-config.m
+@@ -129,16 +129,17 @@ include('/ipc/chromium/chromium-config.m
  
  FINAL_LIBRARY = 'xul'
  
@@ -1316,25 +1314,24 @@
 diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
 --- a/widget/gtk/nsFilePicker.cpp
 +++ b/widget/gtk/nsFilePicker.cpp
-@@ -4,16 +4,17 @@
+@@ -1,15 +1,16 @@
+ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+ /* 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/Types.h"
+ #include <dlfcn.h>
+ #include <gtk/gtk.h>
++#include <gdk/gdkx.h>
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <unistd.h>
  
- #include <gtk/gtk.h>
-+#include <gdk/gdkx.h>
- 
+ #include "mozilla/Types.h"
  #include "nsGtkUtils.h"
  #include "nsIFileURL.h"
  #include "nsIGIOService.h"
- #include "nsIURI.h"
- #include "nsIWidget.h"
- #include "nsIFile.h"
- #include "nsIStringBundle.h"
-@@ -21,16 +22,17 @@
+@@ -20,16 +21,18 @@
  #include "nsArrayEnumerator.h"
  #include "nsMemory.h"
  #include "nsEnumeratorUtils.h"
@@ -1344,6 +1341,7 @@
  
  #include "nsFilePicker.h"
 +#include "nsKDEUtils.h"
++#include "nsURLHelper.h"
  
  using namespace mozilla;
  
@@ -1352,7 +1350,7 @@
  #define MAX_PREVIEW_SOURCE_SIZE 4096
  
  nsIFile* nsFilePicker::mPrevDisplayDirectory = nullptr;
-@@ -228,17 +230,19 @@ nsFilePicker::AppendFilters(int32_t aFil
+@@ -223,17 +226,19 @@ nsFilePicker::AppendFilters(int32_t aFil
    mAllowURLs = !!(aFilterMask & filterAllowURLs);
    return nsBaseFilePicker::AppendFilters(aFilterMask);
  }
@@ -1373,7 +1371,7 @@
  
    mFilters.AppendElement(filter);
    mFilterNames.AppendElement(name);
-@@ -338,16 +342,39 @@ nsresult nsFilePicker::Show(int16_t* aRe
+@@ -333,16 +338,39 @@ nsresult nsFilePicker::Show(int16_t* aRe
    return NS_OK;
  }
  
@@ -1405,15 +1403,15 @@
 +    return NS_OK;
 +  }
 +
-   nsCString title;
-   title.Adopt(ToNewUTF8String(mTitle));
+   NS_ConvertUTF16toUTF8 title(mTitle);
  
    GtkWindow* parent_widget =
        GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
  
    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
  
-@@ -573,16 +600,240 @@ void nsFilePicker::Done(void* file_choos
+   const gchar* accept_button;
+@@ -562,16 +590,244 @@ void nsFilePicker::Done(void* file_choos
      mCallback->Done(result);
      mCallback = nullptr;
    } else {
@@ -1579,8 +1577,12 @@
 +                mFileURL = output[ 0 ];
 +            else // GetFile() actually requires it to be url even for local files :-/
 +                {
-+                mFileURL = nsCString( "file://" );
-+                mFileURL.Append( output[ 0 ] );
++                nsCOMPtr<nsIFile> localfile;
++                nsresult rv = NS_NewNativeLocalFile( output[ 0 ],
++                                   PR_FALSE,
++                                   getter_AddRefs(localfile));
++                if (NS_SUCCEEDED(rv))
++                  rv = net_GetURLSpecFromActualFile(localfile, mFileURL);
 +                }
 +            }
 +  // Remember last used directory.
@@ -1814,7 +1816,7 @@
 diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
 --- a/xpcom/components/moz.build
 +++ b/xpcom/components/moz.build
-@@ -66,16 +66,17 @@ LOCAL_INCLUDES += [
+@@ -62,16 +62,17 @@ LOCAL_INCLUDES += [
      '!..',
      '../base',
      '../build',
@@ -1828,14 +1830,14 @@
  
  if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
      CXXFLAGS += CONFIG['TK_CFLAGS']
+     if CONFIG['MOZ_ENABLE_DBUS']:
+         CXXFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS']
  
  if CONFIG['MOZ_LAYOUT_DEBUGGER']:
-     DEFINES['MOZ_LAYOUT_DEBUGGER'] = True
- 
 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
 --- a/xpcom/io/nsLocalFileUnix.cpp
 +++ b/xpcom/io/nsLocalFileUnix.cpp
-@@ -47,16 +47,17 @@
+@@ -46,16 +46,17 @@
  #include "prproces.h"
  #include "nsIDirectoryEnumerator.h"
  #include "nsSimpleEnumerator.h"
@@ -1853,7 +1855,7 @@
  #  include "prmem.h"
  #  include "plbase64.h"
  
-@@ -1902,62 +1903,77 @@ nsLocalFile::SetPersistentDescriptor(con
+@@ -1907,62 +1908,77 @@ nsLocalFile::SetPersistentDescriptor(con
  
  NS_IMETHODIMP
  nsLocalFile::Reveal() {
--- a/mozilla-nongnome-proxies.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-nongnome-proxies.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,17 +3,22 @@
 # Date 1558442915 -7200
 #      Tue May 21 14:48:35 2019 +0200
 # Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
-# Parent  4c434d19d03d5461e54fa22dfb82eaed4cd6631b
+# Parent  dc1684693eed684bdafeff0ad78d4f6d288fcae1
 Do not use gconf for proxy settings if not running within Gnome
 Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 ===================================================================
 RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
 retrieving revision 1.1
 
-diff -r 4c434d19d03d -r 6bcf2dfebc1e toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
---- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp	Wed Jun 12 17:43:18 2019 +0000
-+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp	Tue May 21 14:48:35 2019 +0200
-@@ -55,11 +55,14 @@
+diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
++++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+@@ -49,21 +49,24 @@ NS_IMETHODIMP
+ nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
+   // dbus prevents us from being threadsafe, but this routine should not block
+   // anyhow
+   *aMainThreadOnly = true;
+   return NS_OK;
  }
  
  void nsUnixSystemProxySettings::Init() {
@@ -33,3 +38,8 @@
    }
  }
  
+ nsresult nsUnixSystemProxySettings::GetPACURI(nsACString& aResult) {
+   if (mProxySettings) {
+     nsCString proxyMode;
+     // Check if mode is auto
+     nsresult rv =
--- a/mozilla-ntlm-full-path.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-ntlm-full-path.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -1,7 +1,7 @@
 # HG changeset patch
 # User Petr Cerny <pcerny@novell.com>
 # Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
-# Parent  6ab277cf616dc2748e9855101100a97a6cec10a6
+# Parent  2361c5db1e70e358b2158325e07fa15bb4569c2c
 Bug 634334 - call to the ntlm_auth helper fails
 
 diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
--- a/mozilla-ppc-altivec_static_inline.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-ppc-altivec_static_inline.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,7 +3,7 @@
 # Date 1558452418 -7200
 #      Tue May 21 17:26:58 2019 +0200
 # Node ID 6cd963b6c82ea6629aaf4050851789b78f310338
-# Parent  010a35335b4e45e222b9efdbda24fd1963202ecf
+# Parent  74d44a14979d4ed1431d8291e20775339a5a6510
 imported patch mozilla-ppc-altivec_static_inline.patch
 
 diff --git a/gfx/qcms/transform-altivec.cpp b/gfx/qcms/transform-altivec.cpp
--- a/mozilla-reduce-rust-debuginfo.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-reduce-rust-debuginfo.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,7 +3,7 @@
 # Date 1560754926 -7200
 #      Mon Jun 17 09:02:06 2019 +0200
 # Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
-# Parent  fa1cf8b9cb4efdf89fe19e543fb54272b726a353
+# Parent  83625bab561d09fb68aa2c71cea7cbafd9ec09b4
 #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
@@ -12,7 +12,7 @@
 diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
 --- a/build/moz.configure/toolchain.configure
 +++ b/build/moz.configure/toolchain.configure
-@@ -1861,18 +1861,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe
+@@ -1823,18 +1823,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe
  @depends('RUSTC_OPT_LEVEL', moz_optimize)
  def rustc_opt_level(opt_level_option, moz_optimize):
      if opt_level_option:
@@ -33,7 +33,7 @@
      # optimization level. Since Cargo only supports 2 profiles, we're in
      # a bit of a bind.
      #
-@@ -1885,16 +1885,18 @@ def rust_compile_flags(opt_level, debug_
+@@ -1847,16 +1847,18 @@ def rust_compile_flags(opt_level, debug_
  
      # opt-level=0 implies -C debug-assertions, which may not be desired
      # unless Rust debugging is enabled.
--- a/mozilla-s390-bigendian.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-s390-bigendian.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,13 +3,18 @@
 # Date 1558452126 -7200
 #      Tue May 21 17:22:06 2019 +0200
 # Node ID a3cc550d25e3a04d906f516928cbcbe50efd585e
-# Parent  433beec63e6b5f409683af20a0c1ab137cc7bfad
+# Parent  ae49126f2a63ba1de250ad02ffe39379295660f3
 [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 @@
+diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
+--- a/build/autoconf/icu.m4
++++ b/build/autoconf/icu.m4
+@@ -63,17 +63,17 @@ if test -n "$USE_ICU"; then
+     if test x"$version" = x; then
+        AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
+     fi
+     MOZ_ICU_VERSION="$version"
+ 
      # 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.
@@ -18,3 +23,8 @@
  fi
  
  AC_SUBST(MOZ_ICU_VERSION)
+ AC_SUBST(JS_HAS_INTL_API)
+ AC_SUBST(USE_ICU)
+ AC_SUBST(ICU_DATA_FILE)
+ 
+ if test -n "$USE_ICU"; then
--- a/mozilla-s390-context.patch	Mon Nov 25 08:41:45 2019 +0100
+++ b/mozilla-s390-context.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -3,13 +3,18 @@
 # Date 1558452408 -7200
 #      Tue May 21 17:26:48 2019 +0200
 # Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4
-# Parent  a3cc550d25e3a04d906f516928cbcbe50efd585e
+# Parent  cb0089687ab899846b8229c3741261d50101340e
 [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 @@
+diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
+--- a/js/src/wasm/WasmSignalHandlers.cpp
++++ b/js/src/wasm/WasmSignalHandlers.cpp
+@@ -150,16 +150,20 @@ using mozilla::DebugOnly;
+ #    define FP_sig(p) ((p)->uc_mcontext.mc_fp)
+ #    define SP_sig(p) ((p)->uc_mcontext.mc_i7)
+ #  endif
+ #  if defined(__linux__) && (defined(__ppc64__) || defined(__PPC64__) || \
+                              defined(__ppc64le__) || defined(__PPC64LE__))
  #    define R01_sig(p) ((p)->uc_mcontext.gp_regs[1])
  #    define R32_sig(p) ((p)->uc_mcontext.gp_regs[32])
  #  endif
@@ -20,7 +25,17 @@
  #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 ESP_sig(p) ((p)->uc_mcontext.__gregs[_REG_ESP])
+ #  define RIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RIP])
+ #  define RSP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RSP])
+ #  define RBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RBP])
+ #  define R11_sig(p) ((p)->uc_mcontext.__gregs[_REG_R11])
+@@ -381,18 +385,23 @@ struct macos_arm_context {
+ #  define FP_sig(p) RFP_sig(p)
+ #  define SP_sig(p) RSP_sig(p)
+ #  define LR_sig(p) R31_sig(p)
+ #elif defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || \
+     defined(__PPC64LE__)
  #  define PC_sig(p) R32_sig(p)
  #  define SP_sig(p) R01_sig(p)
  #  define FP_sig(p) R01_sig(p)
@@ -34,3 +49,8 @@
  static void SetContextPC(CONTEXT* context, uint8_t* pc) {
  #ifdef PC_sig
    *reinterpret_cast<uint8_t**>(&PC_sig(context)) = pc;
+ #else
+   MOZ_CRASH();
+ #endif
+ }
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-sandbox-fips.patch	Thu Jun 11 22:04:26 2020 +0200
@@ -0,0 +1,16 @@
+From: meissner@suse.com
+Subject: allow Firefox to access addtional process information
+Reference: http://bugzilla.suse.com/show_bug.cgi?id=1167132
+
+Index: firefox-74.0/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
+===================================================================
+--- firefox-74.0.orig/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
++++ firefox-74.0/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
+@@ -276,6 +276,7 @@ SandboxBrokerPolicyFactory::SandboxBroke
+ 
+   // Read permissions
+   policy->AddPath(rdonly, "/dev/urandom");
++  policy->AddPath(rdonly, "/proc/sys/crypto/fips_enabled");
+   policy->AddPath(rdonly, "/proc/cpuinfo");
+   policy->AddPath(rdonly, "/proc/meminfo");
+   policy->AddDir(rdonly, "/sys/devices/cpu");
--- a/series	Mon Nov 25 08:41:45 2019 +0100
+++ b/series	Thu Jun 11 22:04:26 2020 +0200
@@ -4,7 +4,7 @@
 mozilla-ntlm-full-path.patch
 mozilla-aarch64-startup-crash.patch
 mozilla-bmo1463035.patch
-mozilla-cubeb-noreturn.patch
+mozilla-sandbox-fips.patch
 mozilla-fix-aarch64-libopus.patch
 mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
 mozilla-s390-context.patch
@@ -21,6 +21,7 @@
 mozilla-fix-top-level-asm.patch
 mozilla-bmo1504834-part4.patch
 mozilla-bmo849632.patch
+mozilla-bmo1634646.patch
 
 # Firefox patches
 firefox-kde.patch