Re: [libvirt PATCH 0/9] WIP/RFC: add QEMU "-display dbus" support
Hi On Fri, Nov 5, 2021 at 2:51 PM wrote: > > From: Marc-André Lureau > > 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.lur...@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 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
[libvirt PATCH 0/9] WIP/RFC: add QEMU "-display dbus" support
From: Marc-André Lureau 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.lur...@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 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