On Mon, Apr 28, 2025 at 02:40:49PM +0200, Peter Krempa wrote:
> On Mon, Apr 28, 2025 at 12:22:22 +0200, Kirill Shchetiniuk via Devel wrote:
> > From: Kirill Shchetiniuk <kshch...@redhat.com>
> >
> > Introduce GTK display support with OpenGL for the QEMU driver.
> >
> >  - Add new XML options for GTK display type.
> >  - Include capability flags for the QEMU driver.
> >
> > Note: The `QEMU_CAPS_GTK_GL` flag cannot yet be checked, so device
> > definition validation is incomplete. A placeholder is left for
> > future implementation, when the GTK along with OpenGL capability
> > check would be available in QEMU.
> >
> > Resolves: https://gitlab.com/libvirt/libvirt/-/issues/570
> >
> > Signed-off-by: Kirill Shchetiniuk <kshch...@redhat.com>
> > ---
>
> [...]
>
> > diff --git a/src/conf/schemas/domaincommon.rng 
> > b/src/conf/schemas/domaincommon.rng
> > index 5597d5a66b..61c1d3ad97 100644
> > --- a/src/conf/schemas/domaincommon.rng
> > +++ b/src/conf/schemas/domaincommon.rng
> > @@ -4593,6 +4593,34 @@
> >              </element>
> >            </optional>
> >          </group>
> > +        <group>
> > +          <attribute name="type">
> > +            <value>gtk</value>
> > +          </attribute>
> > +          <optional>
> > +            <attribute name="display">
> > +              <text/>
> > +            </attribute>
> > +          </optional>
> > +          <optional>
> > +            <attribute name="xauth">
> > +              <text/>
>
> Since this is a path you want to use:
>
>  <ref name="absFilePath"/>
>

Will fix it with next series, also saw the <text/> approach for xauth in SDL
device schema, will fix it there too later with separate patch, to maintain
it consistent.

>
> > +            </attribute>
> > +          </optional>
> > +          <optional>
>
> [...]
>
> > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> > index e6d308534f..e97992ff56 100644
> > --- a/src/qemu/qemu_command.c
> > +++ b/src/qemu/qemu_command.c
> > @@ -8483,6 +8483,34 @@ qemuBuildGraphicsDBusCommandLine(virDomainDef *def,
> >  }
> >
> >
> > +static int
> > +qemuBuildGraphicsGTKCommandLine(virQEMUDriverConfig *cfg G_GNUC_UNUSED,
>
> Why are you passing this argument if it's not used?
>
> > +                                virCommand *cmd,
> > +                                virDomainGraphicsDef *graphics)
> > +{
> > +    g_auto(virBuffer) opt = VIR_BUFFER_INITIALIZER;
> > +
> > +    if (graphics->data.gtk.xauth)
> > +        virCommandAddEnvPair(cmd, "XAUTHORITY", graphics->data.gtk.xauth);
>
> I also realized that this is passin the path to the '.Xauthority' file
> to the qemu process. Note that in the default privileged configuration
> where qemu runs as a different process this will not work as the qemu
> process will not have access to the cookie inside the file due to
> permissions.
>
> Also you can't simply apply security labelling on that file because it
> would break other things.
>
> I don't have a suggestion how to fix this, besides perhaps copying the
> authority file at startup somewhere for the qemu process to be able to
> access it.
>
> Either way in the current state it will require mentioning this caveat.
>
>

Yeah, I already noticed that issue with access to xauth file. I generaly
thought to make an `xauth` attribute mandatory to force the user to create
a readable file with cookie for qemu user, but not sure if it's a good
approach.

Reply via email to