sync xulrunner with 38.2.0
authorWolfgang Rosenauer <wr@rosenauer.org>
Sat, 22 Aug 2015 09:13:27 +0200
changeset 879 3b986c9dbc5f
parent 867 3af93b7e5e3d
child 880 349bcaa18df4
sync xulrunner with 38.2.0
xulrunner/_constraints
xulrunner/add-plugins.sh.in
xulrunner/baselibs.conf
xulrunner/create-tar.sh
xulrunner/mozilla-add-glibcxx_use_cxx11_abi.patch
xulrunner/mozilla-arm-disable-edsp.patch
xulrunner/mozilla-arm64-libjpeg-turbo.patch
xulrunner/mozilla-bmo1005535.patch
xulrunner/mozilla-icu-strncat.patch
xulrunner/mozilla-libproxy-compat.patch
xulrunner/mozilla-ppc.patch
xulrunner/mozilla-preferences.patch
xulrunner/mozilla-repo.patch
xulrunner/mozilla-shared-nss-db.patch
xulrunner/mozilla-skia-be-le.patch
xulrunner/mozilla-sle11.patch
xulrunner/spellcheck.js
xulrunner/xulrunner.changes
xulrunner/xulrunner.spec
--- a/xulrunner/_constraints	Sat Jul 18 14:48:41 2015 +0200
+++ b/xulrunner/_constraints	Sat Aug 22 09:13:27 2015 +0200
@@ -5,7 +5,7 @@
       <size unit="G">9</size>
     </disk>
     <memory>
-      <size unit="M">3500</size>
+      <size unit="M">4500</size>
     </memory>
   </hardware>
 </constraints>
