office-gobmx/external/nss
Tor Lillqvist 142d527a6b Make NSS build also as 64-bit ARM code for iOS
Change-Id: I03cda6ca1886a3cfad87cc438282eeea8c2a5299
2014-08-13 20:08:19 +03:00
..
asan.patch.1
ExternalPackage_nss.mk First attempt at building NSS for iOS, too 2014-08-11 19:40:36 +03:00
ExternalProject_nss.mk Make NSS build also as 64-bit ARM code for iOS 2014-08-13 20:08:19 +03:00
Makefile
Module_nss.mk First attempt at building NSS for iOS, too 2014-08-11 19:40:36 +03:00
nsinstall.py
nspr-4.9-build.patch.3
nspr-build-config.patch
nss-3.13.3-build.patch.3
nss-3.13.5-zlib-werror.patch
nss-chromium-nss-static.patch Use Chromium's patch to build NSS statically for iOS 2014-08-12 17:03:45 +03:00
nss-ios.patch Make NSS build also as 64-bit ARM code for iOS 2014-08-13 20:08:19 +03:00
nss-linux-x86.patch.0
nss-more-static.patch More NSS static linking patches 2014-08-12 19:56:08 +03:00
nss-pem.patch fdo#72277: NSS-PEM windows fixes. 2014-07-15 21:32:25 +02:00
nss-win32-make.patch.1
nss.aix.patch
nss.mingw.patch.3
nss.patch
nss.windows.patch
nss_macosx.patch
README nss: document why --with-system-nss can't be used in generic builds 2014-07-16 11:15:33 +02:00
ubsan.patch.0 left shift of 4276994303 by 32 places cannot be represented in type 'long' 2014-08-06 16:50:11 +02:00
UnpackedTarball_nss.mk More NSS static linking patches 2014-08-12 19:56:08 +03:00

Contains the security libraries which are also part of [[moz]]. However nss is meant to be more current.

== Relation between nss, moz, moz_prebuilt ==

nss contains 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 built depends on an environment variable (SYSTEM_NSS=NO) 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 system sqlite in Mac OS X versions older than 10.6 is incompatible
with the softokn3 in nss which requires a later version of sqlite.
With SDK 10.6 (and more current SDK) we use
NSS_USE_SYSTEM_SQLITE=1
to build using the system sqlite.

The problem described here was found on Mac with OS 10.6
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:
[https://issues.apache.org/ooo/show_bug.cgi?id=106132]

== system NSS on Linux ==

Note that different Linux distributions use different SONAMEs for the
NSS libraries, so it is not possible to use --with-system-nss and build
a portable generic LO installation set, despite NSS upstream apparently
maintaining ABI compatibility.

Debian Squeeze:
0x000000000000000e (SONAME)             Library soname: [libnss3.so.1d]
Fedora 20:
0x000000000000000e (SONAME)             Library soname: [libnss3.so]

For the record, the LSB specified SONAME is libnss3.so
http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/libnss3.html