Windows: cargo install fails on openssl-sys (no system OpenSSL) #73
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-04-29T01:58:19Z - https://github.com/coilysiren/repo-recall/issues/29
Repro
On a fresh Windows 11 box with Rust toolchain
stable-x86_64-pc-windows-msvcand MSVC build tools installed:```sh
cargo install --git https://github.com/coilysiren/repo-recall --tag v0.13.15 --locked
```
fails compiling `openssl-sys v0.9.114`:
`vcpkg` not present, `OPENSSL_DIR` unset. Windows ships no system OpenSSL.
Workaround
`choco install openssl` (243 MB, needs admin), then `OPENSSL_DIR='C:\Program Files\OpenSSL-Win64'` in front of the cargo install. Works, but a 250 MB system-wide install with a UAC prompt is a real friction tax for what should be a single-binary tool.
Root cause
`web-push 0.10` (the only TLS-touching dep, used for the opt-in PWA push deliveries) defaults to native TLS, which on Windows means linking against a system OpenSSL that doesn't exist by default.
Suggested fix
Switch `web-push` to a rustls-backed configuration so the build is hermetic on all three OSes. Two routes worth exploring:
Either way, the goal is `cargo install --git ... --locked` working cold on Windows with no system deps. Same hermetic build that `rusqlite`'s `bundled` feature already gives us for SQLite.
Adjacent: README install path on Windows
Once cargo install works hermetically, the README's "Install via Homebrew" section is the only documented packaged path. A short Windows section pointing at `cargo install` (and noting `brew services` doesn't translate, NSSM/Task Scheduler are the equivalents) would help. Happy to take that as a follow-up once the rustls swap lands.