probe/Cargo.toml
# skidbladnir-probe — the machine-INJECTED introspection probe + a trivial test
# service, both built as **static musl** binaries so ONE artifact runs in every
# matrix guest (glibc Ubuntu/Debian/Fedora AND musl Alpine), with no shared-lib
# surprises inside an airgapped VM.
#
# Deliberately a *standalone* crate (its own `[workspace]`), depending on NOTHING
# but `std`: the probe must cross-compile to `x86_64-unknown-linux-musl` cleanly
# and statically, which the parent `skidbladnir` crate (ring/zbus/rcgen) cannot.
# Build:
# cargo build --release --target x86_64-unknown-linux-musl --manifest-path probe/Cargo.toml
[package]
name = "skidbladnir-probe"
version = "0.1.0"
edition = "2021"
publish = false
[workspace]
# The shared guest core (JSON escaping, no-shell exec, hex, the plan wire, the
# applied-state fact collector). Both injected binaries consume it instead of
# carrying their own copy (LAW 5); it is also where the wire formats get their
# unit tests, which is why they exist at all.
[lib]
name = "skidbladnir_probe"
path = "src/lib.rs"
[[bin]]
name = "skidbladnir-probe"
path = "src/bin/skidbladnir-probe.rs"
[[bin]]
name = "skidbladnir-testsvc"
path = "src/bin/skidbladnir-testsvc.rs"
# The in-guest plan interpreter of the VM systemd suite: runs the host-authored
# cases against the guest's REAL init and reports applied state per case. It never
# grades — every verdict is a pure host-side function in `skidbladnir::vmsuite`.
[[bin]]
name = "skidbladnir-scenario"
path = "src/bin/skidbladnir-scenario.rs"
[profile.release]
opt-level = "z"
lto = true
strip = true
panic = "abort"