Kaydet (Commit) 09bc28fb authored tarafından Joachim Lingner's avatar Joachim Lingner

jl144: #i106132# nss does not build on MacOS 10.6 because of libsqlite3

üst a297f034
...@@ -175,6 +175,8 @@ FREEBL=freebl3 ...@@ -175,6 +175,8 @@ FREEBL=freebl3
.ENDIF # "$(OS)" == "SOLARIS" .ENDIF # "$(OS)" == "SOLARIS"
#On Linux/Unix sqlite is delivered to $(SOLARLIBDIR)/sqlite/libsqlite3.so
#See readme.txt in module nss
NSS_MODULE_RUNTIME_LIST:= \ NSS_MODULE_RUNTIME_LIST:= \
$(FREEBL) \ $(FREEBL) \
nspr4 \ nspr4 \
...@@ -186,7 +188,7 @@ NSS_MODULE_RUNTIME_LIST:= \ ...@@ -186,7 +188,7 @@ NSS_MODULE_RUNTIME_LIST:= \
plds4 \ plds4 \
smime3 \ smime3 \
softokn3 \ softokn3 \
sqlite3 \ sqlite/sqlite3 \
ssl3 ssl3
...@@ -200,13 +202,13 @@ $(MISC)$/unpacked_$(TARGET)_inc $(BIN)$/mozruntime.zip ...@@ -200,13 +202,13 @@ $(MISC)$/unpacked_$(TARGET)_inc $(BIN)$/mozruntime.zip
echo >& $(NULLDEV) echo >& $(NULLDEV)
$(foreach,lib,$(LIBLIST) rm -f $(LB)$/$(lib) &&) \ $(foreach,lib,$(LIBLIST) rm -f $(LB)$/$(lib) &&) \
echo >& $(NULLDEV) echo >& $(NULLDEV)
$(foreach,lib,$(BIN_RUNTIMELIST) zip -d $(BIN)$/mozruntime.zip $(DLLPRE)$(lib)$(DLLPOST) &&) \ $(foreach,lib,$(BIN_RUNTIMELIST) zip -d $(BIN)$/mozruntime.zip $(DLLPRE)$(lib:f)$(DLLPOST) &&) \
echo >& $(NULLDEV) echo >& $(NULLDEV)
.IF "$(GUI)"=="WNT" .IF "$(GUI)"=="WNT"
$(foreach,lib,$(NSS_MODULE_RUNTIME_LIST) zip -g -j $(BIN)$/mozruntime.zip $(SOLARBINDIR)$/$(DLLPRE)$(lib)$(DLLPOST) &&) \ +$(foreach,lib,$(NSS_MODULE_RUNTIME_LIST) zip -g -j $(BIN)$/mozruntime.zip $(SOLARBINDIR)$/$(DLLPRE)$(lib:f)$(DLLPOST) &&) \
echo >& $(NULLDEV) echo >& $(NULLDEV)
.ELSE .ELSE
$(foreach,lib,$(NSS_MODULE_RUNTIME_LIST) zip -g -j $(BIN)$/mozruntime.zip $(SOLARLIBDIR)$/$(DLLPRE)$(lib)$(DLLPOST) &&) \ +$(foreach,lib,$(NSS_MODULE_RUNTIME_LIST) zip -g -j $(BIN)$/mozruntime.zip $(SOLARLIBDIR)$/$(lib:d)$(DLLPRE)$(lib:f)$(DLLPOST) &&) \
echo >& $(NULLDEV) echo >& $(NULLDEV)
.ENDIF .ENDIF
$(TOUCH) $@ $(TOUCH) $@
......
--- misc/mozilla/nsprpub/config/rules.mk 2009-05-02 01:08:01.000000000 +0200 --- misc/mozilla/nsprpub/config/rules.mk Sat May 2 01:08:01 2009
+++ misc/build/mozilla/nsprpub/config/rules.mk 2009-09-17 10:29:39.823155149 +0200 +++ misc/build/mozilla/nsprpub/config/rules.mk Fri Nov 27 13:07:24 2009
@@ -350,7 +350,12 @@ @@ -350,7 +350,12 @@
ifdef NS_USE_GCC ifdef NS_USE_GCC
$(RC) $(RCFLAGS) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $< $(RC) $(RCFLAGS) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $<
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
endif # GCC endif # GCC
@echo $(RES) finished @echo $(RES) finished
endif endif
--- misc/mozilla/nsprpub/configure 2009-05-08 15:12:31.000000000 +0200 --- misc/mozilla/nsprpub/configure Fri May 8 15:12:31 2009
+++ misc/build/mozilla/nsprpub/configure 2009-09-17 10:31:55.064081763 +0200 +++ misc/build/mozilla/nsprpub/configure Fri Nov 27 13:07:24 2009
@@ -3898,7 +3898,7 @@ @@ -3898,7 +3898,7 @@
PR_MD_CSRCS=linux.c PR_MD_CSRCS=linux.c
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@' MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
...@@ -25,8 +25,8 @@ ...@@ -25,8 +25,8 @@
_OPTIMIZE_FLAGS=-O2 _OPTIMIZE_FLAGS=-O2
_DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
# combo is not yet good at debugging inlined # combo is not yet good at debugging inlined
--- misc/mozilla/security/coreconf/Darwin.mk 2009-07-30 23:36:02.000000000 +0200 --- misc/mozilla/security/coreconf/Darwin.mk Thu Jul 30 23:36:02 2009
+++ misc/build/mozilla/security/coreconf/Darwin.mk 2009-09-17 11:11:36.442683705 +0200 +++ misc/build/mozilla/security/coreconf/Darwin.mk Fri Nov 27 13:07:24 2009
@@ -39,8 +39,12 @@ @@ -39,8 +39,12 @@
DEFAULT_COMPILER = cc DEFAULT_COMPILER = cc
...@@ -42,8 +42,8 @@ ...@@ -42,8 +42,8 @@
RANLIB = ranlib RANLIB = ranlib
ifndef CPU_ARCH ifndef CPU_ARCH
--- misc/mozilla/security/coreconf/Linux.mk 2009-07-30 01:43:41.000000000 +0200 --- misc/mozilla/security/coreconf/Linux.mk Thu Jul 30 01:43:41 2009
+++ misc/build/mozilla/security/coreconf/Linux.mk 2009-09-17 10:39:40.372245066 +0200 +++ misc/build/mozilla/security/coreconf/Linux.mk Fri Nov 27 13:07:24 2009
@@ -46,8 +46,11 @@ @@ -46,8 +46,11 @@
IMPL_STRATEGY = _PTH IMPL_STRATEGY = _PTH
endif endif
...@@ -67,8 +67,8 @@ ...@@ -67,8 +67,8 @@
DSO_LDFLAGS = DSO_LDFLAGS =
LDFLAGS += $(ARCHFLAG) LDFLAGS += $(ARCHFLAG)
--- misc/mozilla/security/coreconf/SunOS5.mk 2009-06-11 02:55:32.000000000 +0200 --- misc/mozilla/security/coreconf/SunOS5.mk Thu Jun 11 02:55:32 2009
+++ misc/build/mozilla/security/coreconf/SunOS5.mk 2009-09-17 10:42:17.845459669 +0200 +++ misc/build/mozilla/security/coreconf/SunOS5.mk Fri Nov 27 13:07:24 2009
@@ -89,8 +89,12 @@ @@ -89,8 +89,12 @@
# OPTIMIZER += -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer # OPTIMIZER += -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
endif endif
...@@ -84,8 +84,8 @@ ...@@ -84,8 +84,8 @@
ASFLAGS += -Wa,-P ASFLAGS += -Wa,-P
OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG) OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG)
ifndef BUILD_OPT ifndef BUILD_OPT
--- misc/mozilla/security/coreconf/arch.mk 2009-06-05 04:14:49.000000000 +0200 --- misc/mozilla/security/coreconf/arch.mk Fri Jun 5 04:14:49 2009
+++ misc/build/mozilla/security/coreconf/arch.mk 2009-09-17 10:45:27.710858021 +0200 +++ misc/build/mozilla/security/coreconf/arch.mk Fri Nov 27 13:07:24 2009
@@ -324,7 +324,12 @@ @@ -324,7 +324,12 @@
# IMPL_STRATEGY may be defined too. # IMPL_STRATEGY may be defined too.
# #
...@@ -100,8 +100,8 @@ ...@@ -100,8 +100,8 @@
ifeq (,$(filter-out WIN%,$(OS_TARGET))) ifeq (,$(filter-out WIN%,$(OS_TARGET)))
ifndef BUILD_OPT ifndef BUILD_OPT
--- misc/mozilla/security/coreconf/rules.mk 2009-08-11 05:23:39.000000000 +0200 --- misc/mozilla/security/coreconf/rules.mk Tue Aug 11 05:23:39 2009
+++ misc/build/mozilla/security/coreconf/rules.mk 2009-09-17 10:48:07.361462582 +0200 +++ misc/build/mozilla/security/coreconf/rules.mk Fri Nov 27 13:07:24 2009
@@ -355,7 +355,12 @@ @@ -355,7 +355,12 @@
ifdef NS_USE_GCC ifdef NS_USE_GCC
$(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $< $(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $<
...@@ -116,9 +116,9 @@ ...@@ -116,9 +116,9 @@
endif endif
@echo $(RES) finished @echo $(RES) finished
endif endif
--- misc/mozilla/security/nss/cmd/platlibs.mk 2009-06-18 01:01:48.000000000 +0200 --- misc/mozilla/security/nss/cmd/platlibs.mk Thu Jun 18 01:01:48 2009
+++ misc/build/mozilla/security/nss/cmd/platlibs.mk 2009-09-17 11:08:16.697236076 +0200 +++ misc/build/mozilla/security/nss/cmd/platlibs.mk Fri Nov 27 13:07:24 2009
@@ -41,27 +41,28 @@ @@ -41,12 +41,13 @@
ifeq ($(OS_ARCH), SunOS) ifeq ($(OS_ARCH), SunOS)
ifeq ($(BUILD_SUN_PKG), 1) ifeq ($(BUILD_SUN_PKG), 1)
ifeq ($(USE_64), 1) ifeq ($(USE_64), 1)
...@@ -135,6 +135,7 @@ ...@@ -135,6 +135,7 @@
endif endif
endif endif
@@ -53,15 +54,15 @@
ifeq ($(OS_ARCH), Linux) ifeq ($(OS_ARCH), Linux)
ifeq ($(BUILD_SUN_PKG), 1) ifeq ($(BUILD_SUN_PKG), 1)
ifeq ($(USE_64), 1) ifeq ($(USE_64), 1)
...@@ -154,3 +155,24 @@ ...@@ -154,3 +155,24 @@
endif endif
endif endif
endif endif
--- misc/mozilla/security/nss/cmd/shlibsign/Makefile Fri Aug 7 21:06:37 2009
+++ misc/build/mozilla/security/nss/cmd/shlibsign/Makefile Fri Nov 27 13:07:52 2009
@@ -78,10 +78,15 @@
# sign any and all shared libraries that contain the word freebl
-CHECKLIBS = $(DIST)/lib/$(DLL_PREFIX)softokn3.$(DLL_SUFFIX)
-CHECKLIBS += $(wildcard $(DIST)/lib/$(DLL_PREFIX)freebl*3.$(DLL_SUFFIX))
+# Signing causes loading of some system library which in turn loads
+# libsqlite3. Then it loads libsqulite3 from nss, which does not have the proper
+# version. Therefore signing fails.
+# We cannot build with the system sqlite3, because it is too old (SDK
+# 10.4). Otherwise one could set NSS_USE_SYSTEM_SQLITE=1 and use the system lib.
+#CHECKLIBS = $(DIST)/lib/$(DLL_PREFIX)softokn3.$(DLL_SUFFIX)
+#CHECKLIBS += $(wildcard $(DIST)/lib/$(DLL_PREFIX)freebl*3.$(DLL_SUFFIX))
ifndef NSS_DISABLE_DBM
-CHECKLIBS += $(DIST)/lib/$(DLL_PREFIX)nssdbm3.$(DLL_SUFFIX)
+#CHECKLIBS += $(DIST)/lib/$(DLL_PREFIX)nssdbm3.$(DLL_SUFFIX)
endif
CHECKLOC = $(CHECKLIBS:.$(DLL_SUFFIX)=.chk)
mkdir: %_DEST%\inc%_EXT%\mozilla\nspr mkdir: %_DEST%\inc%_EXT%\mozilla\nspr
mkdir: %_DEST%\inc%_EXT%\mozilla\nspr\obsolete mkdir: %_DEST%\inc%_EXT%\mozilla\nspr\obsolete
mkdir: %_DEST%\inc%_EXT%\mozilla\nss mkdir: %_DEST%\inc%_EXT%\mozilla\nss
mkdir: %_DEST%\lib%_EXT%\sqlite
..\%__SRC%\inc\include\* %_DEST%\inc%_EXT%\mozilla\nspr ..\%__SRC%\inc\include\* %_DEST%\inc%_EXT%\mozilla\nspr
..\%__SRC%\inc\include\obsolete\protypes.h %_DEST%\inc%_EXT%\mozilla\nspr\obsolete\protypes.h ..\%__SRC%\inc\include\obsolete\protypes.h %_DEST%\inc%_EXT%\mozilla\nspr\obsolete\protypes.h
..\%__SRC%\inc\nss\*.h %_DEST%\inc%_EXT%\mozilla\nss ..\%__SRC%\inc\nss\*.h %_DEST%\inc%_EXT%\mozilla\nss
..\%__SRC%\lib\* %_DEST%\lib%_EXT%
..\%__SRC%\lib\libfreebl3.* %_DEST%\lib%_EXT%\libfreebl.*
..\%__SRC%\lib\libfreebl_32fpu_3.* %_DEST%\lib%_EXT%\libfreebl_32fpu_3.*
..\%__SRC%\lib\libfreebl_32int64_3.* %_DEST%\lib%_EXT%\libfreebl_32int64_3.*
..\%__SRC%\lib\libfreebl_32int_3.* %_DEST%\lib%_EXT%\libfreebl_32int_3.*
..\%__SRC%\lib\libfreebl_64int_3.* %_DEST%\lib%_EXT%\libfreebl_64int_3.*
..\%__SRC%\lib\libfreebl_64fpu_3.* %_DEST%\lib%_EXT%\libfreebl_64fpu_3.*
..\%__SRC%\lib\libnspr4.* %_DEST%\lib%_EXT%\libnspr4.*
..\%__SRC%\lib\libnss3.* %_DEST%\lib%_EXT%\libnss3.*
..\%__SRC%\lib\libnssckbi.* %_DEST%\lib%_EXT%\libnssckbi.*
..\%__SRC%\lib\libnssdbm3.* %_DEST%\lib%_EXT%\libnssdbm3.*
..\%__SRC%\lib\libnssutil3.* %_DEST%\lib%_EXT%\libnssutil3.*
..\%__SRC%\lib\libplc4.* %_DEST%\lib%_EXT%\libplc4.*
..\%__SRC%\lib\libplds4.* %_DEST%\lib%_EXT%\libplds4.*
..\%__SRC%\lib\libsmime3.* %_DEST%\lib%_EXT%\libsmime3.*
..\%__SRC%\lib\libsoftokn3.* %_DEST%\lib%_EXT%\libsoftokn3.*
..\%__SRC%\lib\libssl3.* %_DEST%\lib%_EXT%\libssl3.*
..\%__SRC%\lib\libsqlite3.* %_DEST%\lib%_EXT%\sqlite\libsqlite3.*
..\%__SRC%\bin\* %_DEST%\bin%_EXT% ..\%__SRC%\bin\* %_DEST%\bin%_EXT%
Relation between nss, moz, moz_prebuilt Relation between nss, moz, moz_prebuilt
--------------------------------------- ---------------------------------------
nss containes the security libraries which are also part of moz. However nss is nss containes the security libraries which are also part of moz. However nss is
meant to be more current, that is it to be updated more often. This should be meant to be more current, that is it to be updated more often. This should be
easier than doing this with moz. easier than doing this with moz.
If nss is build depends on an environment variable (ENABLE_NSS_MODULE=YES) which If nss is build depends on an environment variable (ENABLE_NSS_MODULE=YES) which
is per default set to YES. In this case nss is build before moz. The nss is per default set to YES. In this case nss is build before moz. The nss
libraries/lib files/headers built in moz are then not delivered. Otherwise they libraries/lib files/headers built in moz are then not delivered. Otherwise they
would overwrite those from nss. That is, the nss libraries build in moz are would overwrite those from nss. That is, the nss libraries build in moz are
removed from mozruntime.zip (build in moz/solver/bin), they are removed from the removed from mozruntime.zip (build in moz/solver/bin), they are removed from the
lib directory (for example moz/unxlngi6.pro/lib), and the nss and nspr headers lib directory (for example moz/unxlngi6.pro/lib), and the nss and nspr headers
are also removed (inc/nss and inc/nspr). The nss libraries from the nss module are also removed (inc/nss and inc/nspr). The nss libraries from the nss module
are then added to mozruntime.zip. are then added to mozruntime.zip.
This also applies for moz_prebuilt. Therefore moz and moz_prebuilt must be build This also applies for moz_prebuilt. Therefore moz and moz_prebuilt must be build
again after changes have been made to the libraries in the nss module. again after changes have been made to the libraries in the nss module.
Also when moz was updated to use a newer version of mozilla, then one must make Also when moz was updated to use a newer version of mozilla, then one must make
sure that new files which also belong to nss are not delivered and are removed sure that new files which also belong to nss are not delivered and are removed
from mozruntime.zip. from mozruntime.zip.
Fips 140 and signed libraries Fips 140 and signed libraries
------------------------------- -------------------------------
Fips 140 mode is not supported. That is, the *.chk files containing the Fips 140 mode is not supported. That is, the *.chk files containing the
checksums for the cryptographic module are not delivered into solver and will checksums for the cryptographic module are not delivered into solver and will
not be part of the OOo installation sets. not be part of the OOo installation sets.
The *chk files do not match the libraries because we change the rpatch. Signing has been turned off because
- we change the rpath (install names) after signing which breaks the signatures
libfreebl3 (Mac)
---------- - sqlite conflicts with the system sqlite when signing which breaks the build
Porting to other platforms may require to deliver other variants of
libfreebl*. The library name varies according to the platform. Changes need to
be made to libfreebl3
ooo/moz/extractfiles.mk ----------
ooo/moz/zipped/makefile.mk Porting to other platforms may require to deliver other variants of
sun/moz_prebuilt/zipped/makefile.mk libfreebl*. The library name varies according to the platform. Changes need to
be made to
ooo/moz/extractfiles.mk
See also ooo/moz/zipped/makefile.mk
http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html sun/moz_prebuilt/zipped/makefile.mk
See also
Windows builds of nss http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
---------------------
To build mozilla on windows you'll need the mozilla build tools
Windows builds of nss
Build requirements containing the link to the build tools: ---------------------
https://developer.mozilla.org/en/Windows_Build_Prerequisites#ss2.2 To build mozilla on windows you'll need the mozilla build tools
The direct link: Build requirements containing the link to the build tools:
https://developer.mozilla.org/en/Windows_Build_Prerequisites#ss2.2
http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.3.exe
The direct link:
http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.3.exe
libsqlite3
----------
The problem described here was found on Mac with OS 10.6
NSS cannot use the system sqlite on Mac because the base line is still MacOS
10.4. That system sqlite is incompatible with the softokn3 in nss which requires
a later version of sqlite.
When we used a more current Mac SDK then we could set
NSS_USE_SYSTEM_SQLITE=1
to build using the system sqlite.
We cannot deliver sqlite in the lib directory of the solver. This directory is
used by tools of the build environment. Using the sqlite from NSS breaks the
tools if they use system libraries which are linked with the system
sqlite. Therefore we deliver it into lib/sqlite on unix systems.
See also issue
http://qa.openoffice.org/issues/show_bug.cgi?id=106132
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment