NSS 3.89.1 Release

110 views
Skip to first unread message

Dennis Jackson

unread,
May 5, 2023, 1:32:50 PM5/5/23
to dev-tec...@mozilla.org
Dear all,

Network Security Services (NSS) 3.89.1 was released on 5th May 2023. This is a minor release ahead of the larger 3.90 next cycle.

The HG tag is NSS_3_89_1_RTM. This version of NSS requires NSPR 4.35 or newer.

NSS 3.89 source distributions are available on ftp.mozilla.org for
secure HTTPS download:
<https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_89_1_RTM/src/>

Changes:

   - Bug 1804505 - Update the technical constraints for KamuSM.
   - Bug 1822921 - Add BJCA Global Root CA1 and CA2 root certificates.

NSS 3.89.1 shared libraries are backwards-compatible with all older NSS 3.x shared libraries. A program linked with older NSS 3.x shared libraries will work with this new version of the shared libraries without recompiling or relinking. Furthermore, applications that restrict their use of NSS APIs to the functions listed in NSS Public Functions will remain compatible with future versions of the NSS shared libraries.

Bugs discovered should be reported by filing a bug report at
<https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS>

Release notes will be available at
<https://firefox-source-docs.mozilla.org/security/nss/releases/index.html>
though you should expect a small delay.

Best,
Dennis

Sam Caro

unread,
May 15, 2023, 2:49:52 PM5/15/23
to dev-tec...@mozilla.org, Dennis Jackson

I have been trying to build NSS 3.89.1 on windows 
nss/build.sh  does not work 

Do you any suggestions on what to check to make it work?
like what arguments to  nss/build.sh to use

Thanks

Anna Weine

unread,
May 15, 2023, 4:08:56 PM5/15/23
to Sam Caro, dev-tec...@mozilla.org, Dennis Jackson
Good evening, 
Could you try to run nss/build.sh -v ? 



--
You received this message because you are subscribed to the Google Groups "dev-tec...@mozilla.org" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dev-tech-cryp...@mozilla.org.
To view this discussion on the web visit https://groups.google.com/a/mozilla.org/d/msgid/dev-tech-crypto/a166beb8-b258-452f-9185-6db236268066n%40mozilla.org.

Sam Caro

unread,
May 15, 2023, 4:22:09 PM5/15/23
to Anna Weine, dev-tec...@mozilla.org, Dennis Jackson

I did not much from the verbose option

Sam Caro

unread,
May 16, 2023, 5:04:09 PM5/16/23
to dev-tec...@mozilla.org, Sam Caro, dev-tec...@mozilla.org, Dennis Jackson, Anna Weine
Got further ---- Now it can't find the standard library headers
What is the correct way to define the Standard library headers location

scaro@JSSLW18120040 /C/nss-3.89.1/nss
$ make nss_build_all
C:/tools/make/make-4.4/WinRel/make.exe build_nspr
make[1]: Entering directory 'C:/nss-3.89.1/nss'
mkdir -p ./../nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ
cd ./../nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ ; \
CC="cl" CXX="cl" sh ../configure \
--disable-debug --enable-optimize --enable-64bit \
--with-dist-prefix='$(topsrcdir)/../dist/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ' \
--with-dist-includedir='$(topsrcdir)/../dist/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ/include'
configure: loading site script C:/tools/mozilla-build/msys2/etc/config.site
checking build system type... x86_64-pc-msys
checking host system type... x86_64-pc-msys
checking target system type... x86_64-pc-msys
checking for cl... cl
configure: WARNING: Unknown version of the Microsoft (R) Manifest Tool.
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config/Makefile
config.status: creating config/autoconf.mk
config.status: creating config/nsprincl.mk
config.status: creating config/nsprincl.sh
config.status: creating config/nspr-config
config.status: creating config/nspr.pc
config.status: creating lib/Makefile
config.status: creating lib/ds/Makefile
config.status: creating lib/libc/Makefile
config.status: creating lib/libc/include/Makefile
config.status: creating lib/libc/src/Makefile
config.status: creating lib/tests/Makefile
config.status: creating pkg/Makefile
config.status: creating pr/Makefile
config.status: creating pr/include/Makefile
config.status: creating pr/include/md/Makefile
config.status: creating pr/include/obsolete/Makefile
config.status: creating pr/include/private/Makefile
config.status: creating pr/src/Makefile
config.status: creating pr/src/io/Makefile
config.status: creating pr/src/linking/Makefile
config.status: creating pr/src/malloc/Makefile
config.status: creating pr/src/md/Makefile
config.status: creating pr/src/md/windows/Makefile
config.status: creating pr/src/memory/Makefile
config.status: creating pr/src/misc/Makefile
config.status: creating pr/src/threads/Makefile
config.status: creating pr/tests/Makefile
config.status: creating pr/tests/dll/Makefile
config.status: creating pr/src/threads/combined/Makefile
config.status: executing default commands
C:/tools/make/make-4.4/WinRel/make.exe -C ./../nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ
make[2]: Entering directory 'C:/nss-3.89.1/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ'
C:/tools/make/make-4.4/WinRel/make.exe -C config export
make[3]: Entering directory 'C:/nss-3.89.1/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ/config'
cl -Fonow.obj -c      -W3 -nologo -GF -Gy -FS -MD -GT -O2   -UDEBUG -U_DEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DN
DEBUG=1 -DXP_PC=1 -DWIN32=1 -D_CRT_SECURE_NO_WARNINGS=1 -D_CRT_NONSTDC_NO_WARNINGS=1 -DWINNT=1 -D_AMD64_=1 -DFORCE_PR_LOG   "C:/nss-3.89.1/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ/config/../../config/now.c"
now.c
C:/nss-3.89.1/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ/config/../../config/now.c(6): fatal error C1034: stdio.h: no include path set
make[3]: *** [../../config/rules.mk:450: now.obj] Error 2
make[3]: Leaving directory 'C:/nss-3.89.1/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ/config'
make[2]: *** [../config/rules.mk:163: export] Error 2
make[2]: Leaving directory 'C:/nss-3.89.1/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ'
make[1]: *** [Makefile:142: build_nspr] Error 2
make[1]: Leaving directory 'C:/nss-3.89.1/nss'
make: *** [Makefile:51: nss_build_all] Error 2

