diff --git a/.firefox.metadata b/.firefox.metadata
index 8fd7ec4..81ee5b1 100644
--- a/.firefox.metadata
+++ b/.firefox.metadata
@@ -1,2 +1,2 @@
-7aad03b3152778b1902c102d9c0f99e5528833fa SOURCES/firefox-24.8.0esr.source.tar.bz2
-567daed3dd20872e2fbf53fb3ef258b693b65aee SOURCES/firefox-langpacks-24.8.0esr-20140826.tar.bz2
+d84451f86664b7cc1ef380e735b03db410f48c18 SOURCES/firefox-31.1.0esr.source.tar.bz2
+eeae78d0ce88732439a0be497a50f0f009c63df8 SOURCES/firefox-langpacks-31.1.0esr-20140828.tar.bz2
diff --git a/.gitignore b/.gitignore
index 27667ac..e6a1bf7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-SOURCES/firefox-24.8.0esr.source.tar.bz2
-SOURCES/firefox-langpacks-24.8.0esr-20140826.tar.bz2
+SOURCES/firefox-31.1.0esr.source.tar.bz2
+SOURCES/firefox-langpacks-31.1.0esr-20140828.tar.bz2
diff --git a/SOURCES/disable-webm.patch b/SOURCES/disable-webm.patch
new file mode 100644
index 0000000..570713b
--- /dev/null
+++ b/SOURCES/disable-webm.patch
@@ -0,0 +1,11 @@
+diff -up mozilla-esr31/browser/confvars.sh.webm-fix mozilla-esr31/browser/confvars.sh
+--- mozilla-esr31/browser/confvars.sh.webm-fix 2014-07-21 13:56:53.522253529 +0200
++++ mozilla-esr31/browser/confvars.sh 2014-07-21 13:57:49.983533186 +0200
+@@ -65,6 +65,6 @@ MOZ_PAY=1
+ # Enable activities. These are used for FxOS developers currently.
+ MOZ_ACTIVITIES=1
+ MOZ_JSDOWNLOADS=1
+-MOZ_WEBM_ENCODER=1
++#MOZ_WEBM_ENCODER=1
+ # Enable exact rooting on desktop.
+ JSGC_USE_EXACT_ROOTING=1
diff --git a/SOURCES/firefox-17.0-enable-addons.patch b/SOURCES/firefox-17.0-enable-addons.patch
deleted file mode 100644
index d6044e0..0000000
--- a/SOURCES/firefox-17.0-enable-addons.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -up mozilla-esr17/browser/app/profile/firefox.js.addons mozilla-esr17/browser/app/profile/firefox.js
---- mozilla-esr17/browser/app/profile/firefox.js.addons 2012-11-29 05:43:51.000000000 +0100
-+++ mozilla-esr17/browser/app/profile/firefox.js 2012-12-21 08:40:51.799335531 +0100
-@@ -61,7 +61,7 @@ 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);
-
- // Dictionary download preference
- pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/");
-diff -up mozilla-esr17/toolkit/mozapps/extensions/XPIProvider.jsm.addons mozilla-esr17/toolkit/mozapps/extensions/XPIProvider.jsm
---- mozilla-esr17/toolkit/mozapps/extensions/XPIProvider.jsm.addons 2012-11-29 05:45:08.000000000 +0100
-+++ mozilla-esr17/toolkit/mozapps/extensions/XPIProvider.jsm 2012-12-21 08:40:14.342341623 +0100
-@@ -1630,8 +1630,8 @@ var XPIProvider = {
- this.showUpgradeUI();
- flushCaches = true;
- }
-- else if (aAppChanged === undefined) {
-- // For new profiles we will never need to show the add-on selection UI
-+ else {
-+ // For all profiles we will never need to show the add-on selection UI
- Services.prefs.setBoolPref(PREF_SHOWN_SELECTION_UI, true);
- }
-
diff --git a/SOURCES/firefox-24.0-default.patch b/SOURCES/firefox-24.0-default.patch
deleted file mode 100644
index 5c1171a..0000000
--- a/SOURCES/firefox-24.0-default.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-diff -up firefox-24.0/mozilla-esr24/browser/components/preferences/advanced.xul.default firefox-24.0/mozilla-esr24/browser/components/preferences/advanced.xul
---- firefox-24.0/mozilla-esr24/browser/components/preferences/advanced.xul.default 2013-09-11 05:22:18.000000000 +0200
-+++ firefox-24.0/mozilla-esr24/browser/components/preferences/advanced.xul 2013-10-31 12:51:28.597413904 +0100
-@@ -40,7 +40,7 @@
- #endif
-
-
--#ifdef HAVE_SHELL_SERVICE
-+#ifdef 0
-
-@@ -72,7 +72,7 @@
- type="bool"/>
-
-
--#ifdef MOZ_UPDATER
-+#ifdef 0
-
-
- #ifdef XP_WIN
-@@ -106,7 +106,7 @@
- type="bool"/>
-
-
--#ifdef HAVE_SHELL_SERVICE
-+#ifdef 0
-
-
- #endif
-@@ -174,7 +174,7 @@
- preference="layout.spellcheckDefault"/>
-
-
--#ifdef HAVE_SHELL_SERVICE
-+#ifdef 0
-
-
-
-diff -up firefox-24.0/mozilla-esr24/browser/components/shell/src/Makefile.in.default firefox-24.0/mozilla-esr24/browser/components/shell/src/Makefile.in
---- firefox-24.0/mozilla-esr24/browser/components/shell/src/Makefile.in.default 2013-10-31 12:49:11.279309914 +0100
-+++ firefox-24.0/mozilla-esr24/browser/components/shell/src/Makefile.in 2013-10-31 12:52:27.772465355 +0100
-@@ -13,7 +13,7 @@ include $(DEPTH)/config/autoconf.mk
- FORCE_STATIC_LIB = 1
- USE_STATIC_LIBS = 1
-
--DISABLED_EXTRA_COMPONENTS = nsSetDefaultBrowser.js nsSetDefaultBrowser.manifest
-+#DISABLED_EXTRA_COMPONENTS = nsSetDefaultBrowser.js nsSetDefaultBrowser.manifest
-
- include $(topsrcdir)/config/rules.mk
-
-diff -up firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.cpp.default firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.cpp
---- firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.cpp.default 2013-09-11 05:22:18.000000000 +0200
-+++ firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.cpp 2013-10-31 12:56:17.450679146 +0100
-@@ -149,8 +149,8 @@ nsGNOMEShellService::GetAppPathFromLaunc
- bool
- nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const
- {
-+ nsAutoCString appName;
-
-- gchar *commandPath;
- if (mUseLocaleFilenames) {
- gchar *nativePath = g_filename_from_utf8(aKeyValue, -1, NULL, NULL, NULL);
- if (!nativePath) {
-@@ -158,17 +158,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 gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
- nsCOMPtr 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 firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.h.default firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.h
---- firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.h.default 2013-09-11 05:22:18.000000000 +0200
-+++ firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.h 2013-10-31 12:49:11.280309915 +0100
-@@ -13,7 +13,7 @@
- class nsGNOMEShellService MOZ_FINAL : public nsIShellService
- {
- public:
-- nsGNOMEShellService() : mCheckedThisSession(false), mAppIsInPath(false) { }
-+ nsGNOMEShellService() : mCheckedThisSession(true), mAppIsInPath(true) { }
-
- NS_DECL_ISUPPORTS
- NS_DECL_NSISHELLSERVICE
diff --git a/SOURCES/firefox-5.0-asciidel.patch b/SOURCES/firefox-5.0-asciidel.patch
deleted file mode 100644
index 1916cb3..0000000
--- a/SOURCES/firefox-5.0-asciidel.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Patch from: Bill Nottingham
-
-diff -up mozilla-release/browser/base/Makefile.in.fu mozilla-release/browser/base/Makefile.in
---- mozilla-release/browser/base/Makefile.in.fu 2011-06-24 16:50:23.802042086 -0400
-+++ mozilla-release/browser/base/Makefile.in 2011-06-24 16:50:42.324042096 -0400
-@@ -62,7 +62,7 @@ EXTRA_JS_MODULES = \
-
- include $(topsrcdir)/config/rules.mk
-
--PRE_RELEASE_SUFFIX := ""
-+PRE_RELEASE_SUFFIX :=
-
- DEFINES += \
- -DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \
-
diff --git a/SOURCES/firefox-centos-default-prefs.js b/SOURCES/firefox-centos-default-prefs.js
deleted file mode 100644
index ee2943f..0000000
--- a/SOURCES/firefox-centos-default-prefs.js
+++ /dev/null
@@ -1,24 +0,0 @@
-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", "CentOS");
-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.centos.org");
-pref("startup.homepage_welcome_url", "http://www.centos.org");
-pref("javascript.options.baselinejit.content", false);
-pref("javascript.options.baselinejit.chrome", false);
-pref("extensions.shownSelectionUI", true);
-pref("layout.imagevisibility.enabled", false);
diff --git a/SOURCES/firefox-default.patch b/SOURCES/firefox-default.patch
new file mode 100644
index 0000000..51edd59
--- /dev/null
+++ b/SOURCES/firefox-default.patch
@@ -0,0 +1,104 @@
+diff -up mozilla-aurora/browser/components/preferences/advanced.xul.default mozilla-aurora/browser/components/preferences/advanced.xul
+--- mozilla-aurora/browser/components/preferences/advanced.xul.default 2014-05-06 13:17:14.000000000 +0200
++++ mozilla-aurora/browser/components/preferences/advanced.xul 2014-05-06 14:07:22.972356178 +0200
+@@ -40,7 +40,7 @@
+ #endif
+
+
+-#ifdef HAVE_SHELL_SERVICE
++#ifdef 0
+
+@@ -68,7 +68,7 @@
+ type="bool"/>
+
+
+-#ifdef MOZ_UPDATER
++#ifdef 0
+
+
+ #ifdef XP_WIN
+@@ -102,7 +102,7 @@
+ type="bool"/>
+
+
+-#ifdef HAVE_SHELL_SERVICE
++#ifdef 0
+
+
+ #endif
+@@ -170,7 +170,7 @@
+ preference="layout.spellcheckDefault"/>
+
+
+-#ifdef HAVE_SHELL_SERVICE
++#ifdef 0
+
+
+
+diff -up mozilla-aurora/browser/components/shell/src/Makefile.in.default mozilla-aurora/browser/components/shell/src/Makefile.in
+diff -up mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.cpp.default mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.cpp
+--- mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.cpp.default 2014-05-06 13:17:14.000000000 +0200
++++ mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.cpp 2014-05-06 14:07:22.973356181 +0200
+@@ -149,8 +149,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);
+@@ -159,17 +159,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;
+ }
+
+@@ -254,16 +250,7 @@ nsGNOMEShellService::SetDefaultBrowser(b
+ nsCOMPtr gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+ nsCOMPtr 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/src/nsGNOMEShellService.h.default mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.h
+--- mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.h.default 2014-05-06 13:17:14.000000000 +0200
++++ mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.h 2014-05-06 14:07:22.973356181 +0200
+@@ -13,7 +13,7 @@
+ class nsGNOMEShellService MOZ_FINAL : public nsIShellService
+ {
+ public:
+- nsGNOMEShellService() : mCheckedThisSession(false), mAppIsInPath(false) { }
++ nsGNOMEShellService() : mCheckedThisSession(true), mAppIsInPath(true) { }
+
+ NS_DECL_ISUPPORTS
+ NS_DECL_NSISHELLSERVICE
diff --git a/SOURCES/firefox-enable-addons.patch b/SOURCES/firefox-enable-addons.patch
new file mode 100644
index 0000000..ba74f5f
--- /dev/null
+++ b/SOURCES/firefox-enable-addons.patch
@@ -0,0 +1,25 @@
+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 2014-05-06 13:17:13.000000000 +0200
++++ mozilla-aurora/browser/app/profile/firefox.js 2014-05-06 14:16:32.678968008 +0200
+@@ -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 -up mozilla-aurora/toolkit/mozapps/extensions/internal/XPIProvider.jsm.addons mozilla-aurora/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+--- mozilla-aurora/toolkit/mozapps/extensions/internal/XPIProvider.jsm.addons 2014-05-06 14:16:32.680968014 +0200
++++ mozilla-aurora/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2014-05-06 14:17:29.482132549 +0200
+@@ -1894,7 +1894,7 @@ this.XPIProvider = {
+ this.showUpgradeUI();
+ flushCaches = true;
+ }
+- else if (aAppChanged === undefined) {
++ else {
+ // For new profiles we will never need to show the add-on selection UI
+ Services.prefs.setBoolPref(PREF_SHOWN_SELECTION_UI, true);
+ }
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
index e788fa0..c962fa5 100644
--- a/SOURCES/firefox-install-dir.patch
+++ b/SOURCES/firefox-install-dir.patch
@@ -1,23 +1,12 @@
-diff -up mozilla-aurora-7676a9a06403/config/baseconfig.mk.dir mozilla-aurora-7676a9a06403/config/baseconfig.mk
---- mozilla-aurora-7676a9a06403/config/baseconfig.mk.dir 2012-09-13 14:18:35.000000000 +0200
-+++ mozilla-aurora-7676a9a06403/config/baseconfig.mk 2012-09-26 10:13:45.258240426 +0200
-@@ -2,7 +2,7 @@ INCLUDED_AUTOCONF_MK = 1
-
+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)
- DIST = $(DEPTH)/dist
-
-diff -up mozilla-aurora-7676a9a06403/js/src/config/baseconfig.mk.dir mozilla-aurora-7676a9a06403/js/src/config/baseconfig.mk
---- mozilla-aurora-7676a9a06403/js/src/config/baseconfig.mk.dir 2012-09-13 14:18:35.000000000 +0200
-+++ mozilla-aurora-7676a9a06403/js/src/config/baseconfig.mk 2012-09-26 10:14:07.353351833 +0200
-@@ -1,6 +1,6 @@
- INCLUDED_AUTOCONF_MK = 1
-
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
- sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
-
- ifneq (,$(filter /%,$(TOP_DIST)))
+ ifndef TOP_DIST
+ TOP_DIST = dist
diff --git a/SOURCES/firefox-redhat-default-prefs.js b/SOURCES/firefox-redhat-default-prefs.js
index 2a22d05..b258458 100644
--- a/SOURCES/firefox-redhat-default-prefs.js
+++ b/SOURCES/firefox-redhat-default-prefs.js
@@ -18,7 +18,9 @@ pref("browser.startup.homepage", "data:text/plain,browser.startup.hom
pref("toolkit.storage.synchronous", 0);
pref("startup.homepage_override_url", "http://www.redhat.com");
pref("startup.homepage_welcome_url", "http://www.redhat.com");
-pref("javascript.options.baselinejit.content", false);
-pref("javascript.options.baselinejit.chrome", false);
+/* Workaround for rhbz#1134876 */
+pref("javascript.options.baselinejit", false);
pref("extensions.shownSelectionUI", true);
-pref("layout.imagevisibility.enabled", false);
+pref("network.negotiate-auth.allow-insecure-ntlm-v1", true);
+/* Workaround for mozbz#1063315 */
+pref("security.use_mozillapkix_verification", false);
diff --git a/SOURCES/firefox-system-nss-3.16.2.patch b/SOURCES/firefox-system-nss-3.16.2.patch
deleted file mode 100644
index 80a5712..0000000
--- a/SOURCES/firefox-system-nss-3.16.2.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up firefox-24.3.0/mozilla-esr24/configure.in.nss firefox-24.3.0/mozilla-esr24/configure.in
---- firefox-24.3.0/mozilla-esr24/configure.in.nss 2014-01-30 15:46:38.000000000 +0100
-+++ firefox-24.3.0/mozilla-esr24/configure.in 2014-01-30 17:01:30.614179142 +0100
-@@ -3944,7 +3944,7 @@ MOZ_ARG_WITH_BOOL(system-nss,
- _USE_SYSTEM_NSS=1 )
-
- if test -n "$_USE_SYSTEM_NSS"; then
-- AM_PATH_NSS(3.16.2, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
-+ AM_PATH_NSS(3.15.4, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
- fi
-
- if test -n "$MOZ_NATIVE_NSS"; then
diff --git a/SOURCES/mozilla-906754.patch b/SOURCES/mozilla-906754.patch
deleted file mode 100644
index baf13d7..0000000
--- a/SOURCES/mozilla-906754.patch
+++ /dev/null
@@ -1,204 +0,0 @@
-diff -up mozilla-esr24/xpcom/ds/TimeStamp.cpp.906754 mozilla-esr24/xpcom/ds/TimeStamp.cpp
---- mozilla-esr24/xpcom/ds/TimeStamp.cpp.906754 2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp.cpp 2013-12-20 16:11:06.607243958 +0100
-@@ -13,15 +13,41 @@
-
- namespace mozilla {
-
--TimeStamp TimeStamp::sFirstTimeStamp;
--TimeStamp TimeStamp::sProcessCreation;
-+/**
-+ * Wrapper class used to initialize static data used by the TimeStamp class
-+ */
-+struct TimeStampInitialization {
-+ /**
-+ * First timestamp taken when the class static initializers are run. This
-+ * timestamp is used to sanitize timestamps coming from different sources.
-+ */
-+ TimeStamp mFirstTimeStamp;
-+
-+ /**
-+ * Timestamp representing the time when the process was created. This field
-+ * is populated lazily the first time this information is required and is
-+ * replaced every time the process is restarted.
-+ */
-+ TimeStamp mProcessCreation;
-+
-+ TimeStampInitialization() {
-+ TimeStamp::Startup();
-+ mFirstTimeStamp = TimeStamp::Now();
-+ };
-+
-+ ~TimeStampInitialization() {
-+ TimeStamp::Shutdown();
-+ };
-+};
-+
-+static TimeStampInitialization sInitOnce;
-
- TimeStamp
- TimeStamp::ProcessCreation(bool& aIsInconsistent)
- {
- aIsInconsistent = false;
-
-- if (sProcessCreation.IsNull()) {
-+ if (sInitOnce.mProcessCreation.IsNull()) {
- char *mozAppRestart = PR_GetEnv("MOZ_APP_RESTART");
- TimeStamp ts;
-
-@@ -31,7 +57,7 @@ TimeStamp::ProcessCreation(bool& aIsInco
- if (mozAppRestart && (strcmp(mozAppRestart, "") != 0)) {
- /* Firefox was restarted, use the first time-stamp we've taken as the new
- * process startup time and unset MOZ_APP_RESTART. */
-- ts = sFirstTimeStamp;
-+ ts = sInitOnce.mFirstTimeStamp;
- PR_SetEnv("MOZ_APP_RESTART=");
- } else {
- TimeStamp now = Now();
-@@ -39,26 +65,26 @@ TimeStamp::ProcessCreation(bool& aIsInco
-
- ts = now - TimeDuration::FromMicroseconds(uptime);
-
-- if ((ts > sFirstTimeStamp) || (uptime == 0)) {
-+ if ((ts > sInitOnce.mFirstTimeStamp) || (uptime == 0)) {
- /* If the process creation timestamp was inconsistent replace it with
- * the first one instead and notify that a telemetry error was
- * detected. */
- aIsInconsistent = true;
-- ts = sFirstTimeStamp;
-+ ts = sInitOnce.mFirstTimeStamp;
- }
- }
-
-- sProcessCreation = ts;
-+ sInitOnce.mProcessCreation = ts;
- }
-
-- return sProcessCreation;
-+ return sInitOnce.mProcessCreation;
- }
-
- void
- TimeStamp::RecordProcessRestart()
- {
- PR_SetEnv("MOZ_APP_RESTART=1");
-- sProcessCreation = TimeStamp();
-+ sInitOnce.mProcessCreation = TimeStamp();
- }
-
- } // namespace mozilla
-diff -up mozilla-esr24/xpcom/ds/TimeStamp_darwin.cpp.906754 mozilla-esr24/xpcom/ds/TimeStamp_darwin.cpp
---- mozilla-esr24/xpcom/ds/TimeStamp_darwin.cpp.906754 2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp_darwin.cpp 2013-12-20 15:58:50.356993425 +0100
-@@ -114,18 +114,6 @@ TimeDuration::Resolution()
- return TimeDuration::FromTicks(int64_t(sResolution));
- }
-
--struct TimeStampInitialization
--{
-- TimeStampInitialization() {
-- TimeStamp::Startup();
-- }
-- ~TimeStampInitialization() {
-- TimeStamp::Shutdown();
-- }
--};
--
--static TimeStampInitialization initOnce;
--
- nsresult
- TimeStamp::Startup()
- {
-@@ -152,8 +140,6 @@ TimeStamp::Startup()
- sResolutionSigDigs *= 10);
-
- gInitialized = true;
-- sFirstTimeStamp = TimeStamp::Now();
-- sProcessCreation = TimeStamp();
-
- return NS_OK;
- }
-diff -up mozilla-esr24/xpcom/ds/TimeStamp.h.906754 mozilla-esr24/xpcom/ds/TimeStamp.h
---- mozilla-esr24/xpcom/ds/TimeStamp.h.906754 2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp.h 2013-12-20 15:58:50.356993425 +0100
-@@ -363,19 +363,6 @@ private:
- * When using a system clock, a value is system dependent.
- */
- TimeStampValue mValue;
--
-- /**
-- * First timestamp taken when the class static initializers are run. This
-- * timestamp is used to sanitize timestamps coming from different sources.
-- */
-- static TimeStamp sFirstTimeStamp;
--
-- /**
-- * Timestamp representing the time when the process was created. This field
-- * is populated lazily the first time this information is required and is
-- * replaced every time the process is restarted.
-- */
-- static TimeStamp sProcessCreation;
- };
-
- }
-diff -up mozilla-esr24/xpcom/ds/TimeStamp_posix.cpp.906754 mozilla-esr24/xpcom/ds/TimeStamp_posix.cpp
---- mozilla-esr24/xpcom/ds/TimeStamp_posix.cpp.906754 2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp_posix.cpp 2013-12-20 15:58:50.356993425 +0100
-@@ -159,17 +159,6 @@ TimeDuration::Resolution()
- return TimeDuration::FromTicks(int64_t(sResolution));
- }
-
--struct TimeStampInitialization
--{
-- TimeStampInitialization() {
-- TimeStamp::Startup();
-- }
-- ~TimeStampInitialization() {
-- TimeStamp::Shutdown();
-- }
--};
--
--static TimeStampInitialization initOnce;
- static bool gInitialized = false;
-
- nsresult
-@@ -192,8 +181,6 @@ TimeStamp::Startup()
- sResolutionSigDigs *= 10);
-
- gInitialized = true;
-- sFirstTimeStamp = TimeStamp::Now();
-- sProcessCreation = TimeStamp();
-
- return NS_OK;
- }
-diff -up mozilla-esr24/xpcom/ds/TimeStamp_windows.cpp.906754 mozilla-esr24/xpcom/ds/TimeStamp_windows.cpp
---- mozilla-esr24/xpcom/ds/TimeStamp_windows.cpp.906754 2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp_windows.cpp 2013-12-20 15:58:50.357993430 +0100
-@@ -457,18 +457,6 @@ TimeDuration::Resolution()
- return TimeDuration::FromTicks(int64_t(sResolution));
- }
-
--struct TimeStampInitialization
--{
-- TimeStampInitialization() {
-- TimeStamp::Startup();
-- }
-- ~TimeStampInitialization() {
-- TimeStamp::Shutdown();
-- }
--};
--
--static TimeStampInitialization initOnce;
--
- static bool
- HasStableTSC()
- {
-@@ -534,8 +522,6 @@ TimeStamp::Startup()
-
- InitThresholds();
- InitResolution();
-- sFirstTimeStamp = TimeStamp::Now();
-- sProcessCreation = TimeStamp();
-
- return NS_OK;
- }
diff --git a/SOURCES/remove-ogg.patch b/SOURCES/remove-ogg.patch
new file mode 100644
index 0000000..9bf924b
--- /dev/null
+++ b/SOURCES/remove-ogg.patch
@@ -0,0 +1,449 @@
+diff -up mozilla-aurora/config/external/moz.build.remove-ogg mozilla-aurora/config/external/moz.build
+--- mozilla-aurora/config/external/moz.build.remove-ogg 2014-05-06 13:17:17.000000000 +0200
++++ mozilla-aurora/config/external/moz.build 2014-06-03 13:51:14.450340480 +0200
+@@ -33,14 +33,15 @@ if CONFIG['MOZ_WEBM_ENCODER']:
+ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
+ external_dirs += ['media/libvpx']
+
++if CONFIG['MOZ_OGG']:
++ external_dirs += ['media/libogg', 'media/libtheora']
++
+ if not CONFIG['MOZ_NATIVE_PNG']:
+ external_dirs += ['media/libpng']
+
+ external_dirs += [
+ 'media/kiss_fft',
+ 'media/libcubeb',
+- 'media/libogg',
+- 'media/libtheora',
+ 'media/libspeex_resampler',
+ 'media/libsoundtouch',
+ ]
+diff -up mozilla-aurora/configure.in.remove-ogg mozilla-aurora/configure.in
+--- mozilla-aurora/configure.in.remove-ogg 2014-05-06 13:17:17.000000000 +0200
++++ mozilla-aurora/configure.in 2014-06-03 13:51:14.452340483 +0200
+@@ -3938,6 +3938,7 @@ MOZ_FEEDS=1
+ MOZ_WEBAPP_RUNTIME=
+ MOZ_JSDEBUGGER=1
+ MOZ_AUTH_EXTENSION=1
++MOZ_OGG=1
+ MOZ_RAW=
+ MOZ_VORBIS=
+ MOZ_TREMOR=
+@@ -5191,25 +5192,37 @@ fi
+
+ AC_SUBST(MOZ_RAW)
+
+-dnl Checks for __attribute__(aligned()) directive need by libogg
+-AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
+- [ac_cv_c_attribute_aligned],
+- [ac_cv_c_attribute_aligned=0
+- CFLAGS_save="${CFLAGS}"
+- CFLAGS="${CFLAGS} -Werror"
+- for ac_cv_c_attr_align_try in 64 32 16 8; do
+- echo "trying $ac_cv_c_attr_align_try"
+- AC_TRY_COMPILE([],
+- [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
+- [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
+- if test "$ac_cv_c_attribute_aligned" != 0; then
+- break;
+- fi
+- done
+- CFLAGS="${CFLAGS_save}"])
+-if test "${ac_cv_c_attribute_aligned}" != "0"; then
+- AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
+- [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
++dnl ========================================================
++dnl = Disable Ogg Codecs
++dnl ========================================================
++MOZ_ARG_DISABLE_BOOL(ogg,
++[ --disable-ogg Disable support for OGG media (Theora video and Vorbis audio)],
++ MOZ_OGG=,
++ MOZ_OGG=1)
++
++if test -n "$MOZ_OGG"; then
++ AC_DEFINE(MOZ_OGG)
++
++ dnl Checks for __attribute__(aligned()) directive
++ AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
++ [ac_cv_c_attribute_aligned],
++ [ac_cv_c_attribute_aligned=0
++ CFLAGS_save="${CFLAGS}"
++ CFLAGS="${CFLAGS} -Werror"
++ for ac_cv_c_attr_align_try in 64 32 16 8; do
++ echo "trying $ac_cv_c_attr_align_try"
++ AC_TRY_COMPILE([],
++ [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
++ [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
++ if test "$ac_cv_c_attribute_aligned" != 0; then
++ break;
++ fi
++ done
++ CFLAGS="${CFLAGS_save}"])
++ if test "${ac_cv_c_attribute_aligned}" != "0"; then
++ AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
++ [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
++ fi
+ fi
+
+ dnl ========================================================
+@@ -5426,7 +5439,7 @@ AC_SUBST(MOZ_NATIVE_LIBVPX)
+ AC_SUBST(MOZ_LIBVPX_CFLAGS)
+ AC_SUBST(MOZ_LIBVPX_LIBS)
+
+-if test "$MOZ_WEBM"; then
++if test "$MOZ_WEBM" -o "$MOZ_OGG"; then
+ if test "$MOZ_SAMPLE_TYPE_FLOAT32"; then
+ MOZ_VORBIS=1
+ else
+@@ -5533,6 +5546,15 @@ dnl ====================================
+ dnl = Handle dependent MEDIA defines
+ dnl ========================================================
+
++if test -n "$MOZ_OPUS" -a -z "$MOZ_OGG"; then
++ AC_MSG_ERROR([MOZ_OPUS requires MOZ_OGG which is disabled.])
++fi
++
++if test -n "$MOZ_VORBIS" -a -z "$MOZ_OGG"; then
++ AC_MSG_ERROR([MOZ_VORBIS requires MOZ_OGG which is disabled.
++Note that you need vorbis support for WebM playback.])
++fi
++
+ if test -n "$MOZ_VORBIS" -a -n "$MOZ_TREMOR"; then
+ AC_MSG_ERROR([MOZ_VORBIS and MOZ_TREMOR are mutually exclusive! The build system should not allow them both to be set, but they are. Please file a bug at https://bugzilla.mozilla.org/])
+ fi
+@@ -8842,6 +8864,7 @@ AC_SUBST(MOZ_APPLEMEDIA)
+ AC_SUBST(MOZ_OMX_PLUGIN)
+ AC_SUBST(MOZ_VPX_ERROR_CONCEALMENT)
+ AC_SUBST(MOZ_VPX)
++AC_SUBST(MOZ_OGG)
+ AC_SUBST(VPX_AS)
+ AC_SUBST(VPX_ASFLAGS)
+ AC_SUBST(VPX_DASH_C_FLAG)
+diff -up mozilla-aurora/content/html/content/src/HTMLAudioElement.cpp.remove-ogg mozilla-aurora/content/html/content/src/HTMLAudioElement.cpp
+--- mozilla-aurora/content/html/content/src/HTMLAudioElement.cpp.remove-ogg 2014-05-06 13:17:19.000000000 +0200
++++ mozilla-aurora/content/html/content/src/HTMLAudioElement.cpp 2014-06-03 13:51:14.452340483 +0200
+@@ -81,12 +81,16 @@ nsresult HTMLAudioElement::SetAcceptHead
+ #ifdef MOZ_WEBM
+ "audio/webm,"
+ #endif
++#ifdef MOZ_OGG
+ "audio/ogg,"
++#endif
+ #ifdef MOZ_WAVE
+ "audio/wav,"
+ #endif
+ "audio/*;q=0.9,"
++#ifdef MOZ_OGG
+ "application/ogg;q=0.7,"
++#endif
+ "video/*;q=0.6,*/*;q=0.5");
+
+ return aChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
+diff -up mozilla-aurora/content/html/content/src/HTMLVideoElement.cpp.remove-ogg mozilla-aurora/content/html/content/src/HTMLVideoElement.cpp
+--- mozilla-aurora/content/html/content/src/HTMLVideoElement.cpp.remove-ogg 2014-05-06 13:17:19.000000000 +0200
++++ mozilla-aurora/content/html/content/src/HTMLVideoElement.cpp 2014-06-03 13:51:14.452340483 +0200
+@@ -136,9 +136,13 @@ nsresult HTMLVideoElement::SetAcceptHead
+ #ifdef MOZ_WEBM
+ "video/webm,"
+ #endif
++#ifdef MOZ_OGG
+ "video/ogg,"
++#endif
+ "video/*;q=0.9,"
++#ifdef MOZ_OGG
+ "application/ogg;q=0.7,"
++#endif
+ "audio/*;q=0.6,*/*;q=0.5");
+
+ return aChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
+diff -up mozilla-aurora/content/media/DecoderTraits.cpp.remove-ogg mozilla-aurora/content/media/DecoderTraits.cpp
+--- mozilla-aurora/content/media/DecoderTraits.cpp.remove-ogg 2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/DecoderTraits.cpp 2014-06-03 13:51:14.452340483 +0200
+@@ -13,8 +13,10 @@
+ #include "MediaPluginHost.h"
+ #endif
+
++#ifdef MOZ_OGG
+ #include "OggDecoder.h"
+ #include "OggReader.h"
++#endif
+ #ifdef MOZ_WAVE
+ #include "WaveDecoder.h"
+ #include "WaveReader.h"
+@@ -100,6 +102,7 @@ IsRawType(const nsACString& aType)
+ }
+ #endif
+
++#ifdef MOZ_OGG
+ // See http://www.rfc-editor.org/rfc/rfc5334.txt for the definitions
+ // of Ogg media types and codec types
+ static const char* const gOggTypes[4] = {
+@@ -131,6 +134,7 @@ IsOggType(const nsACString& aType)
+
+ return CodecListContains(gOggTypes, aType);
+ }
++#endif
+
+ #ifdef MOZ_WAVE
+ // See http://www.rfc-editor.org/rfc/rfc2361.txt for the definitions
+@@ -199,8 +203,10 @@ IsGStreamerSupportedType(const nsACStrin
+ if (IsWebMType(aMimeType) && !Preferences::GetBool("media.prefer-gstreamer", false))
+ return false;
+ #endif
++#ifdef MOZ_OGG
+ if (IsOggType(aMimeType) && !Preferences::GetBool("media.prefer-gstreamer", false))
+ return false;
++#endif
+
+ return GStreamerDecoder::CanHandleMediaType(aMimeType, nullptr);
+ }
+@@ -370,10 +376,12 @@ DecoderTraits::CanHandleMediaType(const
+ result = CANPLAY_MAYBE;
+ }
+ #endif
++#ifdef MOZ_OGG
+ if (IsOggType(nsDependentCString(aMIMEType))) {
+ codecList = MediaDecoder::IsOpusEnabled() ? gOggCodecsWithOpus : gOggCodecs;
+ result = CANPLAY_MAYBE;
+ }
++#endif
+ #ifdef MOZ_WAVE
+ if (IsWaveType(nsDependentCString(aMIMEType))) {
+ codecList = gWaveCodecs;
+@@ -479,10 +487,12 @@ InstantiateDecoder(const nsACString& aTy
+ return decoder.forget();
+ }
+ #endif
++#ifdef MOZ_OGG
+ if (IsOggType(aType)) {
+ decoder = new OggDecoder();
+ return decoder.forget();
+ }
++#endif
+ #ifdef MOZ_WAVE
+ if (IsWaveType(aType)) {
+ decoder = new WaveDecoder();
+@@ -587,9 +597,11 @@ MediaDecoderReader* DecoderTraits::Creat
+ decoderReader = new RawReader(aDecoder);
+ } else
+ #endif
++#ifdef MOZ_OGG
+ if (IsOggType(aType)) {
+ decoderReader = new OggReader(aDecoder);
+ } else
++#endif
+ #ifdef MOZ_WAVE
+ if (IsWaveType(aType)) {
+ decoderReader = new WaveReader(aDecoder);
+@@ -642,7 +654,9 @@ MediaDecoderReader* DecoderTraits::Creat
+ bool DecoderTraits::IsSupportedInVideoDocument(const nsACString& aType)
+ {
+ return
++#ifdef MOZ_OGG
+ IsOggType(aType) ||
++#endif
+ #ifdef MOZ_OMX_DECODER
+ // We support amr inside WebApps on firefoxOS but not in general web content.
+ // Ensure we dont create a VideoDocument when accessing amr URLs directly.
+diff -up mozilla-aurora/content/media/encoder/MediaEncoder.cpp.remove-ogg mozilla-aurora/content/media/encoder/MediaEncoder.cpp
+--- mozilla-aurora/content/media/encoder/MediaEncoder.cpp.remove-ogg 2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/encoder/MediaEncoder.cpp 2014-06-03 13:51:14.453340485 +0200
+@@ -9,7 +9,9 @@
+ #include "prlog.h"
+ #include "mozilla/Preferences.h"
+
++#ifdef MOZ_OGG
+ #include "OggWriter.h"
++#endif
+ #ifdef MOZ_OPUS
+ #include "OpusTrackEncoder.h"
+
+@@ -133,6 +135,7 @@ MediaEncoder::CreateEncoder(const nsAStr
+ mimeType = NS_LITERAL_STRING(AUDIO_3GPP);
+ }
+ #endif // MOZ_OMX_ENCODER
++#ifdef MOZ_OGG
+ else if (MediaDecoder::IsOggEnabled() && MediaDecoder::IsOpusEnabled() &&
+ (aMIMEType.EqualsLiteral(AUDIO_OGG) ||
+ (aTrackTypes & ContainerWriter::CREATE_AUDIO_TRACK))) {
+@@ -142,6 +145,7 @@ MediaEncoder::CreateEncoder(const nsAStr
+ NS_ENSURE_TRUE(audioEncoder, nullptr);
+ mimeType = NS_LITERAL_STRING(AUDIO_OGG);
+ }
++#endif // MOZ_OGG
+ else {
+ LOG(PR_LOG_ERROR, ("Can not find any encoder to record this media stream"));
+ return nullptr;
+diff -up mozilla-aurora/content/media/MediaDecoder.cpp.remove-ogg mozilla-aurora/content/media/MediaDecoder.cpp
+--- mozilla-aurora/content/media/MediaDecoder.cpp.remove-ogg 2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/MediaDecoder.cpp 2014-06-03 13:51:14.453340485 +0200
+@@ -1653,6 +1653,7 @@ MediaDecoder::IsRawEnabled()
+ }
+ #endif
+
++#ifdef MOZ_OGG
+ bool
+ MediaDecoder::IsOpusEnabled()
+ {
+@@ -1668,6 +1669,7 @@ MediaDecoder::IsOggEnabled()
+ {
+ return Preferences::GetBool("media.ogg.enabled");
+ }
++#endif
+
+ #ifdef MOZ_WAVE
+ bool
+diff -up mozilla-aurora/content/media/MediaDecoder.h.remove-ogg mozilla-aurora/content/media/MediaDecoder.h
+--- mozilla-aurora/content/media/MediaDecoder.h.remove-ogg 2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/MediaDecoder.h 2014-06-03 13:51:14.453340485 +0200
+@@ -844,8 +844,10 @@ public:
+ static bool IsRawEnabled();
+ #endif
+
++#ifdef MOZ_OGG
+ static bool IsOggEnabled();
+ static bool IsOpusEnabled();
++#endif
+
+ #ifdef MOZ_WAVE
+ static bool IsWaveEnabled();
+diff -up mozilla-aurora/content/media/moz.build.remove-ogg mozilla-aurora/content/media/moz.build
+--- mozilla-aurora/content/media/moz.build.remove-ogg 2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/moz.build 2014-06-03 13:51:14.453340485 +0200
+@@ -7,7 +7,6 @@
+ PARALLEL_DIRS += [
+ 'encoder',
+ 'mediasource',
+- 'ogg',
+ 'webaudio',
+ 'webvtt'
+ ]
+@@ -17,6 +16,9 @@ TEST_TOOL_DIRS += ['compiledtest']
+ if CONFIG['MOZ_RAW']:
+ PARALLEL_DIRS += ['raw']
+
++if CONFIG['MOZ_OGG']:
++ PARALLEL_DIRS += ['ogg']
++
+ if CONFIG['MOZ_WAVE']:
+ PARALLEL_DIRS += ['wave']
+
+diff -up mozilla-aurora/layout/media/symbols.def.in.remove-ogg mozilla-aurora/layout/media/symbols.def.in
+--- mozilla-aurora/layout/media/symbols.def.in.remove-ogg 2014-05-06 13:17:13.000000000 +0200
++++ mozilla-aurora/layout/media/symbols.def.in 2014-06-03 13:51:14.454340486 +0200
+@@ -145,6 +145,7 @@ cubeb_stream_init
+ cubeb_stream_start
+ cubeb_stream_stop
+ cubeb_stream_get_latency
++#ifdef MOZ_OGG
+ th_comment_clear
+ th_comment_init
+ th_decode_alloc
+@@ -158,6 +159,7 @@ th_info_init
+ th_packet_isheader
+ th_packet_iskeyframe
+ th_setup_free
++#endif
+ #ifdef MOZ_OPUS
+ opus_decoder_create
+ opus_decoder_destroy
+diff -up mozilla-aurora/modules/libpref/src/init/all.js.remove-ogg mozilla-aurora/modules/libpref/src/init/all.js
+--- mozilla-aurora/modules/libpref/src/init/all.js.remove-ogg 2014-05-19 11:43:49.000000000 +0200
++++ mozilla-aurora/modules/libpref/src/init/all.js 2014-06-03 13:51:25.028355239 +0200
+@@ -212,7 +212,9 @@ pref("media.fragmented-mp4.use-blank-dec
+ #ifdef MOZ_RAW
+ pref("media.raw.enabled", true);
+ #endif
++#ifdef MOZ_OGG
+ pref("media.ogg.enabled", true);
++#endif
+ #ifdef MOZ_OPUS
+ pref("media.opus.enabled", true);
+ #endif
+diff -up mozilla-aurora/python/mozbuild/mozbuild/mozinfo.py.remove-ogg mozilla-aurora/python/mozbuild/mozbuild/mozinfo.py
+--- mozilla-aurora/python/mozbuild/mozbuild/mozinfo.py.remove-ogg 2014-05-06 13:17:17.000000000 +0200
++++ mozilla-aurora/python/mozbuild/mozbuild/mozinfo.py 2014-06-03 13:51:25.028355239 +0200
+@@ -84,6 +84,7 @@ def build_dict(config, env=os.environ):
+ d['tests_enabled'] = substs.get('ENABLE_TESTS') == "1"
+ d['bin_suffix'] = substs.get('BIN_SUFFIX', '')
+
++ d['ogg'] = bool(substs.get('MOZ_OGG'))
+ d['webm'] = bool(substs.get('MOZ_WEBM'))
+ d['wave'] = bool(substs.get('MOZ_WAVE'))
+
+diff -up mozilla-aurora/uriloader/exthandler/nsExternalHelperAppService.cpp.remove-ogg mozilla-aurora/uriloader/exthandler/nsExternalHelperAppService.cpp
+--- mozilla-aurora/uriloader/exthandler/nsExternalHelperAppService.cpp.remove-ogg 2014-05-06 13:17:27.000000000 +0200
++++ mozilla-aurora/uriloader/exthandler/nsExternalHelperAppService.cpp 2014-06-03 13:51:25.030355242 +0200
+@@ -462,6 +462,7 @@ static nsDefaultMimeTypeEntry defaultMim
+ { "application/xhtml+xml", "xhtml" },
+ { "application/xhtml+xml", "xht" },
+ { TEXT_PLAIN, "txt" },
++#ifdef MOZ_OGG
+ { VIDEO_OGG, "ogv" },
+ { VIDEO_OGG, "ogg" },
+ { APPLICATION_OGG, "ogg" },
+@@ -469,6 +470,7 @@ static nsDefaultMimeTypeEntry defaultMim
+ #ifdef MOZ_OPUS
+ { AUDIO_OGG, "opus" },
+ #endif
++#endif
+ #ifdef MOZ_WEBM
+ { VIDEO_WEBM, "webm" },
+ { AUDIO_WEBM, "webm" },
+diff -up mozilla-aurora/xpcom/build/nsXPComInit.cpp.remove-ogg mozilla-aurora/xpcom/build/nsXPComInit.cpp
+--- mozilla-aurora/xpcom/build/nsXPComInit.cpp.remove-ogg 2014-06-03 14:04:38.913464144 +0200
++++ mozilla-aurora/xpcom/build/nsXPComInit.cpp 2014-06-03 14:06:03.282582245 +0200
+@@ -133,7 +133,9 @@ extern nsresult nsStringInputStreamConst
+ #include "mozilla/VisualEventTracer.h"
+ #endif
+
++#if MOZ_OGG
+ #include "ogg/ogg.h"
++#endif
+ #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
+ #include "vpx_mem/vpx_mem.h"
+ #endif
+@@ -378,7 +380,7 @@ private:
+ NS_IMPL_ISUPPORTS(ICUReporter, nsIMemoryReporter)
+
+ /* static */ template<> Atomic CountingAllocatorBase::sAmount(0);
+-
++#if MOZ_OGG
+ class OggReporter MOZ_FINAL : public nsIMemoryReporter,
+ public CountingAllocatorBase
+ {
+@@ -420,7 +422,7 @@ NS_IMPL_ISUPPORTS(VPXReporter, nsIMemory
+
+ /* static */ template<> Atomic CountingAllocatorBase::sAmount(0);
+ #endif /* MOZ_VPX */
+-
++#endif /* MOZ_OGG */
+ #ifdef MOZ_WEBM
+ class NesteggReporter MOZ_FINAL : public nsIMemoryReporter
+ , public CountingAllocatorBase
+@@ -606,12 +608,13 @@ NS_InitXPCOM2(nsIServiceManager* *result
+ // depend on the XPCOM-based memory reporting goop. So for now, we have
+ // this oddness.
+ mozilla::SetICUMemoryFunctions();
+-
++#if MOZ_OGG
+ // Do the same for libogg.
+ ogg_set_mem_functions(OggReporter::CountingMalloc,
+ OggReporter::CountingCalloc,
+ OggReporter::CountingRealloc,
+ OggReporter::CountingFree);
++#endif
+
+ #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
+ // And for VPX.
+@@ -678,7 +681,9 @@ NS_InitXPCOM2(nsIServiceManager* *result
+
+ // The memory reporter manager is up and running -- register our reporters.
+ RegisterStrongMemoryReporter(new ICUReporter());
++#if MOZ_OGG
+ RegisterStrongMemoryReporter(new OggReporter());
++#endif
+ #ifdef MOZ_VPX
+ RegisterStrongMemoryReporter(new VPXReporter());
+ #endif
diff --git a/SOURCES/rhbz-1032770.patch b/SOURCES/rhbz-1032770.patch
deleted file mode 100644
index f9f0895..0000000
--- a/SOURCES/rhbz-1032770.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -up mozilla-esr24/storage/src/Makefile.in.rhbz-1032770 mozilla-esr24/storage/src/Makefile.in
---- mozilla-esr24/storage/src/Makefile.in.rhbz-1032770 2013-10-22 08:19:20.000000000 +0200
-+++ mozilla-esr24/storage/src/Makefile.in 2013-12-02 14:33:43.524479615 +0100
-@@ -22,14 +22,21 @@ endif
- # Don't use the jemalloc allocator on Android, because we can't guarantee
- # that Gecko will configure sqlite before it is first used (bug 730495).
- #
-+# Don't use the jemalloc allocator when using system sqlite. Linked in libraries
-+# (such as NSS) might trigger an initialization of sqlite and allocation
-+# of memory using the default allocator, prior to the storage service
-+# registering its allocator, causing memory management failures (bug 938730).
-+#
- # Note: On Windows our sqlite build assumes we use jemalloc. If you disable
- # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
- # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
- ifdef MOZ_MEMORY
-+ifndef MOZ_NATIVE_SQLITE
- ifneq ($(OS_TARGET), Android)
- DEFINES += -DMOZ_STORAGE_MEMORY
- endif
- endif
-+endif
-
- # For nsDependentJSString
- LOCAL_INCLUDES = \
diff --git a/SOURCES/xulrunner-24.0-gcc47.patch b/SOURCES/xulrunner-24.0-gcc47.patch
deleted file mode 100644
index a6bff8e..0000000
--- a/SOURCES/xulrunner-24.0-gcc47.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up xulrunner-24.0/mozilla-release/toolkit/crashreporter/client/Makefile.in.gcc47 xulrunner-24.0/mozilla-release/toolkit/crashreporter/client/Makefile.in
---- xulrunner-24.0/mozilla-release/toolkit/crashreporter/client/Makefile.in.gcc47 2013-09-11 01:15:24.000000000 +0200
-+++ xulrunner-24.0/mozilla-release/toolkit/crashreporter/client/Makefile.in 2013-09-13 13:33:49.866875578 +0200
-@@ -60,6 +60,9 @@ $(DIST)/bin/crashreporter.crt: $(topsrcd
- $(PYTHON) $(srcdir)/certdata2pem.py < $< > $@
- endif
-
-+# Needed for moz_free
-+LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc
-+
- LIBS += \
- $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/linux/$(LIB_PREFIX)breakpad_linux_common_s.$(LIB_SUFFIX) \
- $(NULL)
diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec
index e11b923..badc256 100644
--- a/SPECS/firefox.spec
+++ b/SPECS/firefox.spec
@@ -1,12 +1,12 @@
# Use system sqlite?
-%define system_sqlite 1
-%define system_ffi 0
+%define system_sqlite 0
+%define system_ffi 1
# Use system nss/nspr?
%define system_nss 1
-# Enable webm for i686/x86_64 only
-%ifarch %{ix86} x86_64
+# Enable webm
+%ifarch %{ix86} x86_64 ppc ppc64
%define enable_webm 1
%else
%define enable_webm 0
@@ -23,12 +23,14 @@
# Minimal required versions
%if %{?system_nss}
-%define nspr_version 4.10.2
-%define nss_version 3.15.4
+%global nspr_version 4.10.6
+%global nss_version 3.16.2
%endif
%define cairo_version 1.10.2
%define freetype_version 2.1.9
+%define ffi_version 3.0.9
+%global libvpx_version 1.3.0
# Bookmark variables
%define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
@@ -38,7 +40,7 @@
%define langpackdir %{mozappdir}/langpacks
%if %{?system_sqlite}
-%define sqlite_version 3.6.22
+%define sqlite_version 3.8.4.2
# The actual sqlite version (see #480989):
%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536)
%endif
@@ -47,25 +49,25 @@
%define build_langpacks 1
%if %{official_branding}
-%define tarballdir mozilla-esr24
+%define tarballdir mozilla-esr31
%define ext_version esr
%endif
Summary: Mozilla Firefox Web browser
Name: firefox
-Version: 24.8.0
-Release: 1%{?prever}%{?dist}
+Version: 31.1.0
+Release: 6%{?prever}%{?dist}
URL: http://www.mozilla.org/projects/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Group: Applications/Internet
# From ftp://ftp.mozilla.org/pub/firefox/releases/%{version}%{?pretag}/source
Source0: firefox-%{version}%{?prever}%{?ext_version}.source.tar.bz2
%if %{build_langpacks}
-Source1: firefox-langpacks-%{version}%{?ext_version}-20140826.tar.bz2
+Source1: firefox-langpacks-%{version}%{?ext_version}-20140828.tar.bz2
%endif
Source10: firefox-mozconfig
Source11: firefox-mozconfig-branded
-Source12: firefox-centos-default-prefs.js
+Source12: firefox-redhat-default-prefs.js
Source20: firefox.desktop
Source21: firefox.sh.in
Source23: firefox.1
@@ -73,22 +75,18 @@ Source100: find-external-requires
# Build patches
Patch0: firefox-install-dir.patch
-Patch4: xulrunner-24.0-gcc47.patch
Patch5: xulrunner-24.0-jemalloc-ppc.patch
# RPM specific patches
-Patch11: firefox-24.0-default.patch
-Patch12: firefox-17.0-enable-addons.patch
+Patch11: firefox-default.patch
+Patch12: firefox-enable-addons.patch
Patch13: rhbz-966424.patch
-Patch14: rhbz-1032770.patch
-Patch15: firefox-system-nss-3.16.2.patch
-
-# RHEL patches
-Patch100: firefox-5.0-asciidel.patch
-Patch200: firefox-duckduckgo.patch
+Patch14: remove-ogg.patch
+Patch15: disable-webm.patch
+Patch16: firefox-enable-plugins.patch
# Upstream patches
-Patch300: mozilla-906754.patch
+Patch200: firefox-duckduckgo.patch
%if %{official_branding}
# Required by Mozilla Corporation
@@ -107,35 +105,32 @@ BuildRequires: mesa-libGL-devel
BuildRequires: system-bookmarks
Requires: system-bookmarks
Requires: redhat-indexhtml
-
-%if %{?enable_webm}
-BuildRequires: libvpx-devel >= 1.0.0
-Requires: libvpx >= 1.0.0
-%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_cairo}
BuildRequires: cairo-devel >= %{cairo_version}
%endif
-
-BuildRequires: hunspell-devel
-Requires: mozilla-filesystem
%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
+%if %{?enable_webm}
+BuildRequires: libvpx-devel >= %{libvpx_version}
+Requires: libvpx >= %{libvpx_version}
+%endif
+BuildRequires: hunspell-devel
BuildRequires: libpng-devel
BuildRequires: libjpeg-devel
BuildRequires: zip
@@ -156,7 +151,9 @@ BuildRequires: alsa-lib-devel
BuildRequires: libnotify-devel
BuildRequires: autoconf213
BuildRequires: mesa-libGL-devel
+BuildRequires: pulseaudio-libs-devel
+Requires: mozilla-filesystem
Requires: liberation-fonts-common
Requires: liberation-sans-fonts
@@ -183,22 +180,22 @@ cd %{tarballdir}
# Build patches
# We have to keep original patch backup extension to go thru configure without problems with tests
%patch0 -p1 -b .orig
-%patch4 -p2 -b .gcc47.patch
%patch5 -p2 -b .jemalloc-ppc.patch
# RPM specific patches
-%patch11 -p2 -b .default
+%patch11 -p1 -b .default
%patch12 -p1 -b .addons
%patch13 -p1 -b .rhbz-966424
-%patch14 -p1 -b .rhbz-1032770
-%patch15 -p2 -b .nss-3.16.2
+%patch14 -p1 -b .remove-ogg
+%if !%{?enable_webm}
+%patch15 -p1 -b .webm
+%endif
+%patch16 -p2 -b .plugins
-# RHEL patches
-%patch100 -p1 -b .asciidel
+# For branding specific patches.
%patch200 -p1 -b .duckduckgo
# Upstream patches
-%patch300 -p1 -b .906754
%if %{official_branding}
# Required by Mozilla Corporation
@@ -206,7 +203,6 @@ cd %{tarballdir}
%else
# Not yet approved by Mozilla Corporation
-
%endif
@@ -232,6 +228,7 @@ echo "ac_add_options --without-system-libvpx" >> .mozconfig
echo "ac_add_options --disable-webm" >> .mozconfig
echo "ac_add_options --disable-webrtc" >> .mozconfig
echo "ac_add_options --disable-ogg" >> .mozconfig
+echo "ac_add_options --disable-opus" >> .mozconfig
%endif
%if %{?system_cairo}
@@ -259,7 +256,7 @@ echo "ac_add_options --disable-polyic" >> .mozconfig
echo "ac_add_options --disable-tracejit" >> .mozconfig
%endif
-# RHEL 6 mozconfig changes:
+# RHEL 7 mozconfig changes:
echo "ac_add_options --enable-system-hunspell" >> .mozconfig
echo "ac_add_options --enable-libnotify" >> .mozconfig
echo "ac_add_options --enable-startup-notification" >> .mozconfig
@@ -497,6 +494,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{mozappdir}/plugin-container
%{mozappdir}/dependentlibs.list
%exclude %{mozappdir}/defaults/pref/channel-prefs.js
+%if !%{?system_nss}
+%{mozappdir}/*.chk
+%endif
#we don't ship firefox-devel package
%exclude %{_datadir}/idl/*
@@ -506,14 +506,31 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
-* Wed Sep 03 2014 CentOS Sources - 24.8.0-1.el7.centos
-- CentOS default prefs
+* Thu Sep 11 2014 Martin Stransky - 31.1.0-6
+- Enable all NPAPI plugins by default to keep compatibility
+ with the FF24 line
+
+* Wed Sep 10 2014 Martin Stransky - 31.1.0-5
+- Added workaround for rhbz#1134876
+
+* Mon Sep 8 2014 Martin Stransky - 31.1.0-3
+- Disable mozilla::pkix (mozbz#1063315)
+- Enable image cache
+
+* Mon Sep 8 2014 Martin Stransky - 31.1.0-2
+- A workaround for rhbz#1110291
-* Tue Aug 26 2014 Martin Stransky - 24.8.0-1
-- Update to 24.8.0 ESR
+* Thu Aug 28 2014 Martin Stransky - 31.1.0-1
+- Update to 31.1.0 ESR
-* Thu Jul 17 2014 Jan Horak - 24.7.0-1
-- Update to 24.7.0 ESR
+* Tue Aug 5 2014 Martin Stransky - 31.0-3
+- Built with system libvpx/WebM
+
+* Mon Aug 4 2014 Martin Stransky - 31.0-2
+- Built with system nss/nspr
+
+* Mon Jul 28 2014 Martin Stransky - 31.0-1
+- Update to 31.0 ESR
* Wed Jun 4 2014 Jan Horak - 24.6.0-1
- Update to 24.6.0 ESR
@@ -684,4 +701,3 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
* Wed Jan 26 2011 Jan Horak - 3.6.14-2
- Update to 3.6.14
-