Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Version updates. Added 1.x and 2.x section where required

...

Unpack APR 1.7.6 source distribution in this directory (C:\tomcat-native-2.0.x\native\srclib\apr).    

Note: If you build the 1.3.x branch you will need to apply some patches. The patches should apply but depending on exactly which revision you are working with you may need to skip parts of the patch and/or apply an offset.

git apply apr-enable-ipv6.patch
git apply win-ipv6.patch

Then build:

 "c:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
nmake -f NMAKEmakefile CPU=X86 APR_DECLARE_STATIC=1   "c:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"  nmake -f NMAKEmakefile CPU=X64 APR_DECLARE_STATIC=1    cd ..\openssl

...

 cd ..
 set OPENSSL_VER=3.5.05
set APR_VER=1.7.6
 
 mkdir \deps-x86\apr-%APR_VER%\include
 mkdir \deps-x86\apr-%APR_VER%\lib
 mkdir \deps-x86\openssl-%OPENSSL_VER%\include
 mkdir \deps-x86\openssl-%OPENSSL_VER%\lib
 xcopy /E \deps-x86\apr-%APR_VER% \deps-x64\apr-%APR_VER%\
xcopy /E \deps-x86\openssl-%OPENSSL_VER% \deps-x64\openssl-%OPENSSL_VER%\

...

 "c:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
nmake -f NMAKEMakefile WITH_APR=C:\deps-x86\apr-%APR_VER% WITH_OPENSSL=C:\deps-x86\openssl-%OPENSSL_VER% CPU=X86 APR_DECLARE_STATIC=1 STATIC_CRT=Hybrid OPENSSL_NEW_LIBS=1 ENABLE_OCSP=1
 move WIN7_X86_DLL_RELEASE WIN7_X86_OCSP_DLL_RELEASE
 nmake -f NMAKEMakefile WITH_APR=C:\deps-x86\apr-%APR_VER% WITH_OPENSSL=C:\deps-x86\openssl-%OPENSSL_VER% CPU=X86 APR_DECLARE_STATIC=1 STATIC_CRT=Hybrid OPENSSL_NEW_LIBS=1
 
 "c:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
nmake -f NMAKEMakefile WITH_APR=C:\deps-x64\apr-%APR_VER% WITH_OPENSSL=C:\deps-x64\openssl-%OPENSSL_VER% CPU=X64 APR_DECLARE_STATIC=1 STATIC_CRT=Hybrid OPENSSL_NEW_LIBS=1 ENABLE_OCSP=1  move WIN7_X64_DLL_RELEASE WIN7_X64_OCSP_DLL_RELEASE  nmake -f NMAKEMakefile WITH_APR=C:\deps-x64\apr-%APR_VER% WITH_OPENSSL=C:\deps-x64\openssl-%OPENSSL_VER% CPU=X64 APR_DECLARE_STATIC=1 STATIC_CRT=Hybrid OPENSSL_NEW_LIBS=1

 

Tomcat Native Connector DLLs may then be found in C:\tomcat-native-2.0.x\native\WIN7_*_[OCSP_]DLL_RELEASE    

Construct the binary distributions    

 set VER=2.0.914
 mkdir tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin
 copy LICENSE.bin.win tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\LICENSE
copy NOTICE.bin.win tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\NOTICE
copy ..\README.txt tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\
copy srclib\VERSIONS tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\
 mkdir tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin
 mkdir tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin\x64
 copy C:\deps-x86\openssl-%OPENSSL_VER%\openssl.exe tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin

For 2.0.x copy WIN7_X86_DLL_RELEASE\tcnative-2.dll tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin copy WIN7_X86_DLL_RELEASE\tcnative-2.pdb tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin copy WIN7_X64_DLL_RELEASE\tcnative-2.dll tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin\x64 copy WIN7_X64_DLL_RELEASE\tcnative-2.pdb tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin\x64
For 1.0.x copy WIN7_X86_DLL_RELEASE\tcnative-1.dll tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin copy WIN7_X86_DLL_RELEASE\tcnative-1.pdb tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin copy WIN7_X64_DLL_RELEASE\tcnative-1.dll tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin\x64 copy WIN7_X64_DLL_RELEASE\tcnative-1.pdb tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin\bin\x64
 set PATH=%PATH%;%JAVA_HOME%\bin  cd tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin  jar -cMf ..\tomcat-native-%VER%-openssl-%OPENSSL_VER%-win32-bin.zip *  

...

These need to be signed and hashed before uploading for the release vote.    

Beware of typos in the name and contents of hash files for OCSP binaries ("ocsp" vs "oscp"). Such typos happened.    

A correct example:    

tomcat-native-2.0.5-openssl-3.0.10-ocsp-win32-bin.zip.sha512

8b82033602be8f47905804349093045b99ba9cc3f2dbf95d52be2a430bae84bbefd0b938f6b0fa9d5c54af20fcb4a00b4dd2325d7482d3cf59a2463c0935d86f *tomcat-native-2.0.5-openssl-3.0.10-ocsp-win32-bin.zip

tomcat-native-2.0.5-openssl-3.0.10-win32-bin.zip.sha512

...