summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mozilla-682832-proxy.patch358
-rw-r--r--mozilla-691898.patch285
-rw-r--r--mozilla-696393.patch68
-rw-r--r--mozilla-722127.patch36
-rw-r--r--mozilla-724615.patch24
-rw-r--r--mozilla-build.patch27
-rw-r--r--xulrunner-9.0-secondary-build-fix.patch11
-rw-r--r--xulrunner-mozconfig2
-rw-r--r--xulrunner.spec125
9 files changed, 415 insertions, 521 deletions
diff --git a/mozilla-682832-proxy.patch b/mozilla-682832-proxy.patch
deleted file mode 100644
index 0f643f9..0000000
--- a/mozilla-682832-proxy.patch
+++ /dev/null
@@ -1,358 +0,0 @@
-diff -up xulrunner-10.0/mozilla-beta/toolkit/system/gnome/nsGSettingsService.cpp.682832 xulrunner-10.0/mozilla-beta/toolkit/system/gnome/nsGSettingsService.cpp
---- xulrunner-10.0/mozilla-beta/toolkit/system/gnome/nsGSettingsService.cpp.682832 2012-01-18 17:25:24.000000000 +0100
-+++ xulrunner-10.0/mozilla-beta/toolkit/system/gnome/nsGSettingsService.cpp 2012-01-23 15:40:14.803170842 +0100
-@@ -44,6 +44,8 @@
- #include "nsMemory.h"
- #include "prlink.h"
- #include "nsComponentManagerUtils.h"
-+#include "nsIMutableArray.h"
-+#include "nsISupportsPrimitives.h"
-
- #include <glib.h>
- #include <glib-object.h>
-@@ -60,6 +62,7 @@ typedef struct _GVariant GVariant;
- # define G_VARIANT_TYPE_STRING ((const GVariantType *) "s")
- # define G_VARIANT_TYPE_OBJECT_PATH ((const GVariantType *) "o")
- # define G_VARIANT_TYPE_SIGNATURE ((const GVariantType *) "g")
-+# define G_VARIANT_TYPE_STRING_ARRAY ((const GVariantType *) "as")
- #endif
-
- #define GSETTINGS_FUNCTIONS \
-@@ -72,6 +75,7 @@ typedef struct _GVariant GVariant;
- FUNC(g_variant_get_int32, gint32, (GVariant* variant)) \
- FUNC(g_variant_get_boolean, gboolean, (GVariant* variant)) \
- FUNC(g_variant_get_string, const char *, (GVariant* value, gsize* length)) \
-+ FUNC(g_variant_get_strv, const char **, (GVariant* value, gsize* length)) \
- FUNC(g_variant_is_of_type, gboolean, (GVariant* value, const GVariantType* type)) \
- FUNC(g_variant_new_int32, GVariant *, (gint32 value)) \
- FUNC(g_variant_new_boolean, GVariant *, (gboolean value)) \
-@@ -95,6 +99,7 @@ GSETTINGS_FUNCTIONS
- #define g_variant_get_int32 _g_variant_get_int32
- #define g_variant_get_boolean _g_variant_get_boolean
- #define g_variant_get_string _g_variant_get_string
-+#define g_variant_get_strv _g_variant_get_strv
- #define g_variant_is_of_type _g_variant_is_of_type
- #define g_variant_new_int32 _g_variant_new_int32
- #define g_variant_new_boolean _g_variant_new_boolean
-@@ -267,6 +272,49 @@ nsGSettingsCollection::GetInt(const nsAC
- return NS_OK;
- }
-
-+NS_IMETHODIMP
-+nsGSettingsCollection::GetStringList(const nsACString& aKey, nsIArray** aResult)
-+{
-+ if (!KeyExists(aKey))
-+ return NS_ERROR_INVALID_ARG;
-+
-+ nsCOMPtr<nsIMutableArray> items(do_CreateInstance(NS_ARRAY_CONTRACTID));
-+ if (!items) {
-+ return NS_ERROR_OUT_OF_MEMORY;
-+ }
-+
-+ GVariant *value = g_settings_get_value(mSettings,
-+ PromiseFlatCString(aKey).get());
-+
-+ if (!g_variant_is_of_type(value, G_VARIANT_TYPE_STRING_ARRAY)) {
-+ g_variant_unref(value);
-+ return NS_ERROR_FAILURE;
-+ }
-+
-+ const gchar ** gs_strings = g_variant_get_strv(value, NULL);
-+ if (!gs_strings) {
-+ // empty array
-+ NS_ADDREF(*aResult = items);
-+ g_variant_unref(value);
-+ return NS_OK;
-+ }
-+
-+ const gchar** p_gs_strings = gs_strings;
-+ while (*p_gs_strings != NULL)
-+ {
-+ nsCOMPtr<nsISupportsCString> obj(do_CreateInstance(NS_SUPPORTS_CSTRING_CONTRACTID));
-+ if (obj) {
-+ obj->SetData(nsDependentCString(*p_gs_strings));
-+ items->AppendElement(obj, false);
-+ }
-+ p_gs_strings++;
-+ }
-+ g_free(gs_strings);
-+ NS_ADDREF(*aResult = items);
-+ g_variant_unref(value);
-+ return NS_OK;
-+}
-+
- // These types are local to nsGSettingsService::Init, but ISO C++98 doesn't
- // allow a template (ArrayLength) to be instantiated based on a local type.
- // Boo-urns!
-diff -up xulrunner-10.0/mozilla-beta/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.682832 xulrunner-10.0/mozilla-beta/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
---- xulrunner-10.0/mozilla-beta/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.682832 2012-01-18 17:25:24.000000000 +0100
-+++ xulrunner-10.0/mozilla-beta/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2012-01-23 15:39:23.083172529 +0100
-@@ -49,6 +49,7 @@
- #include "nsPrintfCString.h"
- #include "nsNetUtil.h"
- #include "nsISupportsPrimitives.h"
-+#include "nsIGSettingsService.h"
-
- class nsUnixSystemProxySettings : public nsISystemProxySettings {
- public:
-@@ -62,9 +63,12 @@ private:
- ~nsUnixSystemProxySettings() {}
-
- nsCOMPtr<nsIGConfService> mGConf;
-+ nsCOMPtr<nsIGSettingsService> mGSettings;
- bool IsProxyMode(const char* aMode);
- nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult);
- nsresult GetProxyFromGConf(const nsACString& aScheme, const nsACString& aHost, PRInt32 aPort, nsACString& aResult);
-+ nsresult GetProxyFromGSettings(const nsACString& aScheme, const nsACString& aHost, PRInt32 aPort, nsACString& aResult);
-+ nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* aType, nsACString& aResult);
- };
-
- NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings)
-@@ -73,6 +77,7 @@ nsresult
- nsUnixSystemProxySettings::Init()
- {
- mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
-+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
- return NS_OK;
- }
-
-@@ -87,14 +92,31 @@ nsUnixSystemProxySettings::IsProxyMode(c
- nsresult
- nsUnixSystemProxySettings::GetPACURI(nsACString& aResult)
- {
-- if (!mGConf || !IsProxyMode("auto")) {
-- // Return an empty string in this case
-- aResult.Truncate();
-- return NS_OK;
-+ if (mGSettings) {
-+ nsCOMPtr<nsIGSettingsCollection> proxy_settings;
-+ mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
-+ getter_AddRefs(proxy_settings));
-+ if (proxy_settings) {
-+ nsCString proxyMode;
-+ // Check if mode is auto
-+ nsresult rv = proxy_settings->GetString(NS_LITERAL_CSTRING("mode"), proxyMode);
-+ if (rv == NS_OK && proxyMode.Equals("auto")) {
-+ return proxy_settings->GetString(NS_LITERAL_CSTRING("autoconfig-url"), aResult);
-+ }
-+ /* The org.gnome.system.proxy schema has been found, but auto mode is not set.
-+ * Don't try the GConf and return empty string. */
-+ aResult.Truncate();
-+ return NS_OK;
-+ }
- }
-
-- return mGConf->GetString(NS_LITERAL_CSTRING("/system/proxy/autoconfig_url"),
-- aResult);
-+ if (mGConf && IsProxyMode("auto")) {
-+ return mGConf->GetString(NS_LITERAL_CSTRING("/system/proxy/autoconfig_url"),
-+ aResult);
-+ }
-+ // Return an empty string when auto mode is not set.
-+ aResult.Truncate();
-+ return NS_OK;
- }
-
- static bool
-@@ -231,7 +253,38 @@ nsUnixSystemProxySettings::SetProxyResul
- PRInt32 port;
- rv = mGConf->GetInt(portKey, &port);
- NS_ENSURE_SUCCESS(rv, rv);
-+
-+ /* When port is 0, proxy is not considered as enabled even if host is set. */
-+ if (port == 0)
-+ return NS_ERROR_FAILURE;
-+
-+ SetProxyResult(aType, host, port, aResult);
-+ return NS_OK;
-+}
-+
-+nsresult
-+nsUnixSystemProxySettings::SetProxyResultFromGSettings(const char* aKeyBase, const char* aType,
-+ nsACString& aResult)
-+{
-+ nsCOMPtr<nsIGSettingsCollection> proxy_settings;
-+ nsresult rv = mGSettings->GetCollectionForSchema(nsDependentCString(aKeyBase),
-+ getter_AddRefs(proxy_settings));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCAutoString host;
-+ rv = proxy_settings->GetString(NS_LITERAL_CSTRING("host"), host);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+ if (host.IsEmpty())
-+ return NS_ERROR_FAILURE;
-+
-+ PRInt32 port;
-+ rv = proxy_settings->GetInt(NS_LITERAL_CSTRING("port"), &port);
-+ NS_ENSURE_SUCCESS(rv, rv);
-
-+ /* When port is 0, proxy is not considered as enabled even if host is set. */
-+ if (port == 0)
-+ return NS_ERROR_FAILURE;
-+
- SetProxyResult(aType, host, port, aResult);
- return NS_OK;
- }
-@@ -271,17 +324,17 @@ static bool ConvertToIPV6Addr(const nsAC
- PRIPv6Addr* aAddr)
- {
- PRNetAddr addr;
-+ // try to convert hostname to IP
- if (PR_StringToNetAddr(PromiseFlatCString(aName).get(), &addr) != PR_SUCCESS)
- return false;
-
-- PRIPv6Addr ipv6;
- // convert parsed address to IPv6
- if (addr.raw.family == PR_AF_INET) {
- // convert to IPv4-mapped address
-- PR_ConvertIPv4AddrToIPv6(addr.inet.ip, &ipv6);
-+ PR_ConvertIPv4AddrToIPv6(addr.inet.ip, aAddr);
- } else if (addr.raw.family == PR_AF_INET6) {
- // copy the address
-- memcpy(&ipv6, &addr.ipv6.ip, sizeof(PRIPv6Addr));
-+ memcpy(aAddr, &addr.ipv6.ip, sizeof(PRIPv6Addr));
- } else {
- return false;
- }
-@@ -289,8 +342,8 @@ static bool ConvertToIPV6Addr(const nsAC
- return true;
- }
-
--static bool GConfIgnoreHost(const nsACString& aIgnore,
-- const nsACString& aHost)
-+static bool HostIgnoredByProxy(const nsACString& aIgnore,
-+ const nsACString& aHost)
- {
- if (aIgnore.Equals(aHost, nsCaseInsensitiveCStringComparator()))
- return true;
-@@ -321,8 +374,9 @@ static bool GConfIgnoreHost(const nsACSt
- slash = end;
- }
-
-+ nsDependentCSubstring ignoreStripped(start, slash);
- PRIPv6Addr ignoreAddr, hostAddr;
-- if (!ConvertToIPV6Addr(aIgnore, &ignoreAddr) ||
-+ if (!ConvertToIPV6Addr(ignoreStripped, &ignoreAddr) ||
- !ConvertToIPV6Addr(aHost, &hostAddr))
- return false;
-
-@@ -355,7 +409,7 @@ nsUnixSystemProxySettings::GetProxyFromG
- if (str) {
- nsAutoString s;
- if (NS_SUCCEEDED(str->GetData(s)) && !s.IsEmpty()) {
-- if (GConfIgnoreHost(NS_ConvertUTF16toUTF8(s), aHost)) {
-+ if (HostIgnoredByProxy(NS_ConvertUTF16toUTF8(s), aHost)) {
- aResult.AppendLiteral("DIRECT");
- return NS_OK;
- }
-@@ -392,6 +446,71 @@ nsUnixSystemProxySettings::GetProxyFromG
- }
-
- nsresult
-+nsUnixSystemProxySettings::GetProxyFromGSettings(const nsACString& aScheme,
-+ const nsACString& aHost,
-+ PRInt32 aPort,
-+ nsACString& aResult)
-+{
-+ nsCOMPtr<nsIGSettingsCollection> proxy_settings;
-+ nsresult rv;
-+
-+ rv = mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
-+ getter_AddRefs(proxy_settings));
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ nsCString proxyMode;
-+ rv = proxy_settings->GetString(NS_LITERAL_CSTRING("mode"), proxyMode);
-+ NS_ENSURE_SUCCESS(rv, rv);
-+
-+ if (!proxyMode.Equals("manual")) {
-+ aResult.AppendLiteral("DIRECT");
-+ return NS_OK;
-+ }
-+
-+ nsCOMPtr<nsIArray> ignoreList;
-+ if (NS_SUCCEEDED(proxy_settings->GetStringList(NS_LITERAL_CSTRING("ignore-hosts"),
-+ getter_AddRefs(ignoreList))) && ignoreList) {
-+ PRUint32 len = 0;
-+ ignoreList->GetLength(&len);
-+ for (PRUint32 i = 0; i < len; ++i) {
-+ nsCOMPtr<nsISupportsCString> str = do_QueryElementAt(ignoreList, i);
-+ if (str) {
-+ nsCString s;
-+ if (NS_SUCCEEDED(str->GetData(s)) && !s.IsEmpty()) {
-+ if (HostIgnoredByProxy(s, aHost)) {
-+ aResult.AppendLiteral("DIRECT");
-+ return NS_OK;
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ if (aScheme.LowerCaseEqualsLiteral("http")) {
-+ rv = SetProxyResultFromGSettings("org.gnome.system.proxy.http", "PROXY", aResult);
-+ } else if (aScheme.LowerCaseEqualsLiteral("https")) {
-+ rv = SetProxyResultFromGSettings("org.gnome.system.proxy.https", "PROXY", aResult);
-+ /* Try to use HTTP proxy when HTTPS proxy is not explicitly defined */
-+ if (rv != NS_OK)
-+ rv = SetProxyResultFromGSettings("org.gnome.system.proxy.http", "PROXY", aResult);
-+ } else if (aScheme.LowerCaseEqualsLiteral("ftp")) {
-+ rv = SetProxyResultFromGSettings("org.gnome.system.proxy.ftp", "PROXY", aResult);
-+ } else {
-+ rv = NS_ERROR_FAILURE;
-+ }
-+ if (rv != NS_OK) {
-+ /* If proxy for scheme is not specified, use SOCKS proxy for all schemes */
-+ rv = SetProxyResultFromGSettings("org.gnome.system.proxy.socks", "SOCKS", aResult);
-+ }
-+
-+ if (NS_FAILED(rv)) {
-+ aResult.AppendLiteral("DIRECT");
-+ }
-+
-+ return NS_OK;
-+}
-+
-+nsresult
- nsUnixSystemProxySettings::GetProxyForURI(nsIURI* aURI, nsACString& aResult)
- {
- nsCAutoString scheme;
-@@ -406,10 +525,15 @@ nsUnixSystemProxySettings::GetProxyForUR
- rv = aURI->GetPort(&port);
- NS_ENSURE_SUCCESS(rv, rv);
-
-- if (!mGConf)
-- return GetProxyFromEnvironment(scheme, host, port, aResult);
-+ if (mGSettings) {
-+ rv = GetProxyFromGSettings(scheme, host, port, aResult);
-+ if (rv == NS_OK)
-+ return rv;
-+ }
-+ if (mGConf)
-+ return GetProxyFromGConf(scheme, host, port, aResult);
-
-- return GetProxyFromGConf(scheme, host, port, aResult);
-+ return GetProxyFromEnvironment(scheme, host, port, aResult);
- }
-
- #define NS_UNIXSYSTEMPROXYSERVICE_CID /* 0fa3158c-d5a7-43de-9181-a285e74cf1d4 */\
-diff -up xulrunner-10.0/mozilla-beta/xpcom/system/nsIGSettingsService.idl.682832 xulrunner-10.0/mozilla-beta/xpcom/system/nsIGSettingsService.idl
---- xulrunner-10.0/mozilla-beta/xpcom/system/nsIGSettingsService.idl.682832 2012-01-18 17:25:28.000000000 +0100
-+++ xulrunner-10.0/mozilla-beta/xpcom/system/nsIGSettingsService.idl 2012-01-23 15:32:29.890186340 +0100
-@@ -39,7 +39,7 @@
- #include "nsISupports.idl"
- #include "nsIArray.idl"
-
--[scriptable, uuid(09637d3c-3c07-40b4-aff9-1d2a0f046f3c)]
-+[scriptable, uuid(16d5b0ed-e756-4f1b-a8ce-9132e869acd8)]
- interface nsIGSettingsCollection : nsISupports
- {
- void setString(in AUTF8String key, in AUTF8String value);
-@@ -48,6 +48,7 @@ interface nsIGSettingsCollection : nsISu
- AUTF8String getString(in AUTF8String key);
- boolean getBoolean(in AUTF8String key);
- long getInt(in AUTF8String key);
-+ nsIArray getStringList(in AUTF8String key);
- };
-
- [scriptable, uuid(849c088b-57d1-4f24-b7b2-3dc4acb04c0a)]
diff --git a/mozilla-691898.patch b/mozilla-691898.patch
new file mode 100644
index 0000000..dab2016
--- /dev/null
+++ b/mozilla-691898.patch
@@ -0,0 +1,285 @@
+From: Mike Hommey <mh@glandium.org>
+Date: Sat, 24 Dec 2011 09:56:58 +0100
+Subject: Bug 691898 - Use YARR interpreter instead of PCRE on platforms where
+ YARR JIT is not supported
+
+---
+ js/src/Makefile.in | 21 +++++++++++++--------
+ js/src/vm/RegExpObject-inl.h | 28 ++++++----------------------
+ js/src/vm/RegExpObject.cpp | 36 ------------------------------------
+ js/src/vm/RegExpObject.h | 27 ++++++---------------------
+ js/src/yarr/wtfbridge.h | 2 --
+ 5 files changed, 25 insertions(+), 89 deletions(-)
+
+diff --git a/js/src/Makefile.in b/js/src/Makefile.in
+index fc48cbd..49f0bdc 100644
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -416,15 +416,20 @@ CPPSRCS += checks.cc \
+
+ ifeq (,$(filter arm% sparc %86 x86_64,$(TARGET_CPU)))
+
+-VPATH += $(srcdir)/yarr/pcre \
++VPATH += $(srcdir)/assembler \
++ $(srcdir)/assembler/wtf \
++ $(srcdir)/yarr \
+ $(NULL)
+
+ CPPSRCS += \
+- pcre_compile.cpp \
+- pcre_exec.cpp \
+- pcre_tables.cpp \
+- pcre_xclass.cpp \
+- pcre_ucp_searchfuncs.cpp \
++ Assertions.cpp \
++ OSAllocatorOS2.cpp \
++ OSAllocatorPosix.cpp \
++ OSAllocatorWin.cpp \
++ PageBlock.cpp \
++ YarrInterpreter.cpp \
++ YarrPattern.cpp \
++ YarrSyntaxChecker.cpp \
+ $(NULL)
+ else
+
+@@ -1015,10 +1020,10 @@ endif
+ # Needed to "configure" it correctly. Unfortunately these
+ # flags wind up being applied to all code in js/src, not just
+ # the code in js/src/assembler.
+-CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1
++CXXFLAGS += -DUSE_SYSTEM_MALLOC=1
+
+ ifneq (,$(ENABLE_YARR_JIT)$(ENABLE_TRACEJIT)$(ENABLE_METHODJIT))
+-CXXFLAGS += -DENABLE_JIT=1
++CXXFLAGS += -DENABLE_JIT=1 -DENABLE_ASSEMBLER=1
+ endif
+
+ INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr
+diff --git a/js/src/vm/RegExpObject-inl.h b/js/src/vm/RegExpObject-inl.h
+index 5f7817d..91108a7 100644
+--- a/js/src/vm/RegExpObject-inl.h
++++ b/js/src/vm/RegExpObject-inl.h
+@@ -327,6 +327,7 @@ RegExpPrivate::create(JSContext *cx, JSString *source, RegExpFlag flags, TokenSt
+ return RetType(self);
+ }
+
++#if ENABLE_YARR_JIT
+ /* This function should be deleted once bad Android platforms phase out. See bug 604774. */
+ inline bool
+ RegExpPrivateCode::isJITRuntimeEnabled(JSContext *cx)
+@@ -337,12 +338,12 @@ RegExpPrivateCode::isJITRuntimeEnabled(JSContext *cx)
+ return true;
+ #endif
+ }
++#endif
+
+ inline bool
+ RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream *ts,
+ uintN *parenCount, RegExpFlag flags)
+ {
+-#if ENABLE_YARR_JIT
+ /* Parse the pattern. */
+ ErrorCode yarrError;
+ YarrPattern yarrPattern(pattern, bool(flags & IgnoreCaseFlag), bool(flags & MultilineFlag),
+@@ -359,7 +360,7 @@ RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream *
+ * case we have to bytecode compile it.
+ */
+
+-#ifdef JS_METHODJIT
++#if ENABLE_YARR_JIT && defined(JS_METHODJIT)
+ if (isJITRuntimeEnabled(cx) && !yarrPattern.m_containsBackreferences) {
+ if (!cx->compartment->ensureJaegerCompartmentExists(cx))
+ return false;
+@@ -371,21 +372,11 @@ RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream *
+ }
+ #endif
+
++#if ENABLE_YARR_JIT
+ codeBlock.setFallBack(true);
++#endif
+ byteCode = byteCompile(yarrPattern, cx->compartment->regExpAllocator).get();
+ return true;
+-#else /* !defined(ENABLE_YARR_JIT) */
+- int error = 0;
+- compiled = jsRegExpCompile(pattern.chars(), pattern.length(),
+- ignoreCase() ? JSRegExpIgnoreCase : JSRegExpDoNotIgnoreCase,
+- multiline() ? JSRegExpMultiline : JSRegExpSingleLine,
+- parenCount, &error);
+- if (error) {
+- reportPCREError(cx, error);
+- return false;
+- }
+- return true;
+-#endif
+ }
+
+ inline bool
+@@ -431,19 +422,12 @@ RegExpPrivateCode::execute(JSContext *cx, const jschar *chars, size_t start, siz
+ else
+ result = JSC::Yarr::execute(codeBlock, chars, start, length, output);
+ #else
+- result = jsRegExpExecute(cx, compiled, chars, length, start, output, outputCount);
++ result = JSC::Yarr::interpret(byteCode, chars, start, length, output);
+ #endif
+
+ if (result == -1)
+ return Success_NotFound;
+
+-#if !ENABLE_YARR_JIT
+- if (result < 0) {
+- reportPCREError(cx, result);
+- return Error;
+- }
+-#endif
+-
+ JS_ASSERT(result >= 0);
+ return Success;
+ }
+diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp
+index f75c6a5..7631dd5 100644
+--- a/js/src/vm/RegExpObject.cpp
++++ b/js/src/vm/RegExpObject.cpp
+@@ -251,7 +251,6 @@ Class js::RegExpClass = {
+ NULL /* trace */
+ };
+
+-#if ENABLE_YARR_JIT
+ void
+ RegExpPrivateCode::reportYarrError(JSContext *cx, TokenStream *ts, ErrorCode error)
+ {
+@@ -283,41 +282,6 @@ RegExpPrivateCode::reportYarrError(JSContext *cx, TokenStream *ts, ErrorCode err
+ }
+ }
+
+-#else /* !ENABLE_YARR_JIT */
+-
+-void
+-RegExpPrivateCode::reportPCREError(JSContext *cx, int error)
+-{
+-#define REPORT(msg_) \
+- JS_ReportErrorFlagsAndNumberUC(cx, JSREPORT_ERROR, js_GetErrorMessage, NULL, msg_); \
+- return
+- switch (error) {
+- case -2: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 0: JS_NOT_REACHED("Precondition violation: an error must have occurred.");
+- case 1: REPORT(JSMSG_TRAILING_SLASH);
+- case 2: REPORT(JSMSG_TRAILING_SLASH);
+- case 3: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 4: REPORT(JSMSG_BAD_QUANTIFIER);
+- case 5: REPORT(JSMSG_BAD_QUANTIFIER);
+- case 6: REPORT(JSMSG_BAD_CLASS_RANGE);
+- case 7: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 8: REPORT(JSMSG_BAD_CLASS_RANGE);
+- case 9: REPORT(JSMSG_BAD_QUANTIFIER);
+- case 10: REPORT(JSMSG_UNMATCHED_RIGHT_PAREN);
+- case 11: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 12: REPORT(JSMSG_UNMATCHED_RIGHT_PAREN);
+- case 13: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 14: REPORT(JSMSG_MISSING_PAREN);
+- case 15: REPORT(JSMSG_BAD_BACKREF);
+- case 16: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- case 17: REPORT(JSMSG_REGEXP_TOO_COMPLEX);
+- default:
+- JS_NOT_REACHED("Precondition violation: unknown PCRE error code.");
+- }
+-#undef REPORT
+-}
+-#endif /* ENABLE_YARR_JIT */
+-
+ bool
+ js::ParseRegExpFlags(JSContext *cx, JSString *flagStr, RegExpFlag *flagsOut)
+ {
+diff --git a/js/src/vm/RegExpObject.h b/js/src/vm/RegExpObject.h
+index 1449d56..279f3c0 100644
+--- a/js/src/vm/RegExpObject.h
++++ b/js/src/vm/RegExpObject.h
+@@ -49,8 +49,6 @@
+ #include "yarr/Yarr.h"
+ #if ENABLE_YARR_JIT
+ #include "yarr/YarrJIT.h"
+-#else
+-#include "yarr/pcre/pcre.h"
+ #endif
+
+ namespace js {
+@@ -153,48 +151,39 @@ ResetRegExpObject(JSContext *cx, AlreadyIncRefed<RegExpPrivate> rep);
+ /* Abstracts away the gross |RegExpPrivate| backend details. */
+ class RegExpPrivateCode
+ {
+-#if ENABLE_YARR_JIT
+ typedef JSC::Yarr::BytecodePattern BytecodePattern;
+ typedef JSC::Yarr::ErrorCode ErrorCode;
++ typedef JSC::Yarr::YarrPattern YarrPattern;
++#if ENABLE_YARR_JIT
+ typedef JSC::Yarr::JSGlobalData JSGlobalData;
+ typedef JSC::Yarr::YarrCodeBlock YarrCodeBlock;
+- typedef JSC::Yarr::YarrPattern YarrPattern;
+
+ /* Note: Native code is valid only if |codeBlock.isFallBack() == false|. */
+ YarrCodeBlock codeBlock;
+- BytecodePattern *byteCode;
+-#else
+- JSRegExp *compiled;
+ #endif
++ BytecodePattern *byteCode;
+
+ public:
+ RegExpPrivateCode()
+ :
+ #if ENABLE_YARR_JIT
+ codeBlock(),
+- byteCode(NULL)
+-#else
+- compiled(NULL)
+ #endif
++ byteCode(NULL)
+ { }
+
+ ~RegExpPrivateCode() {
+ #if ENABLE_YARR_JIT
+ codeBlock.release();
++#endif
+ if (byteCode)
+ Foreground::delete_<BytecodePattern>(byteCode);
+-#else
+- if (compiled)
+- jsRegExpFree(compiled);
+-#endif
+ }
+
+ #if ENABLE_YARR_JIT
+ static inline bool isJITRuntimeEnabled(JSContext *cx);
+- void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error);
+-#else
+- void reportPCREError(JSContext *cx, int error);
+ #endif
++ void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error);
+
+ inline bool compile(JSContext *cx, JSLinearString &pattern, TokenStream *ts, uintN *parenCount,
+ RegExpFlag flags);
+@@ -205,11 +194,7 @@ class RegExpPrivateCode
+ int *output, size_t outputCount);
+
+ static size_t getOutputSize(size_t pairCount) {
+-#if ENABLE_YARR_JIT
+ return pairCount * 2;
+-#else
+- return pairCount * 3; /* Should be x2, but PCRE has... needs. */
+-#endif
+ }
+ };
+
+diff --git a/js/src/yarr/wtfbridge.h b/js/src/yarr/wtfbridge.h
+index ac41d08..fb8eb86 100644
+--- a/js/src/yarr/wtfbridge.h
++++ b/js/src/yarr/wtfbridge.h
+@@ -49,9 +49,7 @@
+ #include "jsprvtd.h"
+ #include "vm/String.h"
+ #include "assembler/wtf/Platform.h"
+-#if ENABLE_YARR_JIT
+ #include "assembler/jit/ExecutableAllocator.h"
+-#endif
+
+ namespace JSC { namespace Yarr {
+
diff --git a/mozilla-696393.patch b/mozilla-696393.patch
deleted file mode 100644
index 26c558f..0000000
--- a/mozilla-696393.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff -up xulrunner-9.0/mozilla-beta/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp.696393 xulrunner-9.0/mozilla-beta/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp
---- xulrunner-9.0/mozilla-beta/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp.696393 2011-12-07 07:28:08.000000000 +0100
-+++ xulrunner-9.0/mozilla-beta/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390x.cpp 2011-12-09 15:07:07.609097348 +0100
-@@ -194,55 +194,22 @@ invoke_copy_to_stack(PRUint32 paramCount
- }
- }
-
-+typedef nsresult (*vtable_func)(nsISupports *, PRUint64, PRUint64, PRUint64, PRUint64, double, double, double, double);
-+
- EXPORT_XPCOM_API(nsresult)
- NS_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
- PRUint32 paramCount, nsXPTCVariant* params)
- {
-- PRUint64 *vtable = *(PRUint64 **)that;
-- PRUint64 method = vtable[methodIndex];
-+ vtable_func *vtable = *reinterpret_cast<vtable_func **>(that);
-+ vtable_func method = vtable[methodIndex];
- PRUint64 overflow = invoke_count_words (paramCount, params);
-+ PRUint64 *stack_space = reinterpret_cast<PRUint64 *>(__builtin_alloca((overflow + 8 /* 4 64-bits gpr + 4 64-bits fpr */) * 8));
- PRUint64 result;
-
-- __asm__ __volatile__
-- (
-- "lgr 7,15\n\t"
-- "aghi 7,-64\n\t"
--
-- "lgr 3,%3\n\t"
-- "sllg 3,3,3\n\t"
-- "lcgr 3,3\n\t"
-- "lg 2,0(15)\n\t"
-- "la 15,0(3,7)\n\t"
-- "stg 2,0(15)\n\t"
--
-- "lgr 2,%1\n\t"
-- "lgr 3,%2\n\t"
-- "la 4,160(15)\n\t"
-- "lgr 5,%3\n\t"
-- "basr 14,%4\n\t"
-+ invoke_copy_to_stack(paramCount, params, stack_space, overflow);
-
-- "lgr 2,%5\n\t"
-- "ld 0,192(7)\n\t"
-- "ld 2,200(7)\n\t"
-- "ld 4,208(7)\n\t"
-- "ld 6,216(7)\n\t"
-- "lmg 3,6,160(7)\n\t"
-- "basr 14,%6\n\t"
-+ PRUint64 *d_gpr = stack_space + overflow;
-+ double *d_fpr = reinterpret_cast<double *>(d_gpr + 4);
-
-- "la 15,64(7)\n\t"
--
-- "lgr %0,2\n\t"
-- : "=r" (result)
-- : "r" ((PRUint64)paramCount),
-- "r" (params),
-- "r" (overflow),
-- "a" (invoke_copy_to_stack),
-- "a" (that),
-- "a" (method)
-- : "2", "3", "4", "5", "6", "7", "14", "cc", "memory",
-- "%f0", "%f1", "%f2", "%f3", "%f4", "%f5", "%f6", "%f7"
-- );
--
-- return result;
-+ return method(that, d_gpr[0], d_gpr[1], d_gpr[2], d_gpr[3], d_fpr[0], d_fpr[1], d_fpr[2], d_fpr[3]);
- }
--
diff --git a/mozilla-722127.patch b/mozilla-722127.patch
index 63a9e0a..f86fcae 100644
--- a/mozilla-722127.patch
+++ b/mozilla-722127.patch
@@ -1,12 +1,7 @@
-# HG changeset patch
-# Parent 0a6f3638cdaba9d3b5ef2eef73a42b2a167dc52a
-# User ojab <ojab@ojab.ru>
-Bug 722127 - Build --with-system-libvpx is broken for libvpx-1.0.0
-
-diff -up xulrunner-10.0/mozilla-beta/configure.in.vpx1.0.0 xulrunner-10.0/mozilla-beta/configure.in
---- xulrunner-10.0/mozilla-beta/configure.in.vpx1.0.0 2012-01-24 02:59:49.000000000 -0500
-+++ xulrunner-10.0/mozilla-beta/configure.in 2012-01-30 13:11:22.303053551 -0500
-@@ -5616,20 +5616,20 @@ if test -n "$MOZ_WEBM"; then
+diff -up xulrunner-11.0/mozilla-beta/configure.in.vpx1.0.0 xulrunner-11.0/mozilla-beta/configure.in
+--- xulrunner-11.0/mozilla-beta/configure.in.vpx1.0.0 2012-03-09 01:39:31.000000000 +0100
++++ xulrunner-11.0/mozilla-beta/configure.in 2012-03-09 15:03:51.246031329 +0100
+@@ -5710,20 +5710,20 @@ if test -n "$MOZ_WEBM"; then
[MOZ_NATIVE_LIBVPX_DEC_TEST=1],
([--with-system-libvpx requested but symbol vpx_codec_dec_init_ver not found]))
if test -n "$MOZ_NATIVE_LIBVPX_DEC_TEST" ; then
@@ -33,7 +28,7 @@ diff -up xulrunner-10.0/mozilla-beta/configure.in.vpx1.0.0 xulrunner-10.0/mozill
#error "test failed."
#endif
],
-@@ -5639,7 +5639,7 @@ if test -n "$MOZ_WEBM"; then
+@@ -5734,7 +5734,7 @@ if test -n "$MOZ_WEBM"; then
MOZ_LIBVPX_INCLUDES="-I${LIBVPX_DIR}/include"
MOZ_LIBVPX_LIBS="-L${LIBVPX_DIR}/lib -lvpx"],
[AC_MSG_RESULT([no])
@@ -42,19 +37,19 @@ diff -up xulrunner-10.0/mozilla-beta/configure.in.vpx1.0.0 xulrunner-10.0/mozill
fi
CFLAGS=$_SAVE_CFLAGS
LDFLAGS=$_SAVE_LDFLAGS
-diff -up xulrunner-10.0/mozilla-beta/configure.vpx1.0.0 xulrunner-10.0/mozilla-beta/configure
---- xulrunner-10.0/mozilla-beta/configure.vpx1.0.0 2012-01-30 13:11:47.805847514 -0500
-+++ xulrunner-10.0/mozilla-beta/configure 2012-01-30 13:14:07.818716354 -0500
-@@ -17727,14 +17727,14 @@ else
+diff -up xulrunner-11.0/mozilla-beta/configure.vpx1.0.0 xulrunner-11.0/mozilla-beta/configure
+--- xulrunner-11.0/mozilla-beta/configure.vpx1.0.0 2012-03-09 01:58:50.000000000 +0100
++++ xulrunner-11.0/mozilla-beta/configure 2012-03-09 15:15:42.537585632 +0100
+@@ -17761,14 +17761,14 @@ else
fi
if test -n "$MOZ_NATIVE_LIBVPX_DEC_TEST" ; then
- echo $ac_n "checking for libvpx version >= v0.9.7""... $ac_c" 1>&6
--echo "configure:17732: checking for libvpx version >= v0.9.7" >&5
+-echo "configure:17766: checking for libvpx version >= v0.9.7" >&5
+ echo $ac_n "checking for libvpx version >= v1.0.0""... $ac_c" 1>&6
-+echo "configure:17732: checking for libvpx version >= v1.0.0" >&5
++echo "configure:17766: checking for libvpx version >= v1.0.0" >&5
cat > conftest.$ac_ext <<EOF
- #line 17734 "configure"
+ #line 17768 "configure"
#include "confdefs.h"
#include <vpx/vpx_decoder.h>
@@ -63,7 +58,7 @@ diff -up xulrunner-10.0/mozilla-beta/configure.vpx1.0.0 xulrunner-10.0/mozilla-b
#error "test failed."
#endif
-@@ -17753,7 +17753,7 @@ else
+@@ -17791,7 +17791,7 @@ else
cat conftest.$ac_ext >&5
rm -rf conftest*
echo "$ac_t""no" 1>&6
@@ -72,3 +67,8 @@ diff -up xulrunner-10.0/mozilla-beta/configure.vpx1.0.0 xulrunner-10.0/mozilla-b
fi
rm -f conftest*
fi
+@@ -25794,4 +25794,3 @@ if cmp -s config/autoconf.mk config/auto
+ else
+ rm -f config/autoconf.mk.orig 2> /dev/null
+ fi
+-
diff --git a/mozilla-724615.patch b/mozilla-724615.patch
new file mode 100644
index 0000000..cc78c1b
--- /dev/null
+++ b/mozilla-724615.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# Parent 6292e55419d1730a2e88a56fd30b2440ce0b393a
+# User Raúl Porcel <armin76@gentoo.org>
+Bug XXXXXX - Fix TARGET_CPU usage on ARM
+
+
+diff --git a/xpcom/glue/objs.mk b/xpcom/glue/objs.mk
+--- a/xpcom/glue/objs.mk
++++ b/xpcom/glue/objs.mk
+@@ -71,13 +71,13 @@ XPCOM_GLUENS_SRC_LCPPSRCS = \
+ SSE.cpp \
+ unused.cpp \
+ nsProxyRelease.cpp \
+ nsTextFormatter.cpp \
+ GenericFactory.cpp \
+ FileUtils.cpp \
+ $(NULL)
+
+-ifeq (arm,$(TARGET_CPU))
++ifneq (,$(filter arm%,$(TARGET_CPU)))
+ XPCOM_GLUENS_SRC_LCPPSRCS += arm.cpp
+ endif
+
+ XPCOM_GLUENS_SRC_CPPSRCS = $(addprefix $(topsrcdir)/xpcom/glue/,$(XPCOM_GLUENS_SRC_LCPPSRCS))
diff --git a/mozilla-build.patch b/mozilla-build.patch
index 065ca9f..be1ba4b 100644
--- a/mozilla-build.patch
+++ b/mozilla-build.patch
@@ -1,7 +1,7 @@
-diff -up xulrunner-1.9.3.0/mozilla-central/security/manager/Makefile.in.build xulrunner-1.9.3.0/mozilla-central/security/manager/Makefile.in
---- xulrunner-1.9.3.0/mozilla-central/security/manager/Makefile.in.build 2010-08-06 03:09:27.000000000 +0200
-+++ xulrunner-1.9.3.0/mozilla-central/security/manager/Makefile.in 2010-08-16 10:49:10.000000000 +0200
-@@ -181,7 +181,6 @@ DEFAULT_GMAKE_FLAGS += NSPR_INCLUDE_DIR=
+diff -up mozilla-beta/security/manager/Makefile.in.build mozilla-beta/security/manager/Makefile.in
+--- mozilla-beta/security/manager/Makefile.in.build 2012-03-09 01:39:56.000000000 +0100
++++ mozilla-beta/security/manager/Makefile.in 2012-03-09 13:56:28.612328083 +0100
+@@ -174,7 +174,6 @@ DEFAULT_GMAKE_FLAGS += NSPR_INCLUDE_DIR=
DEFAULT_GMAKE_FLAGS += NSPR_LIB_DIR=$(NSPR_LIB_DIR)
DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1
DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1
@@ -9,15 +9,14 @@ diff -up xulrunner-1.9.3.0/mozilla-central/security/manager/Makefile.in.build xu
DEFAULT_GMAKE_FLAGS += NSINSTALL="$(NSINSTALL)"
ifndef MOZ_NATIVE_SQLITE
DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=mozsqlite3
-diff -up xulrunner-1.9.3.0/mozilla-central/security/manager/ssl/src/Makefile.in.build xulrunner-1.9.3.0/mozilla-central/security/manager/ssl/src/Makefile.in
---- xulrunner-1.9.3.0/mozilla-central/security/manager/ssl/src/Makefile.in.build 2010-08-06 03:09:17.000000000 +0200
-+++ xulrunner-1.9.3.0/mozilla-central/security/manager/ssl/src/Makefile.in 2010-08-16 10:46:22.000000000 +0200
-@@ -113,8 +113,6 @@ CSRCS += md4.c
-
+diff -up mozilla-beta/security/manager/ssl/src/Makefile.in.build mozilla-beta/security/manager/ssl/src/Makefile.in
+--- mozilla-beta/security/manager/ssl/src/Makefile.in.build 2012-03-09 01:39:56.000000000 +0100
++++ mozilla-beta/security/manager/ssl/src/Makefile.in 2012-03-09 13:57:37.055657208 +0100
+@@ -116,7 +116,6 @@ CSRCS += md4.c
EXTRA_DEPS = $(NSS_DEP_LIBS)
--DEFINES += -DNSS_ENABLE_ECC
--
- # Use local includes because they are inserted before INCLUDES
- # so that Mozilla's nss.h is used, not glibc's
- LOCAL_INCLUDES += $(NSS_CFLAGS)
+ DEFINES += \
+- -DNSS_ENABLE_ECC \
+ -DDLL_PREFIX=\"$(DLL_PREFIX)\" \
+ -DDLL_SUFFIX=\"$(DLL_SUFFIX)\" \
+ $(NULL)
diff --git a/xulrunner-9.0-secondary-build-fix.patch b/xulrunner-9.0-secondary-build-fix.patch
deleted file mode 100644
index fc1c1db..0000000
--- a/xulrunner-9.0-secondary-build-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up xulrunner-9.0.1/mozilla-release/js/src/jscompartment.cpp.orig xulrunner-9.0.1/mozilla-release/js/src/jscompartment.cpp
---- xulrunner-9.0.1/mozilla-release/js/src/jscompartment.cpp.orig 2012-01-04 11:06:39.000000000 +0100
-+++ xulrunner-9.0.1/mozilla-release/js/src/jscompartment.cpp 2012-01-04 11:06:43.000000000 +0100
-@@ -50,7 +50,6 @@
- #include "jswatchpoint.h"
- #include "jswrapper.h"
- #include "assembler/wtf/Platform.h"
--#include "assembler/jit/ExecutableAllocator.h"
- #include "yarr/BumpPointerAllocator.h"
- #include "methodjit/MethodJIT.h"
- #include "methodjit/PolyIC.h"
diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig
index 3ec51d2..b58f39e 100644
--- a/xulrunner-mozconfig
+++ b/xulrunner-mozconfig
@@ -4,8 +4,6 @@
ac_add_options --prefix="$PREFIX"
ac_add_options --libdir="$LIBDIR"
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
diff --git a/xulrunner.spec b/xulrunner.spec
index a7459ca..9189a64 100644
--- a/xulrunner.spec
+++ b/xulrunner.spec
@@ -1,33 +1,38 @@
-# Use system sqlite?
-%if 0%{?fedora} < 16
-%define system_sqlite 0
-%else
-%define system_sqlite 1
-%endif
-# Use system nspr/nss/cairo/libvpx
+# Use system nspr/nss?
%if 0%{?fedora} < 15
-%define system_nspr 0
%define system_nss 0
%define system_cairo 0
%define system_vpx 0
%else
-%define system_nspr 1
%define system_nss 1
%define system_cairo 1
%define system_vpx 1
%endif
+# Use system sqlite?
+%if 0%{?fedora} <= 15
+%define system_sqlite 0
+%else
+%define system_sqlite 1
+%endif
+
%global shortname xulrunner
+# Build as a debug package?
+%define debug_build 0
+
# Minimal required versions
-%global nspr_version 4.8.9
-%global nss_version 3.13.1
%global cairo_version 1.10.2
%global freetype_version 2.1.9
%global libnotify_version 0.7.0
%global libvpx_version 1.0.0
%global lcms_version 1.18
+%if %{?system_nss}
+%global nspr_version 4.9
+%global nss_version 3.13.3
+%endif
+
%if %{?system_sqlite}
%global sqlite_version 3.7.7.1
# The actual sqlite version (see #480989):
@@ -38,13 +43,13 @@
# alpha_version should be set to the alpha number if using an alpha, 0 otherwise
# beta_version should be set to the beta number if using a beta, 0 otherwise
# rc_version should be set to the RC number if using an RC, 0 otherwise
-%global gecko_dir_ver 10
+%global gecko_dir_ver 11
%global alpha_version 0
%global beta_version 0
%global rc_version 0
-%global mozappdir %{_libdir}/%{shortname}-%{gecko_dir_ver}
-%global tarballdir mozilla-release
+%global mozappdir %{_libdir}/%{shortname}-%{gecko_dir_ver}
+%global tarballdir mozilla-release
# crash reporter work only on x86/x86_64
#%ifarch %{ix86} x86_64
@@ -75,7 +80,7 @@
Summary: XUL Runtime for Gecko Applications
Name: %{shortname}%{gecko_dir_ver}
-Version: 10.0.2
+Version: 11.0
Release: 1%{?dist}
URL: http://developer.mozilla.org/En/XULRunner
License: MPLv1.1 or GPLv2+ or LGPLv2+
@@ -92,7 +97,7 @@ Source21: %{shortname}.sh.in
Patch0: xulrunner-version.patch
Patch1: mozilla-build.patch
Patch14: xulrunner-2.0-chromium-types.patch
-Patch17: xulrunner-10.0-gcc47.patch
+Patch17: xulrunner-10.0-gcc47.patch
# Fedora specific patches
@@ -101,25 +106,21 @@ Patch23: wmclass.patch
Patch24: crashreporter-remove-static.patch
# Upstream patches
-Patch38: mozilla-696393.patch
# https://bugzilla.mozilla.org/show_bug.cgi?id=707993
Patch39: xulrunner-8.0-fix-maemo-checks-in-npapi.patch
-Patch40: mozilla-682832-proxy.patch
-# cherry-picked from 13afcd4c097c
-Patch41: xulrunner-9.0-secondary-build-fix.patch
Patch42: mozilla-706724.patch
Patch43: mozilla-file.patch
# Needed to detect/use libvpx-1.0.0
# https://bugzilla.mozilla.org/show_bug.cgi?id=722127
-Patch44: mozilla-722127.patch
+Patch44: mozilla-722127.patch
+Patch46: mozilla-724615.patch
+Patch47: mozilla-691898.patch
# ---------------------------------------------------
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
-%if %{system_nspr}
+%if %{?system_nss}
BuildRequires: nspr-devel >= %{nspr_version}
-%endif
-%if %{system_nss}
BuildRequires: nss-devel >= %{nss_version}
%endif
%if %{system_cairo}
@@ -142,9 +143,9 @@ BuildRequires: startup-notification-devel
BuildRequires: alsa-lib-devel
BuildRequires: libnotify-devel
BuildRequires: mesa-libGL-devel
+BuildRequires: curl-devel
BuildRequires: lcms-devel >= %{lcms_version}
BuildRequires: yasm
-BuildRequires: curl-devel
%ifarch %{ix86} x86_64
BuildRequires: wireless-tools-devel
%endif
@@ -153,10 +154,8 @@ BuildRequires: libvpx-devel >= %{libvpx_version}
%endif
Requires: mozilla-filesystem
-%if %{system_nspr}
+%if %{?system_nss}
Requires: nspr >= %{nspr_version}
-%endif
-%if %{system_nspr}
Requires: nss >= %{nss_version}
%endif
Provides: gecko-libs = %{gecko_verrel}
@@ -192,10 +191,8 @@ Provides: gecko-devel-unstable = %{gecko_verrel}
Provides: gecko-devel-unstable%{?_isa} = %{gecko_verrel}
Requires: %{name}%{?_isa} = %{version}-%{release}
-%if %{system_nspr}
+%if %{?system_nss}
Requires: nspr-devel >= %{nspr_version}
-%endif
-%if %{system_nspr}
Requires: nss-devel >= %{nss_version}
%endif
%if %{system_cairo}
@@ -221,16 +218,17 @@ Requires: startup-notification-devel
Requires: alsa-lib-devel
Requires: libnotify-devel
Requires: mesa-libGL-devel
+Requires: libvpx-devel >= %{libvpx_version}
Requires: lcms-devel
Requires: yasm
%ifarch %{ix86} x86_64
Requires: wireless-tools-devel
%endif
-Obsoletes: xulrunner2-devel
-Obsoletes: xulrunner5-devel
Obsoletes: xulrunner6-devel
Obsoletes: xulrunner7-devel
Obsoletes: xulrunner8-devel
+Obsoletes: xulrunner9-devel
+Obsoletes: xulrunner10-devel
%description devel
This package contains the libraries amd header files that are needed
@@ -266,7 +264,7 @@ sed -e 's/__RPM_VERSION_INTERNAL__/%{gecko_dir_ver}/' %{P:%%PATCH0} \
> version.patch
%{__patch} -p1 -b --suffix .version --fuzz=0 < version.patch
-%patch1 -p2 -b .build
+%patch1 -p1 -b .build
%patch14 -p1 -b .chromium-types
%patch17 -p1 -b .gcc47
@@ -274,29 +272,17 @@ sed -e 's/__RPM_VERSION_INTERNAL__/%{gecko_dir_ver}/' %{P:%%PATCH0} \
%patch23 -p1 -b .wmclass
%patch24 -p1 -b .static
-%patch38 -p2 -b .696393
%patch39 -p1 -b .707993
-%if 0%{?fedora} >= 14
-%patch40 -p2 -b .682832
-%endif
-%patch41 -p2 -b .secondary-build
%patch42 -p1 -b .706724
%patch43 -p1 -b .file
%if %{system_vpx}
%patch44 -p2 -b .vpx1.0.0
%endif
+%patch46 -p1 -b .724615
+#%patch47 -p1 -b .691898
%{__rm} -f .mozconfig
%{__cat} %{SOURCE10} \
-%if ! %{system_sqlite}
- | grep -v enable-system-sqlite \
-%endif
-%if ! %{system_nspr}
- | grep -v with-system-nspr \
-%endif
-%if ! %{system_nspr}
- | grep -v with-system-nss \
-%endif
%if ! %{system_cairo}
| grep -v enable-system-cairo \
%endif
@@ -314,12 +300,28 @@ sed -e 's/__RPM_VERSION_INTERNAL__/%{gecko_dir_ver}/' %{P:%%PATCH0} \
echo "ac_add_options --enable-system-lcms" >> .mozconfig
+%if %{?system_nss}
+echo "ac_add_options --with-system-nspr" >> .mozconfig
+echo "ac_add_options --with-system-nss" >> .mozconfig
+%else
+echo "ac_add_options --without-system-nspr" >> .mozconfig
+echo "ac_add_options --without-system-nss" >> .mozconfig
+%endif
+
%if %{?system_sqlite}
echo "ac_add_options --enable-system-sqlite" >> .mozconfig
%else
echo "ac_add_options --disable-system-sqlite" >> .mozconfig
%endif
+%if %{?debug_build}
+echo "ac_add_options --enable-debug" >> .mozconfig
+echo "ac_add_options --disable-optimize" >> .mozconfig
+%else
+echo "ac_add_options --disable-debug" >> .mozconfig
+echo "ac_add_options --enable-optimize" >> .mozconfig
+%endif
+
# s390(x) fails to start with jemalloc enabled
%ifarch s390 s390x
echo "ac_add_options --disable-jemalloc" >> .mozconfig
@@ -329,15 +331,18 @@ echo "ac_add_options --disable-jemalloc" >> .mozconfig
echo "ac_add_options --with-arch=armv7-a" >> .mozconfig
echo "ac_add_options --with-float-abi=hard" >> .mozconfig
echo "ac_add_options --with-fpu=vfpv3-d16" >> .mozconfig
+echo "ac_add_options --disable-elf-hack" >> .mozconfig
%endif
%ifarch armv7hnl
echo "ac_add_options --with-arch=armv7-a" >> .mozconfig
echo "ac_add_options --with-float-abi=hard" >> .mozconfig
echo "ac_add_options --with-fpu=neon" >> .mozconfig
+echo "ac_add_options --disable-elf-hack" >> .mozconfig
%endif
%ifarch armv5tel
echo "ac_add_options --with-arch=armv5te" >> .mozconfig
echo "ac_add_options --with-float-abi=soft" >> .mozconfig
+echo "ac_add_options --disable-elf-hack" >> .mozconfig
%endif
%ifnarch %{ix86} x86_64
@@ -372,6 +377,9 @@ cd %{tarballdir}
#
MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive" | \
%{__sed} -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')
+%if %{?debug_build}
+MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
+%endif
export CFLAGS=$MOZ_OPT_FLAGS
export CXXFLAGS=$MOZ_OPT_FLAGS
@@ -386,6 +394,7 @@ MOZ_SMP_FLAGS=-j1
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
%endif
export LDFLAGS="-Wl,-rpath,%{mozappdir}"
@@ -451,7 +460,7 @@ for i in *.so; do
done
popd
-%if ! %{system_nspr}
+%if ! %{system_nss}
%{__install} -D -p -m 755 \
dist/sdk/bin/nspr-config \
$RPM_BUILD_ROOT%{_libdir}/%{shortname}-devel-%{gecko_dir_ver}/sdk/bin/nspr-config
@@ -486,7 +495,7 @@ touch $RPM_BUILD_ROOT%{mozappdir}/components/xpti.dat
%{__cp} dist/%{symbols_file_name} $RPM_BUILD_ROOT/%{moz_debug_dir}
%endif
-# Remi : this appears on Fedora <= 13
+# Remi : this appears when using bundled lib (nss, nspr, ...)
%{__rm} -f $RPM_BUILD_ROOT/%{mozappdir}/*.chk
@@ -556,6 +565,22 @@ fi
#---------------------------------------------------------------------
%changelog
+* Sat Mar 17 2012 Remi Collet <RPMS@FamilleCollet.com> - 11.0-1
+- update to 11.0, sync with rawhide
+
+* Tue Mar 13 2012 Martin Stransky <stransky@redhat.com> - 11.0-3
+- Update to 11.0
+- Fixed libvpx-devel dependency
+
+* Fri Mar 9 2012 Martin Stransky <stransky@redhat.com> - 11.0-1
+- Update to 11.0 Beta 7
+
+* Fri Mar 09 2012 Dan Horák <dan[at]danny.cz> - 10.0.1-5
+- Add fix for secondary arches from mozb#691898
+
+* Mon Feb 27 2012 Martin Stransky <stransky@redhat.com> - 10.0.1-4
+- Added fix from rhbz#796929 - xulrunner doesn't compile on ARM
+
* Sat Feb 18 2012 Remi Collet <RPMS@FamilleCollet.com> - 10.0.2-1
- update to 10.0.2