mozilla-shared-nss-db.patch
changeset 125 bfef1af1ee28
parent 1 045edd78eceb
child 164 995e803e8198
equal deleted inserted replaced
124:62d7d9d39e4c 125:bfef1af1ee28
     5 References:
     5 References:
     6 
     6 
     7 diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
     7 diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
     8 --- a/config/autoconf.mk.in
     8 --- a/config/autoconf.mk.in
     9 +++ b/config/autoconf.mk.in
     9 +++ b/config/autoconf.mk.in
    10 @@ -548,16 +548,20 @@ MOZ_ENABLE_LIBNOTIFY	= @MOZ_ENABLE_LIBNO
    10 @@ -560,16 +560,20 @@ MOZ_ALSA_LIBS           = @MOZ_ALSA_LIBS
    11  
    11  
    12  GLIB_CFLAGS	= @GLIB_CFLAGS@
    12  GLIB_CFLAGS	= @GLIB_CFLAGS@
    13  GLIB_LIBS	= @GLIB_LIBS@
    13  GLIB_LIBS	= @GLIB_LIBS@
    14  GLIB_GMODULE_LIBS	= @GLIB_GMODULE_LIBS@
    14  GLIB_GMODULE_LIBS	= @GLIB_GMODULE_LIBS@
    15  LIBIDL_CFLAGS = @LIBIDL_CFLAGS@
    15  LIBIDL_CFLAGS = @LIBIDL_CFLAGS@
    23  MOZ_NATIVE_MAKEDEPEND	= @SYSTEM_MAKEDEPEND@
    23  MOZ_NATIVE_MAKEDEPEND	= @SYSTEM_MAKEDEPEND@
    24  
    24  
    25  MOZ_AUTO_DEPS	= @MOZ_AUTO_DEPS@
    25  MOZ_AUTO_DEPS	= @MOZ_AUTO_DEPS@
    26  COMPILER_DEPEND = @COMPILER_DEPEND@
    26  COMPILER_DEPEND = @COMPILER_DEPEND@
    27  MDDEPDIR        := @MDDEPDIR@
    27  MDDEPDIR        := @MDDEPDIR@
    28  
    28  CC_WRAPPER = @CC_WRAPPER@
    29  MOZ_DEMANGLE_SYMBOLS = @MOZ_DEMANGLE_SYMBOLS@
    29  CXX_WRAPPER = @CXX_WRAPPER@
    30  
    30  
    31 diff --git a/configure.in b/configure.in
    31 diff --git a/configure.in b/configure.in
    32 --- a/configure.in
    32 --- a/configure.in
    33 +++ b/configure.in
    33 +++ b/configure.in
    34 @@ -7756,16 +7756,31 @@ AC_SUBST(MOZ_CAIRO_LIBS)
    34 @@ -8452,16 +8452,31 @@ AC_SUBST(QCMS_LIBS)
    35  
    35  
    36  dnl qcms
       
    37  dnl ========================================================
    36  dnl ========================================================
    38  
    37  dnl HarfBuzz
    39  QCMS_LIBS='$(DEPTH)/gfx/qcms/$(LIB_PREFIX)mozqcms.$(LIB_SUFFIX)'
    38  dnl ========================================================
    40  AC_SUBST(QCMS_LIBS)
    39  MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
       
    40  AC_SUBST(MOZ_HARFBUZZ_LIBS)
    41  
    41  
    42  dnl ========================================================
    42  dnl ========================================================
    43 +dnl Check for nss-shared-helper
    43 +dnl Check for nss-shared-helper
    44 +dnl ========================================================
    44 +dnl ========================================================
    45 +
    45 +
    46 +  PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper, 
    46 +  PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper, 
    47 +   [MOZ_ENABLE_NSSHELPER=1],
    47 +    [MOZ_ENABLE_NSSHELPER=1],
    48 +   [MOZ_ENABLE_NSSHELPER=])
    48 +    [MOZ_ENABLE_NSSHELPER=])
    49 +
    49 +
    50 +if test "$MOZ_ENABLE_NSSHELPER"; then
    50 +if test "$MOZ_ENABLE_NSSHELPER"; then
    51 +  AC_DEFINE(MOZ_ENABLE_NSSHELPER)
    51 +  AC_DEFINE(MOZ_ENABLE_NSSHELPER)
    52 +fi
    52 +fi
    53 +AC_SUBST(MOZ_ENABLE_NSSHELPER)
    53 +AC_SUBST(MOZ_ENABLE_NSSHELPER)
    64    AC_DEFINE(MOZ_XUL)
    64    AC_DEFINE(MOZ_XUL)
    65  else
    65  else
    66 diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
    66 diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
    67 --- a/security/manager/ssl/src/Makefile.in
    67 --- a/security/manager/ssl/src/Makefile.in
    68 +++ b/security/manager/ssl/src/Makefile.in
    68 +++ b/security/manager/ssl/src/Makefile.in
    69 @@ -133,19 +133,20 @@ REQUIRES	= nspr \
    69 @@ -112,19 +112,20 @@ CSRCS += md4.c
    70  		  $(NULL)
    70  
    71  
    71  
    72  EXTRA_DEPS = $(NSS_DEP_LIBS)
    72  EXTRA_DEPS = $(NSS_DEP_LIBS)
    73  
    73  
    74  DEFINES += -DNSS_ENABLE_ECC
    74  DEFINES += -DNSS_ENABLE_ECC
    75  
    75  
   113  #include "nsSSLThread.h"
   113  #include "nsSSLThread.h"
   114  #include "nsCertVerificationThread.h"
   114  #include "nsCertVerificationThread.h"
   115  
   115  
   116  #include "nsNetUtil.h"
   116  #include "nsNetUtil.h"
   117  #include "nsAppDirectoryServiceDefs.h"
   117  #include "nsAppDirectoryServiceDefs.h"
   118 @@ -1600,17 +1607,31 @@ nsNSSComponent::InitializeNSS(PRBool sho
   118 @@ -1647,18 +1654,34 @@ nsNSSComponent::InitializeNSS(PRBool sho
   119      // The call to ConfigureInternalPKCS11Token needs to be done before NSS is initialized, 
       
   120      // but affects only static data.
       
   121      // If we could assume i18n will not change between profiles, one call per application
       
   122      // run were sufficient. As I can't predict what happens in the future, let's repeat
       
   123      // this call for every re-init of NSS.
       
   124  
       
   125      ConfigureInternalPKCS11Token();
   119      ConfigureInternalPKCS11Token();
   126  
   120  
   127 -    SECStatus init_rv = ::NSS_InitReadWrite(profileStr.get());
   121      // The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
       
   122      // module by NSS_Initialize because we will load it in InstallLoadableRoots
       
   123      // later.  It also allows us to work around a bug in the system NSS in
       
   124      // Ubuntu 8.04, which loads any nonexistent "<configdir>/libnssckbi.so" as
       
   125      // "/usr/lib/nss/libnssckbi.so".
       
   126      PRUint32 init_flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE;
       
   127 -    SECStatus init_rv = ::NSS_Initialize(profileStr.get(), "", "",
       
   128 -                                         SECMOD_DB, init_flags);
   128 +    SECStatus init_rv = SECFailure;
   129 +    SECStatus init_rv = SECFailure;
   129 +#ifdef MOZ_ENABLE_NSSHELPER
   130 +#ifdef MOZ_ENABLE_NSSHELPER
   130 +    if (PR_GetEnv("MOZ_XRE_NO_NSSHELPER")) {
   131 +    if (PR_GetEnv("MOZ_XRE_NO_NSSHELPER")) {
   131 +      init_rv = ::NSS_InitReadWrite(profileStr.get());
   132 +      init_rv = ::NSS_Initialize(profileStr.get(), "", "",
       
   133 +                                 SECMOD_DB, init_flags);
   132 +    } else {
   134 +    } else {
   133 +      init_rv = ::nsshelp_open_db ("mozilla-xul", profileStr.get(), 0);
   135 +      init_rv = ::nsshelp_open_db ("mozilla-xul", profileStr.get(), init_flags);
   134 +
   136 +
   135 +      if (init_rv != SECSuccess) {
   137 +      if (init_rv != SECSuccess) {
   136 +        PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
   138 +        PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
   137 +        init_rv = ::NSS_InitReadWrite(profileStr.get());
   139 +        init_rv = ::NSS_Initialize(profileStr.get(), "", "",
       
   140 +                                   SECMOD_DB, init_flags);
   138 +      }
   141 +      }
   139 +    }
   142 +    }
   140 +#else
   143 +#else
   141 +    init_rv = ::NSS_InitReadWrite(profileStr.get());
   144 +    init_rv = ::NSS_Initialize(profileStr.get(), "", "",
       
   145 +                               SECMOD_DB, init_flags);
   142 +#endif
   146 +#endif
   143  
   147  
   144      if (init_rv != SECSuccess) {
   148      if (init_rv != SECSuccess) {
   145        PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", profileStr.get()));
   149        PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", profileStr.get()));
   146  
   150  
   149        }
   153        }
   150        else {
   154        else {
   151 diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
   155 diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
   152 --- a/toolkit/library/Makefile.in
   156 --- a/toolkit/library/Makefile.in
   153 +++ b/toolkit/library/Makefile.in
   157 +++ b/toolkit/library/Makefile.in
   154 @@ -189,17 +189,17 @@ else
   158 @@ -169,17 +169,17 @@ ifndef MOZ_ENABLE_LIBXUL
   155  EXTRA_DSO_LDOPTS += \
   159  EXTRA_DSO_LDOPTS += \
   156  	$(MOZ_COMPONENT_LIBS) \
   160  	$(MOZ_COMPONENT_LIBS) \
   157  	$(MOZ_JS_LIBS) \
   161  	$(MOZ_JS_LIBS) \
   158  	$(NULL)
   162  	$(NULL)
   159  endif
   163  endif
   160  
   164  
   161  DEFINES += -DIMPL_XREAPI
   165  DEFINES += -DIMPL_XREAPI
   162  
   166  
   163 -EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
   167 -EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB)
   164 +EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(NSSHELPER_LIBS)
   168 +EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB) $(NSSHELPER_LIBS)
   165  
   169  
   166  ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
   170  ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
   167  CXXFLAGS	+= $(TK_CFLAGS)
   171  CXXFLAGS	+= $(TK_CFLAGS)
   168  EXTRA_DSO_LDOPTS += \
   172  OS_LIBS += \
   169  	-framework SystemConfiguration \
   173  	-framework SystemConfiguration \
   170  	-framework QuickTime \
   174  	-framework QuickTime \
   171  	-framework IOKit \
   175  	-framework IOKit \
   172  	-lcrypto \
   176  	-lcrypto \