Martin Thomson

unread,
May 16, 2023, 8:52:48 PM5/16/23
to Sam Caro, dev-tec...@mozilla.org, Dennis Jackson, Anna Weine
That's more helpful.

There is a script: https://searchfox.org/nss/source/coreconf/msvc.sh that we use to detect where all the MSVC stuff is.  Try poking at that to see what it produces.  (Run `bash -x .../msvc.sh` should produce a bunch of variables with paths that you can check.)

Sam Caro

unread,
May 17, 2023, 1:17:16 PM5/17/23
to dev-tec...@mozilla.org, Martin Thomson, dev-tec...@mozilla.org, Dennis Jackson, Anna Weine, Sam Caro

msvc.sh does define the environment variables INCLUDE and LIB 
INCLUDE does have the path to the standard library headers

But how do I make the build system use it?

According to  https://learn.microsoft.com/en-us/cpp/build/reference/cl-environment-variables?view=msvc-170
CL.exe uses the environment variables INCLUDE, LIB, LIBPATH, etc;

I defined those variables in the mozilla-build shell when I run build.sh or make but I still get that it cannot find stdio.h

This is the output:

cl -Fonow.obj -c      -W3 -nologo -GF -Gy -FS -MD -GT -O2   -UDEBUG -U_DEBUG -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DN
DEBUG=1 -DXP_PC=1 -DWIN32=1 -D_CRT_SECURE_NO_WARNINGS=1 -D_CRT_NONSTDC_NO_WARNINGS=1 -DWINNT=1 -D_AMD64_=1 -DFORCE_PR_LOG   "W:/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ/config/../../config/now.c"
now.c
W:/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ/config/../../config/now.c(6): fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
make[2]: *** [../../config/rules.mk:450: now.obj] Error 2
make[2]: Leaving directory 'W:/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ/config'
make[1]: *** [../config/rules.mk:163: export] Error 2
make[1]: Leaving directory 'W:/nspr/WINNT3.3.6-341.x86_64_x86_64_64_OPT.OBJ'
make: *** [Makefile:142: build_nspr] Error 2


Thanks

Sam Caro

unread,
May 26, 2023, 12:53:49 PM5/26/23
to dev-tec...@mozilla.org, Martin Thomson, Dennis Jackson, Anna Weine

Hello Anna, Dennis and Martin


I am still working on building nss 3.89.1 from windows 64bit

I got passed the problems from 2 weeks ago
Now I am getting the following

I am running 
USE_64=1 INCLUDE="${INCLUDE}" build.sh -v --msvc --opt

I also had to modify 
nspr/config/autoconfig.mk.in (added red text)

CC = 
INCLUDE="${INCLUDE}" @CC@
LD = 
LIB="${LIB}"  @LD@
RC = 
INCLUDE="${INCLUDE}" @RC@

This is the output
----------------------------------------------------
INCLUDE=":/C/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.32.31326/ATLMFC/include:/C/Program Files/Microsoft Visual Studio/2022/Professional/SDK/ScopeCppSDK/vc15/SDK/include/shared:/C/Program Files/Microsoft Visual Studio/2022/Professional/SDK/ScopeCppSDK/vc15/SDK/include/ucrt:/C/Program Files/Microsoft Visual Studio/2022/Professional/SDK/ScopeCppSDK/vc15/SDK/include/um:VC_HOME}/include:/C/Program Files/Microsoft Visual Studio/2022/Professional/SDK/ScopeCppSDK/vc15/VC/include:^^^^^^^:/C/Program Files/Microsoft Visual Studio/2022/Professional/SDK/ScopeCppSDK/vc15/VC/include" rc.exe  -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DNDEBUG=1 -DXP_PC=1 -DWIN32=1 -D_CRT_SECURE_NO_WARNINGS=1 -D_CRT_NONSTDC_NO_WARNINGS=1 -DWINNT=1 -D_AMD64_=1 -DFORCE_PR_LOG -D_NSPR_BUILD_ -I../../dist/include/nspr -I../../../pr/include -I../../../pr/include/private -Fonspr.res ../../../pr/src/nspr.rc
Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
Copyright (C) Microsoft Corporation.  All rights reserved.

