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) |
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 \ |