зеркало из https://github.com/mozilla/pjs.git
b=255408 Need to be able to build mozilla --with-system-nss
r=wtc/bsmedberg Note: patches for bugs 288647 and 317620 might be required before enabling this build feature works.
This commit is contained in:
Родитель
7455e48a05
Коммит
a66df9148e
|
@ -8,6 +8,7 @@ builtin(include, build/autoconf/gtk.m4)dnl
|
|||
builtin(include, build/autoconf/libIDL.m4)dnl
|
||||
builtin(include, build/autoconf/libIDL-2.m4)dnl
|
||||
builtin(include, build/autoconf/nspr.m4)dnl
|
||||
builtin(include, build/autoconf/nss.m4)dnl
|
||||
builtin(include, build/autoconf/libart.m4)dnl
|
||||
builtin(include, build/autoconf/pkg.m4)dnl
|
||||
builtin(include, build/autoconf/freetype2.m4)dnl
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
# -*- tab-width: 4; -*-
|
||||
# Configure paths for NSS
|
||||
# Public domain - Chris Seawood <cls@seawood.org> 2001-04-05
|
||||
# Based upon gtk.m4 (also PD) by Owen Taylor
|
||||
|
||||
dnl AM_PATH_NSS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl Test for NSS, and define NSS_CFLAGS and NSS_LIBS
|
||||
AC_DEFUN(AM_PATH_NSS,
|
||||
[dnl
|
||||
|
||||
AC_ARG_WITH(nss-prefix,
|
||||
[ --with-nss-prefix=PFX Prefix where NSS is installed],
|
||||
nss_config_prefix="$withval",
|
||||
nss_config_prefix="")
|
||||
|
||||
AC_ARG_WITH(nss-exec-prefix,
|
||||
[ --with-nss-exec-prefix=PFX
|
||||
Exec prefix where NSS is installed],
|
||||
nss_config_exec_prefix="$withval",
|
||||
nss_config_exec_prefix="")
|
||||
|
||||
if test -n "$nss_config_exec_prefix"; then
|
||||
nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
|
||||
if test -z "$NSS_CONFIG"; then
|
||||
NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
|
||||
fi
|
||||
fi
|
||||
if test -n "$nss_config_prefix"; then
|
||||
nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
|
||||
if test -z "$NSS_CONFIG"; then
|
||||
NSS_CONFIG=$nss_config_prefix/bin/nss-config
|
||||
fi
|
||||
fi
|
||||
|
||||
unset ac_cv_path_NSS_CONFIG
|
||||
AC_PATH_PROG(NSS_CONFIG, nss-config, no)
|
||||
min_nss_version=ifelse([$1], ,3.0.0,$1)
|
||||
AC_MSG_CHECKING(for NSS - version >= $min_nss_version (skipping))
|
||||
|
||||
no_nss=""
|
||||
if test "$NSS_CONFIG" = "no"; then
|
||||
no_nss="yes"
|
||||
else
|
||||
NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
|
||||
NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
|
||||
|
||||
dnl Skip version check for now
|
||||
nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
fi
|
||||
|
||||
if test -z "$no_nss"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
|
||||
AC_SUBST(NSS_CFLAGS)
|
||||
AC_SUBST(NSS_LIBS)
|
||||
|
||||
])
|
|
@ -236,6 +236,7 @@ MOZ_INSURE_DIRS = @MOZ_INSURE_DIRS@
|
|||
MOZ_INSURE_EXCLUDE_DIRS = @MOZ_INSURE_EXCLUDE_DIRS@
|
||||
|
||||
MOZ_NATIVE_NSPR = @MOZ_NATIVE_NSPR@
|
||||
MOZ_NATIVE_NSS = @MOZ_NATIVE_NSS@
|
||||
|
||||
CROSS_COMPILE = @CROSS_COMPILE@
|
||||
|
||||
|
@ -391,6 +392,11 @@ NSPR_CONFIG = @NSPR_CONFIG@
|
|||
NSPR_CFLAGS = @NSPR_CFLAGS@
|
||||
NSPR_LIBS = @NSPR_LIBS@
|
||||
|
||||
NSS_CONFIG = @NSS_CONFIG@
|
||||
NSS_CFLAGS = @NSS_CFLAGS@
|
||||
NSS_LIBS = @NSS_LIBS@
|
||||
NSS_DEP_LIBS = @NSS_DEP_LIBS@
|
||||
|
||||
LDAP_CFLAGS = @LDAP_CFLAGS@
|
||||
LDAP_LIBS = @LDAP_LIBS@
|
||||
XPCOM_GLUE_LDOPTS = @XPCOM_GLUE_LDOPTS@
|
||||
|
|
|
@ -136,39 +136,6 @@ FINAL_LINK_LIBS = $(DEPTH)/config/final-link-libs
|
|||
FINAL_LINK_COMPS = $(DEPTH)/config/final-link-comps
|
||||
FINAL_LINK_COMP_NAMES = $(DEPTH)/config/final-link-comp-names
|
||||
|
||||
#
|
||||
# NSS libs needed for final link in static build
|
||||
#
|
||||
|
||||
NSS_LIBS = \
|
||||
$(LIBS_DIR) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
|
||||
-lsmime3 \
|
||||
-lssl3 \
|
||||
-lnss3 \
|
||||
-lsoftokn3 \
|
||||
$(NULL)
|
||||
|
||||
ifneq (,$(filter OS2 WINNT WINCE, $(OS_ARCH)))
|
||||
ifndef GNU_CC
|
||||
NSS_LIBS = \
|
||||
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)ssl3.$(IMPORT_LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nss3.$(IMPORT_LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)softokn3.$(IMPORT_LIB_SUFFIX) \
|
||||
$(NULL)
|
||||
endif
|
||||
endif
|
||||
|
||||
NSS_DEP_LIBS = \
|
||||
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
|
||||
$(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
|
||||
$(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
|
||||
$(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
|
||||
$(NULL)
|
||||
|
||||
MOZ_UNICHARUTIL_LIBS = $(DIST)/lib/$(LIB_PREFIX)unicharutil_s.$(LIB_SUFFIX)
|
||||
MOZ_REGISTRY_LIBS = $(DIST)/lib/$(LIB_PREFIX)mozreg_s.$(LIB_SUFFIX)
|
||||
MOZ_WIDGET_SUPPORT_LIBS = $(DIST)/lib/$(LIB_PREFIX)widgetsupport_s.$(LIB_SUFFIX)
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
42
configure.in
42
configure.in
|
@ -86,6 +86,7 @@ MOZJPEG=62
|
|||
MOZPNG=10207
|
||||
MOZZLIB=1.2.3
|
||||
NSPR_VERSION=4
|
||||
NSS_VERSION=3
|
||||
|
||||
dnl Set the minimum version of toolkit libs used by mozilla
|
||||
dnl ========================================================
|
||||
|
@ -3558,6 +3559,42 @@ if test -z "$MOZ_NATIVE_NSPR"; then
|
|||
fi
|
||||
fi
|
||||
|
||||
dnl ========================================================
|
||||
dnl = If NSS was not detected in the system,
|
||||
dnl = use the one in the source tree (mozilla/security/nss)
|
||||
dnl ========================================================
|
||||
|
||||
MOZ_ARG_WITH_BOOL(system-nss,
|
||||
[ --with-system-nss Use system installed NSS],
|
||||
_USE_SYSTEM_NSS=1 )
|
||||
|
||||
if test -n "$_USE_SYSTEM_NSS"; then
|
||||
AM_PATH_NSS(3.0.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
|
||||
fi
|
||||
|
||||
if test -n "$MOZ_NATIVE_NSS"; then
|
||||
NSS_LIBS="$NSS_LIBS -lcrmf"
|
||||
else
|
||||
NSS_CFLAGS='-I$(DIST)/public/nss'
|
||||
NSS_DEP_LIBS='\\\
|
||||
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \\\
|
||||
$(DIST)/lib/$(DLL_PREFIX)smime'$NSS_VERSION'$(DLL_SUFFIX) \\\
|
||||
$(DIST)/lib/$(DLL_PREFIX)ssl'$NSS_VERSION'$(DLL_SUFFIX) \\\
|
||||
$(DIST)/lib/$(DLL_PREFIX)nss'$NSS_VERSION'$(DLL_SUFFIX) \\\
|
||||
$(DIST)/lib/$(DLL_PREFIX)softokn'$NSS_VERSION'$(DLL_SUFFIX)'
|
||||
|
||||
if test -z "$GNU_CC" && test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "WINCE" -o "$OS_ARCH" = "OS2"; then
|
||||
NSS_LIBS='\\\
|
||||
$(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \\\
|
||||
$(DIST)/lib/$(DLL_PREFIX)smime'$NSS_VERSION'$(IMPORT_LIB_SUFFIX) \\\
|
||||
$(DIST)/lib/$(DLL_PREFIX)ssl'$NSS_VERSION'$(IMPORT_LIB_SUFFIX) \\\
|
||||
$(DIST)/lib/$(DLL_PREFIX)nss'$NSS_VERSION'$(IMPORT_LIB_SUFFIX) \\\
|
||||
$(DIST)/lib/$(DLL_PREFIX)softokn'$NSS_VERSION'$(IMPORT_LIB_SUFFIX)'
|
||||
else
|
||||
NSS_LIBS='-L$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lsoftokn$NSS_VERSION"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$SKIP_LIBRARY_CHECKS"; then
|
||||
dnl system JPEG support
|
||||
dnl ========================================================
|
||||
|
@ -7002,6 +7039,11 @@ AC_SUBST(NSPR_CFLAGS)
|
|||
AC_SUBST(NSPR_LIBS)
|
||||
AC_SUBST(MOZ_NATIVE_NSPR)
|
||||
|
||||
AC_SUBST(NSS_CFLAGS)
|
||||
AC_SUBST(NSS_LIBS)
|
||||
AC_SUBST(NSS_DEP_LIBS)
|
||||
AC_SUBST(MOZ_NATIVE_NSS)
|
||||
|
||||
AC_SUBST(CFLAGS)
|
||||
AC_SUBST(CXXFLAGS)
|
||||
AC_SUBST(CPPFLAGS)
|
||||
|
|
|
@ -46,6 +46,8 @@ include $(DEPTH)/config/autoconf.mk
|
|||
MODULE = psm
|
||||
|
||||
PACKAGE_FILE = psm.pkg
|
||||
|
||||
ifndef MOZ_NATIVE_NSS
|
||||
PACKAGE_VARS += \
|
||||
NSS3_LIB \
|
||||
SMIME3_LIB \
|
||||
|
@ -57,6 +59,7 @@ PACKAGE_VARS += \
|
|||
$(NULL)
|
||||
|
||||
LOADABLE_ROOT_MODULE = $(DLL_PREFIX)nssckbi$(DLL_SUFFIX)
|
||||
endif
|
||||
|
||||
NSS3_LIB = $(DLL_PREFIX)nss3$(DLL_SUFFIX)
|
||||
SMIME3_LIB = $(DLL_PREFIX)smime3$(DLL_SUFFIX)
|
||||
|
@ -150,6 +153,7 @@ include $(topsrcdir)/config/rules.mk
|
|||
export:: .nss.cleaned
|
||||
|
||||
.nss.cleaned: .nss.checkout
|
||||
ifndef MOZ_NATIVE_NSS
|
||||
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
|
||||
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
|
||||
ifndef SKIP_CHK
|
||||
|
@ -157,9 +161,12 @@ ifndef SKIP_CHK
|
|||
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
|
||||
endif
|
||||
touch $@
|
||||
endif
|
||||
|
||||
.nss.checkout:
|
||||
ifndef MOZ_NATIVE_NSS
|
||||
touch $(srcdir)/$@
|
||||
endif
|
||||
|
||||
dependclean export packages chrome::
|
||||
$(MAKE) -C boot $@
|
||||
|
@ -170,12 +177,15 @@ ifdef MOZ_XUL
|
|||
endif
|
||||
|
||||
libs::
|
||||
ifndef MOZ_NATIVE_NSS
|
||||
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS)
|
||||
endif
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
cd $(DIST)/lib; cp -f $(LIB_PREFIX)dbm$(MOZ_BITS).$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
|
||||
else
|
||||
cd $(DIST)/lib; cp -f $(LIB_PREFIX)mozdbm_s.$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX); $(RANLIB) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
|
||||
endif
|
||||
ifndef MOZ_NATIVE_NSS
|
||||
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
|
||||
ifndef SKIP_CHK
|
||||
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
|
||||
|
@ -194,6 +204,7 @@ ifdef HAVE_FREEBL_MODULES
|
|||
$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_PURE32_MODULE) $(DIST)/bin
|
||||
$(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(DIST)/bin
|
||||
$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DIST)/bin
|
||||
endif
|
||||
endif
|
||||
$(MAKE) -C boot $@
|
||||
$(MAKE) -C ssl $@
|
||||
|
@ -203,6 +214,7 @@ ifdef MOZ_XUL
|
|||
endif
|
||||
|
||||
install::
|
||||
ifndef MOZ_NATIVE_NSS
|
||||
$(SYSINSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DESTDIR)$(mozappdir)
|
||||
ifndef SKIP_CHK
|
||||
$(SYSINSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DESTDIR)$(mozappdir)
|
||||
|
@ -216,6 +228,7 @@ ifdef HAVE_FREEBL_MODULES
|
|||
$(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_PURE32_MODULE) $(DESTDIR)$(mozappdir)
|
||||
$(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(DESTDIR)$(mozappdir)
|
||||
$(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DESTDIR)$(mozappdir)
|
||||
endif
|
||||
endif
|
||||
$(MAKE) -C boot $@
|
||||
$(MAKE) -C ssl $@
|
||||
|
@ -231,15 +244,18 @@ clean clobber clobber_all realclean distclean depend::
|
|||
ifdef MOZ_XUL
|
||||
$(MAKE) -C pki $@
|
||||
endif
|
||||
ifndef MOZ_NATIVE_NSS
|
||||
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
|
||||
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
|
||||
ifndef SKIP_CHK
|
||||
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
|
||||
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
|
||||
endif
|
||||
endif
|
||||
|
||||
echo-requires-recursive::
|
||||
$(MAKE) -C boot $@
|
||||
$(MAKE) -C ssl $@
|
||||
$(MAKE) -C pki $@
|
||||
$(MAKE) -C locales $@
|
||||
|
||||
|
|
|
@ -123,8 +123,7 @@ EXTRA_DEPS = $(NSS_DEP_LIBS)
|
|||
|
||||
# Use local includes because they are inserted before INCLUDES
|
||||
# so that Mozilla's nss.h is used, not glibc's
|
||||
LOCAL_INCLUDES += -I$(DIST)/public/nss \
|
||||
$(NULL)
|
||||
LOCAL_INCLUDES = $(NSS_CFLAGS)
|
||||
|
||||
EXTRA_DSO_LDOPTS += \
|
||||
$(MOZ_UNICHARUTIL_LIBS) \
|
||||
|
|
|
@ -485,14 +485,6 @@ nsNSSComponent::DispatchEventToWindow(nsIDOMWindow *domWin,
|
|||
}
|
||||
|
||||
|
||||
#ifdef XP_MAC
|
||||
#ifdef DEBUG
|
||||
#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbiDebug.shlb")
|
||||
#else
|
||||
#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbi.shlb")
|
||||
#endif /*DEBUG*/
|
||||
#endif /*XP_MAC*/
|
||||
|
||||
static void setOCSPOptions(nsIPrefBranch * pref);
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
@ -686,40 +678,42 @@ nsNSSComponent::InstallLoadableRoots()
|
|||
|
||||
const char *possible_ckbi_locations[] = {
|
||||
NS_GRE_DIR,
|
||||
NS_XPCOM_CURRENT_PROCESS_DIR
|
||||
NS_XPCOM_CURRENT_PROCESS_DIR,
|
||||
0 // This special value means:
|
||||
// search for ckbi in the directories on the shared
|
||||
// library/DLL search path
|
||||
};
|
||||
|
||||
for (size_t il = 0; il < sizeof(possible_ckbi_locations)/sizeof(const char*); ++il) {
|
||||
nsCOMPtr<nsILocalFile> mozFile;
|
||||
directoryService->Get( possible_ckbi_locations[il],
|
||||
NS_GET_IID(nsILocalFile),
|
||||
getter_AddRefs(mozFile));
|
||||
char *fullModuleName = nsnull;
|
||||
|
||||
if (!mozFile) {
|
||||
continue;
|
||||
if (!possible_ckbi_locations[il])
|
||||
{
|
||||
fullModuleName = PR_GetLibraryName(nsnull, "nssckbi");
|
||||
}
|
||||
else
|
||||
{
|
||||
directoryService->Get( possible_ckbi_locations[il],
|
||||
NS_GET_IID(nsILocalFile),
|
||||
getter_AddRefs(mozFile));
|
||||
|
||||
if (!mozFile) {
|
||||
continue;
|
||||
}
|
||||
|
||||
nsCAutoString processDir;
|
||||
mozFile->GetNativePath(processDir);
|
||||
fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
|
||||
}
|
||||
|
||||
char *fullModuleName = nsnull;
|
||||
#ifdef XP_MAC
|
||||
nsCAutoString nativePath;
|
||||
mozFile->AppendNative(NS_LITERAL_CSTRING("Essential Files"));
|
||||
mozFile->AppendNative(LOADABLE_CERTS_MODULE);
|
||||
mozFile->GetNativePath(nativePath);
|
||||
fullModuleName = (char *) nativePath.get();
|
||||
#else
|
||||
nsCAutoString processDir;
|
||||
mozFile->GetNativePath(processDir);
|
||||
fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
|
||||
#endif
|
||||
/* If a module exists with the same name, delete it. */
|
||||
NS_ConvertUCS2toUTF8 modNameUTF8(modName);
|
||||
int modType;
|
||||
SECMOD_DeleteModule(NS_CONST_CAST(char*, modNameUTF8.get()), &modType);
|
||||
SECStatus rv_add =
|
||||
SECMOD_AddNewModule(NS_CONST_CAST(char*, modNameUTF8.get()), fullModuleName, 0, 0);
|
||||
#ifndef XP_MAC
|
||||
PR_Free(fullModuleName); // allocated by NSPR
|
||||
#endif
|
||||
PR_FreeLibraryName(fullModuleName); // allocated by NSPR
|
||||
if (SECSuccess == rv_add) {
|
||||
// found a module, no need to try other directories
|
||||
break;
|
||||
|
|
Загрузка…
Ссылка в новой задаче