Alyssa Ross <hi@alyssa.is> writes:
Demi Marie Obenour <demiobenour@gmail.com> writes:
On a Qubes OS VM (which doesn't have nested virtualization), building release.nix fails because start-vmm-test (rightly) errors out. Having KVM be a *build*-time dependency of Spectrum OS seems rather strict, especially because I can always copy the generated files over to another machine and run them there. In particular, I can copy the resulting image and run it in QEMU.
Ah, I've made a mistake here I think. KVM shouldn't be a build dependency, because the Scaleway aarch64 builders used to populate the binary cache don't have it. It's only recently that release.nix includes start-vmm-test, so I haven't run those builders since, and hadn't noticed it.
One option would be to introduce a build configuration[1] option that just disables any tests that need KVM. Another would be to run those tests inside QEMU TCG if KVM is available, which would have the benefit of the tests still running (and not introducing more config options). I wonder what the most lightweight way to optionally run some code in a TCG VM would be…
[1]: https://spectrum-os.org/doc/development/build-configuration.html
Sadly the obvious solution of running it under QEMU user emulation doesn't work… https://gitlab.com/qemu-project/qemu/-/issues/871