diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | crashreporter-remove-static.patch | 11 | ||||
| -rw-r--r-- | mozilla-193-pkgconfig.patch | 53 | ||||
| -rw-r--r-- | mozilla-682832-proxy.patch | 358 | ||||
| -rw-r--r-- | mozilla-696393.patch | 133 | ||||
| -rw-r--r-- | mozilla-build.patch | 23 | ||||
| -rw-r--r-- | mozilla-libjpeg-turbo.patch | 34 | ||||
| -rw-r--r-- | wmclass.patch | 29 | ||||
| -rw-r--r-- | xulrunner-2.0-NetworkManager09.patch | 51 | ||||
| -rw-r--r-- | xulrunner-2.0-chromium-types.patch | 33 | ||||
| -rw-r--r-- | xulrunner-2.0-network-link-service.patch | 274 | ||||
| -rw-r--r-- | xulrunner-8.0-fix-maemo-checks-in-npapi.patch | 21 | ||||
| -rw-r--r-- | xulrunner-9.0-secondary-ipc.patch | 60 | ||||
| -rw-r--r-- | xulrunner-mozconfig | 49 | ||||
| -rw-r--r-- | xulrunner-mozconfig-debuginfo | 5 | ||||
| -rw-r--r-- | xulrunner-redhat-default-prefs.js | 6 | ||||
| -rw-r--r-- | xulrunner-version.patch | 13 | ||||
| -rw-r--r-- | xulrunner.sh.in | 69 | ||||
| -rw-r--r-- | xulrunner.spec | 801 | 
19 files changed, 2027 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1e65467 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../common/Makefile + diff --git a/crashreporter-remove-static.patch b/crashreporter-remove-static.patch new file mode 100644 index 0000000..b94d165 --- /dev/null +++ b/crashreporter-remove-static.patch @@ -0,0 +1,11 @@ +diff -up comm-1.9.2/mozilla/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/Makefile.in.static comm-1.9.2/mozilla/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/Makefile.in +--- mozilla/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/Makefile.in.static	2010-06-23 19:47:11.000000000 +0200 ++++ mozilla/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/Makefile.in	2010-07-12 15:51:41.000000000 +0200 +@@ -64,6 +64,6 @@ FORCE_USE_PIC = 1 +  + #XXX: bug 554854 causes us to be unable to run binaries on the build slaves + # due to them having an older libstdc++ +-HOST_LDFLAGS += -static ++#HOST_LDFLAGS += -static +  + include $(topsrcdir)/config/rules.mk diff --git a/mozilla-193-pkgconfig.patch b/mozilla-193-pkgconfig.patch new file mode 100644 index 0000000..a867f22 --- /dev/null +++ b/mozilla-193-pkgconfig.patch @@ -0,0 +1,53 @@ +diff -up xulrunner-1.9.3.0/mozilla-central/config/autoconf.mk.in.pk xulrunner-1.9.3.0/mozilla-central/config/autoconf.mk.in +--- xulrunner-1.9.3.0/mozilla-central/config/autoconf.mk.in.pk	2010-08-06 03:09:27.000000000 +0200 ++++ xulrunner-1.9.3.0/mozilla-central/config/autoconf.mk.in	2010-08-16 11:07:52.000000000 +0200 +@@ -58,14 +58,14 @@ MOZ_PKG_SPECIAL = @MOZ_PKG_SPECIAL@ + prefix		= @prefix@ + exec_prefix	= @exec_prefix@ + bindir		= @bindir@ +-includedir	= @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) ++includedir	= @includedir@/$(MOZ_APP_NAME)-sdk-$(MOZ_APP_VERSION) + libdir		= @libdir@ + datadir		= @datadir@ + mandir		= @mandir@ +-idldir		= $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) ++idldir		= $(datadir)/idl/$(MOZ_APP_NAME)-sdk-$(MOZ_APP_VERSION) +  + installdir	= $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +-sdkdir		= $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) ++sdkdir		= $(libdir)/$(MOZ_APP_NAME)-sdk-$(MOZ_APP_VERSION) +  + DIST		= $(DEPTH)/dist + LIBXUL_SDK      = @LIBXUL_SDK@ +diff -up xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul-embedding.pc.in.pk xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul-embedding.pc.in +--- xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul-embedding.pc.in.pk	2010-08-06 03:09:24.000000000 +0200 ++++ xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul-embedding.pc.in	2010-08-16 11:12:32.000000000 +0200 +@@ -6,5 +6,6 @@ idldir=%idldir% + Name: libxul-embedding + Description: Static library for version-independent embedding of the Mozilla runtime + Version: %MOZILLA_VERSION% ++Requires: %NSPR_NAME% >= %NSPR_VERSION% + Libs: -L${sdkdir}/lib -lxpcomglue -ldl + Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS% +diff -up xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul.pc.in.pk xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul.pc.in +--- xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul.pc.in.pk	2010-08-06 03:09:24.000000000 +0200 ++++ xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/libxul.pc.in	2010-08-16 11:07:52.000000000 +0200 +@@ -2,6 +2,7 @@ prefix=%prefix% + sdkdir=%sdkdir% + includedir=%includedir% + idldir=%idldir% ++libdir=%libdir% +  + Name: libxul + Description: The Mozilla Runtime and Embedding Engine +diff -up xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/Makefile.in.pk xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/Makefile.in +--- xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/Makefile.in.pk	2010-08-16 11:07:52.000000000 +0200 ++++ xulrunner-1.9.3.0/mozilla-central/xulrunner/installer/Makefile.in	2010-08-16 11:07:52.000000000 +0200 +@@ -116,6 +116,7 @@ endif + 	-e "s|%includedir%|$(includedir)|" \ + 	-e "s|%idldir%|$(idldir)|" \ + 	-e "s|%sdkdir%|$(sdkdir)|" \ ++	-e "s|%libdir%|$(installdir)|" \ + 	-e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \ + 	-e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \ + 	-e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \ diff --git a/mozilla-682832-proxy.patch b/mozilla-682832-proxy.patch new file mode 100644 index 0000000..076b2a6 --- /dev/null +++ b/mozilla-682832-proxy.patch @@ -0,0 +1,358 @@ +diff -up mozilla-release/toolkit/system/gnome/nsGSettingsService.cpp.682832 mozilla-release/toolkit/system/gnome/nsGSettingsService.cpp +--- mozilla-release/toolkit/system/gnome/nsGSettingsService.cpp.682832	2011-11-04 22:34:19.000000000 +0100 ++++ mozilla-release/toolkit/system/gnome/nsGSettingsService.cpp	2011-12-07 11:36:29.302312405 +0100 +@@ -42,6 +42,8 @@ + #include "nsMemory.h" + #include "prlink.h" + #include "nsComponentManagerUtils.h" ++#include "nsIMutableArray.h" ++#include "nsISupportsPrimitives.h" +  + #include <glib.h> + #include <glib-object.h> +@@ -56,6 +58,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 \ +@@ -68,6 +71,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)) \ +@@ -91,6 +95,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 +@@ -263,6 +268,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; ++} ++ + nsresult + nsGSettingsService::Init() + { +diff -up mozilla-release/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.682832 mozilla-release/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp +--- mozilla-release/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp.682832	2011-11-04 22:34:19.000000000 +0100 ++++ mozilla-release/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp	2011-12-07 11:40:48.432502399 +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; +   PRBool 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,30 @@ 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 PRBool +@@ -231,7 +252,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 +323,17 @@ static PRBool ConvertToIPV6Addr(const ns +                                 PRIPv6Addr* aAddr) + { +   PRNetAddr addr; ++  // try to convert hostname to IP +   if (PR_StringToNetAddr(PromiseFlatCString(aName).get(), &addr) != PR_SUCCESS) +     return PR_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 PR_FALSE; +   } +@@ -289,8 +341,8 @@ static PRBool ConvertToIPV6Addr(const ns +   return PR_TRUE; + } +  +-static PRBool GConfIgnoreHost(const nsACString& aIgnore, +-                              const nsACString& aHost) ++static bool HostIgnoredByProxy(const nsACString& aIgnore, ++                               const nsACString& aHost) + { +   if (aIgnore.Equals(aHost, nsCaseInsensitiveCStringComparator())) +     return PR_TRUE; +@@ -321,8 +373,9 @@ static PRBool GConfIgnoreHost(const nsAC +     slash = end; +   } +  ++  nsDependentCSubstring ignoreStripped(start, slash); +   PRIPv6Addr ignoreAddr, hostAddr; +-  if (!ConvertToIPV6Addr(aIgnore, &ignoreAddr) || ++  if (!ConvertToIPV6Addr(ignoreStripped, &ignoreAddr) || +       !ConvertToIPV6Addr(aHost, &hostAddr)) +     return PR_FALSE; +  +@@ -355,7 +408,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 +445,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 +524,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 mozilla-release/xpcom/system/nsIGSettingsService.idl.682832 mozilla-release/xpcom/system/nsIGSettingsService.idl +--- mozilla-release/xpcom/system/nsIGSettingsService.idl.682832	2011-11-04 22:34:23.000000000 +0100 ++++ mozilla-release/xpcom/system/nsIGSettingsService.idl	2011-12-07 11:32:37.976256951 +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-696393.patch b/mozilla-696393.patch new file mode 100644 index 0000000..8859d97 --- /dev/null +++ b/mozilla-696393.patch @@ -0,0 +1,133 @@ +diff -up xulrunner-9.0/mozilla-beta/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp.696393 xulrunner-9.0/mozilla-beta/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp +--- xulrunner-9.0/mozilla-beta/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp.696393	2011-12-07 07:28:08.000000000 +0100 ++++ xulrunner-9.0/mozilla-beta/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_s390.cpp	2011-12-09 15:06:10.584998410 +0100 +@@ -200,52 +200,21 @@ invoke_copy_to_stack(PRUint32 paramCount +     } + } +  ++typedef nsresult (*vtable_func)(nsISupports *, PRUint32, PRUint32, PRUint32, PRUint32, double, double); ++ + EXPORT_XPCOM_API(nsresult) + NS_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, +                  PRUint32 paramCount, nsXPTCVariant* params) + { +-    PRUint32 *vtable = *(PRUint32 **)that; +-    PRUint32 method = vtable[methodIndex]; ++    vtable_func *vtable = *reinterpret_cast<vtable_func **>(that); ++    vtable_func method = vtable[methodIndex]; +     PRUint32 overflow = invoke_count_words (paramCount, params); +-    PRUint32 result; +- +-    __asm__ __volatile__ +-    ( +-        "lr    7,15\n\t" +-        "ahi   7,-32\n\t" +- +-        "lr    3,%3\n\t" +-        "sll   3,2\n\t" +-        "lcr   3,3\n\t" +-        "l     2,0(15)\n\t" +-        "la    15,0(3,7)\n\t" +-        "st    2,0(15)\n\t" ++    PRUint32 *stack_space = reinterpret_cast<PRUint32 *>(__builtin_alloca((overflow + 8 /* 4 32-bits gpr + 2 64-bits fpr */) * 4)); +  +-        "lr    2,%1\n\t" +-        "lr    3,%2\n\t" +-        "la    4,96(15)\n\t" +-        "lr    5,%3\n\t" +-        "basr  14,%4\n\t" ++    invoke_copy_to_stack(paramCount, params, stack_space, overflow); +  +-        "lr    2,%5\n\t" +-        "ld    0,112(7)\n\t" +-        "ld    2,120(7)\n\t" +-        "lm    3,6,96(7)\n\t" +-        "basr  14,%6\n\t" ++    PRUint32 *d_gpr = stack_space + overflow; ++    double *d_fpr = reinterpret_cast<double *>(d_gpr + 4); +  +-        "la    15,32(7)\n\t" +- +-        "lr    %0,2\n\t" +-        : "=r" (result) +-        : "r" (paramCount), +-          "r" (params), +-          "r" (overflow), +-          "a" (invoke_copy_to_stack), +-          "a" (that), +-          "a" (method) +-        : "2", "3", "4", "5", "6", "7", "14", "cc", "memory", "%f0", "%f2" +-    ); +-   +-    return result; ++    return method(that, d_gpr[0], d_gpr[1], d_gpr[2], d_gpr[3],  d_fpr[0], d_fpr[1]); + } +- +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-build.patch b/mozilla-build.patch new file mode 100644 index 0000000..065ca9f --- /dev/null +++ b/mozilla-build.patch @@ -0,0 +1,23 @@ +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= + DEFAULT_GMAKE_FLAGS += NSPR_LIB_DIR=$(NSPR_LIB_DIR) + DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1 + DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1 +-DEFAULT_GMAKE_FLAGS += NSS_ENABLE_ECC=1 + 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 +  + 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) diff --git a/mozilla-libjpeg-turbo.patch b/mozilla-libjpeg-turbo.patch new file mode 100644 index 0000000..54be1a1 --- /dev/null +++ b/mozilla-libjpeg-turbo.patch @@ -0,0 +1,34 @@ +diff -up xulrunner-2.0/mozilla-central/modules/libpr0n/decoders/nsJPEGDecoder.cpp.jpeg-turbo xulrunner-2.0/mozilla-central/modules/libpr0n/decoders/nsJPEGDecoder.cpp +--- xulrunner-2.0/mozilla-central/modules/libpr0n/decoders/nsJPEGDecoder.cpp.jpeg-turbo	2010-11-04 21:06:43.000000000 +0100 ++++ xulrunner-2.0/mozilla-central/modules/libpr0n/decoders/nsJPEGDecoder.cpp	2010-11-12 12:39:08.047171412 +0100 +@@ -411,14 +411,6 @@ nsJPEGDecoder::WriteInternal(const char  +       return; /* I/O suspension */ +     } +  +-    /* Force to use our YCbCr to Packed RGB converter when possible */ +-    if (!mTransform && (mCMSMode != eCMSMode_All) && +-        mInfo.jpeg_color_space == JCS_YCbCr && mInfo.out_color_space == JCS_RGB) { +-      /* Special case for the most common case: transform from YCbCr direct into packed ARGB */ +-      mInfo.out_color_components = 4; /* Packed ARGB pixels are always 4 bytes...*/ +-      mInfo.cconvert->color_convert = ycc_rgb_convert_argb; +-    } +- +     /* If this is a progressive JPEG ... */ +     mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL; +   } +@@ -563,15 +555,6 @@ nsJPEGDecoder::OutputScanlines(PRBool* s +       PRUint32 *imageRow = ((PRUint32*)mImageData) + +                            (mInfo.output_scanline * mInfo.output_width); +  +-      if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) { +-        /* Special case: scanline will be directly converted into packed ARGB */ +-        if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) { +-          *suspend = PR_TRUE; /* suspend */ +-          break; +-        } +-        continue; /* all done for this row! */ +-      } +- +       JSAMPROW sampleRow = (JSAMPROW)imageRow; +       if (mInfo.output_components == 3) { +         /* Put the pixels at end of row to enable in-place expansion */ diff --git a/wmclass.patch b/wmclass.patch new file mode 100644 index 0000000..5fe76ac --- /dev/null +++ b/wmclass.patch @@ -0,0 +1,29 @@ +# +# Online Desktop expects WMCLASS to match the .desktop file +# Since renaming the .desktop file is bad, work around this here +# + +diff -up ./widget/src/gtk2/nsWindow.cpp.wmclass ./widget/src/gtk2/nsWindow.cpp +--- ./widget/src/gtk2/nsWindow.cpp.wmclass	2010-10-25 11:33:21.649433261 -0700 ++++ ./widget/src/gtk2/nsWindow.cpp	2010-10-25 11:36:19.864431870 -0700 +@@ -3738,6 +3738,10 @@ nsWindow::Create(nsIWidget        *aPare +         GetBrandName(brandName); +         NS_ConvertUTF16toUTF8 cBrand(brandName); +  ++        if (brandName.EqualsLiteral("Minefield")) { ++		cBrand.Assign("Firefox"); ++        } ++ +         if (mWindowType == eWindowType_dialog) { +             mShell = gtk_window_new(GTK_WINDOW_TOPLEVEL); +             SetDefaultIcon(); +@@ -4109,6 +4113,9 @@ nsWindow::SetWindowClass(const nsAString + #ifdef MOZ_X11 +   nsXPIDLString brandName; +   GetBrandName(brandName); ++  if (brandName.EqualsLiteral("Minefield")) { ++    brandName.AssignLiteral("Firefox"); ++  } +  +   XClassHint *class_hint = XAllocClassHint(); +   if (!class_hint) diff --git a/xulrunner-2.0-NetworkManager09.patch b/xulrunner-2.0-NetworkManager09.patch new file mode 100644 index 0000000..317a1b4 --- /dev/null +++ b/xulrunner-2.0-NetworkManager09.patch @@ -0,0 +1,51 @@ +https://bugzilla.mozilla.org/show_bug.cgi?id=639959 + +--- source/toolkit/system/dbus/nsNetworkManagerListener.cpp.foo	2011-03-08 14:26:28.167074923 -0600 ++++ source/toolkit/system/dbus/nsNetworkManagerListener.cpp	2011-03-08 14:30:54.260748294 -0600 +@@ -51,15 +51,13 @@ + #define NM_DBUS_SERVICE                 "org.freedesktop.NetworkManager" + #define NM_DBUS_PATH                            "/org/freedesktop/NetworkManager" + #define NM_DBUS_INTERFACE                       "org.freedesktop.NetworkManager" +-#define NM_DBUS_SIGNAL_STATE_CHANGE             "StateChange" +-typedef enum NMState +-{ +-        NM_STATE_UNKNOWN = 0, +-        NM_STATE_ASLEEP, +-        NM_STATE_CONNECTING, +-        NM_STATE_CONNECTED, +-        NM_STATE_DISCONNECTED +-} NMState; ++#define NM_DBUS_SIGNAL_STATE_CHANGE             "StateChange"  /* Deprecated in 0.7.x */ ++#define NM_DBUS_SIGNAL_STATE_CHANGED            "StateChanged" ++ ++#define NM_STATE_CONNECTED_OLD    3 ++#define NM_STATE_CONNECTED_LOCAL  50 ++#define NM_STATE_CONNECTED_SITE   60 ++#define NM_STATE_CONNECTED_GLOBAL 70 +  + nsNetworkManagerListener::nsNetworkManagerListener() : +     mLinkUp(PR_TRUE), mNetworkManagerActive(PR_FALSE), +@@ -174,7 +172,9 @@ + PRBool + nsNetworkManagerListener::HandleMessage(DBusMessage* message) { +   if (dbus_message_is_signal(message, NM_DBUS_INTERFACE, +-                             NM_DBUS_SIGNAL_STATE_CHANGE)) { ++                             NM_DBUS_SIGNAL_STATE_CHANGE) || ++      dbus_message_is_signal(message, NM_DBUS_INTERFACE, ++                             NM_DBUS_SIGNAL_STATE_CHANGED)) { +     UpdateNetworkStatus(message); +     return PR_TRUE; +   } +@@ -191,7 +191,10 @@ +   mNetworkManagerActive = PR_TRUE; +    +   PRBool wasUp = mLinkUp; +-  mLinkUp = result == NM_STATE_CONNECTED; ++  mLinkUp = (result == NM_STATE_CONNECTED_OLD) || ++            (result == NM_STATE_CONNECTED_LOCAL) || ++            (result == NM_STATE_CONNECTED_SITE) || ++            (result == NM_STATE_CONNECTED_GLOBAL); +   if (wasUp == mLinkUp) +     return; +  + diff --git a/xulrunner-2.0-chromium-types.patch b/xulrunner-2.0-chromium-types.patch new file mode 100644 index 0000000..dfc82cc --- /dev/null +++ b/xulrunner-2.0-chromium-types.patch @@ -0,0 +1,33 @@ +Bug 627669 - add support for s390(x) and ppc(64) + +diff -up mozilla-release/gfx/ycbcr/chromium_types.h.chromium-types mozilla-release/gfx/ycbcr/chromium_types.h +--- mozilla-release/gfx/ycbcr/chromium_types.h.chromium-types	2011-06-15 23:57:26.000000000 +0200 ++++ mozilla-release/gfx/ycbcr/chromium_types.h	2011-06-30 10:04:25.105032221 +0200 +@@ -61,7 +61,11 @@ typedef PRInt16 int16; + #define ARCH_CPU_ARM_FAMILY 1 + #define ARCH_CPU_ARMEL 1 + #define ARCH_CPU_32_BITS 1 +-#elif defined(__ppc__) || defined(__powerpc) || defined(__PPC__) ++#elif defined(__ppc64__) || defined(__powerpc64__) ++#define ARCH_CPU_PPC_FAMILY 1 ++#define ARCH_CPU_PPC 1 ++#define ARCH_CPU_64_BITS 1 ++#elif defined(__ppc__) || defined(__powerpc__) || defined(__PPC__) + #define ARCH_CPU_PPC_FAMILY 1 + #define ARCH_CPU_PPC 1 + #define ARCH_CPU_32_BITS 1 +@@ -73,6 +77,14 @@ typedef PRInt16 int16; + #define ARCH_CPU_SPARC_FAMILY 1 + #define ARCH_CPU_SPARC 1 + #define ARCH_CPU_64_BITS 1 ++#elif defined(__s390x__) ++#define ARCH_CPU_S390_FAMILY 1 ++#define ARCH_CPU_S390 1 ++#define ARCH_CPU_64_BITS 1 ++#elif defined(__s390__) ++#define ARCH_CPU_S390_FAMILY 1 ++#define ARCH_CPU_S390 1 ++#define ARCH_CPU_32_BITS 1 + #else + #warning Please add support for your architecture in chromium_types.h + #endif diff --git a/xulrunner-2.0-network-link-service.patch b/xulrunner-2.0-network-link-service.patch new file mode 100644 index 0000000..b3243a9 --- /dev/null +++ b/xulrunner-2.0-network-link-service.patch @@ -0,0 +1,274 @@ +# HG changeset patch +# Parent 31879b88cc82c1f44e6a6c25a05aa2c70af22d7e +# User Martin Stransky <stransky@redhat.com> +Bug 627672 - XPCOM component (libdbusservice.so) is not registered although it should be; r=cbiesinger + + + +diff --git a/netwerk/base/src/nsIOService.cpp b/netwerk/base/src/nsIOService.cpp +--- a/netwerk/base/src/nsIOService.cpp ++++ b/netwerk/base/src/nsIOService.cpp +@@ -160,31 +160,33 @@ PRInt16 gBadPortList[] = { +   2049, // nfs +   4045, // lockd +   6000, // x11         +   0,    // This MUST be zero so that we can populating the array + }; +  + static const char kProfileChangeNetTeardownTopic[] = "profile-change-net-teardown"; + static const char kProfileChangeNetRestoreTopic[] = "profile-change-net-restore"; ++static const char kStartupTopic[] = "profile-after-change"; +  + // Necko buffer cache + nsIMemory* nsIOService::gBufferCache = nsnull; + PRUint32   nsIOService::gDefaultSegmentSize = 4096; + PRUint32   nsIOService::gDefaultSegmentCount = 24; +  + //////////////////////////////////////////////////////////////////////////////// +  + nsIOService::nsIOService() +     : mOffline(PR_TRUE) +     , mOfflineForProfileChange(PR_FALSE) +     , mManageOfflineStatus(PR_TRUE) +     , mSettingOffline(PR_FALSE) +     , mSetOfflineValue(PR_FALSE) +     , mShutdown(PR_FALSE) ++    , mNetworkLinkServiceInitialized(PR_FALSE) +     , mChannelEventSinks(NS_CHANNEL_EVENT_SINK_CATEGORY) +     , mContentSniffers(NS_CONTENT_SNIFFER_CATEGORY) +     , mAutoDialEnabled(PR_FALSE) + { + } +  + nsresult + nsIOService::Init() +@@ -230,16 +232,17 @@ nsIOService::Init() +     } +      +     // Register for profile change notifications +     nsCOMPtr<nsIObserverService> observerService = +         mozilla::services::GetObserverService(); +     if (observerService) { +         observerService->AddObserver(this, kProfileChangeNetTeardownTopic, PR_TRUE); +         observerService->AddObserver(this, kProfileChangeNetRestoreTopic, PR_TRUE); ++        observerService->AddObserver(this, kStartupTopic, PR_TRUE); +         observerService->AddObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID, PR_TRUE); +         observerService->AddObserver(this, NS_NETWORK_LINK_TOPIC, PR_TRUE); +     } +     else +         NS_WARNING("failed to get observer service"); +          +     NS_TIME_FUNCTION_MARK("Registered observers"); +  +@@ -258,29 +261,19 @@ nsIOService::Init() +         NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "Was unable to allocate.  No gBufferCache."); +         CallQueryInterface(recyclingAllocator, &gBufferCache); +     } +  +     NS_TIME_FUNCTION_MARK("Set up the recycling allocator"); +  +     gIOService = this; +  +-    // go into managed mode if we can, and chrome process +-    if (XRE_GetProcessType() == GeckoProcessType_Default) +-        mNetworkLinkService = do_GetService(NS_NETWORK_LINK_SERVICE_CONTRACTID); +- +-    if (!mNetworkLinkService) +-        // We can't really determine if the machine has a usable network connection, +-        // so let's cross our fingers! +-        mManageOfflineStatus = PR_FALSE; +- +-    if (mManageOfflineStatus) +-        TrackNetworkLinkStatusForOffline(); +-    else +-        SetOffline(PR_FALSE); ++    // We can't really determine if the machine has a usable network connection, ++    // (mNetworkLinkService will be initialized later) so let's cross our fingers! ++    SetOffline(PR_FALSE); +      +     NS_TIME_FUNCTION_MARK("Set up network link service"); +  +     return NS_OK; + } +  +  + nsIOService::~nsIOService() +@@ -306,16 +299,57 @@ nsIOService::InitializeSocketTransportSe +         rv = mSocketTransportService->Init(); +         NS_ASSERTION(NS_SUCCEEDED(rv), "socket transport service init failed"); +         mSocketTransportService->SetAutodialEnabled(mAutoDialEnabled); +     } +  +     return rv; + } +  ++nsresult ++nsIOService::InitializeNetworkLinkService() ++{ ++    NS_TIME_FUNCTION; ++ ++    nsresult rv = NS_OK; ++ ++    if (mNetworkLinkServiceInitialized) ++      return rv; ++ ++#if defined(MOZ_PLATFORM_MAEMO) ++    // libdbusservice fails to initialize on Maemo platform, see Bug 627672 ++    mNetworkLinkService = NULL; ++#else ++    // go into managed mode if we can, and chrome process ++    if (XRE_GetProcessType() == GeckoProcessType_Default) ++    { ++        mNetworkLinkService = do_GetService(NS_NETWORK_LINK_SERVICE_CONTRACTID, &rv); ++        if (NS_FAILED(rv)) { ++            NS_WARNING("failed to get network link service"); ++            return rv; ++        } ++    } ++#endif ++ ++    mNetworkLinkServiceInitialized = PR_TRUE; ++ ++    if (!mNetworkLinkService) { ++        // We can't really determine if the machine has a usable network connection, ++        // so let's cross our fingers! ++        mManageOfflineStatus = PR_FALSE; ++    } ++ ++    if (mManageOfflineStatus) ++        TrackNetworkLinkStatusForOffline(); ++    else ++        SetOffline(PR_FALSE); ++     ++    return rv; ++} ++ + nsIOService* + nsIOService::GetInstance() { +     if (!gIOService) { +         gIOService = new nsIOService(); +         if (!gIOService) +             return nsnull; +         NS_ADDREF(gIOService); +  +@@ -689,16 +723,19 @@ nsIOService::NewChannel(const nsACString +     if (NS_FAILED(rv)) return rv; +  +     return NewChannelFromURI(uri, result); + } +  + PRBool + nsIOService::IsLinkUp() + { ++    NS_ASSERTION(mNetworkLinkServiceInitialized,  ++                 "network link service should be initialized"); ++ +     if (!mNetworkLinkService) { +         // We cannot decide, assume the link is up +         return PR_TRUE; +     } +  +     PRBool isLinkUp; +     nsresult rv; +     rv = mNetworkLinkService->GetIsLinkUp(&isLinkUp); +@@ -968,16 +1005,20 @@ nsIOService::Observe(nsISupports *subjec +         if (mOfflineForProfileChange) { +             mOfflineForProfileChange = PR_FALSE; +             if (!mManageOfflineStatus || +                 NS_FAILED(TrackNetworkLinkStatusForOffline())) { +                 SetOffline(PR_FALSE); +             } +         }  +     } ++    else if (!strcmp(topic, kStartupTopic)) { ++        // Lazy initialization of network link service (see bug 620472) ++        InitializeNetworkLinkService(); ++    } +     else if (!strcmp(topic, NS_XPCOM_SHUTDOWN_OBSERVER_ID)) { +         // Remember we passed XPCOM shutdown notification to prevent any +         // changes of the offline status from now. We must not allow going +         // online after this point. +         mShutdown = PR_TRUE; +  +         SetOffline(PR_TRUE); +  +@@ -1085,32 +1126,40 @@ nsIOService::NewSimpleNestedURI(nsIURI*  +     NS_IF_ADDREF(*aResult = new nsSimpleNestedURI(safeURI)); +     return *aResult ? NS_OK : NS_ERROR_OUT_OF_MEMORY; + } +  + NS_IMETHODIMP + nsIOService::SetManageOfflineStatus(PRBool aManage) { +     PRBool wasManaged = mManageOfflineStatus; +     mManageOfflineStatus = aManage; ++ ++    if (!mNetworkLinkServiceInitialized) { ++        InitializeNetworkLinkService(); ++    } ++ +     if (mManageOfflineStatus && !wasManaged) +         return TrackNetworkLinkStatusForOffline(); +     return NS_OK; + } +  + NS_IMETHODIMP + nsIOService::GetManageOfflineStatus(PRBool* aManage) { +     *aManage = mManageOfflineStatus; +     return NS_OK; + } +  + nsresult + nsIOService::TrackNetworkLinkStatusForOffline() + { +     NS_ASSERTION(mManageOfflineStatus, +                  "Don't call this unless we're managing the offline status"); ++    NS_ASSERTION(mNetworkLinkServiceInitialized,  ++                "network link service should be set up"); ++ +     if (!mNetworkLinkService) +         return NS_ERROR_FAILURE; +  +     if (mShutdown) +         return NS_ERROR_NOT_AVAILABLE; +    +     // check to make sure this won't collide with Autodial +     if (mSocketTransportService) { +diff --git a/netwerk/base/src/nsIOService.h b/netwerk/base/src/nsIOService.h +--- a/netwerk/base/src/nsIOService.h ++++ b/netwerk/base/src/nsIOService.h +@@ -129,16 +129,17 @@ private: +                                               nsIProtocolHandler* hdlr); +  +     // Prefs wrangling +     NS_HIDDEN_(void) PrefsChanged(nsIPrefBranch *prefs, const char *pref = nsnull); +     NS_HIDDEN_(void) GetPrefBranch(nsIPrefBranch2 **); +     NS_HIDDEN_(void) ParsePortList(nsIPrefBranch *prefBranch, const char *pref, PRBool remove); +  +     nsresult InitializeSocketTransportService(); ++    nsresult InitializeNetworkLinkService(); +  + private: +     PRPackedBool                         mOffline; +     PRPackedBool                         mOfflineForProfileChange; +     PRPackedBool                         mManageOfflineStatus; +  +     // Used to handle SetOffline() reentrancy.  See the comment in +     // SetOffline() for more details. +@@ -146,16 +147,17 @@ private: +     PRPackedBool                         mSetOfflineValue; +  +     PRPackedBool                         mShutdown; +  +     nsCOMPtr<nsPISocketTransportService> mSocketTransportService; +     nsCOMPtr<nsPIDNSService>             mDNSService; +     nsCOMPtr<nsIProtocolProxyService2>   mProxyService; +     nsCOMPtr<nsINetworkLinkService>      mNetworkLinkService; ++    PRPackedBool                         mNetworkLinkServiceInitialized; +      +     // Cached protocol handlers +     nsWeakPtr                            mWeakHandler[NS_N(gScheme)]; +  +     // cached categories +     nsCategoryCache<nsIChannelEventSink> mChannelEventSinks; +     nsCategoryCache<nsIContentSniffer>   mContentSniffers; +  diff --git a/xulrunner-8.0-fix-maemo-checks-in-npapi.patch b/xulrunner-8.0-fix-maemo-checks-in-npapi.patch new file mode 100644 index 0000000..99c9b7f --- /dev/null +++ b/xulrunner-8.0-fix-maemo-checks-in-npapi.patch @@ -0,0 +1,21 @@ +diff -up mozilla-release/dom/plugins/base/npapi.h.BAD mozilla-release/dom/plugins/base/npapi.h +--- mozilla-release/dom/plugins/base/npapi.h.BAD	2011-12-06 13:31:16.364405916 -0500 ++++ mozilla-release/dom/plugins/base/npapi.h	2011-12-06 13:31:47.131109006 -0500 +@@ -379,7 +379,7 @@ typedef enum { +   , NPPVpluginCoreAnimationLayer = 1003 + #endif +  +-#if (MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6) ++#if defined(MOZ_PLATFORM_MAEMO) && ((MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6)) +   , NPPVpluginWindowlessLocalBool = 2002 + #endif + } NPPVariable; +@@ -432,7 +432,7 @@ typedef enum { +   , NPNVsupportsCompositingCoreAnimationPluginsBool = 74656 /* TRUE if the browser supports +                                                                CA model compositing */ + #endif +-#if (MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6) ++#if defined(MOZ_PLATFORM_MAEMO) && ((MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6)) +   , NPNVSupportsWindowlessLocal = 2002 + #endif + } NPNVariable; diff --git a/xulrunner-9.0-secondary-ipc.patch b/xulrunner-9.0-secondary-ipc.patch new file mode 100644 index 0000000..40ecfd5 --- /dev/null +++ b/xulrunner-9.0-secondary-ipc.patch @@ -0,0 +1,60 @@ +diff -up xulrunner-9.0/mozilla-beta/ipc/chromium/src/base/data_pack.cc.secondary-ipc xulrunner-9.0/mozilla-beta/ipc/chromium/src/base/data_pack.cc +--- xulrunner-9.0/mozilla-beta/ipc/chromium/src/base/data_pack.cc.secondary-ipc	2011-12-07 07:27:43.000000000 +0100 ++++ xulrunner-9.0/mozilla-beta/ipc/chromium/src/base/data_pack.cc	2011-12-09 14:35:50.397220865 +0100 +@@ -91,14 +91,7 @@ bool DataPack::Load(const FilePath& path + bool DataPack::Get(uint32_t resource_id, StringPiece* data) { +   // It won't be hard to make this endian-agnostic, but it's not worth +   // bothering to do right now. +-#if defined(__BYTE_ORDER) +-  // Linux check +-  COMPILE_ASSERT(__BYTE_ORDER == __LITTLE_ENDIAN, +-                 datapack_assumes_little_endian); +-#elif defined(__BIG_ENDIAN__) +-  // Mac check +-  #error DataPack assumes little endian +-#endif ++#warning DoTheRightThingMakingThisEndianAgnostic! +  +   DataPackEntry* target = reinterpret_cast<DataPackEntry*>( +       bsearch(&resource_id, mmap_->data() + kHeaderLength, resource_count_, +diff -up xulrunner-9.0/mozilla-beta/ipc/chromium/src/build/build_config.h.secondary-ipc xulrunner-9.0/mozilla-beta/ipc/chromium/src/build/build_config.h +--- xulrunner-9.0/mozilla-beta/ipc/chromium/src/build/build_config.h.secondary-ipc	2011-12-07 07:27:43.000000000 +0100 ++++ xulrunner-9.0/mozilla-beta/ipc/chromium/src/build/build_config.h	2011-12-09 14:39:44.922231601 +0100 +@@ -59,11 +59,23 @@ + #define ARCH_CPU_ARMEL 1 + #define ARCH_CPU_32_BITS 1 + #define WCHAR_T_IS_UNSIGNED 1 ++#elif defined(__powerpc64__) ++#define ARCH_CPU_PPC64 1 ++#define ARCH_CPU_64_BITS 1 + #elif defined(__ppc__) || defined(__powerpc__) + #define ARCH_CPU_PPC 1 + #define ARCH_CPU_32_BITS 1 +-#elif defined(__sparc64__) ++#elif defined(__s390x__) ++#define ARCH_CPU_S390X 1 ++#define ARCH_CPU_64_BITS 1 ++#elif defined(__s390__) ++#define ARCH_CPU_S390 1 ++#define ARCH_CPU_32_BITS 1 ++#elif defined(__sparc__) && !defined(__arch64) + #define ARCH_CPU_SPARC 1 ++#define ARCH_CPU_32_BITS 1 ++#elif defined(__sparc__) && defined(__arch64) ++#define ARCH_CPU_SPARC64 1 + #define ARCH_CPU_64_BITS 1 + #else + #error Please add support for your architecture in build/build_config.h +diff -up xulrunner-9.0/mozilla-beta/ipc/chromium/src/chrome/common/ipc_message_utils.h.secondary-ipc xulrunner-9.0/mozilla-beta/ipc/chromium/src/chrome/common/ipc_message_utils.h +--- xulrunner-9.0/mozilla-beta/ipc/chromium/src/chrome/common/ipc_message_utils.h.secondary-ipc	2011-12-07 07:27:43.000000000 +0100 ++++ xulrunner-9.0/mozilla-beta/ipc/chromium/src/chrome/common/ipc_message_utils.h	2011-12-09 14:40:59.602679278 +0100 +@@ -195,7 +195,8 @@ struct ParamTraits<unsigned long long> { + }; + #endif +  +-#if !(defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_WIN) || (defined(OS_LINUX) && defined(ARCH_CPU_64_BITS))) ++// Although s390 is a 32-bit system it defines size_t as unsigned long ++#if !(defined(OS_MACOSX) || defined(OS_OPENBSD) || defined(OS_WIN) || (defined(OS_LINUX) && (defined(ARCH_CPU_64_BITS) || defined(ARCH_CPU_S390)))) + // There size_t is a synonym for |unsigned long| ... + template <> + struct ParamTraits<size_t> { diff --git a/xulrunner-mozconfig b/xulrunner-mozconfig new file mode 100644 index 0000000..9391b82 --- /dev/null +++ b/xulrunner-mozconfig @@ -0,0 +1,49 @@ +. $topsrcdir/xulrunner/config/mozconfig +# --with-system-png is disabled because Mozilla requires APNG support in libpng +#ac_add_options --with-system-png + +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 +ac_add_options --with-system-libvpx +ac_add_options --enable-system-hunspell +ac_add_options --enable-system-sqlite +ac_add_options --enable-system-cairo +ac_add_options --with-pthreads +ac_add_options --disable-strip +ac_add_options --disable-tests +ac_add_options --disable-mochitest +ac_add_options --disable-installer +ac_add_options --disable-debug +ac_add_options --enable-optimize +ac_add_options --enable-xinerama +ac_add_options --enable-default-toolkit=cairo-gtk2 +ac_add_options --enable-pango +ac_add_options --enable-svg +ac_add_options --enable-canvas +ac_add_options --disable-javaxpcom +ac_add_options --disable-crashreporter +ac_add_options --enable-safe-browsing +ac_add_options --enable-extensions=default +ac_add_options --enable-libnotify +ac_add_options --disable-necko-wifi +ac_add_options --enable-startup-notification +ac_add_options --disable-cpp-exceptions +ac_add_options --enable-shared-js +ac_add_options --enable-url-classifier +ac_add_options --enable-gio +ac_add_options --disable-gnomevfs +ac_add_options --disable-updater +ac_add_options --enable-chrome-format=omni + +export BUILD_OFFICIAL=1 +export MOZILLA_OFFICIAL=1 +export MOZ_UA_BUILDID=20100101 + +mk_add_options BUILD_OFFICIAL=1 +mk_add_options MOZILLA_OFFICIAL=1 +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@ diff --git a/xulrunner-mozconfig-debuginfo b/xulrunner-mozconfig-debuginfo new file mode 100644 index 0000000..4dd2427 --- /dev/null +++ b/xulrunner-mozconfig-debuginfo @@ -0,0 +1,5 @@ +# For mozilla's debuginfo: +export CFLAGS="$CFLAGS -gdwarf-2" +export CXXFLAGS="$CXXFLAGS -gdwarf-2" +export MOZ_DEBUG_SYMBOLS=1 +ac_add_options --enable-crashreporter diff --git a/xulrunner-redhat-default-prefs.js b/xulrunner-redhat-default-prefs.js new file mode 100644 index 0000000..7177d9b --- /dev/null +++ b/xulrunner-redhat-default-prefs.js @@ -0,0 +1,6 @@ +pref("app.update.enabled", false); +pref("app.update.autoInstallEnabled", false); +pref("general.smoothScroll",                true); +pref("intl.locale.matchOS", true); +pref("network.manage-offline-status", true); +pref("toolkit.storage.synchronous", 0); diff --git a/xulrunner-version.patch b/xulrunner-version.patch new file mode 100644 index 0000000..d08bde9 --- /dev/null +++ b/xulrunner-version.patch @@ -0,0 +1,13 @@ +diff -up mozilla/toolkit/mozapps/update/src/updater/module.ver mozilla/toolkit/mozapps/update/src/updater/module +diff -up mozilla/xulrunner/installer/Makefile.in.ver mozilla/xulrunner/installer/Makefile.in +--- mozilla/xulrunner/installer/Makefile.in.ver	2007-12-14 09:51:34.000000000 +0100 ++++ mozilla/xulrunner/installer/Makefile.in	2007-12-14 09:52:03.000000000 +0100 +@@ -44,6 +44,8 @@ VPATH		= @srcdir@ +  + include $(DEPTH)/config/autoconf.mk +  ++MOZ_APP_VERSION="__RPM_VERSION_INTERNAL__" ++ + NO_PKG_FILES = \ + 	xulrunner-config \ + 	regchrome* \ diff --git a/xulrunner.sh.in b/xulrunner.sh.in new file mode 100644 index 0000000..8f76b27 --- /dev/null +++ b/xulrunner.sh.in @@ -0,0 +1,69 @@ +#!/bin/sh +# +# The contents of this file are subject to the Netscape Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/NPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is Netscape +# Communications Corporation.  Portions created by Netscape are +# Copyright (C) 1998 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s):  +# + +##  +## Usage: +## +## $ xulrunner +## +## This script is meant to run a xulrunner program from the xulrunner +## rpm installation. +## + +cmdname=`basename $0` + +## +## Variables +## +XUL_ARCH=$(uname -m) +case $XUL_ARCH in +	x86_64 | ia64 | s390 ) +		XUL_LIB_DIR="/usr/lib64" +		SECONDARY_LIB_DIR="/usr/lib" +		;; +	* ) +		XUL_LIB_DIR="/usr/lib" +		SECONDARY_LIB_DIR="/usr/lib64" +		;; +esac + +if [ ! -x $XUL_LIB_DIR/xulrunner-XULRUNNER_VERSION/xulrunner ]; then +    if [ ! -x $SECONDARY_LIB_DIR/xulrunner-XULRUNNER_VERSION/xulrunner ]; then +	echo "Error: $XUL_LIB_DIR/xulrunner-XULRUNNER_VERSION/xulrunner not found" +	if [ -d $SECONDARY_LIB_DIR ]; then +	    echo "       $SECONDARY_LIB_DIR/xulrunner-XULRUNNER_VERSION/xulrunner not found" +	fi +	exit 1 +    fi +    XUL_LIB_DIR="$SECONDARY_LIB_DIR" +fi +XUL_DIST_BIN="$XUL_LIB_DIR/xulrunner-XULRUNNER_VERSION" +XUL_PROGRAM="$XUL_DIST_BIN/xulrunner" + +## +## Enable WebGL +## +MOZ_GLX_IGNORE_BLACKLIST=1 +export MOZ_GLX_IGNORE_BLACKLIST + + +exec $XUL_PROGRAM "$@" diff --git a/xulrunner.spec b/xulrunner.spec new file mode 100644 index 0000000..5dacab3 --- /dev/null +++ b/xulrunner.spec @@ -0,0 +1,801 @@ +%global shortname         xulrunner + +### TODO use system nss when 3.13.1 pushed to stable (f >= 15) + +# Minimal required versions +%global nspr_version 4.8.8 +%global nss_version 3.13.1 +%global cairo_version 1.10.2 +%global freetype_version 2.1.9 +%global sqlite_version 3.7.7.1 +%global libnotify_version 0.7.0 +%global lcms_version 1.18 + +# gecko_dir_ver should be set to the version in our directory names +# 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 9 +%global alpha_version 0 +%global beta_version  0 +%global rc_version    0 + +%global mozappdir         %{_libdir}/%{shortname}-%{gecko_dir_ver} + +# crash reporter work only on x86/x86_64 +#%ifarch %{ix86} x86_64 +#%global enable_mozilla_crashreporter 1 +#%else +%global enable_mozilla_crashreporter 0 +#%endif + +# The actual sqlite version (see #480989): +%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) + +%global tarballdir  mozilla-release +%if %{alpha_version} > 0 +%global pre_version a%{alpha_version} +%global pre_name    alpha%{alpha_version} +%global tarballdir  mozilla-beta +%endif +%if %{beta_version} > 0 +%global pre_version b%{beta_version} +%global pre_name    beta%{beta_version} +%global tarballdir  mozilla-beta +%endif +%if %{rc_version} > 0 +%global pre_version rc%{rc_version} +%global pre_name    rc%{rc_version} +%global tarballdir  mozilla-release +%endif +%if %{defined pre_version} +%global gecko_verrel %{expand:%%{version}}-%{pre_name} +%global pre_tag .%{pre_version} +%else +%global gecko_verrel %{expand:%%{version}} +%endif + +Summary:        XUL Runtime for Gecko Applications +Name:           %{shortname}%{gecko_dir_ver} +Version:        9.0 +Release:        1%{?dist} +URL:            http://developer.mozilla.org/En/XULRunner +License:        MPLv1.1 or GPLv2+ or LGPLv2+ +Group:          Applications/Internet +# You can get sources at ftp://ftp.mozilla.org/pub/firefox/releases/%{version}%{?pretag}/source +#Source0:        %{shortname}-%{version}%{?pretag}.source.tar.bz2 +Source0:        firefox-%{version}%{?pre_version}.source.tar.bz2 +Source10:       %{shortname}-mozconfig +Source11:       %{shortname}-mozconfig-debuginfo +Source12:       %{shortname}-redhat-default-prefs.js +Source21:       %{shortname}.sh.in + +# build patches +Patch0:         xulrunner-version.patch +Patch1:         mozilla-build.patch +Patch14:        xulrunner-2.0-chromium-types.patch +Patch18:        xulrunner-9.0-secondary-ipc.patch + +# Fedora specific patches +Patch20:        mozilla-193-pkgconfig.patch +Patch21:        mozilla-libjpeg-turbo.patch +Patch23:        wmclass.patch +Patch24:        crashreporter-remove-static.patch + +# Upstream patches +Patch34:        xulrunner-2.0-network-link-service.patch +Patch35:        xulrunner-2.0-NetworkManager09.patch +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 + +# --------------------------------------------------- + +BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +%if 0%{?fedora} >= 14 +BuildRequires:  nspr-devel >= %{nspr_version} +%endif +%if 0%{?fedora} >= 17 +BuildRequires:  nss-devel >= %{nss_version} +%endif +%if 0%{?fedora} >= 15 +BuildRequires:  cairo-devel >= %{cairo_version} +%endif +BuildRequires:  libpng-devel +BuildRequires:  libjpeg-devel +BuildRequires:  zip +BuildRequires:  bzip2-devel +BuildRequires:  zlib-devel +BuildRequires:  libIDL-devel +BuildRequires:  gtk2-devel +BuildRequires:  krb5-devel +BuildRequires:  pango-devel +BuildRequires:  freetype-devel >= %{freetype_version} +BuildRequires:  libXt-devel +BuildRequires:  libXrender-devel +BuildRequires:  hunspell-devel +%if 0%{?fedora} >= 16 +BuildRequires:  sqlite-devel >= %{sqlite_version} +%endif +BuildRequires:  startup-notification-devel +BuildRequires:  alsa-lib-devel +BuildRequires:  libnotify-devel +BuildRequires:  mesa-libGL-devel +BuildRequires:  lcms-devel >= %{lcms_version} +BuildRequires:  yasm +BuildRequires:  curl-devel +%ifarch %{ix86} x86_64 +BuildRequires:  wireless-tools-devel +%endif +%if 0%{?fedora} >= 13 +BuildRequires:  libvpx-devel +%endif + +Requires:       mozilla-filesystem +%if 0%{?fedora} >= 14 +Requires:       nspr >= %{nspr_version} +%endif +%if 0%{?fedora} >= 17 +Requires:       nss >= %{nss_version} +%endif +%if 0%{?fedora} >= 16 +Requires:       sqlite >= %{sqlite_build_version} +%endif +Provides:       gecko-libs = %{gecko_verrel} +Provides:       gecko-libs%{?_isa} = %{gecko_verrel} +Obsoletes:      xulrunner2 +Obsoletes:      xulrunner5 +Obsoletes:      xulrunner6 +Obsoletes:      xulrunner7 +Obsoletes:      xulrunner8 + + +%description +XULRunner is a Mozilla runtime package that can be used to bootstrap XUL+XPCOM +applications that are as rich as Firefox and Thunderbird. It provides mechanisms +for installing, upgrading, and uninstalling these applications. XULRunner also +provides libxul, a solution which allows the embedding of Mozilla technologies +in other projects and products. + +%package devel +Summary: Development files for Gecko +Group: Development/Libraries +Obsoletes: mozilla-devel < 1.9 +Obsoletes: firefox-devel < 2.1 +Obsoletes: xulrunner-devel-unstable +Provides: gecko-devel = %{gecko_verrel} +Provides: gecko-devel%{?_isa} = %{gecko_verrel} +Provides: gecko-devel-unstable = %{gecko_verrel} +Provides: gecko-devel-unstable%{?_isa} = %{gecko_verrel} + +Requires: %{name}%{?_isa} = %{version}-%{release} +%if 0%{?fedora} >= 14 +Requires: nspr-devel >= %{nspr_version} +%endif +%if 0%{?fedora} >= 17 +Requires: nss-devel >= %{nss_version} +%endif +%if 0%{?fedora} >= 15 +# Library requirements (cairo-tee >= 1.10) +Requires: cairo-devel >= %{cairo_version} +%endif +Requires: libjpeg-devel +Requires: zip +Requires: bzip2-devel +Requires: zlib-devel +Requires: libIDL-devel +Requires: gtk2-devel +Requires: krb5-devel +Requires: pango-devel +Requires: freetype-devel >= %{freetype_version} +Requires: libXt-devel +Requires: libXrender-devel +Requires: hunspell-devel +Requires: sqlite-devel +Requires: startup-notification-devel +Requires: alsa-lib-devel +Requires: libnotify-devel +Requires: mesa-libGL-devel +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 + +%description devel +This package contains the libraries amd header files that are needed +for writing XUL+XPCOM applications with Mozilla XULRunner and Gecko. + +%if %{enable_mozilla_crashreporter} +%global moz_debug_prefix %{_prefix}/lib/debug +%global moz_debug_dir %{moz_debug_prefix}%{mozappdir} +%global uname_m %(uname -m) +%global symbols_file_name %{shortname}-%{version}.en-US.%{_os}-%{uname_m}.crashreporter-symbols.zip +%global symbols_file_path %{moz_debug_dir}/%{symbols_file_name} +%global _find_debuginfo_opts -p %{symbols_file_path} -o debugcrashreporter.list +%global crashreporter_pkg_name mozilla-crashreporter-%{name}-debuginfo +%package -n %{crashreporter_pkg_name} +Summary: Debugging symbols used by Mozilla's crash reporter servers +Group: Development/Debug +%description -n %{crashreporter_pkg_name} +This package provides debug information for XULRunner, for use by +Mozilla's crash reporter servers.  If you are trying to locally +debug %{name}, you want to install %{name}-debuginfo instead. +%files -n %{crashreporter_pkg_name} -f debugcrashreporter.list +%defattr(-,root,root) +%endif + + +#--------------------------------------------------------------------- + +%prep +echo TARGET = %{name}-%{version}-%{release}%{?dist}  GECKO = %{gecko_verrel} +%setup -q -c +cd %{tarballdir} + +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 +%patch14 -p1 -b .chromium-types +%patch18 -p2 -b .secondary-ipc + +%patch20 -p2 -b .pk +%if 0%{?fedora} >= 14 +%patch21 -p2 -b .jpeg-turbo +%endif +%patch23 -p1 -b .wmclass +%patch24 -p1 -b .static + +%patch34 -p1 -b .network-link-service +%patch35 -p1 -b .NetworkManager09 +%patch38 -p2 -b .696393 +%patch39 -p1 -b .707993 +%if 0%{?fedora} >= 14 +%patch40 -p1 -b .682832 +%endif + +%{__rm} -f .mozconfig +%{__cat} %{SOURCE10} \ +%if 0%{?fedora} < 16 && 0%{?rhel} <= 6 +  | grep -v enable-system-sqlite   \ +%endif +%if 0%{?fedora} < 14 && 0%{?rhel} <= 6 +  | grep -v with-system-nspr       \ +%endif +%if 0%{?fedora} < 17 && 0%{?rhel} <= 6 +  | grep -v with-system-nss        \ +%endif +%if 0%{?fedora} < 15 && 0%{?rhel} <= 6 +  | grep -v enable-system-cairo    \ +%endif +%ifarch %{ix86} x86_64 +  | grep -v disable-necko-wifi     \ +%endif +%if 0%{?fedora} < 13 && 0%{?rhel} <= 6 +  | grep -v with-system-libvpx     \ +%endif +  | tee .mozconfig + +%if %{enable_mozilla_crashreporter} +%{__cat} %{SOURCE11} >> .mozconfig +%endif + +echo "ac_add_options --enable-system-lcms" >> .mozconfig + +# s390(x) fails to start with jemalloc enabled +%ifarch s390 s390x +echo "ac_add_options --disable-jemalloc" >> .mozconfig +%endif + +%ifnarch %{ix86} x86_64 +echo "ac_add_options --disable-methodjit" >> .mozconfig +echo "ac_add_options --disable-monoic" >> .mozconfig +echo "ac_add_options --disable-polyic" >> .mozconfig +echo "ac_add_options --disable-tracejit" >> .mozconfig +%endif + +#--------------------------------------------------------------------- + +%build +%if 0%{?fedora} >= 15 +# Do not proceed with build if the sqlite require would be broken: +# make sure the minimum requirement is non-empty, ... +sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 +# ... and that major number of the computed build-time version matches: +case "%{sqlite_build_version}" in +  "$sqlite_version"*) ;; +  *) exit 1 ;; +esac +%endif + +cd %{tarballdir} + +# -fpermissive is needed to build with gcc 4.6+ which has become stricter +#  +# Mozilla builds with -Wall with exception of a few warnings which show up +# everywhere in the code; so, don't override that. +# +# Disable C++ exceptions since Mozilla code is not exception-safe +# +MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive" | \ +                      %{__sed} -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g') +export CFLAGS=$MOZ_OPT_FLAGS +export CXXFLAGS=$MOZ_OPT_FLAGS + +export PREFIX='%{_prefix}' +export LIBDIR='%{_libdir}' + +MOZ_SMP_FLAGS=-j1 +# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, +# however builds tend to fail on other arches when building in parallel. +%ifarch %{ix86} x86_64 +[ -z "$RPM_BUILD_NCPUS" ] && \ +     RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" +[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 +[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 +%endif + +export LDFLAGS="-Wl,-rpath,%{mozappdir}" +make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_SERVICES_SYNC="1" + +# create debuginfo for crash-stats.mozilla.com +%if %{enable_mozilla_crashreporter} +#cd %{moz_objdir} +make buildsymbols +%endif + +#--------------------------------------------------------------------- + +%install +cd %{tarballdir} +%{__rm} -rf $RPM_BUILD_ROOT + +INTERNAL_APP_SDK_NAME=%{shortname}-sdk-%{gecko_dir_ver} +MOZ_APP_SDK_DIR=%{_libdir}/${INTERNAL_APP_SDK_NAME} + +# set up our prefs before install, so it gets pulled in to omni.jar +%{__cp} -p %{SOURCE12} dist/bin/defaults/pref/all-redhat.js + +DESTDIR=$RPM_BUILD_ROOT make install + +%{__mkdir_p} $RPM_BUILD_ROOT/%{mozappdir} \ +             $RPM_BUILD_ROOT%{_datadir}/idl/${INTERNAL_APP_SDK_NAME} \ +             $RPM_BUILD_ROOT%{_includedir}/${INTERNAL_APP_SDK_NAME} +%{__mkdir_p} $RPM_BUILD_ROOT{%{_libdir},%{_bindir},%{_datadir}/applications} + +# Start script install +%{__rm} -rf $RPM_BUILD_ROOT%{_bindir}/%{shortname} +%{__cat} %{SOURCE21} | %{__sed} -e 's,XULRUNNER_VERSION,%{gecko_dir_ver},g' > \ +  $RPM_BUILD_ROOT%{_bindir}/%{name} +%{__chmod} 755 $RPM_BUILD_ROOT%{_bindir}/%{name} + +%{__rm} -f $RPM_BUILD_ROOT%{mozappdir}/%{shortname}-config + +# Prepare our devel package +%{__mkdir_p} $RPM_BUILD_ROOT/%{_includedir}/${INTERNAL_APP_SDK_NAME} +%{__mkdir_p} $RPM_BUILD_ROOT/%{_datadir}/idl/${INTERNAL_APP_SDK_NAME} +%{__mkdir_p} $RPM_BUILD_ROOT/%{_libdir}/pkgconfig + +%{__cp} -rL dist/include/* \ +  $RPM_BUILD_ROOT/%{_includedir}/${INTERNAL_APP_SDK_NAME} + +# Copy pc files (for compatibility with 1.9.1) +%{__cp} $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul.pc \ +        $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul-unstable.pc +%{__cp} $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul-embedding.pc \ +        $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/libxul-embedding-unstable.pc + +# Fix multilib devel conflicts... +function install_file() { +genheader=$* +mv ${genheader}.h ${genheader}%{__isa_bits}.h +cat > ${genheader}.h << EOF +/* This file exists to fix multilib conflicts */ +#if defined(__x86_64__) || defined(__ia64__) || defined(__s390x__) || defined(__powerpc64__) || (defined(__sparc__) && defined(__arch64__)) +#include "${genheader}64.h" +#else +#include "${genheader}32.h" +#endif +EOF +} + +pushd $RPM_BUILD_ROOT/%{_includedir}/${INTERNAL_APP_SDK_NAME} +install_file "mozilla-config" +install_file "jsautocfg" +install_file "js-config" +popd + +%{__install} -p -c -m 755 dist/bin/xpcshell \ +  $RPM_BUILD_ROOT/%{mozappdir} + +%if 0%{?fedora} < 14 && 0%{?rhel} <= 6 +%{__install} -D -p -m 755 \ +   dist/sdk/bin/nspr-config \ +   $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/sdk/bin/nspr-config +%endif + +%{__rm} -rf $RPM_BUILD_ROOT/%{_includedir}/%{shortname}-%{gecko_dir_ver} +%{__rm} -rf $RPM_BUILD_ROOT/%{_datadir}/idl/%{shortname}-%{gecko_dir_ver} + +%{__rm} -rf $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/include +ln -s  %{_includedir}/${INTERNAL_APP_SDK_NAME} \ +       $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/include + +%{__rm} -rf $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/idl +ln -s  %{_datadir}/idl/${INTERNAL_APP_SDK_NAME} \ +       $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/idl + +%{__rm} -rf $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/sdk/include +ln -s  %{_includedir}/${INTERNAL_APP_SDK_NAME} \ +       $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/sdk/include + +%{__rm} -rf $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/sdk/idl +ln -s  %{_datadir}/idl/${INTERNAL_APP_SDK_NAME} \ +       $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/sdk/idl + +find $RPM_BUILD_ROOT/%{_includedir} -type f -name "*.h" | xargs chmod 644 +find $RPM_BUILD_ROOT/%{_datadir}/idl -type f -name "*.idl" | xargs chmod 644 + +%{__rm} -rf $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/sdk/lib/*.so +pushd $RPM_BUILD_ROOT%{mozappdir} +for i in *.so; do +    ln -s %{mozappdir}/$i $RPM_BUILD_ROOT${MOZ_APP_SDK_DIR}/sdk/lib/$i +done +popd + +# Library path +LD_SO_CONF_D=%{_sysconfdir}/ld.so.conf.d +LD_CONF_FILE=xulrunner-%{__isa_bits}.conf + +%if %{name} == %{shortname} +%{__mkdir_p} ${RPM_BUILD_ROOT}${LD_SO_CONF_D} +%{__cat} > ${RPM_BUILD_ROOT}${LD_SO_CONF_D}/${LD_CONF_FILE} << EOF +%{mozappdir} +EOF +%endif + +# Copy over the LICENSE +%{__install} -p -c -m 644 LICENSE $RPM_BUILD_ROOT%{mozappdir} + +# Use the system hunspell dictionaries +%{__rm} -rf ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries +ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries + +# ghost files +%{__mkdir_p} $RPM_BUILD_ROOT%{mozappdir}/components +touch $RPM_BUILD_ROOT%{mozappdir}/components/compreg.dat +touch $RPM_BUILD_ROOT%{mozappdir}/components/xpti.dat + +# Add debuginfo for crash-stats.mozilla.com  +%if %{enable_mozilla_crashreporter} +%{__mkdir_p} $RPM_BUILD_ROOT/%{moz_debug_dir} +%{__cp} dist/%{symbols_file_name} $RPM_BUILD_ROOT/%{moz_debug_dir} +%endif + +# Remi : this appears on Fedora <= 13 +%{__rm} -f $RPM_BUILD_ROOT/%{mozappdir}/*.chk + + +#--------------------------------------------------------------------- + +%clean +%{__rm} -rf $RPM_BUILD_ROOT + +#--------------------------------------------------------------------- + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%if %{name} == %{shortname} +%preun +# is it a final removal? +if [ $1 -eq 0 ]; then +  %{__rm} -rf %{mozappdir}/components +fi +%endif + +%files +%defattr(-,root,root,-) +%{_bindir}/%{name} +%dir %{mozappdir} +%doc %attr(644, root, root) %{mozappdir}/LICENSE +%doc %attr(644, root, root) %{mozappdir}/README.txt +%{mozappdir}/chrome +%{mozappdir}/chrome.manifest +%{mozappdir}/dictionaries +%dir %{mozappdir}/components +%ghost %{mozappdir}/components/compreg.dat +%ghost %{mozappdir}/components/xpti.dat +%{mozappdir}/components/*.so +%{mozappdir}/components/*.manifest +%{mozappdir}/omni.jar +%{mozappdir}/plugins +%{mozappdir}/*.so +%{mozappdir}/mozilla-xremote-client +%{mozappdir}/run-mozilla.sh +%{mozappdir}/xulrunner +%{mozappdir}/xulrunner-bin +%{mozappdir}/xulrunner-stub +%{mozappdir}/platform.ini +%{mozappdir}/dependentlibs.list +%if %{name} == %{shortname} +%{_sysconfdir}/ld.so.conf.d/xulrunner*.conf +%endif +%{mozappdir}/plugin-container +%{mozappdir}/hyphenation + +%if %{enable_mozilla_crashreporter} +%{mozappdir}/crashreporter +%{mozappdir}/crashreporter.ini +%{mozappdir}/Throbber-small.gif +%endif + +%files devel +%defattr(-,root,root,-) +%{_datadir}/idl/%{shortname}*%{gecko_dir_ver} +%{_includedir}/%{shortname}*%{gecko_dir_ver} +%{_libdir}/%{shortname}-sdk-*/ +%{_libdir}/pkgconfig/*.pc +%{mozappdir}/xpcshell + +#--------------------------------------------------------------------- + +%changelog +* Tue Dec 20 2011 Remi Collet <RPMS@FamilleCollet.com> - 9.0-1 +- update to 9.0, sync with rawhide + +* Tue Dec 20 2011 Jan Horak <jhorak@redhat.com> - 9.0-2 +- Update to 9.0 + +* Fri Dec 9 2011 Martin Stransky <stransky@redhat.com> 9.0-1.beta5 +- Updated to 9.0 Beta 5 + +* Wed Dec  7 2011 Jan Horak <jhorak@redhat.com> - 8.0-5 +- Gnome 3 proxy settings are now honoured (mozbz#682832) + +* Tue Dec  6 2011 Tom Callaway <spot@fedoraproject.org> 8.0-4 +- fix bug in npapi.h causing compile failures + +* Fri Nov 25 2011 Martin Stransky <stransky@redhat.com> 8.0-3 +- s390 build fixes + +* Sat Nov 12 2011 Remi Collet <RPMS@FamilleCollet.com> - 8.0-1 +- update to 8.0, sync with rawhide + +* Mon Nov 7 2011 Martin Stransky <stransky@redhat.com> 8.0-1 +- Updated to 8.0 + +* Tue Oct 18 2011 Ville Skyttä <ville.skytta@iki.fi> - 7.0.1-5 +- Avoid %%post/un shell invocations  +  and dependencies (rhbz#736830). + +* Tue Oct 18 2011 Martin Stransky <stransky@redhat.com> 7.0.1-4 +- Updated cairo dependency (rhbz#742853) + +* Wed Oct 12 2011 Georgi Georgiev <chutzimir@gmail.com> - 7.0.1-1 +- Make it work on RHEL + +* Tue Oct 11 2011 Dan Horák <dan[at]danny.cz> 7.0.1-3 +- fix build on secondary arches + +* Fri Sep 30 2011 Remi Collet <RPMS@FamilleCollet.com> - 7.0.1-1 +- update to 7.0.1 + +* Tue Sep 27 2011 Remi Collet <RPMS@FamilleCollet.com> - 7.0-1 +- update to 7.0 + +* Tue Sep 06 2011 Remi Collet <RPMS@FamilleCollet.com> - 6.0.2-1 +- update to 6.0.2 + +* Thu Sep 01 2011 Remi Collet <RPMS@FamilleCollet.com> - 6.0.1-1 +- update to 6.0.1 + +* Wed Aug 17 2011 Remi Collet <RPMS@FamilleCollet.com> - 6.0-1 +- sync with rawhide, update to 6.0 + +* Tue Aug 16 2011 Martin Stransky <stransky@redhat.com> 6.0-2 +- Updated gtkmozembed patch + +* Tue Aug 16 2011 Martin Stransky <stransky@redhat.com> 6.0-1 +- 6.0 + +* Tue Aug 02 2011 Remi Collet <RPMS@FamilleCollet.com> - 6.0-0.1.beta4 +- update to 6.0 beta4 + +* Sun Jul 24 2011 Remi Collet <RPMS@FamilleCollet.com> - 6.0-0.1.beta3.build2 +- update to 6.0 beta3 build2 candidate + +* Sat Jul 16 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.0.1-1 +- Update to 5.0.1 + +* Thu Jun 30 2011 Martin Stransky <stransky@redhat.com> 5.0-5 +- Fixed build on powerpc(64) + +* Tue Jun 28 2011 Dan Horák <dan[at]danny.cz> - 5.0-4 +- fix build on secondary arches with IPC enabled + +* Fri Jun 24 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.0-1 +- sync with f15/rawhide +- update to 5.0 finale + +* Tue Jun 24 2011 Martin Stransky <stransky@redhat.com> 5.0-3 +- libCurl build fix + +* Wed Jun 22 2011 Martin Stransky <stransky@redhat.com> 5.0-2 +- Reverted mozbz#648156 - Remove gtkmozembed + +* Tue Jun 21 2011 Martin Stransky <stransky@redhat.com> 5.0-1 +- 5.0 + +* Thu Jun 16 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.0-0.6.build1 +- Update to 5.0 build 1 candidate + +* Wed Jun 15 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.0-0.4.beta7.build1 +- Update to 5.0 Beta 7 build 1 candidate + +* Tue Jun 14 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.0-0.2.beta6.build1 +- Update to 5.0 Beta 6 build 1 candidate + +* Sun Jun 12 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.0-0.1.b5.build1 +- use patch from spot +- Update to 5.0b5 build1 + +* Wed Jun  1 2011 Tom Callaway <spot@fedoraproject.org> - 5.0-0.1.b3 +- firefox5, xulrunner5 + +* Wed Jun  1 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.0-0.1.b3.build1 +- xulrunner5 + +* Sun Apr 17 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0.1-0.1.build1 +- Update to 2.0.1 build1 candidate + +* Sun Apr 10 2011 Christopher Aillon <caillon@redhat.com> - 2.0-3 +- Fix offline status issue on version upgrades +- Fix a hang with 20+ extensions + +* Mon Apr  4 2011 Christopher Aillon <caillon@redhat.com> - 2.0-2 +- Fix SIGABRT in X_CloseDevice: XI_BadDevice +- Updates for NetworkManager 0.9 +- Updates for GNOME 3 + +* Tue Mar 22 2011 Christopher Aillon <caillon@redhat.com> - 2.0-1 +- 2.0 + +* Tue Mar 22 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-1 +- Update to 2.0 + +* Sat Mar 19 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.26.rc2 +- Update to 2.0 RC2 + +* Fri Mar 18 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.28 +- Update to 2.0 RC2 + +* Thu Mar 17 2011 Jan Horak <jhorak@redhat.com> - 2.0-0.27 +- Disabled gnomevfs +- Enabled gio +- Build with system libvpx + +* Thu Mar 10 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.25.rc1 +- Update to 2.0 RC1 + +* Wed Mar  9 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.26 +- Update to 2.0 RC 1 + +* Sat Mar 05 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.24.rc1.build1 +- Update to 2.0 RC1 build1 candidate + +* Mon Feb 28 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.23.beta12 +- sync with rawhide +- update to 2.0 Beta12 + +* Sun Feb 27 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.25 +- Make Firefox's User-Agent string match upstream's + +* Sat Feb 26 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.24 +- Switch to using the omni chrome file format + +* Fri Feb 25 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.23 +- Update to 2.0 Beta 12 + +* Wed Feb 23 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.22.beta12.build1 +- sync with rawhide +- update to 2.0 Beta12 build1 candidate + +* Sun Feb 13 2011 Dennis Gilmore <dennis@ausil.us> 2.0-0.22 +- disable nanojit on sparc64 its not supported and doesnt get automatically switched off + +* Thu Feb 10 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.21 +- Also provide arch-agnostic versions of gecko virtual provides + +* Thu Feb 10 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.20 +- Introduce better versioning for our gecko virtual provides +- Now, the gecko-libs and gecko-devel virtual provides will be pinned +  to an individual Gecko release, so packages can do things like +    Requires: gecko-libs = 2.0-beta11 +    BuildRequires: gecko-libs = 2.0-beta11 +- Final releases will be pinned to e.g. 2.0-1 regardless of %%{release} +- Also, make sure those virtual provides are arch-specific + +* Wed Feb 09 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.21.beta11 +- Update to 2.0 Beta 11 + +* Tue Feb  8 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.19 +- Update to 2.0 Beta 11 + +* Fri Feb 04 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.20.beta11.build3 +- 2.0b11 build3 candidate (using firefox sources) + +* Thu Feb 03 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.19.beta11.build2 +- 2.0b11 build2 candidate (using firefox sources) + +* Tue Feb 01 2011 Remi Collet <RPMS@FamilleCollet.com> - 2.0-0.18.beta10 +- rename to xulrunner2 +- merge most changes from spot +- backport to remi repo + +* Wed Jan 26 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.18 +- Fix issue with popup windows showing in the wrong place + +* Tue Jan 25 2011 Christopher Aillon <caillon@redhat.com> - 2.0-0.17 +- Update to 2.0 Beta 10 + +* Fri Jan 21 2011 Dan Horák <dan[at]danny.cz> - 2.0-0.16.b9 +- updated the 64bit-big-endian patch (bmo#627664) +- added fix for build with --disable-methodjit (bmo#623277) + +* Fri Jan 14 2011 Christopher Aillon <caillon@redhat.com> 2.0-0.15.b9 +- Update to 2.0 Beta 9 + +* Thu Jan 11 2011 Tom Callaway <spot@fedoraproject.org> 2.0-0.14.b8 +- enable system sqlite (see https://fedorahosted.org/fpc/ticket/34) + +* Thu Dec 23 2010 Martin Stransky <stransky@redhat.com> 2.0-0.13.b8 +- reverted fix for rhbz#658471 + +* Wed Dec 22 2010 Dan Horák <dan[at]danny.cz> - 2.0-0.11.b8 +- updated the 64bit-big-endian patch + +* Tue Dec 21 2010 Martin Stransky <stransky@redhat.com> 2.0-0.11.b8 +- enable url-classifier and jar format for chrome files + +* Tue Dec 21 2010 Martin Stransky <stransky@redhat.com> 2.0-0.10.b8 +- Update to 2.0b8 + +* Mon Dec 20 2010 Martin Stransky <stransky@redhat.com> 2.0-0.9.b8 +- removed unused library path (rhbz#658471) + +* Fri Dec 17 2010 Dan Horák <dan[at]danny.cz> - 2.0-0.8.b7 +- disable the crash reporter on non-x86 arches +- add sparc64 as 64-bit arch + +* Tue Dec 14 2010 Jan Horak <jhorak@redhat.com> - 2.0-0.7.b7 +- Enable mozilla crash reporter + +* Thu Nov 11 2010 Dan Horák <dan[at]danny.cz> - 2.0-0.6.b7 +- The s390 patch is not needed anymore + +* Thu Nov 11 2010 Jan Horak <jhorak@redhat.com> - 2.0-0.5.b7 +- Update to 2.0b7 + +* Thu Nov 4 2010 Christopher Aillon <caillon@redhat.com> 2.0-0.4.b6 +- Ensure that WM_CLASS matches the desktop file + +* Wed Nov 3 2010 Martin Stransky <stransky@redhat.com> 2.0-0.3.b6 +- Libnotify rebuild (rhbz#649071) + +* Wed Sep 29 2010 jkeating - 2.0-0.2b6 +- Rebuilt for gcc bug 634757 + +* Tue Sep 21 2010 Martin Stransky <stransky@redhat.com> 2.0-0.1.b6 +- Update to 2.0b6 + +  | 
