summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2012-01-31 17:21:41 +0100
committerRemi Collet <fedora@famillecollet.com>2012-01-31 17:21:41 +0100
commit3be039f60b8238b18a674953c8270e8d62e8eefa (patch)
tree6a85a4a78798accae144d9a62a0990aac7aa7a0a
parent63d120ef16b6d72993a4dace786c89bd9f45d4e2 (diff)
thunderbird 10.0
-rw-r--r--mozilla-670719.patch53
-rw-r--r--mozilla-696393.patch133
-rw-r--r--mozilla-build-s390.patch11
-rw-r--r--mozilla-missing-cflags.patch9
-rw-r--r--remove-static.patch11
-rw-r--r--thunderbird.spec45
-rw-r--r--xulrunner-2.0-NetworkManager09.patch51
-rw-r--r--xulrunner-2.0-network-link-service.patch274
-rw-r--r--xulrunner-9.0-secondary-ipc.patch60
9 files changed, 27 insertions, 620 deletions
diff --git a/mozilla-670719.patch b/mozilla-670719.patch
deleted file mode 100644
index afae907..0000000
--- a/mozilla-670719.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-# HG changeset patch
-# User Mike Hommey <mh+mozilla@glandium.org>
-# Date 1313846520 -7200
-# Node ID fdc3b63938f5a76d99c1e2bb12fd448465debc94
-# Parent 07a5a618ebe3f67b23100ceb1b51e92bb79be0cd
-Bug 670719 - Only add -DENABLE_JIT=1 to CXXFLAGS if any of trace/method/yarr jit is enabled.
-
-diff --git a/js/src/Makefile.in b/js/src/Makefile.in
---- a/js/src/Makefile.in
-+++ b/js/src/Makefile.in
-@@ -433,16 +433,19 @@ CPPSRCS += \
- YarrPattern.cpp \
- YarrSyntaxChecker.cpp \
- $(NULL)
- else
-
- ###############################################
- # BEGIN include sources for the Nitro assembler
- #
-+
-+ENABLE_YARR_JIT = 1
-+
- VPATH += $(srcdir)/assembler \
- $(srcdir)/assembler/wtf \
- $(srcdir)/assembler/jit \
- $(srcdir)/assembler/assembler \
- $(srcdir)/methodjit \
- $(srcdir)/yarr \
- $(NONE)
-
-@@ -1070,17 +1073,21 @@ endif
-
- ###############################################
- # BEGIN kludges for the Nitro assembler
- #
-
- # 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 -DENABLE_JIT=1
-+CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1
-+
-+ifneq (,$(ENABLE_YARR_JIT)$(ENABLE_TRACEJIT)$(ENABLE_METHODJIT))
-+CXXFLAGS += -DENABLE_JIT=1
-+endif
-
- INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr
-
- ifdef ENABLE_METHODJIT
- # Build a standalone test program that exercises the assembler
- # sources a bit.
- TESTMAIN_OBJS = \
- Assertions.$(OBJ_SUFFIX) \
diff --git a/mozilla-696393.patch b/mozilla-696393.patch
deleted file mode 100644
index 8859d97..0000000
--- a/mozilla-696393.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-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-s390.patch b/mozilla-build-s390.patch
deleted file mode 100644
index 2bfe1d5..0000000
--- a/mozilla-build-s390.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up mozilla-1.9.2/js/src/jstl.h.s390 mozilla-1.9.2/js/src/jstl.h
---- mozilla-1.9.2/js/src/jstl.h.s390 2011-02-18 19:33:24.000000000 +0100
-+++ mozilla-1.9.2/js/src/jstl.h 2011-03-07 08:41:29.000000000 +0100
-@@ -195,7 +195,6 @@ class ReentrancyGuard
- JS_ALWAYS_INLINE size_t
- RoundUpPow2(size_t x)
- {
-- typedef tl::StaticAssert<tl::IsSameType<size_t,JSUword>::result>::result _;
- size_t log2 = JS_CEILING_LOG2W(x);
- JS_ASSERT(log2 < tl::BitSize<size_t>::result);
- size_t result = size_t(1) << log2;
diff --git a/mozilla-missing-cflags.patch b/mozilla-missing-cflags.patch
deleted file mode 100644
index fcef959..0000000
--- a/mozilla-missing-cflags.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff -up comm-1.9.2/mozilla/toolkit/system/gnome/Makefile.in.mozcflags comm-1.9.2/mozilla/toolkit/system/gnome/Makefile.in
---- comm-1.9.2/mozilla/toolkit/system/gnome/Makefile.in.mozcflags 2010-07-26 12:52:38.000000000 +0200
-+++ comm-1.9.2/mozilla/toolkit/system/gnome/Makefile.in 2010-07-26 12:39:34.000000000 +0200
-@@ -93,4 +93,5 @@ CXXFLAGS += \
- $(MOZ_GNOMEVFS_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(MOZ_LIBNOTIFY_CFLAGS) \
-+ $(MOZ_GTK2_CFLAGS) \
- $(NULL)
diff --git a/remove-static.patch b/remove-static.patch
deleted file mode 100644
index 9cc94fb..0000000
--- a/remove-static.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-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
---- comm-1.9.2/mozilla/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/Makefile.in.static 2010-06-23 19:47:11.000000000 +0200
-+++ comm-1.9.2/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/thunderbird.spec b/thunderbird.spec
index 56a595b..ca1ec55 100644
--- a/thunderbird.spec
+++ b/thunderbird.spec
@@ -1,5 +1,3 @@
-### TODO use system nss when 3.13.1 pushed to stable (f >= 15)
-
%define nspr_version 4.8.8
%define nss_version 3.13.1
%define cairo_version 1.10.0
@@ -31,7 +29,7 @@
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
-Version: 9.0
+Version: 10.0
Release: 1%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
@@ -43,7 +41,7 @@ Group: Applications/Internet
%endif
Source0: %{tarball}
%if %{build_langpacks}
-Source1: thunderbird-langpacks-%{version}-20111221.tar.bz2
+Source1: thunderbird-langpacks-%{version}-20120131.tar.bz2
%endif
Source10: thunderbird-mozconfig
@@ -57,12 +55,12 @@ Source100: find-external-requires
# Mozilla (XULRunner) patches
Patch0: thunderbird-install-dir.patch
Patch7: crashreporter-remove-static.patch
-Patch8: xulrunner-9.0-secondary-ipc.patch
-Patch10: xulrunner-2.0-network-link-service.patch
-Patch11: xulrunner-2.0-NetworkManager09.patch
-Patch12: mozilla-696393.patch
+Patch8: xulrunner-10.0-secondary-ipc.patch
+# # cherry-picked from 13afcd4c097c
+Patch13: xulrunner-9.0-secondary-build-fix.patch
# Build patches
+Patch100: xulrunner-10.0-gcc47.patch
# Linux specific
Patch200: thunderbird-8.0-enable-addons.patch
@@ -79,7 +77,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if 0%{?fedora} >= 14 || 0%{?rhel} >= 6
BuildRequires: nspr-devel >= %{nspr_version}
%endif
-%if 0%{?fedora} >= 17
+%if 0%{?fedora} >= 15
BuildRequires: nss-devel >= %{nss_version}
%endif
%if 0%{?fedora} >= 15
@@ -120,7 +118,7 @@ Requires: mozilla-filesystem
%if 0%{?fedora} >= 14 || 0%{?rhel} >= 6
Requires: nspr >= %{nspr_version}
%endif
-%if 0%{?fedora} >= 17
+%if 0%{?fedora} >= 15
Requires: nss >= %{nss_version}
%endif
%if %{?system_sqlite}
@@ -171,10 +169,11 @@ cd %{tarballdir}
# Mozilla (XULRunner) patches
cd mozilla
%patch7 -p2 -b .static
-%patch8 -p2 -b .secondary-ipc
-%patch10 -p1 -b .link-service
-%patch11 -p1 -b .NetworkManager09
-%patch12 -p2 -b .696393
+%patch8 -p3 -b .secondary-ipc
+%patch13 -p2 -b .secondary-build
+%if 0%{?fedora} >= 17
+%patch100 -p1 -b .gcc47
+%endif
cd ..
%patch200 -p1 -b .addons
@@ -190,7 +189,7 @@ cd ..
%{__rm} -f .mozconfig
#{__cp} %{SOURCE10} .mozconfig
cat %{SOURCE10} \
-%if 0%{?fedora} < 17
+%if 0%{?fedora} < 15
| grep -v system-nss \
%endif
%if 0%{?fedora} < 14 && 0%{?rhel} < 6
@@ -212,6 +211,11 @@ echo "ac_add_options --disable-libjpeg-turbo" >> .mozconfig
%{__cat} %{SOURCE13} >> .mozconfig
%endif
+# s390(x) fails to start with jemalloc enabled
+%ifarch s390 s390x
+echo "ac_add_options --disable-jemalloc" >> .mozconfig
+%endif
+
%if %{?system_sqlite}
echo "ac_add_options --enable-system-sqlite" >> .mozconfig
%else
@@ -401,7 +405,7 @@ fi
%{mozappdir}/components/binary.manifest
%{mozappdir}/components/libdbusservice.so
%{mozappdir}/components/libmozgnome.so
-%{mozappdir}/omni.jar
+%{mozappdir}/omni.ja
%{mozappdir}/plugin-container
%{mozappdir}/defaults
%{mozappdir}/dictionaries
@@ -427,7 +431,6 @@ fi
%{_datadir}/icons/hicolor/256x256/apps/thunderbird.png
%{_datadir}/icons/hicolor/32x32/apps/thunderbird.png
%{_datadir}/icons/hicolor/48x48/apps/thunderbird.png
-%{mozappdir}/hyphenation
%if %{enable_mozilla_crashreporter}
%{mozappdir}/crashreporter
%{mozappdir}/crashreporter.ini
@@ -437,11 +440,17 @@ fi
%exclude %{_includedir}/%{name}-%{version}
%exclude %{_libdir}/%{name}-devel-%{version}
%{mozappdir}/chrome.manifest
-%{mozappdir}/distribution/extensions
+%{mozappdir}/searchplugins
#===============================================================================
%changelog
+* Tue Jan 31 2012 Remi Collet <rpms@famillecollet.com> 10.0-1
+- Thunderbird 10.0, sync with rawhide
+
+* Tue Jan 31 2012 Jan Horak <jhorak@redhat.com> - 10.0-1
+- Update to 10.0
+
* Wed Dec 21 2011 Remi Collet <rpms@famillecollet.com> 9.0-1
- Thunderbird 9.0, sync with rawhide
diff --git a/xulrunner-2.0-NetworkManager09.patch b/xulrunner-2.0-NetworkManager09.patch
deleted file mode 100644
index 317a1b4..0000000
--- a/xulrunner-2.0-NetworkManager09.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-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-network-link-service.patch b/xulrunner-2.0-network-link-service.patch
deleted file mode 100644
index b3243a9..0000000
--- a/xulrunner-2.0-network-link-service.patch
+++ /dev/null
@@ -1,274 +0,0 @@
-# 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-9.0-secondary-ipc.patch b/xulrunner-9.0-secondary-ipc.patch
deleted file mode 100644
index 40ecfd5..0000000
--- a/xulrunner-9.0-secondary-ipc.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-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> {