firefox-sync-system-nss.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Wed, 25 Aug 2010 15:08:38 +0200
changeset 141 d493b01be9e2
parent 139 765ad9b6362d
permissions -rw-r--r--
Little bit of suse_version cleanup
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
139
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
# HG changeset patch
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# Parent 1e4f0a7028202f758195452878b0299a587a4b4e
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
Bug 583209 - Weave fails to load if system libnss3.so is in use (OpenSolaris, Linux dists)
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
https://bugzilla.mozilla.org/show_bug.cgi?id=583209
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
diff --git a/services/crypto/WeaveCrypto.js b/services/crypto/WeaveCrypto.js
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
--- a/services/crypto/WeaveCrypto.js
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
+++ b/services/crypto/WeaveCrypto.js
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
@@ -102,44 +102,23 @@ WeaveCrypto.prototype = {
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
     initNSS : function() {
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
         // We use NSS for the crypto ops, which needs to be initialized before
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
         // use. By convention, PSM is required to be the module that
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
         // initializes NSS. So, make sure PSM is initialized in order to
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
         // implicitly initialize NSS.
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
         Cc["@mozilla.org/psm;1"].getService(Ci.nsISupports);
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
 
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
         // Open the NSS library.
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
-        let nssfile = Services.dirsvc.get("GreD", Ci.nsILocalFile);
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
         let os = Services.appinfo.OS;
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
-        switch (os) {
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
-          case "WINNT":
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
-          case "WINMO":
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
-          case "WINCE":
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
-            nssfile.append("nss3.dll");
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
-            break;
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
-          case "Darwin":
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
-            nssfile.append("libnss3.dylib");
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
-            break;
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
-          case "Linux":
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
-          case "SunOS":
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
-          case "WebOS": // Palm Pre
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
-            nssfile.append("libnss3.so");
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
-            break;
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
-          case "Android":
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
-            // Android uses a $GREDIR/lib/ subdir.
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
-            nssfile.append("lib");
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
-            nssfile.append("libnss3.so");
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
-            break;
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
-          default:
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
-            throw Components.Exception("unsupported platform: " + os, Cr.NS_ERROR_UNEXPECTED);
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
-        }
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
-        this.log("Using NSS library " + nssfile.path);
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
+        let path = ctypes.libraryName("nss3");
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
+
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
+        this.log("Using NSS library " + path);
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
 
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
         // XXX really want to be able to pass specific dlopen flags here.
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
-        let nsslib = ctypes.open(nssfile.path);
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
+        let nsslib = ctypes.open(path);
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
 
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
         this.log("Initializing NSS types and function declarations...");
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
 
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
         this.nss = {};
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
         this.nss_t = {};
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
 
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
         // nsprpub/pr/include/prtypes.h#435
765ad9b6362d fix weave (bmo#583209)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
         // typedef PRIntn PRBool; --> int