From 1b118c49eeaed60571788022f462194e91924dc0 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 31 Jan 2012 17:53:51 +0100 Subject: Enigmail 1.3.5 for Thunderbird 10.0 --- enigmail-rdf.patch | 17 -- mozilla-670719.patch | 53 ------ mozilla-696393.patch | 133 --------------- mozilla-build-s390.patch | 11 -- thunderbird-enigmail.spec | 40 +++-- xulrunner-10.0-gcc47.patch | 25 +++ xulrunner-10.0-secondary-ipc.patch | 36 ++++ xulrunner-2.0-NetworkManager09.patch | 51 ------ xulrunner-2.0-network-link-service.patch | 274 ------------------------------- xulrunner-9.0-secondary-build-fix.patch | 11 ++ xulrunner-9.0-secondary-ipc.patch | 60 ------- 11 files changed, 98 insertions(+), 613 deletions(-) delete mode 100644 enigmail-rdf.patch delete mode 100644 mozilla-670719.patch delete mode 100644 mozilla-696393.patch delete mode 100644 mozilla-build-s390.patch create mode 100644 xulrunner-10.0-gcc47.patch create mode 100644 xulrunner-10.0-secondary-ipc.patch delete mode 100644 xulrunner-2.0-NetworkManager09.patch delete mode 100644 xulrunner-2.0-network-link-service.patch create mode 100644 xulrunner-9.0-secondary-build-fix.patch delete mode 100644 xulrunner-9.0-secondary-ipc.patch diff --git a/enigmail-rdf.patch b/enigmail-rdf.patch deleted file mode 100644 index f886158..0000000 --- a/enigmail-rdf.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- enigmail/package/install.rdf.orig 2011-08-13 18:08:54.000000000 +0200 -+++ enigmail/package/install.rdf 2011-08-17 14:53:43.454176196 +0200 -@@ -27,14 +27,6 @@ - 2.3.* - - -- - - - 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 -# 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(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(__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(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(that); -+ vtable_func method = vtable[methodIndex]; - PRUint64 overflow = invoke_count_words (paramCount, params); -+ PRUint64 *stack_space = reinterpret_cast(__builtin_alloca((overflow + 8 /* 4 64-bits gpr + 4 64-bits fpr */) * 8)); - PRUint64 result; - -- __asm__ __volatile__ -- ( -- "lgr 7,15\n\t" -- "aghi 7,-64\n\t" -- -- "lgr 3,%3\n\t" -- "sllg 3,3,3\n\t" -- "lcgr 3,3\n\t" -- "lg 2,0(15)\n\t" -- "la 15,0(3,7)\n\t" -- "stg 2,0(15)\n\t" -- -- "lgr 2,%1\n\t" -- "lgr 3,%2\n\t" -- "la 4,160(15)\n\t" -- "lgr 5,%3\n\t" -- "basr 14,%4\n\t" -+ invoke_copy_to_stack(paramCount, params, stack_space, overflow); - -- "lgr 2,%5\n\t" -- "ld 0,192(7)\n\t" -- "ld 2,200(7)\n\t" -- "ld 4,208(7)\n\t" -- "ld 6,216(7)\n\t" -- "lmg 3,6,160(7)\n\t" -- "basr 14,%6\n\t" -+ PRUint64 *d_gpr = stack_space + overflow; -+ double *d_fpr = reinterpret_cast(d_gpr + 4); - -- "la 15,64(7)\n\t" -- -- "lgr %0,2\n\t" -- : "=r" (result) -- : "r" ((PRUint64)paramCount), -- "r" (params), -- "r" (overflow), -- "a" (invoke_copy_to_stack), -- "a" (that), -- "a" (method) -- : "2", "3", "4", "5", "6", "7", "14", "cc", "memory", -- "%f0", "%f1", "%f2", "%f3", "%f4", "%f5", "%f6", "%f7" -- ); -- -- return result; -+ return method(that, d_gpr[0], d_gpr[1], d_gpr[2], d_gpr[3], d_fpr[0], d_fpr[1], d_fpr[2], d_fpr[3]); - } -- diff --git a/mozilla-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::result>::result _; - size_t log2 = JS_CEILING_LOG2W(x); - JS_ASSERT(log2 < tl::BitSize::result); - size_t result = size_t(1) << log2; diff --git a/thunderbird-enigmail.spec b/thunderbird-enigmail.spec index ce533e0..8180637 100644 --- a/thunderbird-enigmail.spec +++ b/thunderbird-enigmail.spec @@ -14,7 +14,8 @@ %define system_sqlite 1 %endif -%global thunver 9.0 +%global thunver 10.0 +%global thunmax 11.0 # The tarball is pretty inconsistent with directory structure. # Sometimes there is a top level directory. That goes here. @@ -32,7 +33,7 @@ Summary: Authentication and encryption extension for Mozilla Thunderbird Name: thunderbird-enigmail -Version: 1.3.4 +Version: 1.3.5 %if 0%{?prever:1} Release: 0.1.%{prever}%{?dist} %else @@ -65,12 +66,12 @@ Source101: enigmail-fixlang.php # 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 @@ -90,7 +91,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 @@ -135,7 +136,9 @@ BuildRequires: dos2unix, php-cli # because provided by xulrunner). AutoReq: 0 # All others deps already required by thunderbird -Requires: gnupg, thunderbird >= %{thunver} +Requires: gnupg +Requires: thunderbird >= %{thunver} +Requires: thunderbird < %{thunmax} # Nothing usefull provided AutoProv: 0 @@ -156,10 +159,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 @@ -175,7 +179,7 @@ cd .. %{__rm} -f .mozconfig cat %{SOURCE10} \ -%if 0%{?fedora} < 17 +%if 0%{?fedora} < 15 | grep -v system-nss \ %endif %if 0%{?fedora} < 14 && 0%{?rhel} < 6 @@ -194,6 +198,11 @@ echo "ac_add_options --disable-libjpeg-turbo" >> .mozconfig %{__cat} %{SOURCE11} >> .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 @@ -212,7 +221,7 @@ pushd mailnews/extensions/enigmail # All tarballs (as well as CVS) will *always* report as 1.4a1pre (or whatever # the next major version would be). This is because I create builds from trunk # and simply label the result as 1.3.x. -sed -i -e '/em:version/s/1.4a1pre/%{version}/' package/install.rdf +# sed -i -e '/em:version/s/1.4a1pre/%{version}/' package/install.rdf grep '%{version}' package/install.rdf || exit 1 # Apply Enigmail patch here popd @@ -295,6 +304,9 @@ cd %{tarballdir} #=============================================================================== %changelog +* Tue Jan 31 2012 Remi Collet 1.3.5-1 +- Enigmail 1.3.5 for Thunderbird 10.0 + * Wed Dec 21 2011 Remi Collet 1.3.4-1 - Enigmail 1.3.4 for Thunderbird 9.0 diff --git a/xulrunner-10.0-gcc47.patch b/xulrunner-10.0-gcc47.patch new file mode 100644 index 0000000..91a948a --- /dev/null +++ b/xulrunner-10.0-gcc47.patch @@ -0,0 +1,25 @@ +diff -up mozilla-beta/ipc/chromium/src/base/time_posix.cc.gcc47 mozilla-beta/ipc/chromium/src/base/time_posix.cc +--- mozilla-beta/ipc/chromium/src/base/time_posix.cc.gcc47 2012-01-24 03:00:00.000000000 -0500 ++++ mozilla-beta/ipc/chromium/src/base/time_posix.cc 2012-01-30 14:12:49.198472212 -0500 +@@ -14,6 +14,8 @@ + #include + #endif + ++#include ++ + #include + + #include "base/basictypes.h" +diff -up mozilla-beta/toolkit/crashreporter/client/Makefile.in.gcc47 mozilla-beta/toolkit/crashreporter/client/Makefile.in +--- mozilla-beta/toolkit/crashreporter/client/Makefile.in.gcc47 2012-01-30 14:41:14.475441039 -0500 ++++ mozilla-beta/toolkit/crashreporter/client/Makefile.in 2012-01-30 14:43:03.587646656 -0500 +@@ -69,6 +69,9 @@ CPPSRCS = \ + $(STDCXX_COMPAT) \ + $(NULL) + ++# Needed for moz_free ++LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc ++ + ifeq ($(OS_ARCH),WINNT) + CPPSRCS += crashreporter_win.cpp + LIBS += \ diff --git a/xulrunner-10.0-secondary-ipc.patch b/xulrunner-10.0-secondary-ipc.patch new file mode 100644 index 0000000..67ee863 --- /dev/null +++ b/xulrunner-10.0-secondary-ipc.patch @@ -0,0 +1,36 @@ +diff -up thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/base/data_pack.cc.secondary-ipc thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/base/data_pack.cc +--- thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/base/data_pack.cc.secondary-ipc 2012-01-29 15:44:23.000000000 +0100 ++++ thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/base/data_pack.cc 2012-01-31 10:45:57.784248018 +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( + bsearch(&resource_id, mmap_->data() + kHeaderLength, resource_count_, +diff -up thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/build/build_config.h.secondary-ipc thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/build/build_config.h +--- thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/build/build_config.h.secondary-ipc 2012-01-29 15:44:23.000000000 +0100 ++++ thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/build/build_config.h 2012-01-31 10:53:24.409935119 +0100 +@@ -65,10 +65,10 @@ + #elif defined(__ppc__) || defined(__powerpc__) + #define ARCH_CPU_PPC 1 + #define ARCH_CPU_32_BITS 1 +-#elif defined(__sparc64__) ++#elif defined(__sparc__) && !defined(__arch64) + #define ARCH_CPU_SPARC 1 + #define ARCH_CPU_64_BITS 1 +-#elif defined(__sparc__) ++#elif defined(__sparc__) && defined(__arch64) + #define ARCH_CPU_SPARC 1 + #define ARCH_CPU_32_BITS 1 + #elif defined(__mips__) +diff -up thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h.secondary-ipc thunderbird-10.0/comm-release/mozilla/ipc/chromium/src/chrome/common/ipc_message_utils.h 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 -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 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 mSocketTransportService; - nsCOMPtr mDNSService; - nsCOMPtr mProxyService; - nsCOMPtr mNetworkLinkService; -+ PRPackedBool mNetworkLinkServiceInitialized; - - // Cached protocol handlers - nsWeakPtr mWeakHandler[NS_N(gScheme)]; - - // cached categories - nsCategoryCache mChannelEventSinks; - nsCategoryCache mContentSniffers; - diff --git a/xulrunner-9.0-secondary-build-fix.patch b/xulrunner-9.0-secondary-build-fix.patch new file mode 100644 index 0000000..fc1c1db --- /dev/null +++ b/xulrunner-9.0-secondary-build-fix.patch @@ -0,0 +1,11 @@ +diff -up xulrunner-9.0.1/mozilla-release/js/src/jscompartment.cpp.orig xulrunner-9.0.1/mozilla-release/js/src/jscompartment.cpp +--- xulrunner-9.0.1/mozilla-release/js/src/jscompartment.cpp.orig 2012-01-04 11:06:39.000000000 +0100 ++++ xulrunner-9.0.1/mozilla-release/js/src/jscompartment.cpp 2012-01-04 11:06:43.000000000 +0100 +@@ -50,7 +50,6 @@ + #include "jswatchpoint.h" + #include "jswrapper.h" + #include "assembler/wtf/Platform.h" +-#include "assembler/jit/ExecutableAllocator.h" + #include "yarr/BumpPointerAllocator.h" + #include "methodjit/MethodJIT.h" + #include "methodjit/PolyIC.h" diff --git a/xulrunner-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( - 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 { - }; - #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 { -- cgit