Index: patches/nss-static-smime.patch |
diff --git a/patches/nss-static-smime.patch b/patches/nss-static-smime.patch |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a6ea9adc6f40f9cb151d0483f8f9fb54b38eabd4 |
--- /dev/null |
+++ b/patches/nss-static-smime.patch |
@@ -0,0 +1,37 @@ |
+diff --git a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c |
+index 30aefb8..ac814cd 100755 |
+--- a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c |
++++ b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c |
+@@ -201,7 +201,10 @@ certCallback(void *arg, SECItem **secitemCerts, int numcerts) |
+ |
+ typedef SECStatus (*pkix_DecodeCertsFunc)(char *certbuf, int certlen, |
+ CERTImportCertificateFunc f, void *arg); |
+- |
++#ifdef NSS_STATIC |
++extern SECStatus CERT_DecodeCertPackage(char* certbuf, int certlen, |
++ CERTImportCertificateFunc f, void* arg); |
++#endif |
+ |
+ struct pkix_DecodeFuncStr { |
+ pkix_DecodeCertsFunc func; /* function pointer to the |
+@@ -223,6 +226,11 @@ static const PRCallOnceType pkix_pristine; |
+ */ |
+ static PRStatus PR_CALLBACK pkix_getDecodeFunction(void) |
+ { |
++#ifdef NSS_STATIC |
++ pkix_decodeFunc.smimeLib = NULL; |
++ pkix_decodeFunc.func = CERT_DecodeCertPackage; |
++ return PR_SUCCESS; |
++#else |
+ pkix_decodeFunc.smimeLib = |
+ PR_LoadLibrary(SHLIB_PREFIX"smime3."SHLIB_SUFFIX); |
+ if (pkix_decodeFunc.smimeLib == NULL) { |
+@@ -235,7 +243,7 @@ static PRStatus PR_CALLBACK pkix_getDecodeFunction(void) |
+ return PR_FAILURE; |
+ } |
+ return PR_SUCCESS; |
+- |
++#endif |
+ } |
+ |
+ /* |