On 5/8/2026 8:24 AM, Peter Maydell wrote:
> We have a set of binaries that we call "tools": they're built based on
> the --enable-tools/--disable-tools configure setting, they're
> documented in docs/tools, and they're standalone executables of one
> form or another.
> 
> Currently the sources for these are a bit scattered: many still in the
> top level source directory, some in contrib, one or two actually in
> the tools directory.
> 
> As an initial attempt at cleanup, this patchset moves the sources for
> qemu-bridge-helper, qemu-edid, qemu-img, qemu-io, qemu-nbd,
> qemu-keymap, qemu-vmsr-helper and elf2dmp into the tools/ directory.
> 
> The patchseries also moves the ebfp skeleton sources from tools/ebpf/
> to ebpf/bpf-src/, because this isn't a tool by the above definition.
> 
> As per my thread from a while back, I would ultimately like us to
> clean up contrib/:
> https://lore.kernel.org/qemu-devel/CAFEAcA_5HvGriDsWnb1ALuA_dgG320eKv7yuM2kThv=rfos...@mail.gmail.com/
> But parts of that clearly need more discussion. So this is just doing
> some parts that I hope are not controversial.
> 
> Annoyingly, meson doesn't seem to provide any way for a subdirectory
> meson.build to say "the foo.c in this subdir builds into a foo
> executable that lives at the top level of the builddir". And we have a
> lot of test harness stuff plus user muscle memory that assumes that
> qemu-img and qemu-io live there. So the build runes for these tools
> have to stay in the top level meson.build (and tools/meson.build
> remains an empty file). The exception is that contrib/elf2dmp/elf2dmp
> is now tools/elf2dmp/elf2dmp, but I think the set of people who were
> running that from the build directory will be small.
> 
> thanks
> -- PMM
> 
> 
> Peter Maydell (9):
>   ebpf: move ebpf skeleton source to ebpf/ directory
>   tools: Move qemu-bridge-helper sources to tools/ directory
>   tools: Move qemu-edid sources to tools/ directory
>   tools: Move qemu-img sources to tools/ directory
>   tools: Move qemu-io sources to tools/ directory
>   tools: Move qemu-nbd sources to tools/ directory
>   tools: Move qemu-keymap sources to tools/ directory
>   tools: Move qemu-vmsr-helper up a directory level
>   tools: Move elf2dmp from contrib/ to tools/
> 
>  MAINTAINERS                                   | 15 +++++++-------
>  docs/tools/qemu-img.rst                       |  2 +-
>  {tools/ebpf => ebpf/bpf-src}/Makefile.ebpf    |  2 +-
>  {tools/ebpf => ebpf/bpf-src}/rss.bpf.c        |  0
>  meson.build                                   | 20 +++++++++----------
>  {contrib => tools}/elf2dmp/addrspace.c        |  0
>  {contrib => tools}/elf2dmp/addrspace.h        |  0
>  {contrib => tools}/elf2dmp/download.c         |  0
>  {contrib => tools}/elf2dmp/download.h         |  0
>  {contrib => tools}/elf2dmp/err.h              |  0
>  {contrib => tools}/elf2dmp/kdbg.h             |  0
>  {contrib => tools}/elf2dmp/main.c             |  0
>  {contrib => tools}/elf2dmp/meson.build        |  0
>  {contrib => tools}/elf2dmp/pdb.c              |  0
>  {contrib => tools}/elf2dmp/pdb.h              |  0
>  {contrib => tools}/elf2dmp/pe.h               |  0
>  {contrib => tools}/elf2dmp/qemu_elf.c         |  0
>  {contrib => tools}/elf2dmp/qemu_elf.h         |  0
>  .../qemu-bridge-helper.c                      |  0
>  qemu-edid.c => tools/qemu-edid.c              |  0
>  qemu-img-cmds.hx => tools/qemu-img-cmds.hx    |  0
>  qemu-img.c => tools/qemu-img.c                |  0
>  qemu-io-cmds.c => tools/qemu-io-cmds.c        |  0
>  qemu-io.c => tools/qemu-io.c                  |  0
>  qemu-keymap.c => tools/qemu-keymap.c          |  0
>  qemu-nbd.c => tools/qemu-nbd.c                |  0
>  tools/{i386 => }/qemu-vmsr-helper.c           |  0
>  tools/{i386 => }/rapl-msr-index.h             |  0
>  28 files changed, 20 insertions(+), 19 deletions(-)
>  rename {tools/ebpf => ebpf/bpf-src}/Makefile.ebpf (96%)
>  rename {tools/ebpf => ebpf/bpf-src}/rss.bpf.c (100%)
>  rename {contrib => tools}/elf2dmp/addrspace.c (100%)
>  rename {contrib => tools}/elf2dmp/addrspace.h (100%)
>  rename {contrib => tools}/elf2dmp/download.c (100%)
>  rename {contrib => tools}/elf2dmp/download.h (100%)
>  rename {contrib => tools}/elf2dmp/err.h (100%)
>  rename {contrib => tools}/elf2dmp/kdbg.h (100%)
>  rename {contrib => tools}/elf2dmp/main.c (100%)
>  rename {contrib => tools}/elf2dmp/meson.build (100%)
>  rename {contrib => tools}/elf2dmp/pdb.c (100%)
>  rename {contrib => tools}/elf2dmp/pdb.h (100%)
>  rename {contrib => tools}/elf2dmp/pe.h (100%)
>  rename {contrib => tools}/elf2dmp/qemu_elf.c (100%)
>  rename {contrib => tools}/elf2dmp/qemu_elf.h (100%)
>  rename qemu-bridge-helper.c => tools/qemu-bridge-helper.c (100%)
>  rename qemu-edid.c => tools/qemu-edid.c (100%)
>  rename qemu-img-cmds.hx => tools/qemu-img-cmds.hx (100%)
>  rename qemu-img.c => tools/qemu-img.c (100%)
>  rename qemu-io-cmds.c => tools/qemu-io-cmds.c (100%)
>  rename qemu-io.c => tools/qemu-io.c (100%)
>  rename qemu-keymap.c => tools/qemu-keymap.c (100%)
>  rename qemu-nbd.c => tools/qemu-nbd.c (100%)
>  rename tools/{i386 => }/qemu-vmsr-helper.c (100%)
>  rename tools/{i386 => }/rapl-msr-index.h (100%)
> 

As well, feel free to send a patches for contrib/plugins, moving them to
plugins/plugins as you offered first.
We didn't find a better alternative, and it does not really matters to
be honest. You have my reviewed-by.

Regards,
Pierrick

Reply via email to