Files
CHEN Feng ed29968f5a thirdparty: migrate openssl/nghttp2/curl to vcpkg (#179 curl cluster) (#190)
* thirdparty: migrate openssl/nghttp2/curl to vcpkg (#179 curl cluster)

vcpkg has no openssl 1.1.1, so this upgrades the cluster to 3.x and migrates all
three off foreign builds. Consumers' //thirdparty/{openssl,nghttp2,curl} targets
are unchanged (thin vcpkg wrappers).

- openssl -> vcpkg 3.x. flare's crypto/init code adapted for 3.x:
  - flare/io/util/openssl.cc: gut the obsolete OpenSSL-1.0.x ceremony
    (SSL_library_init, ERR_load_*, ENGINE_*, CRYPTO_set_locking_callback /
    CRYPTO_num_locks). OpenSSL 1.1+ auto-initializes and is internally
    thread-safe, so both entry points are now empty no-ops.
  - flare/base/crypto/{md5,sha}: -Wno-deprecated-declarations -- the low-level
    MD5/SHA/HMAC APIs are deprecated in 3.x (provider/EVP migration) but still
    valid until 4.0, so suppress rather than rewrite to EVP.
- nghttp2, curl -> vcpkg (API-stable version bumps). curl built with the openssl
  + http2 features; its macOS frameworks (SystemConfiguration/Security/
  CoreFoundation/CoreServices) link via blade's new pkg-config -framework
  support. Wrapper declares the sibling vcpkg deps (openssl/nghttp2/zlib).
- thirdparty/blade/blade.zip: rebuilt with that -framework support.
- Drop the vendored tarballs and patches (openssl/curl/nghttp2, curl dyld patch).

Verified: full `blade test flare/...` green on macOS (crypto/ssl/curl/cos all
pass).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* thirdparty/openssl: drop redundant #dl/#pthread

blade now auto-propagates libcrypto's pkg-config system libs (Libs.private:
-ldl) via the #1322 mechanism, and flare links pthread globally on Linux
(cc_config). So the wrapper's explicit #dl/#pthread are redundant.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: checkout the pinned vcpkg baseline (not just fetch)

Fetching only the baseline commit let 'git show <baseline>:versions/baseline.json'
resolve the baseline version, but vcpkg reads the per-port versions/*.json from
the working tree -- still the runner's stale HEAD. For ports whose baseline
version is newer than that HEAD (openssl 3.6.3, nghttp2 1.69, curl 8.20) vcpkg
errors 'no version database entry'. Checkout the baseline so the whole version
DB / ports tree is consistent (matching local dev).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 08:09:28 +08:00
..