All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 10/10] display: add -display app launching external application
Date: Tue, 7 Aug 2018 11:15:05 +0100	[thread overview]
Message-ID: <20180807101505.GF7335@redhat.com> (raw)
In-Reply-To: <20180803173614.12358-11-marcandre.lureau@redhat.com>

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.lureau@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 :|

  parent reply	other threads:[~2018-08-07 10:15 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-03 17:36 [Qemu-devel] [PATCH 00/10] RFC: spice: add -display app to launch external UI Marc-André Lureau
2018-08-03 17:36 ` [Qemu-devel] [PATCH 01/10] char/spice: trigger HUP event Marc-André Lureau
2018-08-03 17:36 ` [Qemu-devel] [PATCH 02/10] char/spice: discard write() if backend is disconnected Marc-André Lureau
2018-08-07 15:25   ` Marc-André Lureau
2018-08-03 17:36 ` [Qemu-devel] [PATCH 03/10] configure: bump spice-server required version to 0.12.6 Marc-André Lureau
2018-08-03 18:17   ` Eric Blake
2018-08-07 10:07   ` Daniel P. Berrangé
2018-08-03 17:36 ` [Qemu-devel] [PATCH 04/10] spice: avoid spice runtime assert Marc-André Lureau
2018-08-07 13:47   ` Gerd Hoffmann
2018-11-28 11:04     ` Marc-André Lureau
2018-08-03 17:36 ` [Qemu-devel] [PATCH 05/10] spice: merge options lists Marc-André Lureau
2018-08-03 17:36 ` [Qemu-devel] [PATCH 06/10] spice: do not stop spice if VM is paused Marc-André Lureau
2018-08-03 17:36 ` [Qemu-devel] [PATCH 07/10] char: move SpiceChardev and open_spice_port() to spice.h header Marc-André Lureau
2018-08-03 18:20   ` Eric Blake
2018-08-03 17:36 ` [Qemu-devel] [PATCH 08/10] char: register spice ports after spice started Marc-André Lureau
2018-08-03 17:36 ` [Qemu-devel] [PATCH 09/10] build-sys: add gio-2.0 check Marc-André Lureau
2018-08-03 17:36 ` [Qemu-devel] [PATCH 10/10] display: add -display app launching external application Marc-André Lureau
2018-08-03 18:22   ` Eric Blake
2018-08-07 10:15   ` Daniel P. Berrangé [this message]
2018-08-07 10:33     ` Marc-André Lureau
2018-08-07 14:30       ` Gerd Hoffmann
2018-08-07 14:43         ` Paolo Bonzini
2018-12-18 14:04         ` Marc-André Lureau
2018-12-19  7:13           ` Gerd Hoffmann
2018-12-19  7:44             ` Marc-André Lureau
2018-12-19  9:54               ` Gerd Hoffmann
2018-12-19 12:34                 ` Marc-André Lureau
2018-12-19 12:55                   ` Gerd Hoffmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180807101505.GF7335@redhat.com \
    --to=berrange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.