diff options
Diffstat (limited to 'doc/rst/legacy/reference/building_and_installing_nss')
5 files changed, 290 insertions, 0 deletions
diff --git a/doc/rst/legacy/reference/building_and_installing_nss/build_instructions/index.rst b/doc/rst/legacy/reference/building_and_installing_nss/build_instructions/index.rst new file mode 100644 index 000000000..eb9c7c749 --- /dev/null +++ b/doc/rst/legacy/reference/building_and_installing_nss/build_instructions/index.rst @@ -0,0 +1,152 @@ +.. _mozilla_projects_nss_reference_building_and_installing_nss_build_instructions: + +Build instructions +================== + +.. container:: + + .. note:: + + These instructions are outdated. Use the :ref:`mozilla_projects_nss_building` page for more + recent information. + + Numerous optional features of NSS builds are controlled through make variables. + + gmake is GNU make, usually your Linux-distro-regular "make" binary file, unless maybe it is a BSD + make. Make variables may be set on the gmake command line, e.g., + + .. code:: eval + + gmake variable=value variable=value target1 target2 + + or defined in the environment, e.g. (for POSIX shells), + + .. code:: eval + + variable=value; export variable + gmake target1 target2 + + Here are some (not all) of the make variables that affect NSS builds: + + - BUILD_OPT: If set to 1, means do optimized non-DEBUG build. Default is DEBUG, non-optimized + build. + - USE_DEBUG_RTL: If set to 1, on Windows, causes build with debug version of the C run-time + library. + - NS_USE_GCC: On platforms where gcc is not the native compiler, tells NSS to build with gcc + instead of the native compiler. Default is to build with the native compiler. + - USE_64: On platforms that support both 32-bit and 64-bit ABIs, tells NSS to build for the + 64-bit ABI. Default is 32-bit ABI, except on platforms that do not support a 32-bit ABI. + - MOZ_DEBUG_SYMBOLS: tells NSS to build with debug symbols, even in an optimized build. On + windows, in both DEBUG and optimized builds, when using MSVC, tells NSS to put symbols in a + .pdb file. Required to build with MSVC 8 (2005 Express). Default is not to put debug symbols + into optimized builds, and for MSVC, is to put symbols into the .exe or .dll file. + - NSDISTMODE: If set to 'copy', mozilla/dist/<OBJ_STUFF>/bin/\* real files instead of symbolic + links. + + These variables should be either undefined, or set to "1". Results are undefined for variables + set to "0". + + For Windows, install + the `MozillaBuild <https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Windows_Prerequisites#mozillabuild>`__ environment + and Microsoft Visual Studio 2010. (The free edition works, and other versions like Visual Studio + 2008 and Visual Studio 2012 may also work.) Use start-shell-msvc2010.bat from MozillaBuild to get + a bash shell with the PATH already configured, and execute these instructions from within that + bash shell. + + For RHEL-5, you need to use the new assembler. You can install the new assembler as root as + follows: + + .. code:: notranslate + + yum install binutils220 + + You can then use the new assembler by adding /usr/libexec/binutils220 to the beginning of your + build path. This can be done in sh or bash as follows: + + .. code:: notranslate + + export PATH=/usr/libexec/binutils220:$PATH + + The following build instructions should work for all platforms (with some platform-specific + changes as noted). + +.. _build_instructions_for_recent_versions_(mercurial): + +`Build Instructions for Recent Versions (Mercurial) <#build_instructions_for_recent_versions_(mercurial)>`__ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. container:: + + #. Clone the NSPR and NSS repositories. + + .. code:: notranslate + + hg clone https://hg.mozilla.org/projects/nspr + hg clone https://hg.mozilla.org/projects/nss + + #. If you want to build a releases other than the tips of these repositories, then switch to the + release tags: + + .. code:: notranslate + + cd nspr + hg update NSPR_4_9_5_RTM + cd ../nss + hg update NSS_3_14_2_RTM + cd .. + + #. Set environment variables: + + #. If you want a non-debug optimized build, set ``BUILD_OPT=1`` in your environment. + Otherwise, you get a debug build. On Windows, if you want a debug build with the system's + debug RTL libraries, set ``USE_DEBUG_RTL=1`` in your environment. + #. On Unix platforms, except Alpha/OSF1, if you want a build for the system's 64-bit ABI, set + ``USE_64=1`` in your environment. By default, NSS builds for the 32-bit environment on all + platforms except Alpha/OSF1. + #. To build with ``gcc`` on platforms other than Linux and Windows, you need to set two more + environment variables: + + - ``NS_USE_GCC=1`` + ``NO_MDUPDATE=1`` + + #. For HP-UX, you must set the environment variable ``USE_PTHREADS`` to 1. + + #. ``cd nss`` + + #. ``gmake nss_build_all`` + + The output of the build will be in the ``dist`` directory alongside the ``nspr`` and ``nss`` + directories. + + For information on troubleshooting the build system, see + :ref:`mozilla_projects_nss_reference_troubleshoot`. + +.. _build_instructions_for_older_versions_(cvs): + +`Build Instructions for Older Versions (CVS) <#build_instructions_for_older_versions_(cvs)>`__ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. container:: + + #. Set the environment variable ``CVSROOT`` to + ``:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot`` + + #. ``cvs login`` (if you haven't before). + + #. Check out NSPR and NSS: + + .. code:: notranslate + + cvs co -r NSPR_4_9_5_RTM NSPR + cvs co -r NSS_3_14_2_RTM NSS + + #. Set environment variables as described in the Mercurial-based instructions. + + #. ``cd mozilla/security/nss`` + + #. ``gmake nss_build_all`` + + The output of the build will be in ``mozilla/dist`` subdirectory. + + For information on troubleshooting the build system, see + :ref:`mozilla_projects_nss_reference_troubleshoot`.
\ No newline at end of file diff --git a/doc/rst/legacy/reference/building_and_installing_nss/index.rst b/doc/rst/legacy/reference/building_and_installing_nss/index.rst new file mode 100644 index 000000000..c51a681b8 --- /dev/null +++ b/doc/rst/legacy/reference/building_and_installing_nss/index.rst @@ -0,0 +1,12 @@ +.. _mozilla_projects_nss_reference_building_and_installing_nss: + +Building and installing NSS +=========================== + +.. container:: + + This chapter describes how to build and install NSS. + + - :ref:`mozilla_projects_nss_reference_building_and_installing_nss_build_instructions` + - :ref:`mozilla_projects_nss_reference_building_and_installing_nss_installation_guide` + - :ref:`mozilla_projects_nss_reference_building_and_installing_nss_sample_manual_installation`
\ No newline at end of file diff --git a/doc/rst/legacy/reference/building_and_installing_nss/installation_guide/index.rst b/doc/rst/legacy/reference/building_and_installing_nss/installation_guide/index.rst new file mode 100644 index 000000000..e912fdf4c --- /dev/null +++ b/doc/rst/legacy/reference/building_and_installing_nss/installation_guide/index.rst @@ -0,0 +1,50 @@ +.. _mozilla_projects_nss_reference_building_and_installing_nss_installation_guide: + +Installation guide +================== + +.. container:: + + The build system of NSS originated from Netscape's build system, which predated the "configure; + make; make test; make install" sequence that we're familiar with now. Our makefiles also have an + "install" target, but it has a different meaning: our "install" means installing the headers, + libraries, and programs in the appropriate directories under mozilla/dist. + + So right now you need to manually install the headers, libraries, and programs in the directories + you want. If you install the libraries in a directory other than /usr/lib, you usually need to + set the LD_LIBRARY_PATH environment variable. You can avoid that by installing the libraries in a + directory that is $ORIGIN/../lib, where $ORIGIN is the directory where the programs are + installed. This is done here: + `http://lxr.mozilla.org/security/sour...platlibs.mk#53 <http://lxr.mozilla.org/security/source/security/nss/cmd/platlibs.mk#53>`__ + + .. code:: eval + + 53 ifeq ($(OS_ARCH), Linux) + 54 ifeq ($(USE_64), 1) + 55 EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib' + 56 else + 57 EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib' + 58 endif + 59 endif + + For example, if you install certutil in /foo/bar/nss/bin and the .so's in /foo/bar/nss/lib, then + you only need to add /foo/bar/nss/bin to your PATH; you don't need to set LD_LIBRARY_PATH. + + The libraries you need to install are listed below. + + NSPR: + + - libnspr4.so + - libplds4.so + - libplc4.so + + NSS: (Note the use of \* for libfreebl -- some platforms have multiple ones) + + - libfreebl*3.so + - libfreebl*3.chk + - libsoftokn3.so + - libsoftokn3.chk + - libnss3.so + - libsmime3.so + - libssl3.so + - libnssckbi.so
\ No newline at end of file diff --git a/doc/rst/legacy/reference/building_and_installing_nss/migration_to_hg/index.rst b/doc/rst/legacy/reference/building_and_installing_nss/migration_to_hg/index.rst new file mode 100644 index 000000000..4be4ef099 --- /dev/null +++ b/doc/rst/legacy/reference/building_and_installing_nss/migration_to_hg/index.rst @@ -0,0 +1,49 @@ +.. _mozilla_projects_nss_reference_building_and_installing_nss_migration_to_hg: + +Migration to HG +=============== + +.. container:: + + | The NSPR, NSS and related projects have stopped using Mozilla'a CVS server, but have migrated + to + | Mozilla's HG (Mercurial) server. + | Each project now lives in its own separate space, they can be found at: + | https://hg.mozilla.org/projects/nspr/ + | https://hg.mozilla.org/projects/nss/ + | https://hg.mozilla.org/projects/jss/ + | https://hg.mozilla.org/projects/python-nss/ + + | This migration has been used as an opportunity to change the layout of the + | source directories. + | For NSPR, "mozilla/nsprpub" has been removed from the directory + | hierarchy, all files now live in the top directory of the NSPR + | repository. + | Likewise for NSS and JSS, "mozilla/security" has been removed and files + | now live at the top level. In addition for NSS, we have merged the + | contents of directories mozilla/dbm and mozilla/security/dbm into the + | new directory lib/dbm. + | Besides the new layout, the build system hasn't changed. Most parts of + | the NSS build instructions remain valid, especially the instructions + | about setting environment variables. + | Updated instructions for building NSS with NSPR can be found at: + | :ref:`mozilla_projects_nss_reference_building_and_installing_nss_build_instructions` + | It's best to refer to the above document to learn about the various + | environment variables that you might have to set to build on your + | platform (this part hasn't changed). + | However, below is a brief summary that shows how to checkout the + | source code and build both NSPR and NSS: + | mkdir workarea + | cd workarea + | hg clone https://hg.mozilla.org/projects/nspr + | hg clone https://hg.mozilla.org/projects/nss + | cd nss + | # set USE_64=1 on 64 bit architectures + | # set BUILD_OPT=1 to get an optimized build + | make nss_build_all + | Note that the JSS project has been given a private copy of the former + | mozilla/security/coreconf directory, allowing it to remain stable, + | and only update its build system as necessary. + | Because of the changes described above, we have decided to use a new + | series of (minor) version numbers. The first releases using the new code + | layout will be NSPR 4.10 and NSS 3.15
\ No newline at end of file diff --git a/doc/rst/legacy/reference/building_and_installing_nss/sample_manual_installation/index.rst b/doc/rst/legacy/reference/building_and_installing_nss/sample_manual_installation/index.rst new file mode 100644 index 000000000..4f89bf2ad --- /dev/null +++ b/doc/rst/legacy/reference/building_and_installing_nss/sample_manual_installation/index.rst @@ -0,0 +1,27 @@ +.. _mozilla_projects_nss_reference_building_and_installing_nss_sample_manual_installation: + +Sample manual installation +========================== + +.. container:: + + | + | The NSS build system does not include a target to install header files and shared libraries in + the system directories, so this needs to be done manually. + + After building NSS with *"gmake nss_build_all"*, the resulting build can be found in the NSS + source tree as follows: + + - NSS header files: *mozilla/dist/public/nss* + - NSPR header files: *mozilla/dist/*\ **<OBJ-DIR>**\ */include* + - NSPR/NSS shared libs: *mozilla/dist/*\ **<OBJ-DIR>**\ */lib* + - NSS binary executables: *mozilla/dist/*\ **<OBJ-DIR>**\ */bin*. + + where **<OBJ-DIR>** would vary according to the type of build and the platform. For example, + **<OBJ-DIR>** for a debug build of NSS on the x86 platform with a Linux kernel version 2.6 with + glibc would be: Linux2.6_x86_glibc_PTH_DBG.OBJ + + From these directories, you can copy the files to any system (or other) directory. If the + destination directories are not what's standard for the system (e.g. /usr/include, /usr/lib and + /usr/bin for a Linux system), you need to edit the corresponding environment variables or + compiler/linker arguments.
\ No newline at end of file |