On Wed, Jun 15, 2022 at 10:39:29AM +0200, Paolo Bonzini wrote:
> On 6/14/22 23:07, Akihiko Odaki wrote:
> > Developers often run QEMU without installing. The bundle mechanism
> > allows to look up files which should be present in installation even in
> > such a situation.
> >
> > It is a general mechanism and can find any files located relative
> > to the installation tree. The build tree must have a new directory,
> > qemu-bundle, to represent what files the installation tree would
> > have for reference by the executables.
> >
> > v4:
> > * Add Daniel P. Berrangé to CC. Hopefully this helps merging his patch:
> > https://mail.gnu.org/archive/html/qemu-devel/2022-06/msg02276.html
> > * Rebased to the latest QEMU.
> >
> > v3:
> > * Note that the bundle mechanism is for any files located relative to the
> > installation tree including but not limited to datadir. (Peter Maydell)
> > * Fix "bridge" typo (Philippe Mathieu-Daudé)
> >
> > v2: Rebased to the latest QEMU.
>
> I like the idea, but I have a couple issues with the implementation:
>
> - at the meson level, there is some repetition of mkdir and ln run_commands.
> Perhaps you could just fill in a dictionary, and then do something like
>
> created_paths = {}
> foreach source, dest: var
> path = fs.parent(qemu_bundledir / dest)
> created_paths += {path: true}
> endforeach
> run_command('mkdir', '-p', created_paths.keys())
> foreach source, dest: var
> run_command('ln', '-sf', meson.project_source_root() / source,
> qemu_bundledir / dest)
> endforeach
Per my other reply, IMHO, all the meson changes are redundant.
I've just sent a series that illustrates how we can improve the
qemu_find_file method so it correctly copes with install dir
vs build dir being different layouts, and be extensible to
any types of file (bios, keymaps, icons, helper exes, and
more).
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|