This patch series enables support for the qemu-vdagent character device which
enables copy/paste support between guest and client when using vnc graphics.
The guest must be configured with something like the following:
<channel type='qemu-vdagent'>
<source>
<clipboard copypaste='yes'/>
<mouse mode='client'/>
</source>
<target type='virtio' name='com.redhat.spice.0'/>
</channel>
Copy/paste sync requires a vnc client that has support for copy/paste commands.
Currently virt-viewer does not work, but the version of tigervnc provided by
fedora (executable name 'vncviewer') does work.
More details about this device on Gerd's blog:
https://www.kraxel.org/blog/2021/05/qemu-cut-paste/
For now I have left the target to be configurable to match the spicevmc
channel, although Marc-Andre has suggested to simply hard-code it to the virtio
name com.redhat.spice.0
Changes in v2:
- change xml syntax to use <clipboard> and <mouse> sub-elements of
<source>
defined in the same way as they are for the spice display.
- fix a build failure when apparmor was enabled
- Add another test for when features are turned off
Jonathon Jongsma (4):
qemu: add capability for qemu-vdagent chardev
Rename virDomainGraphicsSpiceMouseMode to virDomainMouseMode
conf: add qemu-vdagent channel
qemu: add support for qemu-vdagent channel
docs/formatdomain.rst | 23 ++++++
src/conf/domain_conf.c | 70 +++++++++++++++++--
src/conf/domain_conf.h | 24 ++++---
src/conf/domain_validate.c | 1 +
src/conf/schemas/domaincommon.rng | 51 +++++++++-----
src/libvirt_private.syms | 4 +-
src/libxl/libxl_conf.c | 8 +--
src/libxl/xen_xl.c | 16 ++---
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 32 +++++++--
src/qemu/qemu_monitor_json.c | 27 +++++++
src/qemu/qemu_process.c | 1 +
src/qemu/qemu_validate.c | 9 +++
src/security/security_apparmor.c | 2 +
src/security/security_dac.c | 2 +
.../caps_6.1.0.x86_64.xml | 1 +
.../caps_6.2.0.aarch64.xml | 1 +
.../caps_6.2.0.x86_64.xml | 1 +
.../caps_7.0.0.x86_64.xml | 1 +
...l-qemu-vdagent-features.x86_64-latest.args | 41 +++++++++++
.../channel-qemu-vdagent-features.xml | 37 ++++++++++
.../channel-qemu-vdagent.x86_64-latest.args | 41 +++++++++++
.../qemuxml2argvdata/channel-qemu-vdagent.xml | 37 ++++++++++
tests/qemuxml2argvtest.c | 2 +
...el-qemu-vdagent-features.x86_64-latest.xml | 58 +++++++++++++++
.../channel-qemu-vdagent.x86_64-latest.xml | 58 +++++++++++++++
tests/qemuxml2xmltest.c | 2 +
tests/testutilsqemu.c | 1 +
29 files changed, 500 insertions(+), 54 deletions(-)
create mode 100644
tests/qemuxml2argvdata/channel-qemu-vdagent-features.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/channel-qemu-vdagent-features.xml
create mode 100644 tests/qemuxml2argvdata/channel-qemu-vdagent.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/channel-qemu-vdagent.xml
create mode 100644
tests/qemuxml2xmloutdata/channel-qemu-vdagent-features.x86_64-latest.xml
create mode 100644 tests/qemuxml2xmloutdata/channel-qemu-vdagent.x86_64-latest.xml
--
2.35.1