From 09bc28fb7b998f56b481fb07eb576f00ce72c26f Mon Sep 17 00:00:00 2001 From: Joachim Lingner Date: Mon, 30 Nov 2009 13:50:49 +0100 Subject: jl144: #i106132# nss does not build on MacOS 10.6 because of libsqlite3 --- nss/nss.patch | 56 ++++++++++++++++-------- nss/prj/d.lst | 22 +++++++++- nss/readme.txt | 131 +++++++++++++++++++++++++++++++++------------------------ 3 files changed, 135 insertions(+), 74 deletions(-) (limited to 'nss') diff --git a/nss/nss.patch b/nss/nss.patch index d37d892dd6b8..6fb42951b44e 100644 --- a/nss/nss.patch +++ b/nss/nss.patch @@ -1,5 +1,5 @@ ---- misc/mozilla/nsprpub/config/rules.mk 2009-05-02 01:08:01.000000000 +0200 -+++ misc/build/mozilla/nsprpub/config/rules.mk 2009-09-17 10:29:39.823155149 +0200 +--- misc/mozilla/nsprpub/config/rules.mk Sat May 2 01:08:01 2009 ++++ misc/build/mozilla/nsprpub/config/rules.mk Fri Nov 27 13:07:24 2009 @@ -350,7 +350,12 @@ ifdef NS_USE_GCC $(RC) $(RCFLAGS) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $< @@ -14,8 +14,8 @@ endif # GCC @echo $(RES) finished endif ---- misc/mozilla/nsprpub/configure 2009-05-08 15:12:31.000000000 +0200 -+++ misc/build/mozilla/nsprpub/configure 2009-09-17 10:31:55.064081763 +0200 +--- misc/mozilla/nsprpub/configure Fri May 8 15:12:31 2009 ++++ misc/build/mozilla/nsprpub/configure Fri Nov 27 13:07:24 2009 @@ -3898,7 +3898,7 @@ PR_MD_CSRCS=linux.c MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@' @@ -25,8 +25,8 @@ _OPTIMIZE_FLAGS=-O2 _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that # combo is not yet good at debugging inlined ---- misc/mozilla/security/coreconf/Darwin.mk 2009-07-30 23:36:02.000000000 +0200 -+++ misc/build/mozilla/security/coreconf/Darwin.mk 2009-09-17 11:11:36.442683705 +0200 +--- misc/mozilla/security/coreconf/Darwin.mk Thu Jul 30 23:36:02 2009 ++++ misc/build/mozilla/security/coreconf/Darwin.mk Fri Nov 27 13:07:24 2009 @@ -39,8 +39,12 @@ DEFAULT_COMPILER = cc @@ -42,8 +42,8 @@ RANLIB = ranlib ifndef CPU_ARCH ---- misc/mozilla/security/coreconf/Linux.mk 2009-07-30 01:43:41.000000000 +0200 -+++ misc/build/mozilla/security/coreconf/Linux.mk 2009-09-17 10:39:40.372245066 +0200 +--- misc/mozilla/security/coreconf/Linux.mk Thu Jul 30 01:43:41 2009 ++++ misc/build/mozilla/security/coreconf/Linux.mk Fri Nov 27 13:07:24 2009 @@ -46,8 +46,11 @@ IMPL_STRATEGY = _PTH endif @@ -67,8 +67,8 @@ DSO_LDFLAGS = LDFLAGS += $(ARCHFLAG) ---- misc/mozilla/security/coreconf/SunOS5.mk 2009-06-11 02:55:32.000000000 +0200 -+++ misc/build/mozilla/security/coreconf/SunOS5.mk 2009-09-17 10:42:17.845459669 +0200 +--- misc/mozilla/security/coreconf/SunOS5.mk Thu Jun 11 02:55:32 2009 ++++ misc/build/mozilla/security/coreconf/SunOS5.mk Fri Nov 27 13:07:24 2009 @@ -89,8 +89,12 @@ # OPTIMIZER += -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer endif @@ -84,8 +84,8 @@ ASFLAGS += -Wa,-P OS_CFLAGS += $(NOMD_OS_CFLAGS) $(ARCHFLAG) ifndef BUILD_OPT ---- misc/mozilla/security/coreconf/arch.mk 2009-06-05 04:14:49.000000000 +0200 -+++ misc/build/mozilla/security/coreconf/arch.mk 2009-09-17 10:45:27.710858021 +0200 +--- misc/mozilla/security/coreconf/arch.mk Fri Jun 5 04:14:49 2009 ++++ misc/build/mozilla/security/coreconf/arch.mk Fri Nov 27 13:07:24 2009 @@ -324,7 +324,12 @@ # IMPL_STRATEGY may be defined too. # @@ -100,8 +100,8 @@ ifeq (,$(filter-out WIN%,$(OS_TARGET))) ifndef BUILD_OPT ---- misc/mozilla/security/coreconf/rules.mk 2009-08-11 05:23:39.000000000 +0200 -+++ misc/build/mozilla/security/coreconf/rules.mk 2009-09-17 10:48:07.361462582 +0200 +--- misc/mozilla/security/coreconf/rules.mk Tue Aug 11 05:23:39 2009 ++++ misc/build/mozilla/security/coreconf/rules.mk Fri Nov 27 13:07:24 2009 @@ -355,7 +355,12 @@ ifdef NS_USE_GCC $(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $< @@ -116,9 +116,9 @@ endif @echo $(RES) finished endif ---- misc/mozilla/security/nss/cmd/platlibs.mk 2009-06-18 01:01:48.000000000 +0200 -+++ misc/build/mozilla/security/nss/cmd/platlibs.mk 2009-09-17 11:08:16.697236076 +0200 -@@ -41,27 +41,28 @@ +--- misc/mozilla/security/nss/cmd/platlibs.mk Thu Jun 18 01:01:48 2009 ++++ misc/build/mozilla/security/nss/cmd/platlibs.mk Fri Nov 27 13:07:24 2009 +@@ -41,12 +41,13 @@ ifeq ($(OS_ARCH), SunOS) ifeq ($(BUILD_SUN_PKG), 1) ifeq ($(USE_64), 1) @@ -135,6 +135,7 @@ endif endif +@@ -53,15 +54,15 @@ ifeq ($(OS_ARCH), Linux) ifeq ($(BUILD_SUN_PKG), 1) ifeq ($(USE_64), 1) @@ -154,3 +155,24 @@ 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) + diff --git a/nss/prj/d.lst b/nss/prj/d.lst index 891eb7739b1c..d70484ceab28 100755 --- a/nss/prj/d.lst +++ b/nss/prj/d.lst @@ -1,10 +1,30 @@ mkdir: %_DEST%\inc%_EXT%\mozilla\nspr mkdir: %_DEST%\inc%_EXT%\mozilla\nspr\obsolete mkdir: %_DEST%\inc%_EXT%\mozilla\nss +mkdir: %_DEST%\lib%_EXT%\sqlite ..\%__SRC%\inc\include\* %_DEST%\inc%_EXT%\mozilla\nspr ..\%__SRC%\inc\include\obsolete\protypes.h %_DEST%\inc%_EXT%\mozilla\nspr\obsolete\protypes.h ..\%__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% diff --git a/nss/readme.txt b/nss/readme.txt index de23a264c179..df65908204c4 100755 --- a/nss/readme.txt +++ b/nss/readme.txt @@ -1,56 +1,75 @@ -Relation between nss, moz, moz_prebuilt ---------------------------------------- -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 -easier than doing this with moz. - -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 -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 -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 -are also removed (inc/nss and inc/nspr). The nss libraries from the nss module -are then added to mozruntime.zip. - -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. - -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 -from mozruntime.zip. - -Fips 140 and signed libraries -------------------------------- -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 -not be part of the OOo installation sets. - -The *chk files do not match the libraries because we change the rpatch. - -libfreebl3 ----------- -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 -ooo/moz/extractfiles.mk -ooo/moz/zipped/makefile.mk -sun/moz_prebuilt/zipped/makefile.mk - - -See also -http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html - - -Windows builds of nss ---------------------- -To build mozilla on windows you'll need the mozilla build tools - -Build requirements containing the link to the build tools: -https://developer.mozilla.org/en/Windows_Build_Prerequisites#ss2.2 - -The direct link: - -http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.3.exe - - +Relation between nss, moz, moz_prebuilt +--------------------------------------- +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 +easier than doing this with moz. + +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 +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 +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 +are also removed (inc/nss and inc/nspr). The nss libraries from the nss module +are then added to mozruntime.zip. + +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. + +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 +from mozruntime.zip. + +Fips 140 and signed libraries +------------------------------- +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 +not be part of the OOo installation sets. + +Signing has been turned off because +- we change the rpath (install names) after signing which breaks the signatures +(Mac) +- sqlite conflicts with the system sqlite when signing which breaks the build + + +libfreebl3 +---------- +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 +ooo/moz/extractfiles.mk +ooo/moz/zipped/makefile.mk +sun/moz_prebuilt/zipped/makefile.mk + +See also +http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html + + +Windows builds of nss +--------------------- +To build mozilla on windows you'll need the mozilla build tools + +Build requirements containing the link to the build tools: +https://developer.mozilla.org/en/Windows_Build_Prerequisites#ss2.2 + +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 -- cgit From e71aa67dbc0ed1f2833a756edf80efc8bb218ea5 Mon Sep 17 00:00:00 2001 From: Joachim Lingner Date: Mon, 30 Nov 2009 16:26:38 +0100 Subject: jl144: #i105977# nss breaks on 64 bit FreeBSD --- nss/makefile.mk | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'nss') diff --git a/nss/makefile.mk b/nss/makefile.mk index 4ddd2b39015f..8c15297cdf44 100644 --- a/nss/makefile.mk +++ b/nss/makefile.mk @@ -65,6 +65,13 @@ USE_64:=1 .ENDIF # "$(CPU)"=="X" .ENDIF # "$(OS)$(COM)"=="LINUXGCC" +.IF "$(OS)$(COM)"=="FREEBSDGCC" +.IF "$(CPU)"=="X" +# force 64-bit buildmode +USE_64:=1 +.EXPORT : USE_64 +.ENDIF # "$(CPU)"=="X" +.ENDIF # "$(OS)$(COM)"=="LINUXGCC" .IF "$(OS)"=="MACOSX" .IF "$(EXTRA_CFLAGS)"!="" -- cgit From 56cb5496a8a8a64ab4a6a6d8d820d9dc3bded3c9 Mon Sep 17 00:00:00 2001 From: Joachim Lingner Date: Mon, 7 Dec 2009 13:28:21 +0100 Subject: jl144: #i106132# lib files on Windows were not delivered --- nss/prj/d.lst | 1 + 1 file changed, 1 insertion(+) (limited to 'nss') diff --git a/nss/prj/d.lst b/nss/prj/d.lst index d70484ceab28..f1090ca8d91e 100755 --- a/nss/prj/d.lst +++ b/nss/prj/d.lst @@ -25,6 +25,7 @@ mkdir: %_DEST%\lib%_EXT%\sqlite ..\%__SRC%\lib\libssl3.* %_DEST%\lib%_EXT%\libssl3.* ..\%__SRC%\lib\libsqlite3.* %_DEST%\lib%_EXT%\sqlite\libsqlite3.* +..\%__SRC%\lib\*.lib %_DEST%\lib%_EXT% ..\%__SRC%\bin\* %_DEST%\bin%_EXT% -- cgit