[qemu][botanist] Abstract out QEMU invocation generation

This change introduces
(1) QEMUConfig, a high-level configuration interface for fuchsia in
QEMU, and
(2) qemu.CeateInvocation(), a function to generate the invocation from it.

Moreover, this change removes our qcow dependency, which is not needed.

A further change will introduce a GN action that will invoke a simple
tool (wrapping CreateInvocation) to produce a QEMU invocation
file(/script?) so that the configurate used by infrastructure may be
shared with developers, fx, and the SDK.

Test: ran `botanist qemu` locally.

Change-Id: Ib62b33896db90b54ef108afe93d0b49302fe1c53
6 files changed
tree: e1db71d2f30c73049c528aaba931cffda94c79b5
  1. bloaty/
  2. botanist/
  3. build/
  4. cache/
  5. cmd/
  6. color/
  7. digest/
  8. elflib/
  9. fastboot/
  10. gndoc/
  11. isatty/
  12. logger/
  13. mdns/
  14. netboot/
  15. ninjalog/
  16. pdu/
  17. qemu/
  18. retry/
  19. runtests/
  20. secrets/
  21. serial/
  22. symbolize/
  23. telnet/
  24. testrunner/
  25. testsharder/
  26. tftp/
  27. .gitignore
  28. go.mod
  29. go.sum
  30. LICENSE
  31. manifest
  32. PATENTS
  33. README.md
README.md

tools

This repo contains tools used in Fuchsia build and development.

Go packages from here are automatically built and uploaded to CIPD and Google Storage by bots using the tools recipe. To add a tool to the build:

  • Edit the bot config.
  • Find the builder_mixins section with name: "tools".
  • Edit the JSON in properties_j to add a string to the packages list:
"fuchsia.googlesource.com/tools/cmd/your-new-tool"