--- 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']