[Pidgin] BuildingWinNSS modified

Pidgin trac at pidgin.im
Sat Oct 15 14:06:26 EDT 2011


Changed page "BuildingWinNSS" by itsnotabigtruck from 98.97.99.230*
Page URL: <http://developer.pidgin.im/wiki/BuildingWinNSS>
Diff URL: <http://developer.pidgin.im/wiki/BuildingWinNSS?action=diff&version=36>
Revision 36
Comment: Updated for WDK build

-------8<------8<------8<------8<------8<------8<------8<------8<--------
Index: BuildingWinNSS
=========================================================================
--- BuildingWinNSS (version: 35)
+++ BuildingWinNSS (version: 36)
@@ -8,82 +8,52 @@
 
 == Prerequisites ==
 
- 1. '''Get GNU Patch:'''[[BR]]Download [http://gnuwin32.sourceforge.net/packages/patch.htm Patch] from the !GnuWin32 project. Note that Windows thinks that "patch.exe" is a patch for a program and will prompt you to UAC elevate it whenever you use it (see [http://math.nist.gov/oommf/software-patchsets/patch_on_Windows7.html this page]).
- 1. '''Get the Windows SDK:'''[[BR]]Download the [https://www.microsoft.com/download/en/details.aspx?id=8279 Windows SDK for Windows 7 SP1] and install it to the default location.
- 1. '''Get the Windows Driver Kit (WDK):'''[[BR]]Download the [https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11800 WDK for Windows 7 SP1] and install it to the default location.
- 1. '''Get the Netscape Portable Runtime (NSPR):'''[[BR]]Download the latest version of [ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ NSPR] (currently 4.8.9) and extract it to `c:\devel\pidgin-devel\win32-dev`.
- 1. '''Get Network Security Services (NSS):'''[[BR]]Download the latest version of [ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ NSS] (currently 3.12.11 w/ CKBI 1.87) and extract it to the same location.
- 1. '''Get MozillaBuild:'''[[BR]]Download the latest version of [ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe MozillaBuild] and install it to `c:\devel\mozilla-build`.
+ 1. '''GNU Patch:'''[[BR]]Download [http://gnuwin32.sourceforge.net/packages/patch.htm Patch] from the !GnuWin32 project. Note that Windows thinks that "patch.exe" is a patch for a program and will prompt you to UAC elevate it whenever you use it (see [http://math.nist.gov/oommf/software-patchsets/patch_on_Windows7.html this page]).
+ 1. '''Windows SDK:'''[[BR]]Download the [https://www.microsoft.com/download/en/details.aspx?id=8279 Windows SDK for Windows 7 SP1] and install it to the default location. If you have Visual Studio 2010 Pro or Ultimate installed, this step can be ignored.[[BR]]''NOTE:'' The build script below is written for Visual Studio 2010 and its included SDK - it might be necessary to tweak the script for any other configuration.
+ 1. '''Windows Driver Kit (WDK):'''[[BR]]Download the [https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11800 WDK for Windows 7 SP1] and install it to the default location.
+ 1. '''Netscape Portable Runtime (NSPR) source:'''[[BR]]Download the latest version of [ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ NSPR] (currently 4.8.9) and extract it to `c:\devel\pidgin-devel\win32-dev`.
+ 1. '''Network Security Services (NSS) source:'''[[BR]]Download the latest version of [ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/ NSS] (currently 3.12.11 w/ CKBI 1.87) and extract it to the same location.
+ 1. '''MozillaBuild:'''[[BR]]Download the latest version of [ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe MozillaBuild] and install it to `c:\devel\mozilla-build`.
+ 1. '''WDK build patch:'''[[BR]]Download the [http://code.google.com/p/xchat-wdk/ XChat-WDK project]'s [http://code.google.com/p/xchat-wdk/source/browse/ext/nss-wdk/nss-wdk.patch?name=wdk WDK build patch] to `c:\devel\pidgin-devel\win32-dev\nss-wdk.patch`.
+ 1. '''WDK build script:'''[[BR]]Download [https://gist.github.com/1289898 this build script] to `c:\devel\pidgin-devel\win32-dev\build-x86.bat`.
 
-== Apply patches ==
+== Prepare the build tree ==
 
-Download the [http://code.google.com/p/xchat-wdk/source/browse/ext/nss-wdk/nss-wdk.patch?name=wdk WDK build patch] from the [http://code.google.com/p/xchat-wdk/ XChat-WDK project]. Open a command prompt at your NSS/NSPR directory and run `"c:\path\to\patch.exe" -p1 --binary -i nss-wdk.patch`.
+Open a command prompt at your NSS/NSPR directory and run `"%PROGRAMFILES(X86)%\GnuWin32\bin\patch" -p1 --dry-run --binary -i nss-wdk.patch`. If there aren't any problems, re-run the command without the `--dry-run` flag.
+
+Once this is done, open `c:\devel\pidgin-devel\win32-dev\build-x86.bat` in your editor of choice and adjust it so that the WDK binaries, mt.exe from the Windows SDK, and lib.exe from the Visual C++ compiler package are all in the PATH. If you have Visual Studio 2010 installed, it should work without modification as long as the paths are correct.
 
 == Choose build configuration ==
 
-The two most important options are:
+The NSS build configuration is controlled by environment variables. The most important options are:
 
- * optimization
- * debug RTL
+ * Enable optimizations (BUILD_OPT)
+ * Use debug runtime library (USE_DEBUG_RTL)
+ * Enable elliptic curve cryptography (NSS_ENABLE_ECC)
+ * Disable legacy DBM database (NSS_DISABLE_DBM)
 
-You can toggle them with environmental variables. Here's the matrix:
+The first two options select the build type according to the matrix below:
 
    {{{
 #!rst
 +---------------+--------------------+---------------------+
-|               |``USE_DEBUG_RTL=``  |``USE_DEBUG_RTL=1``  |
+|               |``USE_DEBUG_RTL=0`` |``USE_DEBUG_RTL=1``  |
 +===============+====================+=====================+
-|``BUILD_OPT=`` |``WINNT6.1_DBG.OBJ``|``WINNT6.1_DBG.OBJD``|
+|``BUILD_OPT=0``|``WINNT5.1_DBG.OBJ``|``WINNT5.1_DBG.OBJD``|
 +---------------+--------------------+---------------------+
-|``BUILD_OPT=1``|``WINNT6.1_OPT.OBJ``|``N/A``              |
+|``BUILD_OPT=1``|``WINNT5.1_OPT.OBJ``|``N/A``              |
 +---------------+--------------------+---------------------+
    }}}
 
-The version after WINNT is the version of your current OS (you can check it with the `winver` command). WINNT6.1 assumes you're building on Windows 7. The default setting is an unoptimized build with the release RTL (WINNT6.1_DBG.OBJ).
+The version after WINNT is the target OS version - WINNT5.1 assumes you're building for Windows XP.
 
-'''WARNING''': it seems the builder considers an option to be enabled if it's set, so if you enter `set BUILD_OPT=0` you'll get an optimized build, not a debug one. The answer lies in `mozilla\security\coreconf\WIN32.mk`. They check variables with ifdefs, which is just plain wrong (or they should mention it this way in the documentation).
+The second two options control which features are enabled. Normally, both NSS_ENABLE_ECC and NSS_DISABLE_DBM should be selected.
 
-More info about the build variables can be found on the [https://developer.mozilla.org/en/NSS_reference/Building_and_installing_NSS/Build_instructions Build instructions] page of the Mozilla Developer Central.
+When using the build script below, the default build is WINNT5.1_OPT.OBJ with ECC enabled and DBM disabled. In order to override these settings, set the corresponding environment variables to 0 or 1 before performing the build. Note that this behavior is different than when using the Mozilla makefiles directly. More info about the build variables can be found on the [https://developer.mozilla.org/en/NSS_reference/Building_and_installing_NSS/Build_instructions build instructions] page of Mozilla Developer Central.
 
-== Build NSS ==
+== Do the build ==
 
-  ''To be updated with DDK build instructions''
-
-The easiest way to do this with consistent results is to make a build script (the following is what the binary included with Pidgin is built with):
-{{{
-#!sh
-#!/bin/bash
-
-#The path that we've extracted the nss source tarball into
-NSS_SRC_DIR=/c/devel/pidgin-devel/win32-dev
-
-#Set our Build Arguments:
-#Optimized Build
-export BUILD_OPT=1
-#Target Windows NT Family
-export OS_TARGET=WINNT
-#Use GCC (as opposed to VC)
-export NS_USE_GCC=1
-
-#Set up the build path with MinGW and Moztools
-PATH=/c/devel/pidgin-devel/win32-dev/mingw/bin
-PATH=/c/devel/mozilla-build/moztools/bin:$PATH
-PATH=/c/devel/mozilla-build/msys/bin:$PATH
-export PATH
-
-pushd $NSS_SRC_DIR/nss-3.12.8/mozilla/security/nss
-make nss_build_all
-popd
-
-}}}
-
-Save this script as `build.sh`. Launch a command prompt and run:
-
-{{{
-c:\devel\mozilla-build\msys\bin\sh build.sh
-}}}
-
-The build will likely not complete successfully due to hardcoded library paths and other problems in the build system (it will bail out building `.../cmd/bltest`).  If it gets that far, it has already built the various libraries successfully.
+Launch a Windows XP build environment window (Start > All Programs > Windows Driver Kits > WDK 7600.16385.1 > Build Environments > Windows XP > x86 Free Build Environment) and navigate to `c:\devel\pidgin-devel\win32-dev\`. When you're ready to build, run `build-x86` and wait for the build to complete!
 
 The resulting binaries will be placed in `c:\devel\pidgin-devel\win32-dev\nss-3.12.8\mozilla\dist`. The contents of `private` and `public` are the same across all configurations so they can be distributed separately. The following files need to be distributed with Pidgin:
 

-------8<------8<------8<------8<------8<------8<------8<------8<--------

* The IP shown here might not mean anything if the user or the server is
behind a proxy.

--
Pidgin <http://pidgin.im>
Pidgin

This is an automated message. Someone at http://pidgin.im added your email
address to be notified of changes on BuildingWinNSS. If it was not you, please
report to .


More information about the Wikiedit mailing list