Looks like the build errors in main are related to risc-v libssl:
https://github.com/bytecodealliance/wasm-pkg-tools/actions/runs/28813824044/job/85448130396#step:6:174
I don't have time to get out my linux laptop but if anyone can take a look that would be great, this is probably a release blocker.
So someone would have to have Linux and a riscv64 machine to test offline, but I think this might be a well known error:
https://github.com/cross-rs/cross/wiki/Recipes#openssl
This should testable via CI on a fork to try to figure things out, though maybe a bit painful! That said, I actually am not sure why it wouldn't build on any other platform since AFAIK cross-rs uses containers to avoid configuring the host system
I diffed the last success and I think it's the version of the underlying Ubuntu version:
We switched from jammy to noble
I think noble does not have it yet or not at all for riscv libssl
wonder what is the easiest way to switch back
What's really odd is that it seems like noble does have libssl-dev -- and was released as recently as Jun 2026 (do we need to run an apt update??)
Another optoin is building on an older version of ubuntu just for riscv I think... But Noble should have libssl-dev
Perhaps dumb question but does wkg depend on libssl-dev as a transitive for reqwest with default-features disabled?
Would it perhaps make sense to use the rusttls flag as we do with oci-client?
It's coming in through oci-client:
$ cargo tree -p wkg -i openssl-probe --target all
openssl-probe v0.2.1
└── rustls-native-certs v0.8.4
├── bollard v0.19.4
│ └── testcontainers v0.25.2
│ [dev-dependencies]
│ └── wkg v0.16.1 (/Users/mkatychev/Documents/rust/wasm-pkg-tools/crates/wkg)
└── rustls-platform-verifier v0.7.0
└── reqwest v0.13.4
└── oci-client v0.17.0
├── oci-wasm v0.5.0
│ ├── wasm-pkg-client v0.16.1 (/Users/mkatychev/Documents/rust/wasm-pkg-tools/crates/wasm-pkg-client)
│ │ ├── wasm-pkg-core v0.16.1 (/Users/mkatychev/Documents/rust/wasm-pkg-tools/crates/wasm-pkg-core)
│ │ │ └── wkg v0.16.1 (/Users/mkatychev/Documents/rust/wasm-pkg-tools/crates/wkg)
│ │ └── wkg v0.16.1 (/Users/mkatychev/Documents/rust/wasm-pkg-tools/crates/wkg)
│ └── wkg v0.16.1 (/Users/mkatychev/Documents/rust/wasm-pkg-tools/crates/wkg)
├── wasm-pkg-client v0.16.1 (/Users/mkatychev/Documents/rust/wasm-pkg-tools/crates/wasm-pkg-client) (*)
└── wkg v0.16.1 (/Users/mkatychev/Documents/rust/wasm-pkg-tools/crates/wkg)
Looks like this is where reqwest brings it in:
https://github.com/rustls/rustls-platform-verifier/blob/main/rustls-platform-verifier/Cargo.toml#L34-L35
[target.'cfg(all(unix, not(target_os = "android"), not(target_vendor = "apple"), not(target_arch = "wasm32")))'.dependencies]
rustls-native-certs = "0.8"
I'm suprised the rustls flag brings in openssl lol
https://github.com/rustls/rustls-native-certs/blob/main/Cargo.toml#L30-L31
hmm this may not be it
I wonder if it's even needed to pull in openssl because openssl-sys does not actually depend on openssl
Hey all, a fix that works on my fork:
https://github.com/bytecodealliance/wasm-pkg-tools/pull/227
it looks like dkpg --add-architecture just doesn't do enough (i.e. doesn't make the riscv64 packages actually available) on Noble/the latest cross-rs image.
I'm not sure we can actually properly depend on cross here, and arguably we should "just" build our own image and use that, but short of that, we can be more explicit about adding the source and apt will properly resolve.
It's not the fix that I'd like, but it worked on my fork and I think should work going forward.
Arguably, we might also want to have the cross builds for every PR just to avoid running into this only periodically (that way we could catch a PR that introduces a new dep that breaks the build, like we are speculating about)
Happy to make that change (adding the cross build to regular CI) in this PR or a follow-up!
Awesome, right now, if this works then it's good enough
Happy to make that change (adding the cross build to regular CI) in this PR or a follow-up!
I think just unblocking release is important
Actually, I think there might be a better way to do this than for every PR.
Last updated: Jul 29 2026 at 05:03 UTC