mozilla-shared-nss-db.patch
changeset 979 f82a374a310d
parent 978 214d22b0c31c
child 981 593707d5c013
--- a/mozilla-shared-nss-db.patch	Sun Jun 04 09:56:53 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-From: Hans Petter Jansson <hpj@copyleft.no>
-      Wolfgang Rosenauer <wr@rosenauer.org>
-Subject: use libnsssharedhelper if available at compile time
-         (can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
-References:
-
-diff --git a/old-configure.in b/old-configure.in
---- a/old-configure.in
-+++ b/old-configure.in
-@@ -5358,16 +5358,31 @@ esac
- 
- AC_SUBST(MOZ_TREE_CAIRO)
- AC_SUBST_LIST(MOZ_CAIRO_CFLAGS)
- AC_SUBST_LIST(MOZ_CAIRO_LIBS)
- AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
- AC_SUBST(MOZ_TREE_PIXMAN)
- 
- dnl ========================================================
-+dnl Check for nss-shared-helper
-+dnl ========================================================
-+
-+  PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
-+    [MOZ_ENABLE_NSSHELPER=1],
-+    [MOZ_ENABLE_NSSHELPER=])
-+
-+if test "$MOZ_ENABLE_NSSHELPER"; then
-+  AC_DEFINE(MOZ_ENABLE_NSSHELPER)
-+fi
-+AC_SUBST(MOZ_ENABLE_NSSHELPER)
-+AC_SUBST_LIST(NSSHELPER_CFLAGS)
-+AC_SUBST_LIST(NSSHELPER_LIBS)
-+
-+dnl ========================================================
- dnl disable xul
- dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(xul,
- [  --disable-xul           Disable XUL],
-     MOZ_XUL= )
- if test "$MOZ_XUL"; then
-   AC_DEFINE(MOZ_XUL)
- else
-diff --git a/security/manager/ssl/moz.build b/security/manager/ssl/moz.build
---- a/security/manager/ssl/moz.build
-+++ b/security/manager/ssl/moz.build
-@@ -160,16 +160,19 @@ if CONFIG['MOZ_XUL']:
-     ]
- 
- UNIFIED_SOURCES += [
-     'md4.c',
- ]
- 
- FINAL_LIBRARY = 'xul'
- 
-+CXXFLAGS += sorted(CONFIG['NSSHELPER_CFLAGS'])
-+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
-+
- LOCAL_INCLUDES += [
-     '/dom/base',
-     '/dom/crypto',
-     '/security/certverifier',
-     '/security/pkix/include',
- ]
- 
- LOCAL_INCLUDES += [
-diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp
---- a/security/manager/ssl/nsNSSComponent.cpp
-+++ b/security/manager/ssl/nsNSSComponent.cpp
-@@ -1,14 +1,21 @@
- /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-  *
-  * This Source Code Form is subject to the terms of the Mozilla Public
-  * License, v. 2.0. If a copy of the MPL was not distributed with this
-  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- 
-+#ifdef MOZ_ENABLE_NSSHELPER
-+#pragma GCC visibility push(default)
-+#include <nss-shared-helper.h>
-+#pragma GCC visibility pop
-+#include "prenv.h"
-+#endif
-+
- #include "nsNSSComponent.h"
- 
- #include "ExtendedValidation.h"
- #include "NSSCertDBTrustDomain.h"
- #include "ScopedNSSTypes.h"
- #include "SharedSSLState.h"
- #include "cert.h"
- #include "certdb.h"
-@@ -1702,17 +1709,31 @@ nsNSSComponent::InitializeNSS()
-       return rv;
-     }
-   }
-   MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("inSafeMode: %u\n", inSafeMode));
- 
-   if (!nocertdb && !profileStr.IsEmpty()) {
-     // First try to initialize the NSS DB in read/write mode.
-     // Only load PKCS11 modules if we're not in safe mode.
-+#ifdef MOZ_ENABLE_NSSHELPER
-+    if (PR_GetEnv("MOZ_XRE_NO_NSSHELPER")) {
-+      init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
-+    } else {
-+      uint32_t flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE;
-+      init_rv = ::nsshelp_open_db ("Firefox", profileStr.get(), flags);
-+
-+      if (init_rv != SECSuccess) {
-+        MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
-+        init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
-+      }
-+    }
-+#else
-     init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), false, !inSafeMode);
-+#endif
-     // If that fails, attempt read-only mode.
-     if (init_rv != SECSuccess) {
-       MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init NSS r/w in %s\n", profileStr.get()));
-       init_rv = ::mozilla::psm::InitializeNSS(profileStr.get(), true, !inSafeMode);
-     }
-     if (init_rv != SECSuccess) {
-       MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("could not init in r/o either\n"));
-     }
-diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
---- a/toolkit/library/moz.build
-+++ b/toolkit/library/moz.build
-@@ -220,16 +220,18 @@ OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
- OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
- 
- if CONFIG['SERVO_TARGET_DIR']:
-     if CONFIG['_MSC_VER']:
-         OS_LIBS += ['%s/geckoservo' % CONFIG['SERVO_TARGET_DIR']]
-     else:
-         OS_LIBS += ['-L%s' % CONFIG['SERVO_TARGET_DIR'], '-lgeckoservo']
- 
-+OS_LIBS += sorted(CONFIG['NSSHELPER_LIBS'])
-+
- if CONFIG['MOZ_SYSTEM_JPEG']:
-     OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
- 
- if CONFIG['MOZ_SYSTEM_PNG']:
-     OS_LIBS += CONFIG['MOZ_PNG_LIBS']
- 
- if CONFIG['MOZ_SYSTEM_HUNSPELL']:
-     OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']