[libvirt PATCH 0/9] WIP/RFC: add QEMU "-display dbus" support

marcandre.lureau@redhat.com posted 9 patches 2 years, 5 months ago
Test syntax-check failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20211105105119.117552-1-marcandre.lureau@redhat.com
There is a newer version of this series
docs/formatdomain.rst                         |  24 ++++
docs/schemas/basictypes.rng                   |   7 ++
docs/schemas/domaincommon.rng                 |  71 +++++++++++
src/bhyve/bhyve_command.c                     |   1 +
src/conf/domain_conf.c                        | 116 +++++++++++++++++-
src/conf/domain_conf.h                        |  14 +++
src/conf/domain_validate.c                    |  32 +++--
src/libxl/libxl_conf.c                        |   1 +
src/qemu/qemu_capabilities.c                  |   6 +
src/qemu/qemu_capabilities.h                  |   2 +
src/qemu/qemu_command.c                       |  94 +++++++++++++-
src/qemu/qemu_domain.c                        |   1 +
src/qemu/qemu_domain.h                        |   1 +
src/qemu/qemu_driver.c                        |  10 +-
src/qemu/qemu_hotplug.c                       |   1 +
src/qemu/qemu_monitor_json.c                  |   1 +
src/qemu/qemu_process.c                       |  15 ++-
src/qemu/qemu_validate.c                      |  33 +++++
src/security/security_dac.c                   |   2 +
src/vmx/vmx.c                                 |   1 +
.../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  |   1 +
.../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  |   1 +
tests/domaincapsdata/qemu_6.2.0.x86_64.xml    |   1 +
.../caps_6.1.0.x86_64.xml                     |   1 +
.../caps_6.2.0.aarch64.xml                    |   1 +
.../caps_6.2.0.x86_64.replies                 |  10 +-
.../caps_6.2.0.x86_64.xml                     |   2 +
.../graphics-dbus-address.args                |  31 +++++
.../graphics-dbus-address.xml                 |  34 +++++
.../qemuxml2argvdata/graphics-dbus-audio.args |  32 +++++
.../qemuxml2argvdata/graphics-dbus-audio.xml  |  40 ++++++
.../graphics-dbus-chardev.args                |  33 +++++
.../graphics-dbus-chardev.xml                 |  38 ++++++
.../graphics-dbus-clipboard.args              |  32 +++++
.../graphics-dbus-clipboard.xml               |  36 ++++++
tests/qemuxml2argvdata/graphics-dbus-p2p.args |  31 +++++
tests/qemuxml2argvdata/graphics-dbus-p2p.xml  |  36 ++++++
.../graphics-dbus-usbredir.args               |  35 ++++++
.../graphics-dbus-usbredir.xml                |  36 ++++++
tests/qemuxml2argvdata/graphics-dbus.args     |  31 +++++
tests/qemuxml2argvdata/graphics-dbus.xml      |  34 +++++
tests/qemuxml2argvtest.c                      |  21 ++++
.../graphics-dbus-address.xml                 |  39 ++++++
.../graphics-dbus-audio.xml                   |  43 +++++++
.../qemuxml2xmloutdata/graphics-dbus-p2p.xml  |  39 ++++++
tests/qemuxml2xmloutdata/graphics-dbus.xml    |  39 ++++++
tests/qemuxml2xmltest.c                       |  14 +++
47 files changed, 1106 insertions(+), 18 deletions(-)
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.xml
create mode 100644 tests/qemuxml2argvdata/graphics-dbus.args
create mode 100644 tests/qemuxml2argvdata/graphics-dbus.xml
create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-address.xml
create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-audio.xml
create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-p2p.xml
create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus.xml
[libvirt PATCH 0/9] WIP/RFC: add QEMU "-display dbus" support
Posted by marcandre.lureau@redhat.com 2 years, 5 months ago
From: Marc-André Lureau <marcandre.lureau@redhat.com>

Hi,

