qemu has supported SPICE+unix socket listening since 2.3.0. Patch #1 wires it up from domain_conf.c down to qemu, patch #2 adds qemu.conf spice_auto_unix_socket option Full disclosure: this duplicates the logic of VNC socket usage, which has some pre-existing warts: - When the VM is running with graphics socket=FOO, the runtime XML still lists <listen type='address' address='127.0.0.1'/>. - If using vnc/spice auto socket, it looks like ports can still be allocated in the code, though they are never used. - In fact I suspect there's lots of issues with stray XML port/listen being parsed and ending up in the device config, but selectively being ignored later. We should probably explicitly ignore/error about those combos when parsing the XML so we never have to ignore specific values later on. - The auto socket path is set in qemu_command.c but it should probably be set in qemu_process.c with the port stuff. Though there are references to vncListen in qemu_command.c which should probably be moved as well. The issue with moving them to qemu_process.c is now there isn't any pre-existing way to test those bits like via qemuxml2argvtest for example. Though finding a way to test the graphics prep stuff would be valuable anyways - teuf suggests: converting <graphics socket=X/> to <graphics><listen type='socket' path='FOO'/></graphics> like was done with listen= address - tuef: virsh domdisplay doesn't handle sockets To avoid yet another rabbit hole I didn't touch any of the above issues, which basically means spice+unix is no less operationally worse than vnc+unix :) Cole Robinson (2): qemu: Support SPICE listen over unix socket qemu: Add qemu.conf option spice_auto_unix_socket docs/schemas/domaincommon.rng | 5 ++++ src/conf/domain_conf.c | 26 +++++++++++++-------- src/conf/domain_conf.h | 1 + src/qemu/libvirtd_qemu.aug | 1 + src/qemu/qemu.conf | 11 +++++++++ src/qemu/qemu_command.c | 15 +++++++++--- src/qemu/qemu_conf.c | 1 + src/qemu/qemu_conf.h | 1 + src/qemu/qemu_process.c | 3 +++ src/qemu/test_libvirtd_qemu.aug.in | 1 + src/security/virt-aa-helper.c | 5 ++++ .../qemuxml2argv-graphics-spice-unix-auto.args | 21 +++++++++++++++++ .../qemuxml2argv-graphics-spice-unix-auto.xml | 27 ++++++++++++++++++++++ .../qemuxml2argv-graphics-spice-unix.args | 21 +++++++++++++++++ .../qemuxml2argv-graphics-spice-unix.xml | 27 ++++++++++++++++++++++ tests/qemuxml2argvtest.c | 10 ++++++++ 16 files changed, 163 insertions(+), 13 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-unix-auto.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-unix-auto.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-unix.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-unix.xml -- 2.5.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list