From: Marc-André Lureau <marcandre.lureau(a)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