This series implements supports for the upcoming QEMU "-display dbus" support.
Development is still in progress, but I hope to land the QEMU support early in
6.3 (last version posted:
https://patchew.org/QEMU/20211009210838.2219430-1-marcandre.lureau@redhat.com/).

By default, libvirt will start a private VM bus (sharing and reusing the
existing "vmstate" code). A client will need the address of the bus and access
to it. Since D-Bus addresses are not URIs unfortunately, I am not sure yet what
should "virsh domdisplay" return.

The feature set should cover the needs to replace Spice as local client of choice,
including 3daccel/dmabuf, audio, clipboard sharing, usb redirection, and arbitrary
chardev/channels (for serial etc).

The test Gtk4 client is also in progress, currently in development at
https://gitlab.com/marcandre.lureau/qemu-display/. A few dependencies, such as
zbus, require an upcoming release. virt-viewer & boxes will need a port to Gtk4
to make use of the shared widget.

Comments welcome, as we can still adjust the QEMU side etc.

thanks

Marc-André Lureau (9):
  qemu: start the D-Bus daemon as needed
  qemu: add chardev-vdagent capability check
  qemu: add -display dbus capability check (to update to 6.3)
  qemu: add -display dbus support
  qemu: add audio type 'dbus'
  qemu: add dbus clipboard sharing
  qemu: add -chardev dbus
  qemu: add usbredir type 'dbus'
  docs: document <graphics> type dbus

 docs/formatdomain.rst                         |  24 ++++
 docs/schemas/basictypes.rng                   |   7 ++
 docs/schemas/domaincommon.rng                 |  71 +++++++++++
 src/bhyve/bhyve_command.c                     |   1 +
 src/conf/domain_conf.c                        | 116 +++++++++++++++++-
 src/conf/domain_conf.h                        |  14 +++
 src/conf/domain_validate.c                    |  32 +++--
 src/libxl/libxl_conf.c                        |   1 +
 src/qemu/qemu_capabilities.c                  |   6 +
 src/qemu/qemu_capabilities.h                  |   2 +
 src/qemu/qemu_command.c                       |  94 +++++++++++++-
 src/qemu/qemu_domain.c                        |   1 +
 src/qemu/qemu_domain.h                        |   1 +
 src/qemu/qemu_driver.c                        |  10 +-
 src/qemu/qemu_hotplug.c                       |   1 +
 src/qemu/qemu_monitor_json.c                  |   1 +
 src/qemu/qemu_process.c                       |  15 ++-
 src/qemu/qemu_validate.c                      |  33 +++++
 src/security/security_dac.c                   |   2 +
 src/vmx/vmx.c                                 |   1 +
 .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  |   1 +
 .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  |   1 +
 tests/domaincapsdata/qemu_6.2.0.x86_64.xml    |   1 +
 .../caps_6.1.0.x86_64.xml                     |   1 +
 .../caps_6.2.0.aarch64.xml                    |   1 +
 .../caps_6.2.0.x86_64.replies                 |  10 +-
 .../caps_6.2.0.x86_64.xml                     |   2 +
 .../graphics-dbus-address.args                |  31 +++++
 .../graphics-dbus-address.xml                 |  34 +++++
 .../qemuxml2argvdata/graphics-dbus-audio.args |  32 +++++
 .../qemuxml2argvdata/graphics-dbus-audio.xml  |  40 ++++++
 .../graphics-dbus-chardev.args                |  33 +++++
 .../graphics-dbus-chardev.xml                 |  38 ++++++
 .../graphics-dbus-clipboard.args              |  32 +++++
 .../graphics-dbus-clipboard.xml               |  36 ++++++
 tests/qemuxml2argvdata/graphics-dbus-p2p.args |  31 +++++
 tests/qemuxml2argvdata/graphics-dbus-p2p.xml  |  36 ++++++
 .../graphics-dbus-usbredir.args               |  35 ++++++
 .../graphics-dbus-usbredir.xml                |  36 ++++++
 tests/qemuxml2argvdata/graphics-dbus.args     |  31 +++++
 tests/qemuxml2argvdata/graphics-dbus.xml      |  34 +++++
 tests/qemuxml2argvtest.c                      |  21 ++++
 .../graphics-dbus-address.xml                 |  39 ++++++
 .../graphics-dbus-audio.xml                   |  43 +++++++
 .../qemuxml2xmloutdata/graphics-dbus-p2p.xml  |  39 ++++++
 tests/qemuxml2xmloutdata/graphics-dbus.xml    |  39 ++++++
 tests/qemuxml2xmltest.c                       |  14 +++
 47 files changed, 1106 insertions(+), 18 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.xml
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus.args
 create mode 100644 tests/qemuxml2argvdata/graphics-dbus.xml
 create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-address.xml
 create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-audio.xml
 create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-p2p.xml
 create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus.xml

-- 
2.33.0.721.g106298f7f9


Re: [libvirt PATCH 0/9] WIP/RFC: add QEMU "-display dbus" support
Posted by Marc-André Lureau 2 years, 4 months ago
Hi

On Fri, Nov 5, 2021 at 2:51 PM <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> Hi,
>
> This series implements supports for the upcoming QEMU "-display dbus" support.
> Development is still in progress, but I hope to land the QEMU support early in
> 6.3 (last version posted:
> https://patchew.org/QEMU/20211009210838.2219430-1-marcandre.lureau@redhat.com/).
>
> By default, libvirt will start a private VM bus (sharing and reusing the
> existing "vmstate" code). A client will need the address of the bus and access
> to it. Since D-Bus addresses are not URIs unfortunately, I am not sure yet what
> should "virsh domdisplay" return.
>
> The feature set should cover the needs to replace Spice as local client of choice,
> including 3daccel/dmabuf, audio, clipboard sharing, usb redirection, and arbitrary
> chardev/channels (for serial etc).
>
> The test Gtk4 client is also in progress, currently in development at
> https://gitlab.com/marcandre.lureau/qemu-display/. A few dependencies, such as
> zbus, require an upcoming release. virt-viewer & boxes will need a port to Gtk4
> to make use of the shared widget.
>
> Comments welcome, as we can still adjust the QEMU side etc.

No comments?
thanks

>
> thanks
>
> Marc-André Lureau (9):
>   qemu: start the D-Bus daemon as needed
>   qemu: add chardev-vdagent capability check
>   qemu: add -display dbus capability check (to update to 6.3)
>   qemu: add -display dbus support
>   qemu: add audio type 'dbus'
>   qemu: add dbus clipboard sharing
>   qemu: add -chardev dbus
>   qemu: add usbredir type 'dbus'
>   docs: document <graphics> type dbus
>
>  docs/formatdomain.rst                         |  24 ++++
>  docs/schemas/basictypes.rng                   |   7 ++
>  docs/schemas/domaincommon.rng                 |  71 +++++++++++
>  src/bhyve/bhyve_command.c                     |   1 +
>  src/conf/domain_conf.c                        | 116 +++++++++++++++++-
>  src/conf/domain_conf.h                        |  14 +++
>  src/conf/domain_validate.c                    |  32 +++--
>  src/libxl/libxl_conf.c                        |   1 +
>  src/qemu/qemu_capabilities.c                  |   6 +
>  src/qemu/qemu_capabilities.h                  |   2 +
>  src/qemu/qemu_command.c                       |  94 +++++++++++++-
>  src/qemu/qemu_domain.c                        |   1 +
>  src/qemu/qemu_domain.h                        |   1 +
>  src/qemu/qemu_driver.c                        |  10 +-
>  src/qemu/qemu_hotplug.c                       |   1 +
>  src/qemu/qemu_monitor_json.c                  |   1 +
>  src/qemu/qemu_process.c                       |  15 ++-
>  src/qemu/qemu_validate.c                      |  33 +++++
>  src/security/security_dac.c                   |   2 +
>  src/vmx/vmx.c                                 |   1 +
>  .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  |   1 +
>  .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  |   1 +
>  tests/domaincapsdata/qemu_6.2.0.x86_64.xml    |   1 +
>  .../caps_6.1.0.x86_64.xml                     |   1 +
>  .../caps_6.2.0.aarch64.xml                    |   1 +
>  .../caps_6.2.0.x86_64.replies                 |  10 +-
>  .../caps_6.2.0.x86_64.xml                     |   2 +
>  .../graphics-dbus-address.args                |  31 +++++
>  .../graphics-dbus-address.xml                 |  34 +++++
>  .../qemuxml2argvdata/graphics-dbus-audio.args |  32 +++++
>  .../qemuxml2argvdata/graphics-dbus-audio.xml  |  40 ++++++
>  .../graphics-dbus-chardev.args                |  33 +++++
>  .../graphics-dbus-chardev.xml                 |  38 ++++++
>  .../graphics-dbus-clipboard.args              |  32 +++++
>  .../graphics-dbus-clipboard.xml               |  36 ++++++
>  tests/qemuxml2argvdata/graphics-dbus-p2p.args |  31 +++++
>  tests/qemuxml2argvdata/graphics-dbus-p2p.xml  |  36 ++++++
>  .../graphics-dbus-usbredir.args               |  35 ++++++
>  .../graphics-dbus-usbredir.xml                |  36 ++++++
>  tests/qemuxml2argvdata/graphics-dbus.args     |  31 +++++
>  tests/qemuxml2argvdata/graphics-dbus.xml      |  34 +++++
>  tests/qemuxml2argvtest.c                      |  21 ++++
>  .../graphics-dbus-address.xml                 |  39 ++++++
>  .../graphics-dbus-audio.xml                   |  43 +++++++
>  .../qemuxml2xmloutdata/graphics-dbus-p2p.xml  |  39 ++++++
>  tests/qemuxml2xmloutdata/graphics-dbus.xml    |  39 ++++++
>  tests/qemuxml2xmltest.c                       |  14 +++
>  47 files changed, 1106 insertions(+), 18 deletions(-)
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.args
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-address.xml
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.args
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-audio.xml
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.args
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-chardev.xml
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.args
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-clipboard.xml
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.args
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-p2p.xml
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.args
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus-usbredir.xml
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus.args
>  create mode 100644 tests/qemuxml2argvdata/graphics-dbus.xml
>  create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-address.xml
>  create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-audio.xml
>  create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus-p2p.xml
>  create mode 100644 tests/qemuxml2xmloutdata/graphics-dbus.xml
>
> --
> 2.33.0.721.g106298f7f9
>
>