On Wed, Jun 09, 2021 at 12:29:58PM +0100, Daniel P. Berrangé wrote:
On Wed, Jun 09, 2021 at 01:24:05PM +0200, Gerd Hoffmann wrote:
> On Wed, Jun 09, 2021 at 12:02:40PM +0200, Thomas Huth wrote:
> > Libvirt's "domcapabilities" command has a way to state whether
> > certain graphic frontends are available in QEMU or not. Originally,
> > libvirt looked at the "--help" output of the QEMU binary to
determine
> > whether SDL was available or not (by looking for the "-sdl"
parameter
> > in the help text), but since libvirt stopped doing this analysis of
> > the help text, the detection of SDL is currently broken, see:
> >
> >
https://bugzilla.redhat.com/show_bug.cgi?id=1790902
> >
> > QEMU should provide a way via the QMP interface instead. The simplest
> > way, without introducing additional commands, is to make the DisplayType
> > enum entries conditional, so that the enum only contains the entries if
> > the corresponding CONFIG_xxx switches have been set.
>
> Hmm, that'll break for the "dnf remove qemu-ui-sdl" case ...
Note tht libvirt invalidates its cache of QEMU capabilities when it
sees the /usr/lib64/qemu directory timestamp change. So it ought to
pick up changes caused by installing/removing QEMU modules, and apply
this to future queries for domcapabilities, or when starting future
QEMU guests.
That'll work fine for modules implementing qom objects / devices,
because the list of available objects changes accordingly and libvirt
can see that.
The #if CONFIG_SDL approach will not work because qemu will continue to
report sdl as supported even when the sdl module is not installed any
more.
take care,
Gerd