[libvirt PATCH v4 00/11] Add QEMU "-display dbus" support

marcandre.lureau@redhat.com posted 11 patches 1 year, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20220513183820.925602-1-marcandre.lureau@redhat.com
NEWS.rst                                      |   5 +
docs/formatdomain.rst                         |  43 +++++-
src/bhyve/bhyve_command.c                     |   1 +
src/conf/domain_conf.c                        | 129 +++++++++++++++++-
src/conf/domain_conf.h                        |  14 ++
src/conf/domain_validate.c                    |  41 ++++--
src/conf/schemas/basictypes.rng               |   7 +
src/conf/schemas/domaincommon.rng             |  63 +++++++++
src/libxl/libxl_conf.c                        |   1 +
src/libxl/libxl_domain.c                      |   1 +
src/libxl/libxl_driver.c                      |   1 +
src/qemu/qemu_capabilities.c                  |   4 +
src/qemu/qemu_capabilities.h                  |   1 +
src/qemu/qemu_command.c                       |  65 ++++++++-
src/qemu/qemu_domain.c                        |   1 +
src/qemu/qemu_driver.c                        |  10 +-
src/qemu/qemu_extdevice.c                     |  13 ++
src/qemu/qemu_hotplug.c                       |   1 +
src/qemu/qemu_monitor_json.c                  |  10 ++
src/qemu/qemu_process.c                       |  41 +++++-
src/qemu/qemu_validate.c                      |  33 +++++
src/security/security_dac.c                   |   2 +
src/vmx/vmx.c                                 |   1 +
.../domaincapsdata/qemu_7.0.0-q35.x86_64.xml  |   1 +
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml  |   1 +
tests/domaincapsdata/qemu_7.0.0.x86_64.xml    |   1 +
.../domaincapsdata/qemu_7.1.0-q35.x86_64.xml  |   1 +
.../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml  |   1 +
tests/domaincapsdata/qemu_7.1.0.x86_64.xml    |   1 +
.../caps_7.0.0.x86_64.xml                     |   1 +
.../caps_7.1.0.x86_64.xml                     |   1 +
.../graphics-dbus-address.args                |  30 ++++
.../graphics-dbus-address.xml                 |  35 +++++
.../qemuxml2argvdata/graphics-dbus-audio.args |  33 +++++
.../qemuxml2argvdata/graphics-dbus-audio.xml  |  45 ++++++
.../graphics-dbus-chardev.args                |  32 +++++
.../graphics-dbus-chardev.xml                 |  43 ++++++
tests/qemuxml2argvdata/graphics-dbus-p2p.args |  30 ++++
tests/qemuxml2argvdata/graphics-dbus-p2p.xml  |  33 +++++
.../graphics-dbus-usbredir.args               |  34 +++++
.../graphics-dbus-usbredir.xml                |  30 ++++
tests/qemuxml2argvdata/graphics-dbus.args     |  30 ++++
tests/qemuxml2argvdata/graphics-dbus.xml      |  33 +++++
tests/qemuxml2argvtest.c                      |  17 +++
.../graphics-dbus-address.xml                 |   1 +
.../graphics-dbus-audio.xml                   |   1 +
.../graphics-dbus-chardev.xml                 |   1 +
.../qemuxml2xmloutdata/graphics-dbus-p2p.xml  |   1 +
tests/qemuxml2xmloutdata/graphics-dbus.xml    |   1 +
tests/qemuxml2xmltest.c                       |  17 +++
tests/testutilsqemu.c                         |   1 +
tools/virsh-domain.c                          |  24 +++-
52 files changed, 948 insertions(+), 20 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-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 120000 tests/qemuxml2xmloutdata/graphics-dbus-address.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-audio.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-chardev.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-p2p.xml
create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus.xml
[libvirt PATCH v4 00/11] Add QEMU "-display dbus" support
Posted by marcandre.lureau@redhat.com 1 year, 11 months ago
From: Marc-André Lureau <marcandre.lureau@redhat.com>

Hi,

This series implements supports for the QEMU "-display dbus" support, available
since 7.0.

By default, libvirt will start a private VM bus (sharing and reusing the
existing "vmstate" VM bus & code).

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/. virt-viewer & boxes will need
a port to Gtk4 to make use of the shared widget.

thanks

v4:
 - rebased, dropped some patches, updated versions in docs, code adjustments etc
 - dropped clipboard option, as standalone qemu-vdagent support landed

v3: after QEMU 7.0 dev cycle opening and merge
 - rebased
 - add 7.0 x86-64 capabilities (instead of tweaking 6.2)
 - fix version annotations

