mbox series

[v3,00/11] spice: add -display spice-app, setup and launch a Spice client

Message ID 20190221110703.5775-1-marcandre.lureau@redhat.com
Headers show
Series spice: add -display spice-app, setup and launch a Spice client | expand

Message

Marc-André Lureau Feb. 21, 2019, 11:06 a.m. UTC
Hi,

The QEMU GTK UI is quite featurful. Yet, it doesn't provide many of
the functionalities one can expect from a VM desktop application (USB
redirection, shared folders, drag and drop, better multimonitor
support etc.).

Spice is able to export many of the VM controls to a client, including
QMP monitor, serial ports etc... It's thus possible for a Spice client
to provide a similar experience as the QEMU GTK UI (while keeping
similar display performances locally) and more.

This series provides "-display spice-app" to setup a Spice server and
launch a client (associated with the spice+unix:// URI). With
virt-viewer series "Add QEMU-like UI: VT console & basic VM state"
(under review), the resulting user experience is close to what qemu
GTK UI provides.

v3:
- Add hints on "default" selection in "qapi: document DisplayType enum"
- add tested-by tags
- rebased

v2:
- renamed -display app -> -display spice-app
- error if full-screen or window-close is provided (supports can be
  added later)
- use a stable URI when -name is provided
- print the URI at start
- added "qapi: document DisplayType enum"
- added "spice: use a default name for the server"
- commit message tweaks
- include previously reviewed "configure: bump spice-server required
  version to 0.12.5", to avoid conflicts
- rebased

Marc-André Lureau (11):
  char/spice: trigger HUP event
  char/spice: discard write() if backend is disconnected
  spice: avoid spice runtime assert
  spice: merge options lists
  spice: do not stop spice if VM is paused
  char: move SpiceChardev and open_spice_port() to spice.h header
  char: register spice ports after spice started
  build-sys: add gio-2.0 check
  qapi: document DisplayType enum
  spice: use a default name for the server
  display: add -display spice-app launching a Spice client

 qapi/ui.json            |  32 ++++++-
 include/chardev/spice.h |  27 ++++++
 chardev/spice.c         |  60 +++++++-----
 ui/spice-app.c          | 200 ++++++++++++++++++++++++++++++++++++++++
 ui/spice-core.c         |  13 ++-
 chardev/trace-events    |   1 +
 configure               |  13 +++
 qemu-options.hx         |   5 +
 ui/Makefile.objs        |   5 +
 9 files changed, 329 insertions(+), 27 deletions(-)
 create mode 100644 include/chardev/spice.h
 create mode 100644 ui/spice-app.c