./nspr.res finished
rm -f libnspr4.dll
LIB=":/C/Program Files/Microsoft Visual Studio/2022/Professional/SDK/ScopeCppSDK/vc15/VC/lib:/C/Program Files/Microsoft Visual Studio/2022/Professional/SDK/ScopeCppSDK/vc15/SDK/lib:/C/Program Files/Microsoft Visual Studio/2022/Professional/SDK/ScopeCppSDK/vc15/SDK/lib:/C/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.32.31326/lib/x64:/C/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.32.31326/atlmfc/lib/x64:/C/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.32.31326/lib/x64:/C/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.32.31326/lib/x64:/C/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.32.31326/lib/onecore/x64"  link -nologo -DLL -SUBSYSTEM:WINDOWS -DYNAMICBASE -OUT:"libnspr4.dll" -MAP   advapi32.lib ws2_32.lib mswsock.lib winmm.lib ./prvrsion.obj io/./prfdcach.obj io/./prmwait.obj io/./prmapopt.obj io/./priometh.obj io/./pripv6.obj io/./prlayer.obj io/./prlog.obj io/./prmmap.obj io/./prpolevt.obj io/./prprf.obj io/./prscanf.obj io/./prstdio.obj threads/./prcmon.obj threads/./prrwlock.obj threads/./prtpd.obj linking/./prlink.obj malloc/./prmalloc.obj malloc/./prmem.obj md/./prosdep.obj memory/./prshm.obj memory/./prshma.obj memory/./prseg.obj misc/./pralarm.obj misc/./pratom.obj misc/./prcountr.obj misc/./prdtoa.obj misc/./prenv.obj misc/./prerr.obj misc/./prerror.obj misc/./prerrortable.obj misc/./prinit.obj misc/./prinrval.obj misc/./pripc.obj misc/./prlog2.obj misc/./prlong.obj misc/./prnetdb.obj misc/./praton.obj misc/./prolock.obj misc/./prrng.obj misc/./prsystem.obj misc/./prthinfo.obj misc/./prtpool.obj misc/./prtrace.obj misc/./prtime.obj io/./prdir.obj io/./prfile.obj io/./prio.obj io/./prsocket.obj misc/./pripcsem.obj threads/./prcthr.obj threads/./prdump.obj threads/./prmon.obj threads/./prsem.obj threads/combined/./prucpu.obj threads/combined/./prucv.obj threads/combined/./prulock.obj threads/combined/./prustack.obj threads/combined/./pruthr.obj md/windows/./ntmisc.obj md/windows/./ntsec.obj md/windows/./ntsem.obj md/windows/./ntinrval.obj md/windows/./ntgc.obj md/windows/./ntio.obj md/windows/./ntthread.obj md/windows/./ntdllmn.obj md/windows/./win32_errors.obj md/windows/./w32ipcsem.obj md/windows/./w32poll.obj md/windows/./w32rng.obj md/windows/./w32shm.obj  ./nspr.res
   Creating library libnspr4.lib and object libnspr4.exp
prsocket.obj : error LNK2019: unresolved external symbol _MD_TCPSENDTO referenced in function SocketTCPSendTo
libnspr4.dll : fatal error LNK1120: 1 unresolved externals
make[3]: *** [../../../config/rules.mk:313: libnspr4.dll] Error 96
make[3]: Leaving directory 'C:/nss-3.89.1/nspr/Release/pr/src'
make[2]: *** [Makefile:334: export] Error 2
make[2]: Leaving directory 'C:/nss-3.89.1/nspr/Release/pr/src'
make[1]: *** [../../config/rules.mk:166: export] Error 2
make[1]: Leaving directory 'C:/nss-3.89.1/nspr/Release/pr'
make: *** [../config/rules.mk:166: export] Error 2
make: Leaving directory 'C:/nss-3.89.1/nspr/Release'


I found the following in nspr/pr/include/md/_win95.h
#ifdef _WIN64
#define _MD_TCPSENDTO                 _PR_MD_TCPSENDTO
#endif


So i have to assume  _WIN64 is not defined or _win95.h is not part of the build
When I use the command
USE_64=1 INCLUDE="${INCLUDE}" build.sh -v --msvc --opt

Isn't the build system supposed to define _WIN64 because I define env var USE_64=1 

What else do I have to define? 
USE_64=1 INCLUDE="${INCLUDE}" build.sh -v --msvc --opt

Thanks
Reply all
Reply to author
Forward
0 new messages