From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: Peter Maydell <peter.maydell@linaro.org>,
QEMU Developers <qemu-devel@nongnu.org>
Cc: "Daniel P. Berrange" <berrange@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Stefano Garzarella" <sgarzare@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Konstantin Kostiuk" <kkostiuk@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Eric Blake" <eblake@redhat.com>
Subject: Re: Cleaning up contrib/ and tools/
Date: Tue, 24 Mar 2026 11:28:30 -0700 [thread overview]
Message-ID: <ef2a0d92-c7f6-438b-a15a-2712e1c4373a@linaro.org> (raw)
In-Reply-To: <CAFEAcA_5HvGriDsWnb1ALuA_dgG320eKv7yuM2kThv=rfOSZQA@mail.gmail.com>
On 3/24/26 10:09 AM, Peter Maydell wrote:
> We have a couple of directories in our source tree which have
> accumulated things in them that don't really belong there; this is a
> proposal to clean up by moving things to more appropriate locations
> (as 11.1 work, obviously).
>
> Firstly, contrib/ has a tendency to be a dumping ground for stuff that
> we didn't think hard enough about finding a good home for, and for
> things in a weird "not really maintained" state. We should either
> (a) care enough about something to give it a correct home and to
> maintain it, or (b) not care about it, and kick it out of our tree.
>
> Secondly, tools/ exists but is very under-used. I think it should be
> for the set of standalone tools that we build if you configure
> --enable-tools and which we document in docs/tools. Currently it
> contains two things, one of which doesn't match that idea...
>
> So, starting with tools/:
>
> * tools/ebpf/ is the source for the pre-generated
> ebpf/rss.bpf.skeleton.h ; it should move to ebpf/
> * tools/i386/qemu-vmsr-helper.c is the source for the
> qemu-vmsr-helper tool; it can stay (should it lose its
> i386/ subdir ?)
> * the tools which currently are in the top level directory
> should move into tools/:
> - qemu-bridge-helper.c
> - qemu-edid.c
> - qemu-img.c
> - qemu-io.c
> - qemu-keymap.c
> - qemu-nbd.c
>
> And for contrib/, easy ones first:
> * contrib/vhost-user-{blk,bridge,gpu,input,scsi} move to tools/
> * contrib/elf2dmp moves to tools/
> * contrib/ivshmem-client and contrib/ivshmem-server move to tools/
> * contrib/plugins moves to plugins/plugins (or a different subdir
> name of your choice)
>
I would suggest plugins/contrib or plugins/community, to make clear they
are the community contributed ones.
@Alex, do you have a different suggestion/preference?
Moving those sources will break build folder hierarchy also, which is an
issue for all existing binaries built from contrib anyway.
I'm not sure there is anything sane to do to fix that except accepting
the breaking change.
> For contrib/, ones I'm less sure about:
>
> * contrib/vmapple/uuid.sh is a one-liner; we should either commit to
> having this, by giving it a better name and documentation and
> installing it in 'make install', or else junk it and have
> docs/system/arm/vmapple.rst give you the plutil command and tell
> you to run it directly.
> * contrib/gitdm moves to scripts/ ? It's just config data for
> generating statistics about patches, so with other
> developer-related stuff makes sense.
> * contrib/systemd -- we don't do anything with these (e.g.
> 'make install' ignores them), so I am sceptical about their
> usefulness. We could drop them, or move them to scripts/, or put
> them in tools/ and qga/ with the tools that they are systemd
> scripts for.
>
> Then we can delete contrib/ entirely.
>
> (scripts/ is also in danger of being "miscellaneous dumping
> ground", of course. I have tried not to suggest it as the
> destination when I could think of an alternative.)
>
> -- PMM
Regards,
Pierrick
next prev parent reply other threads:[~2026-03-24 18:29 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-24 17:09 Cleaning up contrib/ and tools/ Peter Maydell
2026-03-24 17:31 ` Daniel P. Berrangé
2026-03-24 18:28 ` Pierrick Bouvier [this message]
2026-03-24 18:33 ` Peter Maydell
2026-03-24 18:44 ` Pierrick Bouvier
2026-03-25 9:21 ` Daniel P. Berrangé
2026-03-25 10:05 ` Marc-André Lureau
2026-03-25 11:11 ` Alex Bennée
2026-03-25 15:17 ` Pierrick Bouvier
2026-03-25 16:43 ` Peter Maydell
2026-03-25 7:42 ` Kostiantyn Kostiuk
2026-03-25 11:43 ` Markus Armbruster
2026-03-25 14:32 ` Alex Bennée
2026-03-25 16:49 ` Peter Maydell
2026-03-25 16:54 ` Daniel P. Berrangé
2026-03-25 19:41 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ef2a0d92-c7f6-438b-a15a-2712e1c4373a@linaro.org \
--to=pierrick.bouvier@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=kkostiuk@redhat.com \
--cc=michael.roth@amd.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=sgarzare@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox