diff --git a/.firefox.metadata b/.firefox.metadata
new file mode 100644
index 0000000..34467d5
--- /dev/null
+++ b/.firefox.metadata
@@ -0,0 +1,6 @@
+511960dd78451a06c9df76509635aeec05b2051a SOURCES/Python-2.7.8.tgz
+467bdb846d67c01aed9e521fe0ef280065a50c3c SOURCES/devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm
+4941f498f8ec838b1bdc70fc8f13c8fde379ddce SOURCES/firefox-52.5.0esr.source.tar.xz
+0ef9b869a366758141ec6f75cdd6633e137e8386 SOURCES/firefox-langpacks-52.5.0esr-20171109.tar.xz
+e5ba84786af5d0e0e23b1a9112c76821ef23306c SOURCES/gcc48-4.8.2-16.el5.src.rpm
+77fd30f7ebc12a629a31c1e252cec06af55a71fe SOURCES/yasm-1.2.0-3.el5.src.rpm
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..eb22979
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+SOURCES/Python-2.7.8.tgz
+SOURCES/devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm
+SOURCES/firefox-52.5.0esr.source.tar.xz
+SOURCES/firefox-langpacks-52.5.0esr-20171109.tar.xz
+SOURCES/gcc48-4.8.2-16.el5.src.rpm
+SOURCES/yasm-1.2.0-3.el5.src.rpm
diff --git a/README.md b/README.md
deleted file mode 100644
index 0e7897f..0000000
--- a/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-The master branch has no content
- 
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
- 
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/build-icu-big-endian.patch b/SOURCES/build-icu-big-endian.patch
new file mode 100644
index 0000000..68fbea1
--- /dev/null
+++ b/SOURCES/build-icu-big-endian.patch
@@ -0,0 +1,12 @@
+diff -up mozilla-aurora/build/autoconf/icu.m4.icu-endian mozilla-aurora/build/autoconf/icu.m4
+--- mozilla-aurora/build/autoconf/icu.m4.icu-endian	2016-12-09 09:11:01.227317790 +0100
++++ mozilla-aurora/build/autoconf/icu.m4	2016-12-09 09:18:40.608712247 +0100
+@@ -78,7 +78,7 @@ if test -n "$USE_ICU"; then
+     # TODO: the l is actually endian-dependent
+     # We could make this set as 'l' or 'b' for little or big, respectively,
+     # but we'd need to check in a big-endian version of the file.
+-    ICU_DATA_FILE="icudt${version}l.dat"
++    ICU_DATA_FILE="icudt${version}b.dat"
+ 
+     dnl We won't build ICU data as a separate file when building
+     dnl JS standalone so that embedders don't have to deal with it.
diff --git a/SOURCES/build-missing-getrandom.patch b/SOURCES/build-missing-getrandom.patch
new file mode 100644
index 0000000..3a4adde
--- /dev/null
+++ b/SOURCES/build-missing-getrandom.patch
@@ -0,0 +1,21 @@
+diff -up firefox-52.0b8/js/src/jsmath.cpp.missing-getrandom firefox-52.0b8/js/src/jsmath.cpp
+--- firefox-52.0b8/js/src/jsmath.cpp.missing-getrandom	2017-02-22 08:09:21.764353407 +0100
++++ firefox-52.0b8/js/src/jsmath.cpp	2017-02-22 08:10:36.939330775 +0100
+@@ -78,7 +78,7 @@
+ static_assert(GETRANDOM_NR == SYS_getrandom,
+               "GETRANDOM_NR should match the actual SYS_getrandom value");
+ #  endif
+-# else
++# elif defined(GETRANDOM_NR)
+ #  define SYS_getrandom GETRANDOM_NR
+ # endif
+ 
+@@ -721,7 +721,7 @@ js::GenerateRandomSeed()
+     seed = (static_cast<uint64_t>(arc4random()) << 32) | arc4random();
+ #elif defined(XP_UNIX)
+     bool done = false;
+-# if defined(__linux__)
++# if defined(__linux__) && defined(SYS_getrandom)
+     // Try the relatively new getrandom syscall first. It's the preferred way
+     // on Linux as /dev/urandom may not work inside chroots and is harder to
+     // sandbox (see bug 995069).
diff --git a/SOURCES/build-nss-prbool.patch b/SOURCES/build-nss-prbool.patch
new file mode 100644
index 0000000..491b2e1
--- /dev/null
+++ b/SOURCES/build-nss-prbool.patch
@@ -0,0 +1,22 @@
+diff -up firefox-52.0esr/security/certverifier/CTLogVerifier.cpp.nss-prbool firefox-52.0esr/security/certverifier/CTLogVerifier.cpp
+--- firefox-52.0esr/security/certverifier/CTLogVerifier.cpp.nss-prbool	2017-02-28 02:56:03.000000000 +0100
++++ firefox-52.0esr/security/certverifier/CTLogVerifier.cpp	2017-03-01 11:34:15.623577628 +0100
+@@ -7,6 +7,7 @@
+ #include "CTLogVerifier.h"
+ 
+ #include "CTSerialization.h"
++#include "prtypes.h"
+ #include "hasht.h"
+ #include "mozilla/ArrayUtils.h"
+ #include "mozilla/Assertions.h"
+diff -up firefox-52.0esr/security/manager/ssl/nsSSLStatus.cpp.nss-prbool firefox-52.0esr/security/manager/ssl/nsSSLStatus.cpp
+--- firefox-52.0esr/security/manager/ssl/nsSSLStatus.cpp.nss-prbool	2017-03-01 12:09:16.649945106 +0100
++++ firefox-52.0esr/security/manager/ssl/nsSSLStatus.cpp	2017-03-01 12:09:35.749939355 +0100
+@@ -4,6 +4,7 @@
+  * 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 "prtypes.h"
+ #include "mozilla/Casting.h"
+ #include "nsSSLStatus.h"
+ #include "nsIClassInfoImpl.h"
diff --git a/SOURCES/build-nss-version.patch b/SOURCES/build-nss-version.patch
new file mode 100644
index 0000000..42f375d
--- /dev/null
+++ b/SOURCES/build-nss-version.patch
@@ -0,0 +1,12 @@
+diff -up firefox-52.0esr/old-configure.in.nss-ver firefox-52.0esr/old-configure.in
+--- firefox-52.0esr/old-configure.in.nss-ver	2017-03-01 10:12:54.668047060 +0100
++++ firefox-52.0esr/old-configure.in	2017-03-01 10:13:01.733044933 +0100
+@@ -2123,7 +2123,7 @@ MOZ_ARG_WITH_BOOL(system-nss,
+     _USE_SYSTEM_NSS=1 )
+ 
+ if test -n "$_USE_SYSTEM_NSS"; then
+-    AM_PATH_NSS(3.28.6, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
++    AM_PATH_NSS(3.28.4, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
+ fi
+ 
+ if test -n "$MOZ_SYSTEM_NSS"; then
diff --git a/SOURCES/build-s390-atomic.patch b/SOURCES/build-s390-atomic.patch
new file mode 100644
index 0000000..3624b98
--- /dev/null
+++ b/SOURCES/build-s390-atomic.patch
@@ -0,0 +1,13 @@
+diff -up mozilla-aurora/js/src/jit/AtomicOperations.h.s390-atomic mozilla-aurora/js/src/jit/AtomicOperations.h
+--- mozilla-aurora/js/src/jit/AtomicOperations.h.s390-atomic	2016-11-15 12:22:38.000000000 +0100
++++ mozilla-aurora/js/src/jit/AtomicOperations.h	2016-12-08 15:36:11.792439891 +0100
+@@ -341,6 +341,9 @@ AtomicOperations::isLockfree(int32_t siz
+ #  include "jit/none/AtomicOperations-ppc.h"
+ # elif defined(__aarch64__)
+ #  include "jit/arm64/AtomicOperations-arm64.h"
++# elif defined(__s390__)
++   // Also works with ppc atomic operations
++#  include "jit/none/AtomicOperations-ppc.h"
+ # else
+ #  include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
+ # endif
diff --git a/SOURCES/build-s390-missing-include.patch b/SOURCES/build-s390-missing-include.patch
new file mode 100644
index 0000000..59157e6
--- /dev/null
+++ b/SOURCES/build-s390-missing-include.patch
@@ -0,0 +1,11 @@
+diff -up firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h.s390-build-includes-fix firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h
+--- firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h.s390-build-includes-fix	2017-04-12 09:31:39.419402551 +0200
++++ firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h	2017-04-12 09:31:53.392340589 +0200
+@@ -11,6 +11,7 @@
+ #include "mozilla/ErrorResult.h"
+ #include "mozilla/dom/BindingDeclarations.h"
+ #include "nsCycleCollectionParticipant.h"
++#include "mozilla/dom/FileSystemDirectoryEntry.h"
+ #include "nsWrapperCache.h"
+ 
+ namespace mozilla {
diff --git a/SOURCES/find-external-requires b/SOURCES/find-external-requires
new file mode 100755
index 0000000..d79db1d
--- /dev/null
+++ b/SOURCES/find-external-requires
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# Finds requirements provided outside of the current file set
+
+filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
+
+provides=`echo $filelist | /usr/lib/rpm/find-provides`
+
+{
+for f in $filelist ; do
+	echo $f | /usr/lib/rpm/find-requires | while read req ; do
+		found=0
+		for p in $provides ; do
+			if [ "$req" = "$p" ]; then
+				found=1
+			fi
+		done
+		if [ "$found" = "0" ]; then
+			echo $req
+		fi
+	done
+done
+} | sort -u
\ No newline at end of file
diff --git a/SOURCES/firefox-default.patch b/SOURCES/firefox-default.patch
new file mode 100644
index 0000000..641337b
--- /dev/null
+++ b/SOURCES/firefox-default.patch
@@ -0,0 +1,97 @@
+diff -up mozilla-aurora/browser/components/preferences/in-content/advanced.xul.default mozilla-aurora/browser/components/preferences/in-content/advanced.xul
+--- mozilla-aurora/browser/components/preferences/in-content/advanced.xul.default	2016-11-15 12:21:37.000000000 +0100
++++ mozilla-aurora/browser/components/preferences/in-content/advanced.xul	2016-12-08 10:51:04.049353573 +0100
+@@ -75,7 +75,7 @@
+               type="bool"/>
+ 
+  <!-- Update tab -->
+-#ifdef MOZ_UPDATER
++#ifdef 0
+   <preference id="app.update.enabled"
+               name="app.update.enabled"
+               type="bool"/>
+@@ -116,7 +116,7 @@
+               type="int"/>
+ </preferences>
+ 
+-#ifdef HAVE_SHELL_SERVICE
++#ifdef 0
+   <stringbundle id="bundleShell" src="chrome://browser/locale/shellservice.properties"/>
+   <stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
+ #endif
+diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp
+--- mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default	2016-11-15 12:21:39.000000000 +0100
++++ mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp	2016-12-08 10:51:04.049353573 +0100
+@@ -150,8 +150,8 @@ nsGNOMEShellService::GetAppPathFromLaunc
+ bool
+ nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const
+ {
++  nsAutoCString appName;
+ 
+-  gchar *commandPath;
+   if (mUseLocaleFilenames) {
+     gchar *nativePath = g_filename_from_utf8(aKeyValue, -1,
+                                              nullptr, nullptr, nullptr);
+@@ -160,17 +160,13 @@ nsGNOMEShellService::KeyMatchesAppName(c
+       return false;
+     }
+ 
+-    commandPath = g_find_program_in_path(nativePath);
++    appName.Assign(nativePath);
+     g_free(nativePath);
+   } else {
+-    commandPath = g_find_program_in_path(aKeyValue);
++    appName.Assign(aKeyValue);
+   }
+ 
+-  if (!commandPath)
+-    return false;
+-
+-  bool matches = mAppPath.Equals(commandPath);
+-  g_free(commandPath);
++  bool matches = mAppPath.Equals(appName);
+   return matches;
+ }
+ 
+@@ -253,16 +249,7 @@ nsGNOMEShellService::SetDefaultBrowser(b
+   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+   nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
+   if (gconf) {
+-    nsAutoCString appKeyValue;
+-    if (mAppIsInPath) {
+-      // mAppPath is in the users path, so use only the basename as the launcher
+-      gchar *tmp = g_path_get_basename(mAppPath.get());
+-      appKeyValue = tmp;
+-      g_free(tmp);
+-    } else {
+-      appKeyValue = mAppPath;
+-    }
+-
++    nsAutoCString appKeyValue(MOZ_APP_NAME);
+     appKeyValue.AppendLiteral(" %s");
+ 
+     for (unsigned int i = 0; i < ArrayLength(appProtocols); ++i) {
+diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.h.default mozilla-aurora/browser/components/shell/nsGNOMEShellService.h
+--- mozilla-aurora/browser/components/shell/nsGNOMEShellService.h.default	2016-12-08 10:51:04.049353573 +0100
++++ mozilla-aurora/browser/components/shell/nsGNOMEShellService.h	2016-12-08 10:55:53.754263671 +0100
+@@ -13,7 +13,7 @@
+ class nsGNOMEShellService final : public nsIGNOMEShellService
+ {
+ public:
+-  nsGNOMEShellService() : mAppIsInPath(false) { }
++  nsGNOMEShellService() : mAppIsInPath(true) { }
+ 
+   NS_DECL_ISUPPORTS
+   NS_DECL_NSISHELLSERVICE
+diff -up mozilla-aurora/browser/components/shell/ShellService.jsm.default mozilla-aurora/browser/components/shell/ShellService.jsm
+--- mozilla-aurora/browser/components/shell/ShellService.jsm.default	2016-12-08 10:56:51.602245720 +0100
++++ mozilla-aurora/browser/components/shell/ShellService.jsm	2016-12-08 10:56:58.213243668 +0100
+@@ -48,7 +48,7 @@ let ShellServiceInternal = {
+    * up and "browser.shell.checkDefaultBrowser" is true, otherwise it
+    * is false.
+    */
+-  _checkedThisSession: false,
++  _checkedThisSession: true,
+   get shouldCheckDefaultBrowser() {
+     // If we've already checked, the browser has been started and this is a
+     // new window open, and we don't want to check again.
diff --git a/SOURCES/firefox-enable-addons.patch b/SOURCES/firefox-enable-addons.patch
new file mode 100644
index 0000000..c1c82bb
--- /dev/null
+++ b/SOURCES/firefox-enable-addons.patch
@@ -0,0 +1,13 @@
+diff -up mozilla-aurora/browser/app/profile/firefox.js.addons mozilla-aurora/browser/app/profile/firefox.js
+--- mozilla-aurora/browser/app/profile/firefox.js.addons	2015-03-12 13:21:14.000000000 +0100
++++ mozilla-aurora/browser/app/profile/firefox.js	2015-03-12 14:25:39.974909169 +0100
+@@ -65,7 +65,8 @@ pref("extensions.hotfix.certs.1.sha1Fing
+ 
+ // Disable add-ons that are not installed by the user in all scopes by default.
+ // See the SCOPE constants in AddonManager.jsm for values to use here.
+-pref("extensions.autoDisableScopes", 15);
++pref("extensions.autoDisableScopes", 0);
++pref("extensions.showMismatchUI", false);
+ 
+ // Dictionary download preference
+ pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/");
diff --git a/SOURCES/firefox-enable-plugins.patch b/SOURCES/firefox-enable-plugins.patch
new file mode 100644
index 0000000..a1ee8c5
--- /dev/null
+++ b/SOURCES/firefox-enable-plugins.patch
@@ -0,0 +1,21 @@
+diff -up firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js.plugins firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js
+--- firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js.plugins	2014-09-11 13:47:45.000000000 +0200
++++ firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js	2014-09-11 14:42:26.036810267 +0200
+@@ -657,7 +657,7 @@ pref("plugins.click_to_play", true);
+ 
+ pref("plugins.hideMissingPluginsNotification", false);
+ 
+-pref("plugin.default.state", 1);
++pref("plugin.default.state", 2);
+ 
+ // Plugins bundled in XPIs are enabled by default.
+ pref("plugin.defaultXpi.state", 2);
+@@ -665,7 +665,7 @@ pref("plugin.defaultXpi.state", 2);
+ // Flash is enabled by default, and Java is click-to-activate by default on
+ // all channels.
+ pref("plugin.state.flash", 2);
+-pref("plugin.state.java", 1);
++pref("plugin.state.java", 2);
+ 
+ // Whitelist Requests
+ 
diff --git a/SOURCES/firefox-install-dir.patch b/SOURCES/firefox-install-dir.patch
new file mode 100644
index 0000000..c962fa5
--- /dev/null
+++ b/SOURCES/firefox-install-dir.patch
@@ -0,0 +1,12 @@
+diff -up mozilla-aurora/config/baseconfig.mk.orig mozilla-aurora/config/baseconfig.mk
+--- mozilla-aurora/config/baseconfig.mk.orig	2014-05-06 13:17:17.000000000 +0200
++++ mozilla-aurora/config/baseconfig.mk	2014-05-27 17:13:05.215503107 +0200
+@@ -4,7 +4,7 @@
+ # whether a normal build is happening or whether the check is running.
+ includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+ idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
++installdir = $(libdir)/$(MOZ_APP_NAME)
+ sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
+ ifndef TOP_DIST
+ TOP_DIST = dist
diff --git a/SOURCES/firefox-mozconfig b/SOURCES/firefox-mozconfig
new file mode 100755
index 0000000..ff2a6a4
--- /dev/null
+++ b/SOURCES/firefox-mozconfig
@@ -0,0 +1,28 @@
+. $topsrcdir/browser/config/mozconfig
+ac_add_options --disable-crashreporter
+ac_add_options --disable-libjpeg-turbo
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-strip
+ac_add_options --disable-tests
+ac_add_options --disable-updater
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --enable-extensions=default
+ac_add_options --enable-release
+ac_add_options --enable-safe-browsing
+ac_add_options --enable-startup-notification
+ac_add_options --libdir="$LIBDIR"
+ac_add_options --prefix="$PREFIX"
+ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key
+ac_add_options --without-system-libvpx
+ac_add_options --with-pthreads
+ac_add_options --with-system-zlib
+ac_add_options --enable-system-hunspell
+ac_add_options --with-system-jpeg
+export BUILD_OFFICIAL=1
+export CFLAGS="$CFLAGS -gdwarf-2"
+export CXXFLAGS="$CXXFLAGS -gdwarf-2"
+export MOZILLA_OFFICIAL=1
+
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
diff --git a/SOURCES/firefox-ppc64le.patch b/SOURCES/firefox-ppc64le.patch
new file mode 100644
index 0000000..45fe1bc
--- /dev/null
+++ b/SOURCES/firefox-ppc64le.patch
@@ -0,0 +1,28 @@
+diff -up firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h.ppc64le firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h
+--- firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h.ppc64le	2015-02-20 03:01:40.000000000 +0100
++++ firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h	2015-03-06 15:52:58.298050379 +0100
+@@ -90,6 +90,13 @@
+ #endif
+ 
+ //////////////////////////////////////////////////////////////////////
++#if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN)
++    #if defined(__BIG_ENDIAN__)
++         #define SK_CPU_BENDIAN
++    #elif defined(__LITTLE_ENDIAN__)
++        #define SK_CPU_LENDIAN
++    #endif
++#endif
+ 
+ #if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN)
+     #if defined(__sparc) || defined(__sparc__) || \
+diff -up firefox-36.0/mozilla-release/js/src/jsdtoa.cpp.ppc64le firefox-36.0/mozilla-release/js/src/jsdtoa.cpp
+--- firefox-36.0/mozilla-release/js/src/jsdtoa.cpp.ppc64le	2015-02-20 03:01:49.000000000 +0100
++++ firefox-36.0/mozilla-release/js/src/jsdtoa.cpp	2015-03-06 15:54:38.348048226 +0100
+@@ -52,6 +52,7 @@ static inline void dtoa_free(void* p) {
+ #define MALLOC dtoa_malloc
+ #define FREE dtoa_free
+ #include "dtoa.c"
++#undef CONST
+ 
+ /* Mapping of JSDToStrMode -> js_dtoa mode */
+ static const uint8_t dtoaModes[] = {
diff --git a/SOURCES/firefox-redhat-default-prefs.js b/SOURCES/firefox-redhat-default-prefs.js
new file mode 100644
index 0000000..02113f4
--- /dev/null
+++ b/SOURCES/firefox-redhat-default-prefs.js
@@ -0,0 +1,27 @@
+pref("app.update.auto",                     false);
+pref("app.update.enabled",                  false);
+pref("app.update.autoInstallEnabled",       false);
+pref("browser.backspace_action",            2);
+pref("browser.display.use_system_colors",   true);
+pref("browser.download.folderList",         1);
+pref("browser.link.open_external",          3);
+pref("browser.shell.checkDefaultBrowser",   false);
+pref("general.smoothScroll",                true);
+pref("general.useragent.vendor",            "Red Hat");
+pref("general.useragent.vendorSub",         "FIREFOX_RPM_VR");
+pref("intl.locale.matchOS",                 true);
+pref("storage.nfs_filesystem",              false);
+pref("dom.ipc.plugins.enabled.nswrapper*",  false);
+pref("network.manage-offline-status",       true);
+pref("toolkit.networkmanager.disable",      false);
+pref("browser.startup.homepage",            "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html");
+pref("toolkit.storage.synchronous",         0);
+pref("startup.homepage_override_url",       "http://www.redhat.com");
+pref("startup.homepage_welcome_url",        "http://www.redhat.com");
+pref("extensions.shownSelectionUI",         true);
+/* Workaround for rhbz#1110291 */
+pref("network.negotiate-auth.allow-insecure-ntlm-v1", true);
+/* Workaround for mozbz#1063315 */
+pref("security.use_mozillapkix_verification", false);
+pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
+pref("browser.tabs.remote.autostart",       false);
diff --git a/SOURCES/firefox.1 b/SOURCES/firefox.1
new file mode 100644
index 0000000..62bbe08
--- /dev/null
+++ b/SOURCES/firefox.1
@@ -0,0 +1,138 @@
+.TH FIREFOX 1 "August 07, 2001" firefox "Linux User's Manual"
+.SH NAME
+firefox \- a Web browser for X11 derived from the Mozilla browser
+
+.SH SYNOPSIS
+.B firefox
+[\fIOPTIONS\fR] [\fIURL\fR]
+
+.B firefox-bin
+[\fIOPTIONS\fR] [\fIURL\fR]
+
+.SH DESCRIPTION
+\fBMozilla Firefox\fR is an open-source web browser, designed for
+standards compliance, performance and portability.
+
+.SH USAGE
+\fBfirefox\fR is a simple shell script that will set up the
+environment for the actual executable, \fBfirefox-bin\fR.
+
+.SH OPTIONS
+A summary of the options supported by \fBfirefox\fR is included below.
+
+.SS "GTK options"
+\fB\-\-gdk-debug=\fR\fIFLAGS\fR
+Gdk debugging flags to set
+.TP
+\fB\-\-gdk-no-debug=\fR\fIFLAGS\fR
+Gdk debugging flags to unset
+.TP
+\fB\-\-gtk-debug=\fR\fIFLAGS\fR
+Gtk+ debugging flags to set
+.TP
+\fB\-\-gtk-no-debug=\fR\fIFLAGS\fR
+Gtk+ debugging flags to unset
+.TP
+\fB\-\-gtk-module=\fR\fIMODULE\fR
+Load an additional Gtk module
+
+.SS "X11 options"
+.TP
+.BI \-\-display= DISPLAY
+X display to use
+.TP
+.B \--sync
+Make X calls synchronous
+.TP
+.B \-\-no-xshm
+Don't use X shared memory extension
+.TP
+.BI \-\-xim-preedit= STYLE
+.TP
+.BI \-\-xim-status= STYLE
+.TP
+.B \-\-g-fatal-warnings
+Make all warnings fatal
+
+.SS "Firefox options"
+.TP
+.B \-h, \-help
+Show summary of options.
+.TP
+.B \-v, \-version
+Print \fB/usr/bin/firefox-bin\fR version.
+.TP
+\fB\-CreateProfile\fR \fIprofile\fR
+Create \fIprofile\fR.
+.TP
+\fB\-P\fR \fIprofile\fR
+Start with \fIprofile\fR.
+.TP
+.B \-ProfileManager
+Start with profile manager.
+.TP
+\fB\-remote\fR \fIcommand\fR
+Execute \fIcommand\fR in an already running Firefox process.  For more info,
+see: \fIhttp://www.mozilla.org/unix/remote.html\fR
+.TP
+.B \-jsconsole
+Start with Javascript Console
+.TP
+\fB\-chrome\fR \fIurl\fR
+Load the specified chrome.
+.TP
+\fB\-no\-remote\fR
+Don't connect to any other running instances of \fBfirefox\fR. Use this if you want to run \fBfirefox\fR
+in an entirely new process. By default, \fBfirefox\fR will delegate a command to an already running instance.
+.TP
+\fB\-safe\-mode\fR
+Start \fBfirefox\fR in safe-mode. This disables all third-party extensions, and may be necessary if
+you are having problems with an extension you installed.
+.TP
+\fB\-new\-tab\fR \fIurl\fR
+Open \fIurl\fR in a new tab.
+.TP
+\fB\-new\-window\fR \fIurl\fR
+Open \fIurl\fR in a new window.
+.TP
+\fB\-preferences\fR
+Open the preferences dialog.
+.TP
+\fB\-private\fR
+Start \fBfirefox\fR in private browsing mode.
+.TP
+\fB\-private\-toggle\fR
+Toggle private browsing mode.
+.TP
+\fB\-setDefaultBrowser\fR
+Set \fBfirefox\fR as the default web browser.
+.TP
+\fB\-search\fR \fIterm\fR
+Search for \fIterm\fR with your default search engine.
+.TP
+\fB\-migration\fR
+Start with migration wizard.
+.TP
+\fB\-new-instance\fR
+Open new instance, not a new window in running instance.
+
+.SH FILES
+\fI/usr/bin/firefox\fR - shell script wrapping
+\fBfirefox\fR
+.br
+\fI/usr/lib/mozilla/firefox-bin\fR - \fBfirefox\fR
+executable
+
+.SH VERSION
+1.0
+
+.SH BUGS
+To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR
+
+.SH "SEE ALSO"
+.BR mozilla(1)
+
+.SH AUTHORS
+.TP
+.B The Mozilla Organization
+.I http://www.mozilla.org/about.html
diff --git a/SOURCES/firefox.desktop b/SOURCES/firefox.desktop
new file mode 100644
index 0000000..bac6399
--- /dev/null
+++ b/SOURCES/firefox.desktop
@@ -0,0 +1,73 @@
+[Desktop Entry]
+Version=1.0
+Name=Firefox Web Browser
+Name[ca]=Navegador web Firefox
+Name[cs]=Firefox Webový prohlížeč
+Name[es]=Navegador Firefox
+Name[fa]=مرورگر اینترنتی Firefox
+Name[fi]=Firefox-selain
+Name[fr]=Navigateur web Firefox
+Name[hu]=Firefox webböngésző
+Name[it]=Web browser Firefox
+Name[ja]=Firefox Web ブラウザー
+Name[ko]=Firefox 웹 브라우저
+Name[nb]=Firefox Nettleser
+Name[nl]=Firefox webbrowser
+Name[nn]=Firefox Nettlesar
+Name[no]=Firefox Nettleser
+Name[pl]=Przeglądarka WWW Firefox
+Name[pt]=Firefox Navegador Web
+Name[pt_BR]=Navegador Firefox
+Name[ru]=Веб-браузер Firefox
+Name[sk]=Internetový prehliadač Firefox
+Name[sv]=Webbläsaren Firefox
+Name[zh_CN]=火狐浏览器
+Name[zh_TW]=Firefox 網頁瀏覽器
+GenericName=Web Browser
+GenericName[ca]=Navegador web
+GenericName[cs]=Webový prohlížeč
+GenericName[es]=Navegador web
+GenericName[fa]=مرورگر اینترنتی
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブ・ブラウザ
+GenericName[ko]=웹 브라우저
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[no]=Nettleser
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[sk]=Internetový prehliadač
+GenericName[sv]=Webbläsare
+Comment=Browse the Web
+Comment[ca]=Navegueu per el web
+Comment[cs]=Prohlížení stránek World Wide Webu
+Comment[de]=Im Internet surfen
+Comment[es]=Navegue por la web
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
+Comment[fi]=Selaa Internetin WWW-sivuja
+Comment[fr]=Navigue sur Internet
+Comment[hu]=A világháló böngészése
+Comment[it]=Esplora il web
+Comment[ja]=ウェブを閲覧します
+Comment[ko]=웹을 돌아 다닙니다
+Comment[nb]=Surf på nettet
+Comment[nl]=Verken het internet
+Comment[nn]=Surf på nettet
+Comment[no]=Surf på nettet
+Comment[pl]=Przeglądanie stron WWW 
+Comment[pt]=Navegue na Internet
+Comment[pt_BR]=Navegue na Internet
+Comment[sk]=Prehliadanie internetu
+Comment[sv]=Surfa på webben
+Exec=firefox %u
+Icon=firefox
+Terminal=false
+Type=Application
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
+StartupNotify=true
+Categories=Network;WebBrowser;
diff --git a/SOURCES/firefox.sh.in.rhel6 b/SOURCES/firefox.sh.in.rhel6
new file mode 100644
index 0000000..1eb2d25
--- /dev/null
+++ b/SOURCES/firefox.sh.in.rhel6
@@ -0,0 +1,256 @@
+#!/bin/bash
+#
+# The contents of this file are subject to the Netscape Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/NPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is mozilla.org code.
+#
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All
+# Rights Reserved.
+#
+# Contributor(s): 
+#
+
+## 
+## Usage:
+##
+## $ firefox
+##
+## This script is meant to run a mozilla program from the mozilla
+## rpm installation.
+##
+## The script will setup all the environment voodoo needed to make
+## mozilla work.
+
+cmdname=`basename $0`
+
+##
+## Variables
+##
+MOZ_ARCH=$(uname -m)
+case $MOZ_ARCH in
+	x86_64 | s390x | sparc64)
+		MOZ_LIB_DIR="/usr/lib64"
+		SECONDARY_LIB_DIR="/usr/lib"
+		;;
+	* )
+		MOZ_LIB_DIR="/usr/lib"
+		SECONDARY_LIB_DIR="/usr/lib64"
+		;;
+esac
+
+MOZ_FIREFOX_FILE="firefox"
+
+if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then
+    if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then
+	echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found"
+	if [ -d $SECONDARY_LIB_DIR ]; then
+	    echo "       $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found"
+	fi
+	exit 1
+    fi
+    MOZ_LIB_DIR="$SECONDARY_LIB_DIR"
+fi
+MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox"
+MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
+MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
+MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
+MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh"
+ 
+##
+## Set MOZ_GRE_CONF
+##
+MOZ_GRE_CONF=/etc/gre.d/gre.conf
+if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then
+  MOZ_GRE_CONF=/etc/gre.d/gre64.conf
+fi
+export MOZ_GRE_CONF
+
+##
+## Set MOZILLA_FIVE_HOME
+##
+MOZILLA_FIVE_HOME="$MOZ_DIST_BIN"
+
+export MOZILLA_FIVE_HOME
+
+##
+## Select the propper plugin dir
+## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped
+##
+if [ -x "/usr/bin/mozilla-plugin-config" ]
+then
+  MOZ_PLUGIN_DIR="plugins-wrapped"
+else
+  MOZ_PLUGIN_DIR="plugins"
+fi
+
+##
+## Make sure that we set the plugin path
+##
+if [ "$MOZ_PLUGIN_PATH" ]
+then
+  MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR
+else
+  MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR
+fi
+export MOZ_PLUGIN_PATH
+
+##
+## Set MOZ_APP_LAUNCHER for gnome-session
+##
+export MOZ_APP_LAUNCHER="/usr/bin/firefox"
+
+##
+## If plugins are wrapped, check them
+##
+if [ -x "/usr/bin/mozilla-plugin-config" ]
+then
+  /usr/bin/mozilla-plugin-config
+fi
+
+##
+## Set FONTCONFIG_PATH for Xft/fontconfig
+##
+FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft"
+export FONTCONFIG_PATH
+
+##
+## In order to better support certain scripts (such as Indic and some CJK 
+## scripts), Fedora builds its Firefox, with permission from the Mozilla 
+## Corporation, with the Pango system as its text renderer.  This change 
+## may negatively impact performance on some pages.  To disable the use of
+## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching
+## Firefox.
+##
+#
+# MOZ_DISABLE_PANGO=1
+# export MOZ_DISABLE_PANGO
+#
+
+##
+## Disable the GNOME crash dialog, Moz has it's own
+##
+GNOME_DISABLE_CRASH_DIALOG=1
+export GNOME_DISABLE_CRASH_DIALOG
+
+# OK, here's where all the real work gets done
+
+
+##
+## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1
+## in your environment before launching Firefox.
+##
+#
+# MOZ_DISABLE_LANGPACKS=1
+# export MOZ_DISABLE_LANGPACKS
+#
+
+##
+## Automatically installed langpacks are tracked by .fedora-langpack-install
+## config file.
+##
+FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install"
+
+# MOZ_DISABLE_LANGPACKS disables language packs completely
+MOZILLA_DOWN=0
+if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
+    if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then
+        # Is firefox running?
+        /usr/bin/pidof firefox > /dev/null 2>&1
+        MOZILLA_DOWN=$?
+    fi
+fi
+
+# Modify language pack configuration only when firefox is not running 
+# and language packs are not disabled
+if [ $MOZILLA_DOWN -ne 0 ]; then
+
+    # Clear already installed langpacks
+    mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR
+    if [ -f $FEDORA_LANGPACK_CONFIG ]; then
+        rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1
+        rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1
+        # remove all empty langpacks dirs while they block installation of langpacks
+        rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1
+    fi
+
+    # Get locale from system
+    CURRENT_LOCALE=$LC_ALL
+    CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES}
+    CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
+
+    # Try with a local variant first, then without a local variant
+    SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"`
+    MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"`
+
+    function create_langpack_link() {
+        local language=$*
+        local langpack=langpack-${language}@firefox.mozilla.org.xpi
+        if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then
+            rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
+            # If the target file is a symlink (the fallback langpack), 
+            # install the original file instead of the fallback one
+            if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then
+                langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack`
+            fi
+            ln -s $MOZ_LANGPACKS_DIR/$langpack \
+                  $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
+            echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG
+            return 0
+        fi
+        return 1
+    }
+
+    create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true
+fi
+
+# BEAST fix (rhbz#1005611)
+NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1}
+export NSS_SSL_CBC_RANDOM_IV
+
+# Prepare command line arguments
+script_args=""
+pass_arg_count=0
+while [ $# -gt $pass_arg_count ]
+do
+  case "$1" in
+    -g | --debug)
+      script_args="$script_args -g"
+      debugging=1
+      shift
+      ;;
+    -d | --debugger)
+      if [ $# -gt 1 ]; then
+        script_args="$script_args -d $2"
+        shift 2
+      else
+        shift
+      fi
+      ;;
+    *)
+      # Move the unrecognized argument to the end of the list.
+      arg="$1"
+      shift
+      set -- "$@" "$arg"
+      pass_arg_count=`expr $pass_arg_count + 1`
+      ;;
+  esac
+done
+
+# Run the browser
+debugging=0
+if [ $debugging = 1 ]
+then
+  echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
+fi
+
+exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
diff --git a/SOURCES/firefox.sh.in.rhel7 b/SOURCES/firefox.sh.in.rhel7
new file mode 100644
index 0000000..385a05c
--- /dev/null
+++ b/SOURCES/firefox.sh.in.rhel7
@@ -0,0 +1,261 @@
+#!/bin/bash
+#
+# The contents of this file are subject to the Netscape Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/NPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is mozilla.org code.
+#
+# The Initial Developer of the Original Code is Netscape
+# Communications Corporation.  Portions created by Netscape are
+# Copyright (C) 1998 Netscape Communications Corporation. All
+# Rights Reserved.
+#
+# Contributor(s): 
+#
+
+## 
+## Usage:
+##
+## $ firefox
+##
+## This script is meant to run a mozilla program from the mozilla
+## rpm installation.
+##
+## The script will setup all the environment voodoo needed to make
+## mozilla work.
+
+cmdname=`basename $0`
+
+##
+## Variables
+##
+MOZ_ARCH=$(uname -m)
+case $MOZ_ARCH in
+	x86_64 | s390x | sparc64)
+		MOZ_LIB_DIR="/usr/lib64"
+		SECONDARY_LIB_DIR="/usr/lib"
+		;;
+	* )
+		MOZ_LIB_DIR="/usr/lib"
+		SECONDARY_LIB_DIR="/usr/lib64"
+		;;
+esac
+
+MOZ_FIREFOX_FILE="firefox"
+
+if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then
+    if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then
+	echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found"
+	if [ -d $SECONDARY_LIB_DIR ]; then
+	    echo "       $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found"
+	fi
+	exit 1
+    fi
+    MOZ_LIB_DIR="$SECONDARY_LIB_DIR"
+fi
+MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox"
+MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
+MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
+MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
+MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh"
+ 
+##
+## Set MOZ_GRE_CONF
+##
+MOZ_GRE_CONF=/etc/gre.d/gre.conf
+if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then
+  MOZ_GRE_CONF=/etc/gre.d/gre64.conf
+fi
+export MOZ_GRE_CONF
+
+##
+## Set MOZILLA_FIVE_HOME
+##
+MOZILLA_FIVE_HOME="$MOZ_DIST_BIN"
+
+export MOZILLA_FIVE_HOME
+
+##
+## Select the propper plugin dir
+## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped
+##
+if [ -x "/usr/bin/mozilla-plugin-config" ]
+then
+  MOZ_PLUGIN_DIR="plugins-wrapped"
+else
+  MOZ_PLUGIN_DIR="plugins"
+fi
+
+##
+## Make sure that we set the plugin path
+##
+if [ "$MOZ_PLUGIN_PATH" ]
+then
+  MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR
+else
+  MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR
+fi
+export MOZ_PLUGIN_PATH
+
+##
+## Set MOZ_APP_LAUNCHER for gnome-session
+##
+export MOZ_APP_LAUNCHER="/usr/bin/firefox"
+
+##
+## If plugins are wrapped, check them
+##
+if [ -x "/usr/bin/mozilla-plugin-config" ]
+then
+  /usr/bin/mozilla-plugin-config
+fi
+
+##
+## Set FONTCONFIG_PATH for Xft/fontconfig
+##
+FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft"
+export FONTCONFIG_PATH
+
+##
+## In order to better support certain scripts (such as Indic and some CJK 
+## scripts), Fedora builds its Firefox, with permission from the Mozilla 
+## Corporation, with the Pango system as its text renderer.  This change 
+## may negatively impact performance on some pages.  To disable the use of
+## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching
+## Firefox.
+##
+#
+# MOZ_DISABLE_PANGO=1
+# export MOZ_DISABLE_PANGO
+#
+
+##
+## Disable the GNOME crash dialog, Moz has it's own
+##
+GNOME_DISABLE_CRASH_DIALOG=1
+export GNOME_DISABLE_CRASH_DIALOG
+
+##
+## Disable the SLICE allocator (rhbz#1014858)
+##
+export G_SLICE=always-malloc
+
+# OK, here's where all the real work gets done
+
+
+##
+## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1
+## in your environment before launching Firefox.
+##
+#
+# MOZ_DISABLE_LANGPACKS=1
+# export MOZ_DISABLE_LANGPACKS
+#
+
+##
+## Automatically installed langpacks are tracked by .fedora-langpack-install
+## config file.
+##
+FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install"
+
+# MOZ_DISABLE_LANGPACKS disables language packs completely
+MOZILLA_DOWN=0
+if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
+    if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then
+        # Is firefox running?
+        /usr/bin/pidof firefox > /dev/null 2>&1
+        MOZILLA_DOWN=$?
+    fi
+fi
+
+# Modify language pack configuration only when firefox is not running 
+# and language packs are not disabled
+if [ $MOZILLA_DOWN -ne 0 ]; then
+
+    # Clear already installed langpacks
+    mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR
+    if [ -f $FEDORA_LANGPACK_CONFIG ]; then
+        rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1
+        rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1
+        # remove all empty langpacks dirs while they block installation of langpacks
+        rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1
+    fi
+
+    # Get locale from system
+    CURRENT_LOCALE=$LC_ALL
+    CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES}
+    CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
+
+    # Try with a local variant first, then without a local variant
+    SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"`
+    MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"`
+
+    function create_langpack_link() {
+        local language=$*
+        local langpack=langpack-${language}@firefox.mozilla.org.xpi
+        if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then
+            rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
+            # If the target file is a symlink (the fallback langpack), 
+            # install the original file instead of the fallback one
+            if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then
+                langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack`
+            fi
+            ln -s $MOZ_LANGPACKS_DIR/$langpack \
+                  $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
+            echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG
+            return 0
+        fi
+        return 1
+    }
+
+    create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true
+fi
+
+# BEAST fix (rhbz#1005611)
+NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1}
+export NSS_SSL_CBC_RANDOM_IV
+
+# Prepare command line arguments
+script_args=""
+pass_arg_count=0
+while [ $# -gt $pass_arg_count ]
+do
+  case "$1" in
+    -g | --debug)
+      script_args="$script_args -g"
+      debugging=1
+      shift
+      ;;
+    -d | --debugger)
+      if [ $# -gt 1 ]; then
+        script_args="$script_args -d $2"
+        shift 2
+      else
+        shift
+      fi
+      ;;
+    *)
+      # Move the unrecognized argument to the end of the list.
+      arg="$1"
+      shift
+      set -- "$@" "$arg"
+      pass_arg_count=`expr $pass_arg_count + 1`
+      ;;
+  esac
+done
+
+# Run the browser
+debugging=0
+if [ $debugging = 1 ]
+then
+  echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
+fi
+
+exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
diff --git a/SOURCES/mozilla-1005640-accept-lang.patch b/SOURCES/mozilla-1005640-accept-lang.patch
new file mode 100644
index 0000000..29d3833
--- /dev/null
+++ b/SOURCES/mozilla-1005640-accept-lang.patch
@@ -0,0 +1,30 @@
+diff -up firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+--- firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang	2017-01-16 17:16:52.000000000 +0100
++++ firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm	2017-01-18 12:35:29.380394216 +0100
+@@ -2852,6 +2852,11 @@ this.XPIProvider = {
+         this.addAddonsToCrashReporter();
+       }
+ 
++      // Save locale settings to compare it later to check whenever some addon
++      // changed it.
++      var previousLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
++                          .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
++
+       try {
+         AddonManagerPrivate.recordTimestamp("XPI_bootstrap_addons_begin");
+ 
+@@ -2880,6 +2885,14 @@ this.XPIProvider = {
+         AddonManagerPrivate.recordException("XPI-BOOTSTRAP", "startup failed", e);
+       }
+ 
++      var currentLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
++                         .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
++      if (currentLocale != previousLocale) {
++        // We have to flush string cache if the locale was changed during loading
++        // of addons
++        Services.obs.notifyObservers(null, "chrome-flush-caches", null);
++      }
++
+       // Let these shutdown a little earlier when they still have access to most
+       // of XPCOM
+       Services.obs.addObserver({
diff --git a/SOURCES/mozilla-1152515.patch b/SOURCES/mozilla-1152515.patch
new file mode 100644
index 0000000..4be1ca7
--- /dev/null
+++ b/SOURCES/mozilla-1152515.patch
@@ -0,0 +1,68 @@
+diff --git a/security/pkix/lib/pkixder.cpp b/security/pkix/lib/pkixder.cpp
+--- a/security/pkix/lib/pkixder.cpp
++++ b/security/pkix/lib/pkixder.cpp
+@@ -466,28 +466,63 @@ TimeChoice(Reader& tagged, uint8_t expec
+   if (rv != Success) {
+     return rv;
+   }
+ 
+   uint8_t b;
+   if (input.Read(b) != Success) {
+     return Result::ERROR_INVALID_DER_TIME;
+   }
+-  if (b != 'Z') {
++
++  unsigned int hourOffset = 0;
++  unsigned int minuteOffset = 0;
++  bool allowOffset = false;
++  bool haveOffset = false;
++  bool offsetIsPositive = false;
++
++  if (getenv("PKIX_ALLOW_CERT_UTCTIME_OFFSET") != 0) {
++    allowOffset = true;
++  }
++
++  if (allowOffset && (b == '+' || b == '-')) {
++    haveOffset = true;
++    rv = ReadTwoDigits(input, 0u, 23u, hourOffset);
++    if (rv != Success) {
++      return rv;
++    }
++    rv = ReadTwoDigits(input, 0u, 59u, minuteOffset);
++    if (rv != Success) {
++      return rv;
++    }
++    if (b == '+') {
++      offsetIsPositive = true;
++    }
++  } else if (b != 'Z') {
+     return Result::ERROR_INVALID_DER_TIME;
+   }
+   if (End(input) != Success) {
+     return Result::ERROR_INVALID_DER_TIME;
+   }
+ 
+   uint64_t totalSeconds = (static_cast<uint64_t>(days) * 24u * 60u * 60u) +
+                           (static_cast<uint64_t>(hours)      * 60u * 60u) +
+                           (static_cast<uint64_t>(minutes)          * 60u) +
+                           seconds;
+ 
++  if (haveOffset) {
++    uint64_t offsetInSeconds =
++                          (static_cast<uint64_t>(hourOffset) * 60u * 60u) +
++                          (static_cast<uint64_t>(minuteOffset)     * 60u);
++    if (offsetIsPositive) {
++      totalSeconds -= offsetInSeconds;
++    } else {
++      totalSeconds += offsetInSeconds;
++    }
++  }
++
+   time = TimeFromElapsedSecondsAD(totalSeconds);
+   return Success;
+ }
+ 
+ Result
+ IntegralBytes(Reader& input, uint8_t tag,
+               IntegralValueRestriction valueRestriction,
+               /*out*/ Input& value,
diff --git a/SOURCES/mozilla-1170092-etc-conf.patch b/SOURCES/mozilla-1170092-etc-conf.patch
new file mode 100644
index 0000000..2b10f06
--- /dev/null
+++ b/SOURCES/mozilla-1170092-etc-conf.patch
@@ -0,0 +1,96 @@
+diff -up firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp
+--- firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092	2016-03-15 23:37:54.000000000 +0100
++++ firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp	2016-03-21 16:10:42.540417899 +0100
+@@ -245,8 +245,20 @@ nsresult nsReadConfig::openAndEvaluateJS
+             return rv;
+ 
+         rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
+-        if (NS_FAILED(rv)) 
+-            return rv;
++        if (NS_FAILED(rv)) {
++          // Look for cfg file in /etc/<application>/pref
++          rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
++                                      getter_AddRefs(jsFile));
++          NS_ENSURE_SUCCESS(rv, rv);
++
++          rv = jsFile->AppendNative(NS_LITERAL_CSTRING("pref"));
++          NS_ENSURE_SUCCESS(rv, rv);
++          rv = jsFile->AppendNative(nsDependentCString(aFileName));
++          NS_ENSURE_SUCCESS(rv, rv);
++
++          rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
++          NS_ENSURE_SUCCESS(rv, rv);
++        }
+ 
+     } else {
+         nsAutoCString location("resource://gre/defaults/autoconfig/");
+diff -up firefox-45.0.1/modules/libpref/Preferences.cpp.1170092 firefox-45.0.1/modules/libpref/Preferences.cpp
+--- firefox-45.0.1/modules/libpref/Preferences.cpp.1170092	2016-03-21 16:10:42.540417899 +0100
++++ firefox-45.0.1/modules/libpref/Preferences.cpp	2016-03-21 16:13:29.145888710 +0100
+@@ -1214,6 +1214,8 @@ static nsresult pref_InitInitialObjects(
+   // - jar:$gre/omni.jar!/defaults/preferences/*.js
+   // Thus, in omni.jar case, we always load app-specific default preferences
+   // from omni.jar, whether or not $app == $gre.
++  // At very end load configuration from system config location:
++  // - /etc/firefox/pref/*.js
+ 
+   nsZipFind *findPtr;
+   nsAutoPtr<nsZipFind> find;
+diff -up firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp
+--- firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp.1170092	2016-03-15 23:37:46.000000000 +0100
++++ firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp	2016-03-21 16:12:06.498655156 +0100
+@@ -51,6 +51,7 @@
+ #endif
+ #ifdef XP_UNIX
+ #include <ctype.h>
++#include "nsIXULAppInfo.h"
+ #endif
+ #ifdef XP_IOS
+ #include "UIKitDirProvider.h"
+@@ -457,6 +458,20 @@ nsXREDirProvider::GetFile(const char* aP
+       }
+     }
+   }
++#if defined(XP_UNIX)
++  if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) {
++    nsCString sysConfigDir = NS_LITERAL_CSTRING("/etc/");
++    nsCOMPtr<nsIXULAppInfo> appInfo = do_GetService("@mozilla.org/xre/app-info;1");
++    if (!appInfo)
++      return NS_ERROR_NOT_AVAILABLE;
++    nsCString appName;
++    appInfo->GetName(appName);
++    ToLowerCase(appName);
++    sysConfigDir.Append(appName);
++    return NS_NewNativeLocalFile(sysConfigDir, false, aFile);
++  }
++#endif
++
+   if (NS_FAILED(rv) || !file)
+     return NS_ERROR_FAILURE;
+ 
+@@ -753,6 +768,14 @@ nsXREDirProvider::GetFilesInternal(const
+     LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories);
+     LoadDirsIntoArray(mAppBundleDirectories,
+                       kAppendPrefDir, directories);
++    // Add /etc/<application>/pref/ directory if it exists
++    nsCOMPtr<nsIFile> systemPrefDir;
++    rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, getter_AddRefs(systemPrefDir));
++    if (NS_SUCCEEDED(rv)) {
++      rv = systemPrefDir->AppendNative(NS_LITERAL_CSTRING("pref"));
++      if (NS_SUCCEEDED(rv))
++        directories.AppendObject(systemPrefDir);
++    }
+ 
+     rv = NS_NewArrayEnumerator(aResult, directories);
+   }
+diff -up firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h
+--- firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092	2016-03-15 23:37:47.000000000 +0100
++++ firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h	2016-03-21 16:10:42.541417902 +0100
+@@ -67,6 +67,7 @@
+ #define NS_APP_PREFS_DEFAULTS_DIR_LIST          "PrefDL"
+ #define NS_EXT_PREFS_DEFAULTS_DIR_LIST          "ExtPrefDL"
+ #define NS_APP_PREFS_OVERRIDE_DIR               "PrefDOverride" // Directory for per-profile defaults
++#define NS_APP_PREFS_SYSTEM_CONFIG_DIR          "PrefSysConf"   // Directory with system-wide configuration
+ 
+ #define NS_APP_USER_PROFILE_50_DIR              "ProfD"
+ #define NS_APP_USER_PROFILE_LOCAL_50_DIR        "ProfLD"
diff --git a/SOURCES/mozilla-1324096.patch b/SOURCES/mozilla-1324096.patch
new file mode 100644
index 0000000..4a2691e
--- /dev/null
+++ b/SOURCES/mozilla-1324096.patch
@@ -0,0 +1,72 @@
+diff --git a/security/certverifier/CertVerifier.cpp b/security/certverifier/CertVerifier.cpp
+--- a/security/certverifier/CertVerifier.cpp
++++ b/security/certverifier/CertVerifier.cpp
+@@ -120,16 +120,20 @@ IsCertChainRootBuiltInRoot(const UniqueC
+   }
+   CERTCertificate* root = rootNode->cert;
+   if (!root) {
+     return Result::FATAL_ERROR_LIBRARY_FAILURE;
+   }
+   return IsCertBuiltInRoot(root, result);
+ }
+ 
++// The term "builtin root" traditionally refers to a root CA certificate that
++// has been added to the NSS trust store, because it has been approved
++// for inclusion according to the Mozilla CA policy, and might be accepted
++// by Mozilla applications as an issuer for certificates seen on the public web.
+ Result
+ IsCertBuiltInRoot(CERTCertificate* cert, bool& result)
+ {
+   result = false;
+ #ifdef DEBUG
+   nsCOMPtr<nsINSSComponent> component(do_GetService(PSM_COMPONENT_CONTRACTID));
+   if (!component) {
+     return Result::FATAL_ERROR_LIBRARY_FAILURE;
+@@ -142,25 +146,38 @@ IsCertBuiltInRoot(CERTCertificate* cert,
+     return Success;
+   }
+ #endif // DEBUG
+   AutoSECMODListReadLock lock;
+   for (SECMODModuleList* list = SECMOD_GetDefaultModuleList(); list;
+        list = list->next) {
+     for (int i = 0; i < list->module->slotCount; i++) {
+       PK11SlotInfo* slot = list->module->slots[i];
+-      // PK11_HasRootCerts should return true if and only if the given slot has
+-      // an object with a CKA_CLASS of CKO_NETSCAPE_BUILTIN_ROOT_LIST, which
+-      // should be true only of the builtin root list.
+-      // If we can find a copy of the given certificate on the slot with the
+-      // builtin root list, that certificate must be a builtin.
+-      if (PK11_IsPresent(slot) && PK11_HasRootCerts(slot) &&
+-          PK11_FindCertInSlot(slot, cert, nullptr) != CK_INVALID_HANDLE) {
+-        result = true;
+-        return Success;
++      // We're searching for the "builtin root module", which is a module that
++      // contains an object with a CKA_CLASS of CKO_NETSCAPE_BUILTIN_ROOT_LIST.
++      // We use PK11_HasRootCerts() to identify a module with that property.
++      // In the past, we exclusively used the PKCS#11 module named nssckbi,
++      // which is provided by the NSS library.
++      // Nowadays, some distributions use a replacement module, which contains
++      // the builtin roots, but which also contains additional CA certificates,
++      // such as CAs trusted in a local deployment.
++      // We want to be able to distinguish between these two categories,
++      // because a CA, which may issue certificates for the public web,
++      // is expected to comply with additional requirements.
++      // If the certificate has attribute CKA_NSS_MOZILLA_CA_POLICY set to true,
++      // then we treat it as a "builtin root".
++      if (PK11_IsPresent(slot) && PK11_HasRootCerts(slot)) {
++        CK_OBJECT_HANDLE handle = PK11_FindCertInSlot(slot, cert, nullptr);
++        if (handle != CK_INVALID_HANDLE &&
++            PK11_HasAttributeSet(slot, handle, CKA_NSS_MOZILLA_CA_POLICY,
++                                 false)) {
++          // Attribute was found, and is set to true
++          result = true;
++          break;
++        }
+       }
+     }
+   }
+   return Success;
+ }
+ 
+ static Result
+ BuildCertChainForOneKeyUsage(NSSCertDBTrustDomain& trustDomain, Input certDER,
diff --git a/SOURCES/mozilla-256180.patch b/SOURCES/mozilla-256180.patch
new file mode 100644
index 0000000..13a1c97
--- /dev/null
+++ b/SOURCES/mozilla-256180.patch
@@ -0,0 +1,11 @@
+--- a/layout/generic/nsIFrame.h.old	2016-07-11 13:41:39.688276559 +0200
++++ b/layout/generic/nsIFrame.h	2016-07-11 13:42:12.791406976 +0200
+@@ -13,7 +13,7 @@
+ #error This header/class should only be used within Mozilla code. It should not be used by extensions.
+ #endif
+ 
+-#define MAX_REFLOW_DEPTH 200
++#define MAX_REFLOW_DEPTH 1000
+ 
+ /* nsIFrame is in the process of being deCOMtaminated, i.e., this file is eventually
+    going to be eliminated, and all callers will use nsFrame instead.  At the moment
diff --git a/SOURCES/mozilla-api-key b/SOURCES/mozilla-api-key
new file mode 100644
index 0000000..81877bc
--- /dev/null
+++ b/SOURCES/mozilla-api-key
@@ -0,0 +1 @@
+9008bb7e-1e22-4038-94fe-047dd48ccc0b
diff --git a/SOURCES/rhbz-1173156.patch b/SOURCES/rhbz-1173156.patch
new file mode 100644
index 0000000..9855710
--- /dev/null
+++ b/SOURCES/rhbz-1173156.patch
@@ -0,0 +1,12 @@
+diff -up firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp.old firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp
+--- firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp.old	2014-11-25 12:23:22.000000000 +0100
++++ firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp	2014-12-23 15:26:36.606674625 +0100
+@@ -174,7 +174,7 @@ nsAuthSambaNTLM::SpawnNTLMAuthHelper()
+         return NS_ERROR_FAILURE;
+ 
+     const char* const args[] = {
+-        "ntlm_auth",
++        "/usr/bin/ntlm_auth",
+         "--helper-protocol", "ntlmssp-client-1",
+         "--use-cached-creds",
+         "--username", username,
diff --git a/SOURCES/rhbz-1423012.patch b/SOURCES/rhbz-1423012.patch
new file mode 100644
index 0000000..f5344c2
--- /dev/null
+++ b/SOURCES/rhbz-1423012.patch
@@ -0,0 +1,15 @@
+diff -up firefox-52.0b8/gfx/2d/HelpersCairo.h.old firefox-52.0b8/gfx/2d/HelpersCairo.h
+--- firefox-52.0b8/gfx/2d/HelpersCairo.h.old	2017-03-02 09:23:01.230766731 -0500
++++ firefox-52.0b8/gfx/2d/HelpersCairo.h	2017-03-02 09:23:49.711930251 -0500
+@@ -239,9 +239,9 @@ CairoFormatToGfxFormat(cairo_format_t fo
+ {
+   switch (format) {
+     case CAIRO_FORMAT_ARGB32:
+-      return SurfaceFormat::A8R8G8B8_UINT32;
++      return SurfaceFormat::B8G8R8A8;
+     case CAIRO_FORMAT_RGB24:
+-      return SurfaceFormat::X8R8G8B8_UINT32;
++      return SurfaceFormat::B8G8R8X8;
+     case CAIRO_FORMAT_A8:
+       return SurfaceFormat::A8;
+     case CAIRO_FORMAT_RGB16_565:
diff --git a/SOURCES/rhbz-966424.patch b/SOURCES/rhbz-966424.patch
new file mode 100644
index 0000000..c4c332e
--- /dev/null
+++ b/SOURCES/rhbz-966424.patch
@@ -0,0 +1,23 @@
+--- a/toolkit/modules/CertUtils.jsm
++++ b/toolkit/modules/CertUtils.jsm
+@@ -170,17 +170,19 @@ this.checkCert =
+   issuerCert = issuerCert.QueryInterface(Ci.nsIX509Cert3);
+   var tokenNames = issuerCert.getAllTokenNames({});
+ 
+   if (!tokenNames || !tokenNames.some(isBuiltinToken))
+     throw new Ce(certNotBuiltInErr, Cr.NS_ERROR_ABORT);
+ }
+ 
+ function isBuiltinToken(tokenName) {
+-  return tokenName == "Builtin Object Token";
++  return tokenName == "Builtin Object Token" ||
++         tokenName == "Default Trust" ||
++         tokenName == "System Trust";
+ }
+ 
+ /**
+  * This class implements nsIBadCertListener.  Its job is to prevent "bad cert"
+  * security dialogs from being shown to the user.  It is better to simply fail
+  * if the certificate is bad. See bug 304286.
+  *
+  * @param  aAllowNonBuiltInCerts (optional)
diff --git a/SOURCES/webrtc-arch-cpu.patch b/SOURCES/webrtc-arch-cpu.patch
new file mode 100644
index 0000000..29fd578
--- /dev/null
+++ b/SOURCES/webrtc-arch-cpu.patch
@@ -0,0 +1,22 @@
+--- a/media/webrtc/trunk/build/build_config.h
++++ b/media/webrtc/trunk/build/build_config.h
+@@ -123,7 +123,9 @@
+ #define ARCH_CPU_PPC_FAMILY 1
+ #define ARCH_CPU_PPC64 1
+ #define ARCH_CPU_64_BITS 1
++#ifndef _LITTLE_ENDIAN
+ #define ARCH_CPU_BIG_ENDIAN 1
++#endif
+ #elif defined(__ppc__) || defined(__powerpc__)
+ #define ARCH_CPU_PPC_FAMILY 1
+ #define ARCH_CPU_PPC 1
+@@ -156,6 +158,9 @@
+ #elif defined(__alpha__)
+ #define ARCH_CPU_ALPHA 1
+ #define ARCH_CPU_64_BITS 1
++#elif defined(__aarch64__)
++#define ARCH_CPU_AARCH64 1
++#define ARCH_CPU_64_BITS 1
+ #else
+ #error Please add support for your architecture in build/build_config.h
+ #endif
diff --git a/SOURCES/xulrunner-24.0-jemalloc-ppc.patch b/SOURCES/xulrunner-24.0-jemalloc-ppc.patch
new file mode 100644
index 0000000..d0c3d8c
--- /dev/null
+++ b/SOURCES/xulrunner-24.0-jemalloc-ppc.patch
@@ -0,0 +1,12 @@
+diff -up mozilla-aurora/memory/mozjemalloc/jemalloc.c.jemalloc-ppc.patch mozilla-aurora/memory/mozjemalloc/jemalloc.c
+--- mozilla-aurora/memory/mozjemalloc/jemalloc.c.jemalloc-ppc.patch	2016-11-18 08:56:32.242742746 +0100
++++ mozilla-aurora/memory/mozjemalloc/jemalloc.c	2016-11-18 08:59:51.809071876 +0100
+@@ -1096,7 +1096,7 @@ static const bool config_recycle = false
+  * controlling the malloc behavior are defined as compile-time constants
+  * for best performance and cannot be altered at runtime.
+  */
+-#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !defined(__aarch64__)
++#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !defined(__aarch64__) && !defined(__powerpc__)
+ #define MALLOC_STATIC_SIZES 1
+ #endif
+ 
diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec
new file mode 100644
index 0000000..89ae878
--- /dev/null
+++ b/SPECS/firefox.spec
@@ -0,0 +1,1298 @@
+%define system_nss              1
+%global nspr_version            4.13.1
+%global nss_version             3.28.4-11
+%define system_sqlite           0
+%define sqlite_version          3.8.4.2
+%define system_ffi              1
+%define ffi_version             3.0.9
+%define use_bundled_yasm        1
+%define use_bundled_python      0
+%define python_version          2.7.8
+%define use_bundled_gcc         0
+%define gcc_version             4.8.2-16
+%define cairo_version           1.10.2
+%define freetype_version        2.1.9
+%define system_jpeg             1
+%define system_libatomic        0
+%define with_intl_api           1
+%define use_baselinejit         1
+%define official_branding       1
+%define use_gtk3                0
+
+
+%define debug_build             0
+# This is for local builds or builds in mock with --no-clean
+# It skips building of gcc, binutils and yasm rpms when they exists, it just installs
+# them and doesn't delete them to allow recycling them in next build.
+# SHOULD ALWAYS BE 0 WHEN BUILDING IN BREW
+%define do_not_clean_rpms       0
+
+# Configure and override build options for various platforms and RHEL versions
+# ============================================================================
+
+# RHEL7
+%if 0%{?rhel} == 7
+%ifarch s390x
+%define use_bundled_gcc         1
+%endif
+%endif
+
+# RHEL6
+%if 0%{?rhel} == 6
+%define use_bundled_python      1
+%define use_bundled_gcc         1
+%define use_bundled_yasm        1
+%define system_ffi              0
+%define use_bundled_binutils    1
+%endif
+
+# Require libatomic for ppc
+%ifarch ppc
+%define system_libatomic        1
+%endif
+# Big endian platforms
+%ifarch ppc ppc64 s390 s390x
+# Javascript Intl API is not supported on big endian platforms right now:
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1322212
+%define with_intl_api           1
+%define big_endian              1
+%endif
+
+# ============================================================================
+
+# Avoid patch failures
+%define _default_patch_fuzz 2
+
+
+%define default_bookmarks_file  %{_datadir}/bookmarks/default-bookmarks.html
+%define firefox_app_id          \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
+%define mozappdir               %{_libdir}/%{name}
+%define build_langpacks         1
+%define langpackdir             %{mozappdir}/langpacks
+%if %{?system_sqlite}
+# The actual sqlite version (see #480989):
+%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536)
+%endif
+
+Summary:        Mozilla Firefox Web browser
+Name:           firefox
+Version:        52.5.0
+Release:        1%{?dist}
+URL:            http://www.mozilla.org/projects/firefox/
+License:        MPLv1.1 or GPLv2+ or LGPLv2+
+Group:          Applications/Internet
+
+%define         ext_version             esr
+%define         tarballdir              firefox-%{version}%{?ext_version}
+
+# From ftp://archive.mozilla.org/pub/firefox/releases/%{version}%{?ext_version}/source
+Source0:        firefox-%{version}%{?ext_version}.source.tar.xz
+%if %{build_langpacks}
+Source1:        firefox-langpacks-%{version}%{?ext_version}-20171109.tar.xz
+%endif
+Source10:       firefox-mozconfig
+Source12:       firefox-redhat-default-prefs.js
+Source20:       firefox.desktop
+Source600:      firefox.sh.in.rhel6
+Source700:      firefox.sh.in.rhel7
+Source23:       firefox.1
+Source24:       mozilla-api-key
+Source100:      find-external-requires
+Source200:      https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
+Source300:      gcc48-%{gcc_version}.el5.src.rpm
+Source301:      yasm-1.2.0-3.el5.src.rpm
+Source302:      devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm
+
+# Build patches
+Patch0:         firefox-install-dir.patch
+Patch5:         xulrunner-24.0-jemalloc-ppc.patch
+Patch6:         webrtc-arch-cpu.patch
+Patch8:         firefox-ppc64le.patch
+#ALREADY Patch19:        mozilla-1319374-skia-endian.patch
+Patch20:        build-s390-atomic.patch
+Patch21:        build-icu-big-endian.patch
+Patch22:        build-missing-getrandom.patch
+Patch23:        build-nss-version.patch
+Patch24:        build-nss-prbool.patch
+Patch25:        build-s390-missing-include.patch
+
+# RHEL patches
+Patch101:       firefox-default.patch
+# TODO code changed a lot, need to test it
+Patch102:       firefox-enable-addons.patch
+Patch103:       rhbz-966424.patch
+Patch106:       firefox-enable-plugins.patch
+Patch110:       mozilla-1170092-etc-conf.patch
+Patch111:       rhbz-1173156.patch
+Patch112:       mozilla-256180.patch
+Patch114:       rhbz-1423012.patch
+Patch116:       mozilla-1005640-accept-lang.patch
+
+# Upstream patches
+# Skia support for big endian platforms, since patch got review- I think we can delete that:
+#Patch201:       mozilla-1005535.patch
+# Kaie's patch, we'll most likely need this one
+Patch202:       mozilla-1152515.patch
+Patch203:       mozilla-1324096.patch
+
+# RHEL7 patches
+
+# RHEL6 patches
+# HOPEFULY fixed Patch401:       build-el6-harfbuzz-old-glib.patch
+
+# ---------------------------------------------------
+BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+
+BuildRequires:  desktop-file-utils
+BuildRequires:  mesa-libGL-devel
+BuildRequires:  zip
+BuildRequires:  bzip2-devel
+BuildRequires:  zlib-devel
+BuildRequires:  libIDL-devel
+%if %{?use_gtk3}
+BuildRequires:  gtk3-devel
+%else
+BuildRequires:  gtk2-devel
+%endif
+BuildRequires:  gnome-vfs2-devel
+BuildRequires:  libgnome-devel
+BuildRequires:  libgnomeui-devel
+BuildRequires:  krb5-devel
+BuildRequires:  pango-devel
+BuildRequires:  freetype-devel >= %{freetype_version}
+BuildRequires:  libXt-devel
+BuildRequires:  libXrender-devel
+BuildRequires:  startup-notification-devel
+BuildRequires:  alsa-lib-devel
+BuildRequires:  libnotify-devel
+BuildRequires:  autoconf213
+BuildRequires:  mesa-libGL-devel
+BuildRequires:  autoconf213
+BuildRequires:  xz
+%if ! %{use_bundled_yasm}0
+BuildRequires:  yasm
+%endif
+%if %{?system_sqlite}
+BuildRequires:  sqlite-devel >= %{sqlite_version}
+Requires:       sqlite >= %{sqlite_build_version}
+%endif
+%if %{?system_nss}
+BuildRequires:  nspr-devel >= %{nspr_version}
+BuildRequires:  nss-devel >= %{nss_version}
+Requires:       nspr >= %{nspr_version}
+Requires:       nss >= %{nss_version}
+%endif
+%if %{?system_sqlite}
+BuildRequires:  sqlite-devel >= %{sqlite_version}
+Requires:       sqlite >= %{sqlite_build_version}
+%endif
+%if %{?system_ffi}
+BuildRequires:  libffi-devel >= %{ffi_version}
+Requires:       libffi >= %{ffi_version}
+%endif
+BuildRequires:  libpng-devel
+BuildRequires:  libjpeg-devel
+BuildRequires:  hunspell-devel
+%if %{system_libatomic}
+BuildRequires:  libatomic
+Requires:       libatomic
+%endif
+
+# RHEL7 requires
+%if 0%{?rhel} == 7
+Requires:       redhat-indexhtml
+BuildRequires:  pulseaudio-libs-devel
+BuildRequires:  system-bookmarks
+Requires:       mozilla-filesystem
+Requires:       liberation-fonts-common
+Requires:       liberation-sans-fonts
+BuildRequires:  dbus-glib-devel >= 0.60 
+%endif
+
+# RHEL6 requires
+%if 0%{?rhel} == 6
+BuildRequires:  desktop-file-utils
+BuildRequires:  system-bookmarks
+Requires:       system-bookmarks
+Requires:       redhat-indexhtml
+Requires:       mozilla-filesystem
+Requires:       gtk2 >= 2.24
+BuildRequires:  pulseaudio-libs-devel
+BuildRequires:  system-bookmarks
+Requires:       mozilla-filesystem
+Requires:       liberation-fonts-common
+Requires:       liberation-sans-fonts
+%endif
+
+Obsoletes:      mozilla <= 37:1.7.13
+Obsoletes:      firefox < 38.0
+Conflicts:      firefox < 38.0
+Provides:       webclient
+
+%if %{use_bundled_python}
+BuildRequires:  openssl-devel
+%endif
+# GCC 4.8 BuildRequires
+# ==================================================================================
+%if %{use_bundled_gcc}
+
+%ifarch s390x
+%global multilib_32_arch s390
+%endif
+%ifarch sparc64
+%global multilib_32_arch sparcv9
+%endif
+%ifarch ppc64
+%global multilib_32_arch ppc
+%endif
+%ifarch x86_64
+%if 0%{?rhel} >= 6
+%global multilib_32_arch i686
+%else
+%global multilib_32_arch i386
+%endif
+%endif
+
+%global multilib_64_archs sparc64 ppc64 s390x x86_64
+
+%if 0%{?rhel} >= 6
+# Need binutils which support --build-id >= 2.17.50.0.17-3
+# Need binutils which support %gnu_unique_object >= 2.19.51.0.14
+# Need binutils which support .cfi_sections >= 2.19.51.0.14-33
+BuildRequires: binutils >= 2.19.51.0.14-33
+# While gcc doesn't include statically linked binaries, during testing
+# -static is used several times.
+BuildRequires: glibc-static
+%else
+# Don't have binutils which support --build-id >= 2.17.50.0.17-3
+# Don't have binutils which support %gnu_unique_object >= 2.19.51.0.14
+# Don't have binutils which  support .cfi_sections >= 2.19.51.0.14-33
+BuildRequires: binutils >= 2.17.50.0.2-8
+%endif
+BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils
+BuildRequires: /usr/bin/pod2man
+%if 0%{?rhel} >= 7
+BuildRequires: texinfo-tex
+%endif
+#BuildRequires: systemtap-sdt-devel >= 1.3
+# For VTA guality testing
+BuildRequires: gdb
+# Make sure pthread.h doesn't contain __thread tokens
+# Make sure glibc supports stack protector
+# Make sure glibc supports DT_GNU_HASH
+BuildRequires: glibc-devel >= 2.4.90-13
+%if 0%{?rhel} >= 6
+BuildRequires: elfutils-devel >= 0.147
+BuildRequires: elfutils-libelf-devel >= 0.147
+%else
+BuildRequires: elfutils-devel >= 0.72
+%endif
+%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha
+# Make sure glibc supports TFmode long double
+BuildRequires: glibc >= 2.3.90-35
+%endif
+%ifarch %{multilib_64_archs} sparcv9 ppc
+# Ensure glibc{,-devel} is installed for both multilib arches
+BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
+%endif
+%ifarch ia64
+BuildRequires: libunwind >= 0.98
+%endif
+# Need .eh_frame ld optimizations
+# Need proper visibility support
+# Need -pie support
+# Need --as-needed/--no-as-needed support
+# On ppc64, need omit dot symbols support and --non-overlapping-opd
+# Need binutils that owns /usr/bin/c++filt
+# Need binutils that support .weakref
+# Need binutils that supports --hash-style=gnu
+# Need binutils that support mffgpr/mftgpr
+#%if 0%{?rhel} >= 6
+## Need binutils which support --build-id >= 2.17.50.0.17-3
+## Need binutils which support %gnu_unique_object >= 2.19.51.0.14
+## Need binutils which support .cfi_sections >= 2.19.51.0.14-33
+#Requires: binutils >= 2.19.51.0.14-33
+#%else
+## Don't have binutils which support --build-id >= 2.17.50.0.17-3
+## Don't have binutils which support %gnu_unique_object >= 2.19.51.0.14
+## Don't have binutils which  support .cfi_sections >= 2.19.51.0.14-33
+#Requires: binutils >= 2.17.50.0.2-8
+#%endif
+## Make sure gdb will understand DW_FORM_strp
+#Conflicts: gdb < 5.1-2
+#Requires: glibc-devel >= 2.2.90-12
+#%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha
+## Make sure glibc supports TFmode long double
+#Requires: glibc >= 2.3.90-35
+#%endif
+#Requires: libgcc >= 4.1.2-43
+#Requires: libgomp >= 4.4.4-13
+#%if 0%{?rhel} == 6
+#Requires: libstdc++ >= 4.4.4-13
+#%else
+#Requires: libstdc++ = 4.1.2
+#%endif
+##FIXME gcc version
+#Requires: libstdc++-devel = %{version}-%{release}
+BuildRequires: gmp-devel >= 4.1.2-8
+%if 0%{?rhel} >= 6
+BuildRequires: mpfr-devel >= 2.2.1
+%endif
+%if 0%{?rhel} >= 7
+BuildRequires: libmpc-devel >= 0.8.1
+%endif
+
+%endif # bundled gcc BuildRequires
+# ==================================================================================
+# Override internal dependency generator to avoid showing libraries provided by this package
+# in dependencies:
+AutoProv: 0
+%define _use_internal_dependency_generator 0
+%define __find_requires %{SOURCE100}
+
+%description
+Mozilla Firefox is an open-source web browser, designed for standards
+compliance, performance and portability.
+
+#---------------------------------------------------------------------
+
+%prep
+%setup -q -c
+cd %{tarballdir}
+
+# Build patches
+# We have to keep original patch backup extension to go thru configure without problems with tests
+%patch0 -p1 -b .orig
+%patch5 -p1 -b .jemalloc-ppc.patch
+%patch6 -p1 -b .webrtc-arch-cpu
+%patch8 -p2 -b .ppc64le
+#ALREADY %patch19 -p1 -b .skia-endian
+%patch20 -p1 -b .s390-atomic
+%patch22 -p1 -b .missing-getrandom
+%patch23 -p1 -b .nss-version
+%patch24 -p1 -b .nss-prbool
+%patch25 -p1 -b .s390-missing-include
+
+# RPM specific patches
+%patch101 -p1 -b .default
+%patch102 -p1 -b .addons
+%patch103 -p1 -b .rhbz-966424
+%patch106 -p2 -b .plugins
+%patch110 -p1 -b .moz-1170092-etc-conf
+%patch111 -p2 -b .rhbz-1173156
+%patch112 -p1 -b .mozbz-256180
+%patch114 -p1 -b .rhbz-1423012
+%patch116 -p1 -b .mozbz-1005640-accept-lang
+
+# Upstream patches
+#%patch201 -p1 -b .mozbz-1005535 see Patch201 comment
+%patch202 -p1 -b .mozbz-1152515
+%patch203 -p1 -b .mozbz-1324096
+
+# RHEL7 only patches
+%if %{?rhel} == 7
+%endif
+
+#%if %{?rhel} == 6
+#HOPEFULY FIXED %patch401 -p1 -b .harfbuzz-old-glib
+#%endif
+
+# Patch for big endian platforms only
+%if 0%{?big_endian}
+%patch21 -p1 -b .s390-atomic
+%endif
+
+%{__rm} -f .mozconfig
+%{__cp} %{SOURCE10} .mozconfig
+%{__cp} %{SOURCE24} mozilla-api-key
+
+function add_to_mozconfig() {
+  mozconfig_entry=$1
+  echo "ac_add_options --$1" >> .mozconfig
+}
+
+# Modify mozconfig file
+%if %{official_branding}
+ add_to_mozconfig "enable-official-branding"
+%endif
+
+%if %{?use_gtk3}
+ add_to_mozconfig "enable-default-toolkit=cairo-gtk3"
+%else
+ add_to_mozconfig "enable-default-toolkit=cairo-gtk2"
+%endif
+
+%if %{?system_sqlite}
+ add_to_mozconfig "enable-system-sqlite"
+%else
+ add_to_mozconfig "disable-system-sqlite"
+%endif
+
+%if %{?system_nss}
+ add_to_mozconfig "with-system-nspr"
+ add_to_mozconfig "with-system-nss"
+%else
+ add_to_mozconfig "without-system-nspr"
+ add_to_mozconfig "without-system-nss"
+%endif
+
+# RHEL 7 mozconfig changes:
+%if 0%{rhel} >= 6
+ add_to_mozconfig "enable-startup-notification"
+ add_to_mozconfig "enable-jemalloc"
+%endif
+
+# RHEL 6
+%if 0%{rhel} == 6
+ # Disable dbus, because we're unable to build with its support in brew
+ add_to_mozconfig "disable-dbus"
+ # ctypes require system libffi for these platforms and RHEL6 does not have libffi >= 3.0.9 available
+ %ifarch ppc64 ppc64le ppc s390 s390x
+  add_to_mozconfig "disable-ctypes"
+ %endif
+%endif
+
+%ifarch aarch64 ppc64 ppc64le ppc s390 s390x
+ add_to_mozconfig "disable-ion"
+%endif
+
+%ifarch aarch64 ppc ppc64 s390 s390x
+ add_to_mozconfig "disable-skia"
+%endif
+
+# Debug build flags
+%if %{?debug_build}
+ add_to_mozconfig "enable-debug"
+ add_to_mozconfig "disable-optimize"
+%else
+ add_to_mozconfig "disable-debug"
+ add_to_mozconfig "enable-optimize"
+%endif
+
+%if %{?with_intl_api}
+ add_to_mozconfig "with-intl-api"
+%else
+ add_to_mozconfig "without-intl-api"
+%endif
+#TODO reconsider this, really needed for RHEL7 or even RHEL6? Disabling this 
+#also require to disable-fmp4 and most likely disable-eme
+#Disabled due to rhbz#1330898
+#add_to_mozconfig "disable-ffmpeg"
+
+#TODO what's this?
+#FIXME RTTI?? RHEL5/6
+# ac_add_options --enable-cpp-rtti
+# RHEL7: ac_add_options --with-system-bz2
+# RHEL5: never been there, but is it usable --enable-gnomeui ????
+
+%if %{use_bundled_python}
+ # Prepare Python 2.7 sources
+ tar xf %{SOURCE200}
+%endif
+
+#---------------------------------------------------------------------
+
+%build
+
+function build_bundled_package() {
+  PACKAGE_RPM=$1
+  PACKAGE_FILES=$2
+  PACKAGE_SOURCE=$3
+  PACKAGE_DIR="%{_topdir}/RPMS"
+
+  PACKAGE_ALREADY_BUILD=0
+  %if %{do_not_clean_rpms}
+    if ls $PACKAGE_DIR/$PACKAGE_RPM; then
+      PACKAGE_ALREADY_BUILD=1
+    fi
+    if ls $PACKAGE_DIR/%{_arch}/$PACKAGE_RPM; then
+      PACKAGE_ALREADY_BUILD=1
+    fi
+  %endif
+  if [ $PACKAGE_ALREADY_BUILD == 0 ]; then
+    echo "Rebuilding $PACKAGE_RPM from $PACKAGE_SOURCE"; echo "==============================="
+    rpmbuild --nodeps --rebuild $PACKAGE_SOURCE
+  fi
+
+  if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
+    # Hack for tps tests
+    ARCH_STR=%{_arch}
+    %ifarch i386 i686
+    ARCH_STR="i?86"
+    %endif
+    PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
+  fi
+  pushd $PACKAGE_DIR
+  echo "Installing $PACKAGE_DIR/$PACKAGE_RPM"; echo "==============================="
+  rpm2cpio $PACKAGE_DIR/$PACKAGE_RPM | cpio -iduv
+  # Clean rpms to avoid including them to package
+  %if ! %{do_not_clean_rpms}0
+    rm -f $PACKAGE_FILES
+  %endif
+
+  PATH=$PACKAGE_DIR/usr/bin:$PATH
+  export PATH
+  LD_LIBRARY_PATH=$PACKAGE_DIR/usr/%{_lib}
+  export LD_LIBRARY_PATH
+  popd
+}
+
+# Build and install local yasm if needed
+# ======================================
+%if %{use_bundled_yasm}
+  build_bundled_package 'yasm-1*.rpm' 'yasm-*.rpm' '%{SOURCE301}'
+%endif
+
+# Install local binutils if needed
+# ======================================
+%if 0%{?use_bundled_binutils}
+  build_bundled_package 'binutils-2*.rpm' 'binutils*.rpm' '%{SOURCE302}'
+%endif
+
+# Install local GCC if needed
+# ======================================
+%if %{use_bundled_gcc}
+  build_bundled_package 'gcc48-%{gcc_version}*.rpm' 'gcc48-*.rpm' '%{SOURCE300}'
+  export CXX=g++
+%endif
+
+
+# Install local Python if needed
+# ======================================
+%if %{use_bundled_python}
+    echo "Rebuilding Python"; echo "==============================="
+  pushd %{tarballdir}
+
+  # Build Python 2.7 and set environment
+  BUILD_DIR=`pwd`/python_build
+  cd Python-%{python_version}
+  ./configure --prefix=$BUILD_DIR --exec-prefix=$BUILD_DIR
+  make
+  make install
+  cd -
+
+  PATH=$BUILD_DIR/bin:$PATH
+  export PATH
+  popd
+%endif # bundled Python
+
+%if %{?system_sqlite}
+  # Do not proceed with build if the sqlite require would be broken:
+  # make sure the minimum requirement is non-empty, ...
+  sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1
+  # ... and that major number of the computed build-time version matches:
+  case "%{sqlite_build_version}" in
+    "$sqlite_version"*) ;;
+    *) exit 1 ;;
+  esac
+%endif
+
+echo "Building Firefox"; echo "==============================="
+cd %{tarballdir}
+
+# Hack for missing shell when building in brew on RHEL6 and RHEL5
+%if 0%{?rhel} <= 6
+export SHELL=/bin/sh
+%endif
+
+echo "Generate big endian version of config/external/icu/data/icud58l.dat"
+%if 0%{?big_endian}
+  ./mach python intl/icu_sources_data.py .
+  ls -l config/external/icu/data
+  rm -f config/external/icu/data/icudt*l.dat
+%endif
+
+
+# 1. Mozilla builds with -Wall with exception of a few warnings which show up
+#    everywhere in the code; so, don't override that.
+# 2. -Werror=format-security causes build failures when -Wno-format is explicitly given
+#    for some sources
+MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive -Wformat-security -Wformat -Werror=format-security" | %{__sed} -e 's/-Wall//')
+
+# TODO check if necessery
+%ifarch s390
+MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
+%endif
+
+# Avoid failing builds because OOM killer on some arches
+%ifarch s390 %{arm} ppc
+MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
+%endif
+
+%if %{rhel} == 6
+  %if %{system_libatomic}
+    MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -l:libatomic.so.1"
+  %endif
+%endif
+
+%if %{?debug_build}
+  MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
+%endif
+
+export CFLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-fpermissive//')
+export CXXFLAGS=$MOZ_OPT_FLAGS
+export LDFLAGS="-Wl,--verbose $MOZ_LINK_FLAGS"
+
+export PREFIX='%{_prefix}'
+export LIBDIR='%{_libdir}'
+
+MOZ_SMP_FLAGS=-j1
+[ -z "$RPM_BUILD_NCPUS" ] && \
+     RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
+[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
+[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4
+[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8
+
+MOZ_APP_DIR=%{_libdir}/%{name}
+
+make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS"
+
+#---------------------------------------------------------------------
+
+%install
+# Hack for missing shell when building in brew on RHEL6 and RHEL5
+%if 0%{?rhel} <= 6
+export SHELL=/bin/sh
+%endif
+
+cd %{tarballdir}
+%{__rm} -rf $RPM_BUILD_ROOT
+
+# set up our default bookmarks
+%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/defaults/profile/bookmarks.html
+
+# Make sure locale works for langpacks
+%{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF
+pref("general.useragent.locale", "chrome://global/locale/intl.properties");
+EOF
+
+
+DESTDIR=$RPM_BUILD_ROOT make -C objdir install
+
+%{__mkdir_p} $RPM_BUILD_ROOT{%{_libdir},%{_bindir},%{_datadir}/applications}
+
+desktop-file-install \
+  --dir $RPM_BUILD_ROOT%{_datadir}/applications \
+  --add-category WebBrowser \
+  --add-category Network \
+  %{SOURCE20}
+
+# Set up the firefox start script, unfortunatelly it is different for each RHEL
+rm -rf $RPM_BUILD_ROOT%{_bindir}/firefox
+FIREFOX_SH_SOURCE=%{SOURCE700}
+%if %{rhel} == 6
+  FIREFOX_SH_SOURCE=%{SOURCE600}
+%endif
+cp $FIREFOX_SH_SOURCE $RPM_BUILD_ROOT%{_bindir}/firefox
+%{__chmod} 755 $RPM_BUILD_ROOT%{_bindir}/firefox
+
+# Installing man page
+%{__install} -p -D -m 644 %{SOURCE23} $RPM_BUILD_ROOT%{_mandir}/man1/firefox.1
+
+%{__rm} -f $RPM_BUILD_ROOT/%{mozappdir}/firefox-config
+
+for s in 16 22 24 32 48 256; do
+    %{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps
+    %{__cp} -p browser/branding/official/default${s}.png \
+               $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png
+done
+
+echo > ../%{name}.lang
+%if %{build_langpacks}
+# Extract langpacks, make any mods needed, repack the langpack, and install it.
+%{__mkdir_p} $RPM_BUILD_ROOT%{langpackdir}
+%{__xz} -dc %{SOURCE1} | %{__tar} xf -
+for langpack in `ls firefox-langpacks/*.xpi`; do
+  language=`basename $langpack .xpi`
+  extensionID=langpack-$language@firefox.mozilla.org
+  %{__mkdir_p} $extensionID
+  unzip $langpack -d $extensionID
+  find $extensionID -type f | xargs chmod 644
+
+  cd $extensionID
+  zip -r9mX ../${extensionID}.xpi *
+  cd -
+
+  %{__install} -m 644 ${extensionID}.xpi $RPM_BUILD_ROOT%{langpackdir}
+  language=`echo $language | sed -e 's/-/_/g'`
+  echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> ../%{name}.lang
+done
+%{__rm} -rf firefox-langpacks
+
+# Install langpack workaround (see #707100, #821169)
+function create_default_langpack() {
+  language_long=$1
+  language_short=$2
+  cd $RPM_BUILD_ROOT%{langpackdir}
+  ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi
+  cd -
+  echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> ../%{name}.lang
+}
+
+# Table of fallbacks for each language
+# please file a bug at bugzilla.redhat.com if the assignment is incorrect
+create_default_langpack "bn-IN" "bn"
+create_default_langpack "es-AR" "es"
+create_default_langpack "fy-NL" "fy"
+create_default_langpack "ga-IE" "ga"
+create_default_langpack "gu-IN" "gu"
+create_default_langpack "hi-IN" "hi"
+create_default_langpack "hy-AM" "hy"
+create_default_langpack "nb-NO" "nb"
+create_default_langpack "nn-NO" "nn"
+create_default_langpack "pa-IN" "pa"
+create_default_langpack "pt-PT" "pt"
+create_default_langpack "sv-SE" "sv"
+create_default_langpack "zh-TW" "zh"
+%endif # build_langpacks
+
+# Keep compatibility with the old preference location.
+%{__mkdir_p} $RPM_BUILD_ROOT/%{mozappdir}/defaults/preferences
+%{__mkdir_p} $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults
+ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults/preferences
+
+# Install default ones
+%{__cp} %{SOURCE12} ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js
+# Modify preset preferences
+%if %{use_baselinejit}
+  echo 'pref("javascript.options.baselinejit",      true);'  >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js
+%else
+  echo '/* Workaround for rhbz#1134876 */'                   >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js
+  echo 'pref("javascript.options.baselinejit",      false);' >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js
+%endif
+
+# System config dir
+%{__mkdir_p} $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/pref
+
+# System extensions
+%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/mozilla/extensions/%{firefox_app_id}
+%{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/%{firefox_app_id}
+
+# Copy over the LICENSE
+%{__install} -p -c -m 644 LICENSE $RPM_BUILD_ROOT/%{mozappdir}
+
+# Use the system dictionaries for system hunspell
+%{__rm} -rf ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries
+ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries
+
+# Clean firefox-devel debuginfo
+rm -rf %{_prefix}/lib/debug/lib/%{name}-devel-*
+rm -rf %{_prefix}/lib/debug/lib64/%{name}-devel-*
+
+#---------------------------------------------------------------------
+
+%clean
+%{__rm} -rf $RPM_BUILD_ROOT
+
+#---------------------------------------------------------------------
+
+%post
+update-desktop-database &> /dev/null || :
+touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+if [ -x %{_bindir}/gtk-update-icon-cache ]; then
+  %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+fi
+
+%postun
+if [ $1 -eq 0 ] ; then
+    touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+    gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+fi
+update-desktop-database &> /dev/null || :
+
+%preun
+# is it a final removal?
+if [ $1 -eq 0 ]; then
+  %{__rm} -rf %{mozappdir}/components
+  %{__rm} -rf %{mozappdir}/extensions
+  %{__rm} -rf %{mozappdir}/plugins
+fi
+
+%posttrans
+gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%{_bindir}/firefox
+%doc %{_mandir}/man1/*
+%dir %{_sysconfdir}/%{name}/*
+%dir %{_datadir}/mozilla/extensions/%{firefox_app_id}
+%dir %{_libdir}/mozilla/extensions/%{firefox_app_id}
+%{_datadir}/icons/hicolor/16x16/apps/firefox.png
+%{_datadir}/icons/hicolor/48x48/apps/firefox.png
+%{_datadir}/icons/hicolor/22x22/apps/firefox.png
+%{_datadir}/icons/hicolor/24x24/apps/firefox.png
+%{_datadir}/icons/hicolor/256x256/apps/firefox.png
+%{_datadir}/icons/hicolor/32x32/apps/firefox.png
+%{_datadir}/applications/%{name}.desktop
+%dir %{mozappdir}
+%doc %{mozappdir}/LICENSE
+%{mozappdir}/browser/chrome
+%{mozappdir}/browser/chrome.manifest
+%{mozappdir}/browser/features/aushelper@mozilla.org.xpi
+%{mozappdir}/browser/features/e10srollout@mozilla.org.xpi
+%{mozappdir}/browser/features/firefox@getpocket.com.xpi
+%{mozappdir}/browser/features/webcompat@mozilla.org.xpi
+#gone %{mozappdir}/browser/features/disableSHA1rollout@mozilla.org.xpi
+#gone %dir %{mozappdir}/browser/components
+#gone %{mozappdir}/browser/components/*.so
+#gone %{mozappdir}/browser/components/*.manifest
+%attr(644, root, root) %{mozappdir}/browser/blocklist.xml
+%dir %{mozappdir}/browser/extensions
+%{mozappdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
+# gone %{mozappdir}/browser/features/loop@mozilla.org.xpi
+%dir %{mozappdir}/langpacks
+%{mozappdir}/browser/icons
+%{mozappdir}/browser/omni.ja
+%{mozappdir}/firefox
+%{mozappdir}/firefox-bin
+%{mozappdir}/run-mozilla.sh
+%{mozappdir}/application.ini
+%{mozappdir}/defaults/preferences/*
+%{mozappdir}/browser/defaults/preferences
+%exclude %{mozappdir}/removed-files
+# gone %{mozappdir}/webapprt-stub
+# gone %dir %{mozappdir}/webapprt
+# g %{mozappdir}/webapprt/omni.ja
+# g %{mozappdir}/webapprt/webapprt.ini
+%{mozappdir}/dictionaries
+%{mozappdir}/*.so
+%{mozappdir}/omni.ja
+%{mozappdir}/platform.ini
+%{mozappdir}/plugin-container
+%{mozappdir}/dependentlibs.list
+%{mozappdir}/chrome.manifest
+%{mozappdir}/fonts/EmojiOneMozilla.ttf
+%{mozappdir}/gmp-clearkey
+%if %{?use_gtk3}
+%{mozappdir}/gtk2/*.so
+%endif
+%if %{?with_intl_api}
+%if 0%{?big_endian}
+%{mozappdir}/icudt58b.dat
+%else
+%{mozappdir}/icudt58l.dat
+%endif
+%endif
+%exclude %{mozappdir}/defaults/pref/channel-prefs.js
+%if !%{?system_nss}
+%{mozappdir}/*.chk
+%endif
+%exclude %{_datadir}/idl/*
+%exclude %{_includedir}/*
+%exclude %{_libdir}/%{name}-devel-*/*
+
+#---------------------------------------------------------------------
+
+%changelog
+* Thu Nov  9 2017 Jan Horak <jhorak@redhat.com> - 52.5.0-1
+- Update to 52.5.0 ESR
+
+* Mon Sep 25 2017 Jan Horak <jhorak@redhat.com> - 52.4.0-1
+- Update to 52.4.0 ESR
+
+* Thu Aug  3 2017 Jan Horak <jhorak@redhat.com> - 52.3.0-3
+- Update to 52.3.0 ESR (b2)
+- Require correct nss version
+
+* Tue Jun 13 2017 Jan Horak <jhorak@redhat.com> - 52.2.0-1
+- Update to 52.2.0 ESR
+
+* Wed May 24 2017 Jan Horak <jhorak@redhat.com> - 52.1.2-1
+- Update to 52.1.2 ESR
+
+* Wed May 24 2017 Jan Horak <jhorak@redhat.com> - 52.0-7
+- Added fix for accept language (rhbz#1454322)
+
+* Wed Mar 22 2017 Jan Horak <jhorak@redhat.com> - 52.0-6
+- Removing patch required for older NSS from RHEL 7.3
+- Added patch for rhbz#1414564
+
+* Fri Mar 17 2017 Martin Stransky <stransky@redhat.com> - 52.0-5
+- Added fix for mozbz#1348168/CVE-2017-5428
+
+* Mon Mar  6 2017 Jan Horak <jhorak@redhat.com> - 52.0-4
+- Update to 52.0 ESR (b4)
+
+* Thu Mar 2 2017 Martin Stransky <stransky@redhat.com> - 52.0-3
+- Added fix for rhbz#1423012 - ppc64 gfx crashes
+
+* Wed Mar  1 2017 Jan Horak <jhorak@redhat.com> - 52.0-2
+- Enable system nss
+
+* Tue Feb 28 2017 Martin Stransky <stransky@redhat.com> - 52.0-1
+- Update to 52.0ESR (B1)
+- Build RHEL7 package for Gtk3
+
+* Mon Feb 27 2017 Martin Stransky <stransky@redhat.com> - 52.0-0.13
+- Added fix for rhbz#1414535
+
+* Tue Feb 21 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.12
+- Update to 52.0b8
+
+* Tue Feb  7 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.11
+- Readded addons patch
+
+* Mon Feb  6 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.10
+- Update to 52.0b3
+
+* Tue Jan 31 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.9
+- Update to 52.0b2
+
+* Fri Jan 27 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.8
+- Update to 52.0b1
+
+* Thu Dec  8 2016 Jan Horak <jhorak@redhat.com> - 52.0-0.5
+- Firefox Aurora 52 testing build
+
+* Tue Nov  8 2016 Jan Horak <jhorak@redhat.com> - 45.5.0-1
+- Update to 45.5.0 ESR
+
+* Mon Oct 31 2016 Jan Horak <jhorak@redhat.com> - 45.4.0-3
+- Added upcoming upstream patches mozbz#1018486
+
+* Mon Sep 26 2016 Jan Horak <jhorak@redhat.com> - 45.4.0-2
+- Added Laszlo Ersek patch for aarch64 crashes
+
+* Wed Sep  7 2016 Jan Horak <jhorak@redhat.com> - 45.4.0-1
+- Update to 45.4.0 ESR
+
+* Wed Jul 27 2016 Jan Horak <jhorak@redhat.com> - 45.3.0-1
+- Update to 45.3.0 ESR
+
+* Mon Jul 11 2016 Martin Stransky <stransky@redhat.com> - 45.2.0-3
+- Added fix for mozbz#256180
+
+* Mon Jun 20 2016 Martin Stransky <stransky@redhat.com> - 45.2.0-2
+- Added fix for mozbz#975832, rhbz#1343202
+
+* Fri Jun  3 2016 Jan Horak <jhorak@redhat.com> - 45.2.0-1
+- Update to 45.2.0 ESR
+
+* Tue May 10 2016 Martin Stransky <stransky@redhat.com> - 45.1.1-2
+- Added fix for mozbz#1270046 - new Samba auth response
+
+* Wed May  4 2016 Jan Horak <jhorak@redhat.com> - 45.1.1-1
+- Update to 45.1.1 ESR
+
+* Tue May 3 2016 Martin Stransky <stransky@redhat.com> - 45.1.0-3
+- Disabled ffmpeg (rhbz#1330898)
+
+* Fri Apr 29 2016 Jan Horak <jhorak@redhat.com> - 45.1.0-1
+- Fixed some regressions introduced by rebase
+
+* Thu Apr 21 2016 Jan Horak <jhorak@redhat.com> - 45.1.0-1
+- Update to 45.1.0 ESR
+
+* Tue Apr 12 2016 Jan Horak <jhorak@redhat.com> - 45.0.2-1
+- Update to 45.0.2 ESR
+
+* Wed Apr  6 2016 Jan Horak <jhorak@redhat.com> - 45.0.1-1
+- Update to 45.0.1 ESR
+
+* Mon Apr  4 2016 Martin Stransky <stransky@redhat.com> - 45.0-5
+- Fixed crashed after start (rhbz#1323744, rhbz#1323738)
+
+* Mon Apr  4 2016 Jan Horak <jhorak@redhat.com> - 45.0-4
+- Added system-level location for configuring Firefox (rhbz#1206239)
+
+* Mon Mar  7 2016 Jan Horak <jhorak@redhat.com> - 45.0-3
+- Update to 45.0 ESR
+
+* Fri Dec 11 2015 Jan Horak <jhorak@redhat.com> - 38.5.0-3
+- Update to 38.5.0 ESR
+
+* Thu Oct 29 2015 Jan Horak <jhorak@redhat.com> - 38.4.0-1
+- Update to 38.4.0 ESR
+
+* Tue Sep 15 2015 Jan Horak <jhorak@redhat.com> - 38.3.0-2
+- Update to 38.3.0 ESR
+
+* Wed Aug 26 2015 Martin Stransky <stransky@redhat.com> - 38.2.1-1
+- Update to 38.2.1 ESR
+
+* Fri Aug  7 2015 Jan Horak <jhorak@redhat.com> - 38.2.0-4
+- Update to 38.2.0 ESR
+
+* Thu Aug  6 2015 Jan Horak <jhorak@redhat.com> - 38.1.1-1
+- Update to 38.1.1 ESR
+
+* Thu Jun 25 2015 Jan Horak <jhorak@redhat.com> - 38.1.0-1
+- Update to 38.1.0 ESR
+
+* Thu May 21 2015 Jan Horak <jhorak@redhat.com> - 38.0.1-2
+- Fixed rhbz#1222807 by removing preun section
+
+* Fri May 15 2015 Martin Stransky <stransky@redhat.com> - 38.0.1-1
+- Update to 38.0.1 ESR
+
+* Thu May 14 2015 Martin Stransky <stransky@redhat.com> - 38.0-4
+- Fixed rhbz#1221286 - After update to Firefox 38 ESR
+  all RH preferences are gone
+
+* Thu May  7 2015 Martin Stransky <stransky@redhat.com> - 38.0-3
+- Enabled system nss
+- Removed unused patches
+
+* Mon May  4 2015 Jan Horak - 38.0-2
+- Update to 38.0 ESR
+
+* Mon Apr 27 2015 Martin Stransky <stransky@redhat.com> - 38.0b8-0.11
+- Update to 38.0 Beta 8
+
+* Wed Apr 22 2015 Martin Stransky <stransky@redhat.com> - 38.0b6-0.10
+- Added patch for mozbz#1152515
+
+* Tue Apr 21 2015 Martin Stransky <stransky@redhat.com> - 38.0b6-0.9
+- Update to 38.0 Beta 6
+
+* Mon Apr 20 2015 Martin Stransky <stransky@redhat.com> - 38.0b5-0.8
+- Update to 38.0 Beta 5
+
+* Fri Apr 10 2015 Martin Stransky <stransky@redhat.com> - 38.0b3-0.7
+- Update to 38.0 Beta 3
+
+* Fri Apr 10 2015 Martin Stransky <stransky@redhat.com> - 38.0b1-0.6
+- Added patch for mozbz#1152391
+
+* Thu Apr  9 2015 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> - 38.0b1-0.5
+- Fix build on AArch64 (based on upstream skia changes)
+
+* Tue Apr 7 2015 Martin Stransky <stransky@redhat.com> - 38.0b1-0.4
+- Enabled debug build
+
+* Wed Apr  1 2015 Jan Horak <jhorak@redhat.com> - 38.0b1-1
+- Update to 38.0b1
+
+* Wed Feb 18 2015 Martin Stransky <stransky@redhat.com> - 31.5.0-2
+- Update to 31.5.0 ESR Build 2
+
+* Tue Jan  6 2015 Jan Horak <jhorak@redhat.com> - 31.4.0-1
+- Update to 31.4.0 ESR
+
+* Mon Jan 5 2015 Martin Stransky <stransky@redhat.com> - 31.3.0-6
+- Fixed Bug 1140385 - [HP HPS 7.1 bug] assertion
+  "sys_page_size == 0" when starting firefox
+
+* Fri Dec 19 2014 Martin Stransky <stransky@redhat.com> - 31.3.0-5
+- Fixed problems with dictionary (mozbz#1097550)
+- JS JIT fixes for ppc64le
+
+* Sat Nov 29 2014 Martin Stransky <stransky@redhat.com> - 31.3.0-3
+- Fixed geolocation key location
+
+* Fri Nov 28 2014 Martin Stransky <stransky@redhat.com> - 31.3.0-2
+- Disable exact rooting for JS
+
+* Wed Nov 26 2014 Martin Stransky <stransky@redhat.com> - 31.3.0-1
+- Update to 31.3.0 ESR Build 2
+- Fix for geolocation API (rhbz#1063739)
+
+* Thu Nov 6 2014 Martin Stransky <stransky@redhat.com> - 31.2.0-5
+- Enabled gstreamer-1 support (rhbz#1161077)
+
+* Mon Oct 27 2014 Yaakov Selkowitz <yselkowi@redhat.com> - 31.2.0-4
+- Fix webRTC for aarch64, ppc64le (rhbz#1148622)
+
+* Tue Oct  7 2014 Jan Horak <jhorak@redhat.com> - 31.2.0-3
+- Update to 31.2.0 ESR
+- Fix for mozbz#1042889
+
+* Wed Oct 1 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-7
+- Enable WebM on all arches
+
+* Thu Sep 11 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-6
+- Enable all NPAPI plugins by default to keep compatibility
+  with the FF24 line
+
+* Wed Sep 10 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-5
+- Added workaround for rhbz#1134876
+
+* Mon Sep 8 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-3
+- Disable mozilla::pkix (mozbz#1063315)
+- Enable image cache
+
+* Mon Sep 8 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-2
+- A workaround for rhbz#1110291
+
+* Thu Aug 28 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-1
+- Update to 31.1.0 ESR
+
+* Tue Aug 5 2014 Martin Stransky <stransky@redhat.com> - 31.0-3
+- Built with system libvpx/WebM
+
+* Mon Aug 4 2014 Martin Stransky <stransky@redhat.com> - 31.0-2
+- Built with system nss/nspr
+
+* Mon Jul 28 2014 Martin Stransky <stransky@redhat.com> - 31.0-1
+- Update to 31.0 ESR
+
+* Wed Jun  4 2014 Jan Horak <jhorak@redhat.com> - 24.6.0-1
+- Update to 24.6.0 ESR
+
+* Wed Apr 23 2014 Martin Stransky <stransky@redhat.com> - 24.5.0-2
+- Removed unused patches
+
+* Tue Apr 22 2014 Martin Stransky <stransky@redhat.com> - 24.5.0-1
+- Update to 24.5.0 ESR
+
+* Tue Apr 15 2014 Martin Stransky <stransky@redhat.com> - 24.4.0-3
+- Added a workaround for Bug 1054242 - RHEVM: Extremely high memory
+  usage in Firefox 24 ESR on RHEL 6.5
+
+* Wed Mar 26 2014 Martin Stransky <stransky@redhat.com> - 24.4.0-2
+- fixed rhbz#1067343 - Broken languagepack configuration 
+  after firefox update
+
+* Tue Mar 18 2014 Jan Horak <jhorak@redhat.com> - 24.4.0-1
+- Update to 24.4.0 ESR
+
+* Thu Feb 27 2014 Martin Stransky <stransky@redhat.com> - 24.3.0-3
+- fixed rhbz#1054832 - Firefox does not support Camellia cipher
+
+* Mon Feb  3 2014 Jan Horak <jhorak@redhat.com> - 24.3.0-1
+- Update to 24.3.0 ESR
+
+* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 24.2.0-3
+- Mass rebuild 2014-01-24
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 24.2.0-2
+- Mass rebuild 2013-12-27
+
+* Mon Dec 9 2013 Martin Stransky <stransky@redhat.com> - 24.2.0-1
+- Update to 24.2.0 ESR
+
+* Mon Dec 2 2013 Martin Stransky <stransky@redhat.com> - 24.1.0-5
+- Fixed mozbz#938730 - avoid mix of memory allocators (crashes)
+  when using system sqlite
+
+* Tue Nov 26 2013 Martin Stransky <stransky@redhat.com> - 24.1.0-4
+- Fixed rhbz#1034541 - No translation being picked up 
+  from langpacks for firefox
+
+* Fri Nov 8 2013 Martin Stransky <stransky@redhat.com> - 24.1.0-3
+- Conflicts with old, xulrunner based firefox
+
+* Thu Nov 7 2013 Martin Stransky <stransky@redhat.com> - 24.1.0-2
+- Ship dependentlibs.list (rhbz#1027782)
+- Nss/nspr dependency update
+
+* Wed Nov 6 2013 Martin Stransky <stransky@redhat.com> - 24.1.0-1
+- Update to 24.1.0 ESR
+
+* Wed Nov 6 2013 Martin Stransky <stransky@redhat.com> - 24.0-2
+- Build as stand alone browser, without xulrunner
+
+* Thu Oct 31 2013 Martin Stransky <stransky@redhat.com> - 24.0-1
+- Update to 24.0 ESR
+
+* Thu Sep 12 2013 Jan Horak <jhorak@redhat.com> - 17.0.9-1
+- Update to 17.0.9 ESR
+
+* Thu Aug 29 2013 Martin Stransky <stransky@redhat.com> - 17.0.8-2
+- Desktop file update
+- Spec file tweaks
+
+* Thu Aug 1 2013 Martin Stransky <stransky@redhat.com> - 17.0.8-1
+- Update to 17.0.8 ESR
+
+* Wed Jul 31 2013 Jan Horak <jhorak@redhat.com> - 17.0.7-2
+- Updated manual page
+
+* Thu Jun 20 2013 Jan Horak <jhorak@redhat.com> - 17.0.7-1
+- Update to 17.0.7 ESR
+
+* Fri May 17 2013 Jan Horak <jhorak@redhat.com> - 17.0.6-1
+- Update to 17.0.6 ESR
+
+* Fri May 17 2013 Martin Stransky <stransky@redhat.com> - 17.0.5-3
+- Removed mozilla prefix from desktop file (rhbz#826960)
+
+* Thu Apr 18 2013 Martin Stransky <stransky@redhat.com> - 17.0.5-2
+- Updated XulRunner SDK check
+
+* Fri Mar 29 2013 Jan Horak <jhorak@redhat.com> - 17.0.5-1
+- Update to 17.0.5 ESR
+
+* Thu Mar 14 2013 Martin Stransky <stransky@redhat.com> - 17.0.4-2
+- Fixed rhbz#837606 - firefox has no x-scheme-handler/http mime
+
+* Wed Mar 13 2013 Martin Stransky <stransky@redhat.com> - 17.0.4-1
+- Update to 17.0.4 ESR
+- Added fix for mozbz#239254 - [Linux] Support disk cache on a local path
+
+* Tue Jan 15 2013 Martin Stransky <stransky@redhat.com> - 17.0.2-3
+- Added NM preferences
+
+* Fri Jan 11 2013 Martin Stransky <stransky@redhat.com> - 17.0.2-2
+- Updated preferences (NFS, nspluginwrapper)
+
+* Thu Jan 10 2013 Jan Horak <jhorak@redhat.com> - 17.0.2-1
+- Update to 17.0.2 ESR
+
+* Thu Dec 20 2012 Jan Horak <jhorak@redhat.com> - 17.0.1-1
+- Update to 17.0.1 ESR
+
+* Mon Oct  8 2012 Jan Horak <jhorak@redhat.com> - 10.0.8-2
+- Update to 10.0.8 ESR
+
+* Sat Aug 25 2012 Jan Horak <jhorak@redhat.com> - 10.0.7-1
+- Update to 10.0.7 ESR
+
+* Mon Jul 16 2012 Martin Stransky <stransky@redhat.com> - 10.0.6-1
+- Update to 10.0.6 ESR
+
+* Mon Jun 25 2012 Martin Stransky <stransky@redhat.com> - 10.0.5-4
+- Enabled WebM
+
+* Mon Jun 25 2012 Martin Stransky <stransky@redhat.com> - 10.0.5-2
+- Added fix for mozbz#703633, rhbz#818341
+
+* Fri Jun 1 2012 Martin Stransky <stransky@redhat.com> - 10.0.5-1
+- Update to 10.0.5 ESR
+
+* Sun Apr 22 2012 Martin Stransky <stransky@redhat.com> - 10.0.4-1
+- Update to 10.0.4 ESR
+
+* Tue Mar 6 2012 Martin Stransky <stransky@redhat.com> - 10.0.3-1
+- Update to 10.0.3 ESR
+
+* Thu Feb  9 2012 Jan Horak <jhorak@redhat.com> - 10.0.1-1
+- Update to 10.0.1 ESR
+
+* Tue Feb 7 2012 Martin Stransky <stransky@redhat.com> - 10.0-3
+- Update to 10.0 ESR
+
+* Mon Jan 30 2012 Martin Stransky <stransky@redhat.com> - 10.0-1
+- Update to 10.0
+
+* Mon Sep 26 2011 Martin Stransky <stransky@redhat.com> - 7.0-5
+- Update to 7.0
+
+* Tue Sep 20 2011 Jan Horak <jhorak@redhat.com> - 7.0-4
+- Update to 7.0 Beta 6
+
+* Tue Sep 13 2011 Martin Stransky <stransky@redhat.com> - 7.0-2
+- Update to 7.0 Beta 4
+
+* Mon Jul 11 2011 Martin Stransky <stransky@redhat.com> - 5.0-1
+- Update to 5.0
+
+* Mon Jun 13 2011 Jan Horak <jhorak@redhat.com> - 3.6.18-1
+- Fixed #698313 - "background-repeat" css property isn't rendered well
+- Update to 3.6.18
+
+* Mon Apr 18 2011 Jan Horak <jhorak@redhat.com> - 3.6.17-1
+- Update to 3.6.17
+
+* Tue Mar  8 2011 Jan Horak <jhorak@redhat.com> - 3.6.15-1
+- Update to 3.6.15
+
+* Mon Feb 21 2011 Jan Horak <jhorak@redhat.com> - 3.6.14-4
+- Update to build3
+
+* Tue Feb  8 2011 Jan Horak <jhorak@redhat.com> - 3.6.14-3
+- Update to build2
+
+* Wed Jan 26 2011 Jan Horak <jhorak@redhat.com> - 3.6.14-2
+- Update to 3.6.14