diff -r 214d22b0c31c -r f82a374a310d mozilla-shared-nss-db.patch --- 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 - Wolfgang Rosenauer -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 -+#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']