Marc-André Lureau (11):
  qemu: add -display dbus capability check
  conf: add <graphics type='dbus'>
  qemu: start the D-Bus daemon for the display
  qemu: add -display dbus support
  virsh: report the D-Bus bus URI for domdisplay
  conf: add <audio type='dbus'> support
  qemu: add audio type 'dbus'
  conf: add <serial type='dbus'>
  qemu: add -chardev dbus support
  qemu: add usbredir type 'dbus'
  docs: document <graphics> type dbus

 NEWS.rst                                      |   5 +
 docs/formatdomain.rst                         |  43 +++++-
 src/bhyve/bhyve_command.c                     |   1 +
 src/conf/domain_conf.c                        | 129 +++++++++++++++++-
 src/conf/domain_conf.h                        |  14 ++
 src/conf/domain_validate.c                    |  41 ++++--
 src/conf/schemas/basictypes.rng               |   7 +
 src/conf/schemas/domaincommon.rng             |  63 +++++++++
 src/libxl/libxl_conf.c                        |   1 +
 src/libxl/libxl_domain.c                      |   1 +
 src/libxl/libxl_driver.c                      |   1 +
 src/qemu/qemu_capabilities.c                  |   4 +
 src/qemu/qemu_capabilities.h                  |   1 +
 src/qemu/qemu_command.c                       |  65 ++++++++-
 src/qemu/qemu_domain.c                        |   1 +
 src/qemu/qemu_driver.c                        |  10 +-
 src/qemu/qemu_extdevice.c                     |  13 ++
 src/qemu/qemu_hotplug.c                       |   1 +
 src/qemu/qemu_monitor_json.c                  |  10 ++
 src/qemu/qemu_process.c                       |  41 +++++-
 src/qemu/qemu_validate.c                      |  33 +++++
 src/security/security_dac.c                   |   2 +
 src/vmx/vmx.c                                 |   1 +
 .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml  |   1 +
 .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml  |   1 +
 tests/domaincapsdata/qemu_7.0.0.x86_64.xml    |   1 +
 .../domaincapsdata/qemu_7.1.0-q35.x86_64.xml  |   1 +
 .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml  |   1 +
 tests/domaincapsdata/qemu_7.1.0.x86_64.xml    |   1 +
 .../caps_7.0.0.x86_64.xml                     |   1 +
 .../caps_7.1.0.x86_64.xml                     |   1 +
 .../graphics-dbus-address.args                |  30 ++++
 .../graphics-dbus-address.xml                 |  35 +++++
 .../qemuxml2argvdata/graphics-dbus-audio.args |  33 +++++
 .../qemuxml2argvdata/graphics-dbus-audio.xml  |  45 ++++++
 .../graphics-dbus-chardev.args                |  32 +++++
 .../graphics-dbus-chardev.xml                 |  43 ++++++
 tests/qemuxml2argvdata/graphics-dbus-p2p.args |  30 ++++
 tests/qemuxml2argvdata/graphics-dbus-p2p.xml  |  33 +++++
 .../graphics-dbus-usbredir.args               |  34 +++++
 .../graphics-dbus-usbredir.xml                |  30 ++++
 tests/qemuxml2argvdata/graphics-dbus.args     |  30 ++++
 tests/qemuxml2argvdata/graphics-dbus.xml      |  33 +++++
 tests/qemuxml2argvtest.c                      |  17 +++
 .../graphics-dbus-address.xml                 |   1 +
 .../graphics-dbus-audio.xml                   |   1 +
 .../graphics-dbus-chardev.xml                 |   1 +
 .../qemuxml2xmloutdata/graphics-dbus-p2p.xml  |   1 +
 tests/qemuxml2xmloutdata/graphics-dbus.xml    |   1 +
 tests/qemuxml2xmltest.c                       |  17 +++
 tests/testutilsqemu.c                         |   1 +
 tools/virsh-domain.c                          |  24 +++-
 52 files changed, 948 insertions(+), 20 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-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 120000 tests/qemuxml2xmloutdata/graphics-dbus-address.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-audio.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-chardev.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus-p2p.xml
 create mode 120000 tests/qemuxml2xmloutdata/graphics-dbus.xml

-- 
2.36.1

Re: [libvirt PATCH v4 00/11] Add QEMU "-display dbus" support
Posted by Michal Prívozník 1 year, 11 months ago
On 5/13/22 20:38, marcandre.lureau@redhat.com wrote:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Hi,
> 
> This series implements supports for the QEMU "-display dbus" support, available
> since 7.0.
> 
> By default, libvirt will start a private VM bus (sharing and reusing the
> existing "vmstate" VM bus & code).
> 
> 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/. virt-viewer & boxes will need
> a port to Gtk4 to make use of the shared widget.
> 
> thanks
> 
> v4:
>  - rebased, dropped some patches, updated versions in docs, code adjustments etc
>  - dropped clipboard option, as standalone qemu-vdagent support landed
> 
> v3: after QEMU 7.0 dev cycle opening and merge
>  - rebased
>  - add 7.0 x86-64 capabilities (instead of tweaking 6.2)
>  - fix version annotations
> 
> Marc-André Lureau (11):
>   qemu: add -display dbus capability check
>   conf: add <graphics type='dbus'>
>   qemu: start the D-Bus daemon for the display
>   qemu: add -display dbus support
>   virsh: report the D-Bus bus URI for domdisplay
>   conf: add <audio type='dbus'> support
>   qemu: add audio type 'dbus'
>   conf: add <serial type='dbus'>
>   qemu: add -chardev dbus support
>   qemu: add usbredir type 'dbus'
>   docs: document <graphics> type dbus
> 

>  52 files changed, 948 insertions(+), 20 deletions(-)

> 

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

and pushed.

Michal