mozilla-firefox-sync.patch
changeset 206 80e6366ea8ce
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-firefox-sync.patch	Wed Dec 15 08:51:12 2010 +0100
@@ -0,0 +1,323 @@
+# HG changeset patch
+# User Mike Hommey
+# Parent 202570dfd2a5defb5ae390030ee81b46cb60c3fd
+Bug 618195 - Build services-crypto (or just nsSyncJPAKE) unconditionally as part of tier_platform
+(mozilla + firefox part)
+
+diff --git a/browser/build.mk b/browser/build.mk
+--- a/browser/build.mk
++++ b/browser/build.mk
+@@ -45,17 +45,17 @@ ifdef MOZ_EXTENSIONS
+ tier_app_dirs += extensions
+ endif
+ 
+ tier_app_dirs += $(MOZ_BRANDING_DIRECTORY)
+ 
+ tier_app_dirs += toolkit/components/console/hudservice
+ 
+ ifdef MOZ_SERVICES_SYNC
+-tier_app_dirs += services/sync
++tier_app_dirs += services
+ endif
+ 
+ tier_app_dirs += browser
+ # Never add other tier_app_dirs after browser. They won't get packaged
+ # properly on mac.
+ 
+ installer:
+ 	@$(MAKE) -C browser/installer installer
+diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
+--- a/browser/installer/package-manifest.in
++++ b/browser/installer/package-manifest.in
+@@ -225,16 +225,17 @@
+ @BINPATH@/components/proxyObject.xpt
+ @BINPATH@/components/rdf.xpt
+ @BINPATH@/components/satchel.xpt
+ @BINPATH@/components/saxparser.xpt
+ @BINPATH@/components/sessionstore.xpt
+ #ifdef MOZ_SERVICES_SYNC
+ @BINPATH@/components/services-crypto.xpt
+ #endif
++@BINPATH@/components/services-crypto-component.xpt
+ @BINPATH@/components/shellservice.xpt
+ @BINPATH@/components/shistory.xpt
+ @BINPATH@/components/spellchecker.xpt
+ @BINPATH@/components/storage.xpt
+ @BINPATH@/components/toolkitprofile.xpt
+ #ifdef MOZ_ENABLE_XREMOTE
+ @BINPATH@/components/toolkitremote.xpt
+ #endif
+diff --git a/services/crypto/Makefile.in b/services/crypto/Makefile.in
+--- a/services/crypto/Makefile.in
++++ b/services/crypto/Makefile.in
+@@ -43,37 +43,18 @@ VPATH     = @srcdir@
+ 
+ include $(DEPTH)/config/autoconf.mk
+ 
+ MODULE = services-crypto
+ XPIDL_MODULE = services-crypto
+ 
+ XPIDLSRCS = \
+   IWeaveCrypto.idl \
+-  nsISyncJPAKE.idl \
+-  $(NULL)
+-
+-LIBRARY_NAME   = services-crypto
+-EXPORT_LIBRARY = 1
+-IS_COMPONENT   = 1
+-MODULE_NAME    = nsServicesCryptoModule
+-LIBXUL_LIBRARY = 1
+-FORCE_USE_PIC  = 1
+-MOZILLA_INTERNAL_API = 1
+-
+-CPPSRCS = \
+-  nsSyncJPAKE.cpp \
+   $(NULL)
+ 
+ libs::
+ 	$(PYTHON) $(topsrcdir)/config/nsinstall.py $(srcdir)/modules/* $(FINAL_TARGET)/modules/services-crypto
+ 
+ ifdef ENABLE_TESTS
+ DIRS += tests
+ endif
+ 
+ include $(topsrcdir)/config/rules.mk
+-
+-EXTRA_DSO_LDOPTS += \
+-	$(MOZ_COMPONENT_LIBS) \
+-    $(NSPR_LIBS) \
+-    $(NSS_LIBS) \
+-    $(NULL)
+diff --git a/services/crypto/component/Makefile.in b/services/crypto/component/Makefile.in
+new file mode 100644
+--- /dev/null
++++ b/services/crypto/component/Makefile.in
+@@ -0,0 +1,75 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# The contents of this file are subject to the Mozilla 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/MPL/
++#
++# 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
++# the Mozilla Foundation.
++# Portions created by the Initial Developer are Copyright (C) 2010
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++# Philipp von Weitershausen <philipp@weitershausen.de>
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either of the GNU General Public License Version 2 or later (the "GPL"),
++# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++DEPTH     = ../../..
++topsrcdir = @top_srcdir@
++srcdir    = @srcdir@
++VPATH     = @srcdir@
++
++include $(DEPTH)/config/autoconf.mk
++
++MODULE = services-crypto
++XPIDL_MODULE = services-crypto-component
++
++XPIDLSRCS = \
++  nsISyncJPAKE.idl \
++  $(NULL)
++
++LIBRARY_NAME   = services-crypto
++EXPORT_LIBRARY = 1
++IS_COMPONENT   = 1
++MODULE_NAME    = nsServicesCryptoModule
++LIBXUL_LIBRARY = 1
++FORCE_USE_PIC  = 1
++MOZILLA_INTERNAL_API = 1
++
++CPPSRCS = \
++  nsSyncJPAKE.cpp \
++  $(NULL)
++
++ifdef ENABLE_TESTS
++DIRS += tests
++endif
++
++include $(topsrcdir)/config/rules.mk
++
++EXTRA_DSO_LDOPTS += \
++    $(MOZ_COMPONENT_LIBS) \
++    $(NSPR_LIBS) \
++    $(NSS_LIBS) \
++    $(NULL)
+diff --git a/services/crypto/nsISyncJPAKE.idl b/services/crypto/component/nsISyncJPAKE.idl
+rename from services/crypto/nsISyncJPAKE.idl
+rename to services/crypto/component/nsISyncJPAKE.idl
+diff --git a/services/crypto/nsSyncJPAKE.cpp b/services/crypto/component/nsSyncJPAKE.cpp
+rename from services/crypto/nsSyncJPAKE.cpp
+rename to services/crypto/component/nsSyncJPAKE.cpp
+diff --git a/services/crypto/nsSyncJPAKE.h b/services/crypto/component/nsSyncJPAKE.h
+rename from services/crypto/nsSyncJPAKE.h
+rename to services/crypto/component/nsSyncJPAKE.h
+diff --git a/services/crypto/component/tests/Makefile.in b/services/crypto/component/tests/Makefile.in
+new file mode 100644
+--- /dev/null
++++ b/services/crypto/component/tests/Makefile.in
+@@ -0,0 +1,50 @@
++#
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# The contents of this file are subject to the Mozilla 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/MPL/
++#
++# 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
++# the Mozilla Foundation.
++# Portions created by the Initial Developer are Copyright (C) 2010
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++# Philipp von Weitershausen <philipp@weitershausen.de>
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either of the GNU General Public License Version 2 or later (the "GPL"),
++# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++DEPTH     = ../../../..
++topsrcdir = @top_srcdir@
++srcdir    = @srcdir@
++VPATH     = @srcdir@
++relativesrcdir = services/crypto/components/tests
++
++include $(DEPTH)/config/autoconf.mk
++
++MODULE = test_services_crypto
++XPCSHELL_TESTS = unit
++
++include $(topsrcdir)/config/rules.mk
+diff --git a/services/crypto/tests/unit/test_jpake.js b/services/crypto/component/tests/unit/test_jpake.js
+rename from services/crypto/tests/unit/test_jpake.js
+rename to services/crypto/component/tests/unit/test_jpake.js
+--- a/services/crypto/tests/unit/test_jpake.js
++++ b/services/crypto/component/tests/unit/test_jpake.js
+@@ -1,8 +1,11 @@
++const Cc = Components.classes;
++const Ci = Components.interfaces;
++
+ // Ensure PSM is initialized.
+ Cc["@mozilla.org/psm;1"].getService(Ci.nsISupports);
+ 
+ function do_check_throws(func) {
+   let have_error = false;
+   try {
+     func();
+   } catch(ex) {
+diff --git a/toolkit/library/libxul-config.mk b/toolkit/library/libxul-config.mk
+--- a/toolkit/library/libxul-config.mk
++++ b/toolkit/library/libxul-config.mk
+@@ -345,19 +345,17 @@ DEFINES += -DMOZ_SPELLCHECK
+ COMPONENT_LIBS += spellchecker
+ endif
+ 
+ ifdef MOZ_ZIPWRITER
+ DEFINES += -DMOZ_ZIPWRITER
+ COMPONENT_LIBS += zipwriter
+ endif
+ 
+-ifdef MOZ_SERVICES_SYNC
+ COMPONENT_LIBS += services-crypto
+-endif
+ 
+ ifdef MOZ_DEBUG
+ ifdef ENABLE_TESTS
+ COMPONENT_LIBS += gkdebug
+ endif
+ endif
+ 
+ ifdef MOZ_APP_COMPONENT_LIBS
+diff --git a/toolkit/library/nsStaticXULComponents.cpp b/toolkit/library/nsStaticXULComponents.cpp
+--- a/toolkit/library/nsStaticXULComponents.cpp
++++ b/toolkit/library/nsStaticXULComponents.cpp
+@@ -228,21 +228,17 @@
+ #endif
+ 
+ #if defined(BUILD_CTYPES)
+ #define JSCTYPES_MODULE MODULE(jsctypes)
+ #else
+ #define JSCTYPES_MODULE
+ #endif
+ 
+-#ifdef MOZ_SERVICES_SYNC
+ #define SERVICES_CRYPTO_MODULE MODULE(nsServicesCryptoModule)
+-#else
+-#define SERVICES_CRYPTO_MODULE
+-#endif
+ 
+ #if defined(MOZ_APP_COMPONENT_INCLUDE)
+ #include MOZ_APP_COMPONENT_INCLUDE
+ #else
+ #define APP_COMPONENT_MODULES
+ #endif
+ 
+ #define XUL_MODULES                          \
+diff --git a/toolkit/toolkit-tiers.mk b/toolkit/toolkit-tiers.mk
+--- a/toolkit/toolkit-tiers.mk
++++ b/toolkit/toolkit-tiers.mk
+@@ -230,19 +230,17 @@ tier_platform_dirs	+= security/manager
+ else
+ tier_platform_dirs	+= security/manager/boot/public security/manager/ssl/public
+ endif
+ 
+ ifdef MOZ_PREF_EXTENSIONS
+ tier_platform_dirs += extensions/pref
+ endif
+ 
+-ifdef MOZ_SERVICES_SYNC
+-tier_platform_dirs += services/crypto
+-endif
++tier_platform_dirs += services/crypto/component
+ 
+ # JavaXPCOM JNI code is compiled into libXUL
+ ifdef MOZ_JAVAXPCOM
+ tier_platform_dirs += extensions/java/xpcom/src
+ endif
+ 
+ ifndef BUILD_STATIC_LIBS
+ ifneq (,$(MOZ_ENABLE_GTK2))