Third-party dependencies: where each platform gets them, and how to check versions

Objeck pins little itself. The HTTP/2 and HTTP/3 stack (nghttp2, ngtcp2, nghttp3, AWS-LC) is built from pinned sources by tools/deps/build_quic_deps.sh and linked statically on Linux and macOS. The TLS, audio, vision and inference libraries come from each platform's package channel at build time, so security fixes arrive with that channel — and a channel that is behind is behind for every release built on it. This page records the provenance so an audit is a lookup, not an archaeology dig. The few versions the tree pins are in tools/deps/build_quic_deps.sh (AWS-LC), tools/deps/build_macos_deps.sh (the macOS static builds) and the $opencvVersion of the Windows OpenCV download in the three build workflows.

LibraryWindows x64 / ARM64Linux x64 / ARM64macOS ARM64Used by
mbedTLSvcpkg mbedtls:<arch>-windows (ci-build.yml, "Install Windows dependencies")apt libmbedtls-dev3.6.4, static, tools/deps/build_macos_deps.sh (in-tree mbedtls_config.h)TLS sockets, HTTPS, libobjk_crypto hashes/ciphers
nghttp2vcpkg nghttp2v1.70.0, static, tools/deps/build_quic_deps.shv1.70.0, static, same scriptHTTP/2 (net_h2)
ngtcp2 / nghttp3 / AWS-LCnot used: HTTP/3 goes through WinHTTP (Windows 11 and later)ngtcp2 v1.25.0, nghttp3 v1.18.0, AWS-LC v5.8.0, static, tools/deps/build_quic_deps.shsame versions, static, same scriptHTTP/3 (net_quic)
SDL2, SDL2_image, SDL2_mixer, SDL2_ttfDLLs vendored in core/lib/sdl/lib/<arch> and copied to bin\ by deploy_windows.cmd; their version resources say SDL2 2.31.0, SDL2_image 2.9.0, SDL2_mixer 2.8.0, SDL2_ttf 2.25.0apt libsdl2-*-devbrew sdl2*sdl2, sdl_game, sdl_gl
OpenCVx64: opencv_world4120.dll from the OpenCV 4.12.0 Windows release, pinned as $opencvVersion in the workflows that download it (ci-build.yml, release-build.yml, release-publish.yml); ARM64: the modular opencv_*4.dll from vcpkg opencv4:arm64-windows (4.12.0 committed in core/lib/opencv/win/arm64, reinstalled by release-build.yml), with its codec DLLs from vcpkgapt libopencv-dev4.12.0, static, tools/deps/build_macos_deps.shlibobjk_opencv, libobjk_onnx preprocessing
ONNX Runtimex64: NuGet Microsoft.ML.OnnxRuntime.DirectML 1.22.1 (core/lib/onnx/vs/packages.config); ARM64: a QNN build vendored in core/lib/onnx/eq/qnn/win/onnx/arm64/binx64: 1.19.0, a CPU-only build vendored in core/lib/onnx/eq/cuda/lib/x64/lib; ARM64: none, so no ONNX1.30.0 Microsoft prebuilt, shipped as lib/native/libonnxruntime.1.dylib (tools/deps/build_macos_deps.sh)libobjk_onnx
LAMElibmp3lame.dll shipped in bin\apt libmp3lame-dev3.100, shared (LGPL), shipped as lib/native/libmp3lame.0.dylib (tools/deps/build_macos_deps.sh)libobjk_lame
ODBCWindows SDKapt unixodbc-devlibiodbc 3.52.12, static, tools/deps/build_macos_deps.shlibobjk_odbc
zlibvendored (core/lib/zlib, see windows_vcpkg_msbuild for why the vcpkg one must not shadow it)vendoredvendoredcompression traps
VC runtimevcruntime140*.dll, msvcp140*.dll, concrt140.dll copied from the toolset (deploy_windows.cmd)——every Windows binary

Checking what a build actually used

What "audit" means here

  1. For the two libraries with a security surface exposed to the network — mbedTLS and nghttp2 (plus ngtcp2/AWS-LC on POSIX) — compare the version the runner image installs, or the version pinned in the table above, against upstream's supported branches (mbedTLS 3.6 LTS at the time of writing; 4.x is not API-compatible and is a migration, not a bump).
  2. For the Windows pins, OpenCV x64 ($opencvVersion and the cache keys in the three workflows, and the 4120 in the DLL and import-library names) and ONNX Runtime x64 (the NuGet version in core/lib/onnx/vs/packages.config, repeated in vs/vs.vcxproj and deploy_windows.cmd), compare the pinned version against the latest patch release and bump it everywhere it is named. The vendored SDL2 DLLs and ARM64 QNN runtime are bumped by replacing the files; ARM64 OpenCV follows vcpkg.
  3. Anything vendored (zlib) is our responsibility to update by hand.

A scheduled job that prints these versions into the CI summary would turn step 1 into a glance; it is not built yet.