--- a/xulrunner/add-plugins.sh.in	Sat Jul 18 14:48:41 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-#! /bin/sh
-# Copyright (c) 2008 Wolfgang Rosenauer.  All rights reserved.
-#
-
-# check if we are started as root
-# only one of UID and USER must be set correctly
-if test "$UID" != 0 -a "$USER" != root; then
-    echo "You must be root to start $0."
-    exit 1
-fi
-
-PREFIX="%PROGDIR"
-
-# dictionaries
-MYSPELL=/usr/share/myspell
-MOZ_SPELL=$PREFIX/dictionaries
-if [ -d $MOZ_SPELL ] ; then
-  if [ -d $MYSPELL ] ; then
-    for dict in $MYSPELL/??[-_]??.aff ; do
-
-      # check is it is really the file or it is a string which contain '??_??'
-      if ! [ -e $dict ] ; then
-        continue
-      fi
-
-      # the dict file name
-      dict_file=`echo ${dict##*/}`
-
-      # the dict file has a valid name
-      lang=`echo ${dict_file:0:2}`
-      country=`echo ${dict_file:3:2}`
-      
-      # check for .dic file
-      if [ ! -r $MYSPELL/${lang}[-_]${country}.dic ] ; then
-        continue
-      fi
-
-      # create links
-      if [ ! -r $MOZ_SPELL/${lang}[-_]${country}.aff ] ; then
-        ln -sf $MYSPELL/${lang}[-_]${country}.aff \
-               $MOZ_SPELL/${lang}-${country}.aff
-      fi      
-      if [ ! -r $MOZ_SPELL/${lang}[-_]${country}.dic ] ; then
-        ln -sf $MYSPELL/${lang}[-_]${country}.dic \
-               $MOZ_SPELL/${lang}-${country}.dic
-      fi      
-    done
-    echo "-> added myspell dictionaries"
-  fi
-
-  # remove broken links
-  for dict in $MOZ_SPELL/*.{aff,dic} ; do
-    if ! [ -r $dict ] ; then
-      rm -f $dict
-    fi
-  done
-fi
--- a/xulrunner/baselibs.conf	Sat Jul 18 14:48:41 2015 +0200
+++ b/xulrunner/baselibs.conf	Sat Aug 22 09:13:27 2015 +0200
@@ -1,17 +1,4 @@
 xulrunner
  +/usr/lib(64)?/xulrunner-.*
  +/etc/gre.d/.*
- requires "mozilla-js-<targettype>"
 
-mozilla-js
-
-xulrunner-translations-common
- +/usr/lib(64)?/xulrunner-.*
- requires "xulrunner-<targettype> = <version>"
- supplements "packageand(xulrunner-translations-common:xulrunner-<targettype>)"
-
-xulrunner-translations-other
- +/usr/lib(64)?/xulrunner-.*
- requires "xulrunner-<targettype> = <version>"
- supplements "packageand(xulrunner-translations-other:xulrunner-<targettype>)"
-
--- a/xulrunner/create-tar.sh	Sat Jul 18 14:48:41 2015 +0200
+++ b/xulrunner/create-tar.sh	Sat Aug 22 09:13:27 2015 +0200
@@ -1,9 +1,9 @@
 #!/bin/bash
 
-CHANNEL="release"
+CHANNEL="esr38"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_24_0_RELEASE"
-VERSION="24.0"
+RELEASE_TAG="FIREFOX_38_2_0esr_RELEASE"
+VERSION="38.2.0"
 
 # mozilla
 if [ -d mozilla ]; then
@@ -36,7 +36,7 @@
 hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" >> ../source-stamp.txt
 popd
 echo "creating archive..."
-tar cjf xulrunner-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS mozilla
+tar cJf xulrunner-$VERSION-source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS mozilla
 
 # l10n
 echo "fetching locales..."
@@ -47,16 +47,16 @@
       ;;
     *)
       echo "fetching $locale ..."
-      hg clone http://hg.mozilla.org/releases/l10n/mozilla-$CHANNEL/$locale l10n/$locale
+      hg clone http://hg.mozilla.org/releases/l10n/mozilla-release/$locale l10n/$locale
       [ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r $RELEASE_TAG
       ;;
   esac
 done
 echo "creating l10n archive..."
-tar cjf l10n-$VERSION.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg l10n
+tar cJf l10n-$VERSION.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg l10n
 
 # compare-locales
 echo "creating compare-locales"
 hg clone http://hg.mozilla.org/build/compare-locales
-tar cjf compare-locales.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg compare-locales
+tar cJf compare-locales.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg compare-locales
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-add-glibcxx_use_cxx11_abi.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-add-glibcxx_use_cxx11_abi.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-arm-disable-edsp.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-arm-disable-edsp.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-arm64-libjpeg-turbo.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-arm64-libjpeg-turbo.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-bmo1005535.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-bmo1005535.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-icu-strncat.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-icu-strncat.patch
\ No newline at end of file
--- a/xulrunner/mozilla-libproxy-compat.patch	Sat Jul 18 14:48:41 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-libproxy-compat.patch
\ No newline at end of file
--- a/xulrunner/mozilla-ppc.patch	Sat Jul 18 14:48:41 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-ppc.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-preferences.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-preferences.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-repo.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-repo.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-shared-nss-db.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-shared-nss-db.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-skia-be-le.patch	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+../mozilla-skia-be-le.patch
\ No newline at end of file
--- a/xulrunner/mozilla-sle11.patch	Sat Jul 18 14:48:41 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-sle11.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/spellcheck.js	Sat Aug 22 09:13:27 2015 +0200
@@ -0,0 +1,1 @@
+pref("spellchecker.dictionary_path", "/usr/share/myspell");
--- a/xulrunner/xulrunner.changes	Sat Jul 18 14:48:41 2015 +0200
+++ b/xulrunner/xulrunner.changes	Sat Aug 22 09:13:27 2015 +0200
@@ -1,3 +1,179 @@
+-------------------------------------------------------------------
+Mon Aug 10 16:40:17 UTC 2015 - wr@rosenauer.org
+
+- update to xulrunner 38.2.0esr (bnc#940806)
+  * MFSA 2015-79/CVE-2015-4473
+    Miscellaneous memory safety hazards
+  * MFSA 2015-80/CVE-2015-4475 (bmo#1175396)
+    Out-of-bounds read with malformed MP3 file
+  * MFSA 2015-82/CVE-2015-4478 (bmo#1105914)
+    Redefinition of non-configurable JavaScript object properties
+  * MFSA 2015-83/CVE-2015-4479/CVE-2015-4480/CVE-2015-4493
+    Overflow issues in libstagefright
+  * MFSA 2015-84/CVE-2015-4481 (bmo1171518)
+    Arbitrary file overwriting through Mozilla Maintenance Service
+    with hard links (only affected Windows)
+  * MFSA 2015-85/CVE-2015-4482 (bmo#1184500)
+    Out-of-bounds write with Updater and malicious MAR file
+    (does not affect openSUSE RPM packages which do not ship the
+     updater)
+  * MFSA 2015-87/CVE-2015-4484 (bmo#1171540)
+    Crash when using shared memory in JavaScript
+  * MFSA 2015-88/CVE-2015-4491 (bmo#1184009)
+    Heap overflow in gdk-pixbuf when scaling bitmap images
+  * MFSA 2015-89/CVE-2015-4485/CVE-2015-4486 (bmo#1177948, bmo#1178148)
+    Buffer overflows on Libvpx when decoding WebM video
+  * MFSA 2015-90/CVE-2015-4487/CVE-2015-4488/CVE-2015-4489
+    Vulnerabilities found through code inspection
+  * MFSA 2015-92/CVE-2015-4492 (bmo#1185820)
+    Use-after-free in XMLHttpRequest with shared workers
+- rebased all patches
+- dropped obsolete patches:
+  * mozilla-sle11.patch
+  * mozilla-ppc.patch
+  * mozilla-nullptr-gcc45.patch
+  * mozilla-libproxy-compat.patch
+  * mozilla-fix-compilation-gcc5-bmo-1021171.patch
+  * mozilla-fix-compilation-gcc5-bmo-1153109.patch
+  * mozilla-aarch64-bmo-810631.patch
+- added platform specific patches from Firefox package:
+  * mozilla-skia-be-le.patch
+  * mozilla-bmo1005535.patch
+  * mozilla-add-glibcxx_use_cxx11_abi.patch
+  * mozilla-arm64-libjpeg-turbo.patch
+  * mozilla-shared-nss-db.patch
+
+-------------------------------------------------------------------
+Sat Jun 27 15:26:00 UTC 2015 - wr@rosenauer.org
+
+- update to 31.8.0 (bnc#935979)
+  * MFSA 2015-59/CVE-2015-2724
+    Miscellaneous memory safety hazards
+  * MFSA 2015-61/CVE-2015-2728 (bmo#1142210)
+    Type confusion in Indexed Database Manager
+  * MFSA 2015-64/CVE-2015-2730 (bmo#1125025)
+    ECDSA signature validation fails to handle some signatures correctly
+    (this fix is shipped by NSS 3.19.1 externally)
+  * MFSA 2015-65/CVE-2015-2722/CVE-2015-2733 (bmo#1166924, bmo#1169867)
+    Use-after-free in workers while using XMLHttpRequest
+  * MFSA 2015-66/CVE-2015-2734/CVE-2015-2735/CVE-2015-2736/CVE-2015-2737
+    CVE-2015-2738/CVE-2015-2739/CVE-2015-2740
+    Vulnerabilities found through code inspection
+  * MFSA 2015-69/CVE-2015-2743 (bmo#1163109)
+    Privilege escalation in PDF.js
+  * MFSA 2015-70/CVE-2015-4000 (bmo#1138554)
+    NSS accepts export-length DHE keys with regular DHE cipher suites
+    (this fix is shipped by NSS 3.19.1 externally)
+  * MFSA 2015-71/CVE-2015-2721 (bmo#1086145)
+    NSS incorrectly permits skipping of ServerKeyExchange
+    (this fix is shipped by NSS 3.19.1 externally)
+- requires NSS 3.19.2
+
+--------------------------------------------------------------------
+Sun Jun 21 09:39:51 UTC 2015 - antoine.belvire@laposte.net
+
+- Fix compilation with GCC5 (bmo#1153109, bmo#1021171)
+  * add mozilla-fix-compilation-gcc5-bmo-1153109.patch
+  * add mozilla-fix-compilation-gcc5-bmo-1021171.patch
+
+-------------------------------------------------------------------
+Wed May  6 07:49:53 UTC 2015 - wr@rosenauer.org
+
+- update to 31.7.0 (bnc#930622)
+  * MFSA 2015-46/CVE-2015-2708
+    Miscellaneous memory safety hazards
+  * MFSA 2015-47/VE-2015-0797 (bmo#1080995)
+    Buffer overflow parsing H.264 video with Linux Gstreamer
+  * MFSA 2015-48/CVE-2015-2710 (bmo#1149542)
+    Buffer overflow with SVG content and CSS
+  * MFSA 2015-51/CVE-2015-2713 (bmo#1153478)
+    Use-after-free during text processing with vertical text enabled
+  * MFSA 2015-54/CVE-2015-2716 (bmo#1140537)
+    Buffer overflow when parsing compressed XML
+  * MFSA 2015-57/CVE-2011-3079 (bmo#1087565)
+    Privilege escalation through IPC channel messages
+- strip baselibs.conf to reflect the current set of packages
+
+-------------------------------------------------------------------
+Mon Mar 30 07:56:19 UTC 2015 - wr@rosenauer.org
+
+- update to 31.6.0 (bnc#925368)
+  * MFSA 2015-30/CVE-2015-0815
+    Miscellaneous memory safety hazards
+  * MFSA 2015-31/CVE-2015-0813 (bmo#1106596))
+    Use-after-free when using the Fluendo MP3 GStreamer plugin
+  * MFSA 2015-33/CVE-2015-0816 (bmo#1144991)
+    resource:// documents can load privileged pages
+  * MFSA-2015-37/CVE-2015-0807 (bmo#1111834)
+    CORS requests should not follow 30x redirections after preflight
+  * MFSA-2015-40/CVE-2015-0801 (bmo#1146339)
+    Same-origin bypass through anchor navigation
+
+-------------------------------------------------------------------
+Thu Feb 19 22:56:55 UTC 2015 - wr@rosenauer.org
+
+- update to 31.5.0 (bnc#917597)
+  * MFSA 2015-11/CVE-2015-0836
+    Miscellaneous memory safety hazards
+  * MFSA 2015-12/CVE-2015-0833 (bmo#945192)
+    Invoking Mozilla updater will load locally stored DLL files
+    (Windows only)
+  * MFSA 2015-16/CVE-2015-0831 (bmo#1130514)
+    Use-after-free in IndexedDB
+  * MFSA 2015-19/CVE-2015-0827 (bmo#1117304)
+    Out-of-bounds read and write while rendering SVG content
+  * MFSA 2015-24/CVE-2015-0822 (bmo#1110557)
+    Reading of local files through manipulation of form autocomplete
+
+-------------------------------------------------------------------
+Sat Jan 10 17:33:51 UTC 2015 - wr@rosenauer.org
+
+- update to 31.4.0 (bnc#910669)
+  * MFSA 2015-01/CVE-2014-8634/CVE-2014-8635
+    Miscellaneous memory safety hazards
+  * MFSA 2015-03/CVE-2014-8638 (bmo#1080987)
+    sendBeacon requests lack an Origin header
+  * MFSA 2015-04/CVE-2014-8639 (bmo#1095859)
+    Cookie injection through Proxy Authenticate responses
+  * MFSA 2015-06/CVE-2014-8641 (bmo#1108455)
+    Read-after-free in WebRTC
+
+-------------------------------------------------------------------
+Wed Dec 31 16:01:40 UTC 2014 - dimstar@opensuse.org
+
+- Do not require mozilla-js-32bit from xulrunner-32bit: since we
+  have shared_js currently set to 0, mozilla-js(-32bit) is not
+  being built.
+
+-------------------------------------------------------------------
+Sun Nov 30 12:15:59 UTC 2014 - wr@rosenauer.org
+
+- update to 31.3.0 (bnc#908009)
+  * MFSA 2014-83/CVE-2014-1587
+    Miscellaneous memory safety hazards
+  * MFSA 2014-85/CVE-2014-1590 (bmo#1087633)
+    XMLHttpRequest crashes with some input streams
+  * MFSA 2014-87/CVE-2014-1592 (bmo#1088635)
+    Use-after-free during HTML5 parsing
+  * MFSA 2014-88/CVE-2014-1593 (bmo#1085175)
+    Buffer overflow while parsing media content
+  * MFSA 2014-89/CVE-2014-1594 (bmo#1074280)
+    Bad casting from the BasicThebesLayer to BasicContainerLayer
+- readded mozilla-pkgconfig.patch
+
+-------------------------------------------------------------------
+Thu Nov 13 08:37:50 UTC 2014 - guillaume@opensuse.org
+
+- Fix %arm build (fix CFLAGS)
+- Disable elf-hack for aarch64
+
+-------------------------------------------------------------------
+Sat Nov  1 13:08:20 UTC 2014 - wr@rosenauer.org
+
+- update to 31.2.0
+- synchronize patchset with firefox-esr
+- removed add-plugins.sh in favor of using a pref to use myspell
+
 -------------------------------------------------------------------
 Wed Sep 18 14:39:34 UTC 2013 - wr@rosenauer.org
 
--- a/xulrunner/xulrunner.spec	Sat Jul 18 14:48:41 2015 +0200
+++ b/xulrunner/xulrunner.spec	Sat Aug 22 09:13:27 2015 +0200
@@ -1,8 +1,8 @@
 #
 # spec file for package xulrunner
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
-#               2006-2013 Wolfgang Rosenauer
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+#               2006-2015 Wolfgang Rosenauer
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,11 +16,29 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-%if %suse_version > 1220
-%define gstreamer_ver 0.10
+
+%define version_internal 38.2.0
+%define apiversion 38
+%define uaweight 3820000
+%define releasedate 2015080900
+%define shared_js 0
+%define has_system_nspr  1
+%define has_system_nss   1
+%define has_system_cairo 0
+%define localize         0
+%ifarch aarch64 ppc ppc64 ppc64le s390 s390x ia64 %arm
+%define crashreporter    0
+%else
+%define crashreporter    0
+%endif
+%if %suse_version > 1210
+%if %suse_version > 1310
+%define gstreamer_ver 1.0
+%define gstreamer 1
 %else
 %define gstreamer_ver 0.10
 %endif
+%endif
 
 Name:           xulrunner
 BuildRequires:  Mesa-devel
@@ -33,7 +51,9 @@
 BuildRequires:  libgnomeui-devel
 BuildRequires:  libidl-devel
 BuildRequires:  libnotify-devel
-BuildRequires:  nss-shared-helper-devel
+%if %suse_version > 1140
+BuildRequires:  makeinfo
+%endif
 BuildRequires:  pkg-config
 BuildRequires:  python
 BuildRequires:  startup-notification-devel
@@ -47,19 +67,25 @@
 %else
 BuildRequires:  wireless-tools
 %endif
-BuildRequires:  mozilla-nspr-devel >= 4.10
-BuildRequires:  mozilla-nss-devel >= 3.15.1
+BuildRequires:  mozilla-nspr-devel >= 4.10.8
+BuildRequires:  mozilla-nss-devel >= 3.19.2
+BuildRequires:  pkgconfig(libpulse)
 %if %suse_version > 1210
 BuildRequires:  pkgconfig(gstreamer-%gstreamer_ver)
 BuildRequires:  pkgconfig(gstreamer-app-%gstreamer_ver)
 BuildRequires:  pkgconfig(gstreamer-plugins-base-%gstreamer_ver)
+%if 0%{?gstreamer} == 1
+Requires:       libgstreamer-1_0-0
+Recommends:     gstreamer-fluendo-mp3
+Recommends:     gstreamer-plugin-libav
+%else
+Requires:       libgstreamer-0_10-0
+Recommends:     gstreamer-0_10-fluendo-mp3
+Recommends:     gstreamer-0_10-plugins-ffmpeg
 %endif
-Version:        24.0
+%endif
+Version:        %{version_internal}
 Release:        0
-%define         releasedate 2013091000
-%define         version_internal 24.0
-%define         apiversion 24
-%define         uaweight 2400000
 Summary:        Mozilla Runtime Environment
 License:        MPL-2.0
 Group:          Productivity/Other
@@ -68,43 +94,40 @@
 %ifarch %ix86
 Provides:       xulrunner-32bit = %{version}-%{release}
 %endif
-Source:         xulrunner-%{version}-source.tar.bz2
-Source1:        l10n-%{version}.tar.bz2
+Source:         xulrunner-%{version}-source.tar.xz
+Source1:        l10n-%{version}.tar.xz
 Source2:        find-external-requires.sh
 Source3:        %{name}-rpmlintrc
 Source4:        xulrunner-openSUSE-prefs.js
-Source5:        add-plugins.sh.in
+Source5:        spellcheck.js
 Source6:        create-tar.sh
 Source7:        baselibs.conf
 Source8:        source-stamp.txt
-Source9:        compare-locales.tar.bz2
+Source9:        compare-locales.tar.xz
 Patch1:         toolkit-download-folder.patch
 Patch2:         mozilla-pkgconfig.patch
-Patch3:         mozilla-idldir.patch
-Patch4:         mozilla-nongnome-proxies.patch
-Patch5:         mozilla-prefer_plugin_pref.patch
-Patch6:         mozilla-language.patch
-Patch7:         mozilla-ntlm-full-path.patch
-Patch9:         mozilla-sle11.patch
-Patch10:        mozilla-ppc.patch
-Patch11:        mozilla-libproxy-compat.patch
+Patch3:         mozilla-nongnome-proxies.patch
+Patch4:         mozilla-prefer_plugin_pref.patch
+Patch5:         mozilla-shared-nss-db.patch
+Patch6:         mozilla-preferences.patch
+Patch7:         mozilla-language.patch
+Patch8:         mozilla-ntlm-full-path.patch
+Patch9:         mozilla-repo.patch
+Patch10:        mozilla-icu-strncat.patch
+Patch11:        mozilla-arm-disable-edsp.patch
+Patch12:        mozilla-idldir.patch
+Patch13:        mozilla-skia-be-le.patch
+Patch14:        mozilla-bmo1005535.patch
+Patch15:        mozilla-add-glibcxx_use_cxx11_abi.patch
+Patch16:        mozilla-arm64-libjpeg-turbo.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+%if 0%{?shared_js} == 1
 Requires:       mozilla-js = %{version}
+%endif
 Requires(post):  update-alternatives coreutils
 Requires(preun): update-alternatives coreutils
 Provides:       xulrunner-esr = %{version}
 Obsoletes:      xulrunner-esr < 24.0
-### build configuration ###
-%define has_system_nspr  1
-%define has_system_nss   1
-%define has_system_cairo 0
-%define localize 1
-%ifarch ppc ppc64 s390 s390x ia64 %arm
-%define crashreporter    0
-%else
-%define crashreporter    1
-%endif
-### configuration end ###
 %define _use_internal_dependency_generator 0
 %define __find_requires sh %{SOURCE2}
 %global provfind sh -c "grep -Ev 'mozsqlite3|dbusservice|unixprint' | %__find_provides"
@@ -121,7 +144,7 @@
 multiple XUL+XPCOM applications that are as rich as Firefox and
 Thunderbird.
 
-
+%if 0%{?shared_js} == 1
 %package -n mozilla-js
 Summary:        Mozilla JS engine
 Group:          Productivity/Other
@@ -131,7 +154,7 @@
 of web pages and server applications worldwide. Netscape's JavaScript is a
 superset of the ECMA-262 Edition 3 (ECMAScript) standard scripting language,
 with only mild differences from the published standard.
-
+%endif
 
 %package devel
 Summary:        XULRunner/Gecko SDK
@@ -148,7 +171,6 @@
 Software Development Kit to embed XUL or Gecko into other applications.
 
 %if %localize
-
 %package translations-common
 Summary:        Common translations for XULRunner
 Group:          System/Localization
@@ -181,7 +203,6 @@
 %endif
 
 %if %crashreporter
-
 %package buildsymbols
 Summary:        Breakpad buildsymbols for %{name}
 Group:          Development/Debug
@@ -200,11 +221,15 @@
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
-%if %suse_version < 1120
+%patch8 -p1
 %patch9 -p1
-%endif
 %patch10 -p1
 %patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
 
 %build
 # no need to add build time to binaries
@@ -214,21 +239,30 @@
 find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
 #
 MOZ_APP_DIR=%{_libdir}/xulrunner-%{version_internal}
+source %{SOURCE8}
 export MOZ_BUILD_DATE=%{releasedate}
-export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"
+export MOZ_SOURCE_STAMP=$REV
+export SOURCE_REPO=$REPO
+export source_repo=$REPO
+export MOZ_SOURCE_REPO=$REPO
+export MOZILLA_OFFICIAL=1
+export BUILD_OFFICIAL=1
+export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
+%ifarch %ix86
+export CFLAGS="${CFLAGS} -Os"
+%endif
 %ifarch ppc64
 export CFLAGS="$CFLAGS -mminimal-toc"
 %endif
 export LDFLAGS=" -Wl,-rpath -Wl,${MOZ_APP_DIR}"
 %ifarch %arm
 # debug symbols require too much memory during build
-export CFLAGS="${CFLAGS/-g/}"
+export CFLAGS="${CFLAGS/-g / }"
+# Limit RAM usage during link
 LDFLAGS+="-Wl,--reduce-memory-overheads -Wl,--no-keep-memory"
 %endif
 export CXXFLAGS="$CFLAGS"
 export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
-export MOZILLA_OFFICIAL=1
-export BUILD_OFFICIAL=1
 export MOZ_MILESTONE_RELEASE=1
 #
 cat << EOF > $MOZCONFIG
@@ -243,7 +277,16 @@
 ac_add_options --sysconfdir=%{_sysconfdir}
 ac_add_options --mandir=%{_mandir}
 ac_add_options --includedir=%{_includedir}
-ac_add_options --enable-optimize
+ac_add_options --enable-release
+ac_add_options --enable-stdcxx-compat
+%ifarch %ix86
+%if 0%{?suse_version} > 1230
+ac_add_options --disable-optimize
+%endif
+%endif
+%ifnarch aarch64 ppc ppc64 ppc64le
+ac_add_options --enable-elf-hack
+%endif
 ac_add_options --enable-extensions=default
 #ac_add_options --with-system-jpeg # mozilla uses internal libjpeg-turbo now
 #ac_add_options --with-system-png  # no APNG support
@@ -256,62 +299,54 @@
 ac_add_options --disable-javaxpcom
 ac_add_options --enable-system-hunspell
 ac_add_options --enable-startup-notification
+%if 0%{?shared_js} == 1
 ac_add_options --enable-shared-js
+%endif
 #ac_add_options --enable-debug
-EOF
 %if %suse_version > 1130
-cat << EOF >> $MOZCONFIG
 ac_add_options --disable-gnomevfs
 ac_add_options --enable-gio
-EOF
+%endif
+%if 0%{?gstreamer} == 1
+ac_add_options --enable-gstreamer=1.0
 %endif
 %if %suse_version < 1220
-cat << EOF >> $MOZCONFIG
 ac_add_options --disable-gstreamer
-EOF
 %endif
 %if %has_system_nspr
-cat << EOF >> $MOZCONFIG
 ac_add_options --with-system-nspr
-EOF
 %endif
 %if %has_system_nss
-cat << EOF >> $MOZCONFIG
 ac_add_options --with-system-nss
-EOF
 %endif
 %if %has_system_cairo
-cat << EOF >> $MOZCONFIG
 ac_add_options --enable-system-cairo
-EOF
 %endif
 %if %suse_version > 1110
-cat << EOF >> $MOZCONFIG
 ac_add_options --enable-libproxy
-EOF
 %endif
 %if ! %crashreporter
-cat << EOF >> $MOZCONFIG
 ac_add_options --disable-crashreporter
-EOF
 %endif
 # ARM
 %ifarch %arm
-cat << EOF >> $MOZCONFIG
 ac_add_options --disable-neon
-EOF
 %endif
 %ifnarch %ix86 x86_64
-cat << EOF >> $MOZCONFIG
 ac_add_options --disable-webrtc
+%endif
+# try to use OpenGL-ES on ARM
+%ifarch %arm
+ac_add_options --with-gl-provider=EGL
+%endif
 EOF
-%endif
 make -f client.mk build
 
 %install
 cd ../obj
 # preferences (to package in omni.jar)
 cp %{SOURCE4} dist/bin/defaults/pref/all-openSUSE.js
+cp %{SOURCE5} dist/bin/defaults/pref/
 %makeinstall STRIP=/bin/true
 # xpt.py is not executable
 chmod a+x $RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/bin/*.py
@@ -325,8 +360,10 @@
 mkdir -p $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/extensions
 # fixing SDK dynamic libs (symlink instead of copy)
 rm $RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/lib/*.so
+%if 0%{?shared_js} == 1
 ln -sf ../../../xulrunner-%{version_internal}/libmozjs.so \
        $RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/lib/
+%endif
 ln -sf ../../../xulrunner-%{version_internal}/libxul.so \
        $RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/lib/
 # include basic buildenv for xulapps to use
@@ -340,10 +377,6 @@
     mozilla/testing mozilla/toolkit/mozapps/installer mozilla/probes mozilla/memory \
     mozilla/toolkit/xre mozilla/nsprpub/config mozilla/tools mozilla/xpcom/build
 popd
-# install add-plugins.sh
-sed "s:%%PROGDIR:%{_libdir}/xulrunner-%{version_internal}:g" \
-  %{SOURCE5} > $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh
-chmod 755 $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh
 # ghosts
 touch $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/global.reginfo
 # install additional locales
@@ -394,6 +427,8 @@
 rm -f $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/dictionaries/en-US*
 rm -f $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/nspr-config
 rm -f $RPM_BUILD_ROOT%{_libdir}/pkgconfig/mozilla-plugin.pc
+rm -rf $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/gmp-fake/
+rm -rf $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/gmp-fakeopenh264/
 # fdupes
 %fdupes $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version_internal}/
 %fdupes $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/
@@ -419,7 +454,6 @@
 %post
 /usr/sbin/update-alternatives --install %{_bindir}/xulrunner \
   xulrunner %{_libdir}/xulrunner-%{apiversion}/xulrunner %{uaweight} || :
-%{_libdir}/xulrunner-%{apiversion}/add-plugins.sh > /dev/null 2>&1
 exit 0
 
 %posttrans
@@ -428,8 +462,6 @@
 test -d %{_libdir}/xulrunner-%{ga_version} && rm -rf %{_libdir}/xulrunner-%{ga_version}
 ln -sf xulrunner-%{version_internal} %{_libdir}/xulrunner-%{ga_version}
 %endif
-[ -e %{_libdir}/xulrunner-%{version_internal}/add-plugins.sh ] && \
-  %{_libdir}/xulrunner-%{version_internal}/add-plugins.sh > /dev/null 2>&1
 exit 0
 
 %preun
@@ -438,15 +470,6 @@
   # but that's problematic for updates w/o raising the version number
   /usr/sbin/update-alternatives --remove xulrunner %{_libdir}/xulrunner-%{apiversion}/xulrunner
 fi
-rm -f %{_libdir}/xulrunner-%{version_internal}/dictionaries/*
-exit 0
-
-%triggerin -- myspell-dictionary
-%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh > /dev/null 2>&1
-exit 0
-
-%triggerpostun -- myspell-dictionary
-%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh > /dev/null 2>&1
 exit 0
 
 %files
@@ -458,11 +481,12 @@
 %{_libdir}/xulrunner-%{version_internal}/chrome/icons/
 %{_libdir}/xulrunner-%{version_internal}/components/
 %{_libdir}/xulrunner-%{version_internal}/*.so
+%{_libdir}/xulrunner-%{version_internal}/gmp-clearkey/
+%if 0%{?shared_js} == 1
 %exclude %{_libdir}/xulrunner-%{version_internal}/libmozjs.so
-%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh
+%endif
 %{_libdir}/xulrunner-%{version_internal}/chrome.manifest
 %{_libdir}/xulrunner-%{version_internal}/dependentlibs.list
-%{_libdir}/xulrunner-%{version_internal}/mozilla-xremote-client
 %{_libdir}/xulrunner-%{version_internal}/plugin-container
 %{_libdir}/xulrunner-%{version_internal}/xulrunner
 %{_libdir}/xulrunner-%{version_internal}/xulrunner-stub
@@ -481,17 +505,21 @@
 %ghost %{_bindir}/xulrunner
 %endif
 # API symlink (already in mozilla-js)
-#%{_libdir}/xulrunner-%{apiversion}
+%if 0%{?shared_js} == 0
+%{_libdir}/xulrunner-%{apiversion}
+%endif
 # compat symlinks
 %if 0%{?ga_version:1}
 %ghost %{_libdir}/xulrunner-%{ga_version}
 %endif
 
+%if 0%{?shared_js} == 1
 %files -n mozilla-js
 %defattr(-,root,root)
 %dir %{_libdir}/xulrunner-%{version_internal}/
 %{_libdir}/xulrunner-%{apiversion}
 %{_libdir}/xulrunner-%{version_internal}/libmozjs.so
+%endif
 
 %files devel
 %defattr(-,root,root)
@@ -503,7 +531,6 @@
 %{_datadir}/xulrunner-%{version_internal}/
 
 %if %localize
-
 %files translations-common -f %{_tmppath}/translations.common
 %defattr(-,root,root)
 %dir %{_libdir}/xulrunner-%{version_internal}/
@@ -516,7 +543,6 @@
 %endif
 
 %if %crashreporter
-
 %files buildsymbols
 %defattr(-,root,root)
 %{_datadir}/mozilla/