From fb772c0b41ee7f4fca32d67d00b205ca7827bd66 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sat, 17 Mar 2012 09:08:29 +0100 Subject: Firefox 11.0 --- mozilla-682832-proxy.patch | 358 -------------------------------- mozilla-691898.patch | 285 +++++++++++++++++++++++++ mozilla-696393.patch | 68 ------ mozilla-722127.patch | 36 ++-- mozilla-724615.patch | 24 +++ mozilla-build.patch | 27 ++- xulrunner-9.0-secondary-build-fix.patch | 11 - xulrunner-mozconfig | 2 - xulrunner.spec | 125 ++++++----- 9 files changed, 415 insertions(+), 521 deletions(-) delete mode 100644 mozilla-682832-proxy.patch create mode 100644 mozilla-691898.patch delete mode 100644 mozilla-696393.patch create mode 100644 mozilla-724615.patch delete mode 100644 xulrunner-9.0-secondary-build-fix.patch 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 - #include -@@ -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 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 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 mGConf; -+ nsCOMPtr 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 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 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 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 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 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 +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 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_(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(that); -+ vtable_func method = vtable[methodIndex]; - PRUint64 overflow = invoke_count_words (paramCount, params); -+ PRUint64 *stack_space = reinterpret_cast(__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(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 -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 < @@ -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 +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 - 11.0-1 +- update to 11.0, sync with rawhide + +* Tue Mar 13 2012 Martin Stransky - 11.0-3 +- Update to 11.0 +- Fixed libvpx-devel dependency + +* Fri Mar 9 2012 Martin Stransky - 11.0-1 +- Update to 11.0 Beta 7 + +* Fri Mar 09 2012 Dan Horák - 10.0.1-5 +- Add fix for secondary arches from mozb#691898 + +* Mon Feb 27 2012 Martin Stransky - 10.0.1-4 +- Added fix from rhbz#796929 - xulrunner doesn't compile on ARM + * Sat Feb 18 2012 Remi Collet - 10.0.2-1 - update to 10.0.2 -- cgit