Put IPCC behind a default-on cargo feature - #113
Conversation
sprockets-tls links libipcc unconditionally, so every consumer's binary carries a NEEDED entry for a library that only exists on Oxide sleds. The support shell (sush) client runs on ordinary machines and only ever uses local keys, so it cannot start at all. Gate the ipcc module, ResolveSetting::Ipcc, AttestConfig::Ipcc, and the libipcc dependency behind an "ipcc" feature, on by default so existing consumers keep building unchanged.
Non-Oxide-sled Helios. The sush client now uses sprockets-tls (in a way that is a conversation for another venue); I built it on Castle, and it failed to run with |
|
It's pretty standard to need to specify the path to link with for binaries that need ipcc which is what we do when building sprockets https://github.com/oxidecomputer/sprockets/blob/main/tls/build.rs . Something seems off here that it isn't working with how we're building for |
The argument here is that the |
sprockets-tlslinkslibipccunconditionally, so every consumer's binary carries aNEEDEDentry for a library that only exists on Oxide sleds. The support shell (sush) client now usessprockets-tlsto secure connections to the switch zone, but it needs to run on non-Oxide machines.Gate the
ipccmodule,ResolveSetting::Ipcc,AttestConfig::Ipcc, and thelibipccdependency behind an "ipcc" feature, on by default so existing consumers keep building unchanged.See also oxidecomputer/sush#31, oxidecomputer/omicron#11034.
🤖 Disclaimer: LLM assistance was used to produce this patch.