On Fri, Aug 03, 2018 at 07:36:14PM +0200, Marc-André Lureau wrote: > Add a new display backend that will configure Spice to allow a remote > client to control QEMU in a similar fashion as other display backend > like GTK. > > For this to work, we set up Spice server with a unix socket, and > register a VC chardev that will be exposed as Spice ports. A QMP > monitor is also exposed as a Spice port, this allows the remote client > fuller qemu control and state handling. > > - doesn't handle VC set_echo() - this doesn't seem a strong > requirement, very few front-end use it > - spice options can be tweaked with other -spice arguments > - Windows support shouldn't be hard to do, but will probably use a TCP > port instead > - we may want to watch the child process to quit automatically if it > crashed > > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com>
> + type_register(&char_vc_type_info); > + > + sock_path = g_strjoin("", tmp_dir, "/", "spice.sock", NULL); > + qopts = qemu_opts_create(qemu_find_opts("spice"), NULL, 0, &error_abort); > + qemu_opt_set(qopts, "disable-ticketing", "on", &error_abort); > + qemu_opt_set(qopts, "unix", "on", &error_abort); > + qemu_opt_set(qopts, "addr", sock_path, &error_abort); > + qemu_opt_set(qopts, "image-compression", "off", &error_abort); > + qemu_opt_set(qopts, "streaming-video", "off", &error_abort); > + qemu_opt_set(qopts, "gl", opts->has_gl ? "on" : "off", &error_abort); Hmm, so ultimately "-display app" is just syntactic sugar for a hardcoded set of "-display spice" arguments, plus automatic launching of the client app. I'm thinking users may well ask for ability to control some of those spice arguments over time. So if we want auto-launching of a remote app, I think it is preferrable to do it via extra args to the existing "-display spice" format. eg we could add a "client=yes|no" to control launching the client -display spice,client=yes would do what your "-display app" proposes, and still let users tweak all the other spice args as desired. Another option "autoquit=yes|no" could control whether QEMU automatically exits when the client quits, vs whether it stays alive. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|