[PATCH 00/13] qemu: promote to first-class controller component

Daniel Gomez <[email protected]> Fri, 12 Jun 2026 14:36:38 +0200
Newsgroups dev.linux.lists.kdevops
Message-ID <[email protected]>
Promote the kdevops QEMU build from an inline build_qemu target fragment
to a first-class qemu component with its own Kconfig, role with lint
coverage, documentation, and a make chain (qemu-verify, qemu-fetch,
qemu-configure, qemu-build, qemu-install) that stays off the default
path so QEMU only builds when an operator asks for it. The component
defaults to the upstream QEMU git tree at the latest stable release,
installs under the controller data path, and leaves the developer's tree
alone after the initial clone.

Integrates with the nixosfi imageless backend: QSU_QEMU_BINARY follows
QEMU_BIN_PATH when CONFIG_QEMU is set, the qemu role is added to
NIXOSFI_BRINGUP_DEPS so make bringup builds QEMU before deploying
the qsu units, and a new nixosfi-qemu-build defconfig exercises the
integration end-to-end.

Signed-off-by: Daniel Gomez <[email protected]>
---
- Series depends on: [email protected]
- Series depends on: 20260612-b4-bootlinux-direct-boot-followups-v1-0-c72537a65d08@samsung.com

---
Daniel Gomez (13):
      qemu: rename the build_qemu component to qemu
      qemu: make the role a first-class lint pass
      qemu: give the component its own Kconfig
      qemu: default to the upstream QEMU git tree
      qemu: install under the controller data path
      qemu: document the component
      qemu: track the latest stable upstream release
      qemu: infer QEMU_USE_DEVELOPMENT_VERSION from CONFIG_QEMU
      qemu: split into verify, setup and a build chain
      qemu: leave existing tree alone after the initial clone
      qemu: add the nixosfi-qemu-build defconfig
      qsu: follow QEMU_BIN_PATH when QEMU is enabled
      qemu: note the build-output capture limitation

 MAINTAINERS                                        |  12 +++
 Makefile                                           |  11 +-
 Makefile.build_qemu                                |  58 ----------
 defconfigs/cxl-switch                              |  12 +--
 defconfigs/nixosfi-qemu-build                      |  27 +++++
 docs/qemu.md                                       |  86 +++++++++++++++
 kconfigs/Kconfig.bringup                           |   1 +
 kconfigs/Kconfig.libvirt                           | 102 ++----------------
 kconfigs/Kconfig.libvirt.cxl                       |   2 +-
 kconfigs/Kconfig.qemu                              | 118 +++++++++++++++++++++
 kconfigs/Kconfig.qsu                               |  19 +---
 playbooks/{build_qemu.yml => qemu.yml}             |   2 +-
 playbooks/roles/build_qemu/defaults/main.yml       |  16 ---
 playbooks/roles/build_qemu/tasks/main.yml          | 109 -------------------
 playbooks/roles/{build_qemu => qemu}/README.md     |  14 +--
 playbooks/roles/qemu/defaults/main.yml             |  12 +++
 .../tasks/install-deps/debian/main.yml             |   4 +-
 .../tasks/install-deps/fedora/main.yml             |   2 +-
 .../tasks/install-deps/main.yml                    |  16 ++-
 .../tasks/install-deps/redhat/main.yml             |   2 +-
 .../tasks/install-deps/suse/main.yml               |  10 +-
 playbooks/roles/qemu/tasks/main.yml                | 107 +++++++++++++++++++
 scripts/gen-nodes.Makefile                         |  19 ----
 scripts/infer_last_stable_qemu.sh                  |  31 ++++++
 scripts/nixosfi.Makefile                           |   4 +
 scripts/qemu.Makefile                              |  56 ++++++++++
 26 files changed, 503 insertions(+), 349 deletions(-)
---
base-commit: a81b18438512916a3cc01a8215442db855bb2bbb
change-id: 20260612-b4-qemu-component-a22ea2b8958a
prerequisite-change-id: 20260526-new-backend-nix-systemd-4acc8f6fda8a:v2
prerequisite-patch-id: 59bf251bcb2ac8d795dcbaecc2183fc08786b56f
prerequisite-patch-id: 577f3e86283ba1b3b0fd4e54ed33f3426bb02c5a
prerequisite-patch-id: b119eb9108e209d4aae4d51ac6bf58b4e6aaba87
prerequisite-patch-id: 3344eb03a6d7e2200001de30c41141eb3e201f27
prerequisite-patch-id: a3c581a3537ffe434c7e80947e0226145e51f5dd
prerequisite-patch-id: 64d464ecf4df220afc0e7464b959ee9a72f1f924
prerequisite-patch-id: 74e1e8faf47ccdde84d9082aaa5baa22357658c5
prerequisite-patch-id: ccb5bf1e572786008f077fa9dfa96376a4bea7b2
prerequisite-patch-id: 79c1364394cdb1a18590af8ae77c077143f4d0d0
prerequisite-patch-id: 21e63a581fead34533242a50960b6d2a4e880f3f
prerequisite-change-id: 20260612-b4-bootlinux-direct-boot-followups-576043ba7f1f

Best regards,
--  
Daniel Gomez <[email protected]>