fix: upgrade reqwest from 0.12 to 0.13 and rename the rustls-tls feature to rustls#1068
fix: upgrade reqwest from 0.12 to 0.13 and rename the rustls-tls feature to rustls#1068Giorno-Giovana wants to merge 2 commits intovoidzero-dev:mainfrom
Conversation
✅ Deploy Preview for viteplus-preview canceled.
|
|
@Giorno-Giovana why close? |
|
But I think this could be merged anyway😁 |
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
fengmk2
left a comment
There was a problem hiding this comment.
thanks, I will release a test version to verify before I merge.
|
macOS build fails |
|
The macOS build fails because reqwest 0.13 with the rustls feature pulls in aws-lc-rs as the default crypto Fix: Switch from aws-lc-rs to ring as the crypto provider:
This completely removes aws-lc-sys from the dependency tree while keeping the same TLS behavior (platform |
closes #1014
Motivation
vp install fails on macOS with a TLS error when trying to download the Node.js runtime from nodejs.org:
error: Failed to download Node.js runtime: Failed to download from
https://nodejs.org/dist/v22.18.0/SHASUMS256.txt: error sending request for url
The root cause is how reqwest 0.12 handles TLS certificate verification on non-Windows platforms. With the
rustls-tls feature, it uses webpki-roots — a hardcoded bundle of Mozilla root certificates compiled into the
binary. If the server's certificate chain involves a CA not present in that bundle (or the bundle is
outdated), TLS verification fails, even though the system's certificate store (macOS Keychain) trusts the
certificate.
reqwest 0.13 replaces the rustls-tls feature with rustls, which uses rustls-platform-verifier instead of
webpki-roots. This verifier delegates certificate validation to the OS-native certificate store
(Security.framework on macOS, SChannel on Windows), matching the behavior of curl and other system tools.