[Spice-devel] [PATCH spice-gtk] channel-main: Convert text line-endings if necessary (rhbz#752350)

Daniel P. Berrange berrange at redhat.com
Mon Jun 24 06:25:49 PDT 2013


On Mon, Jun 24, 2013 at 03:23:30PM +0200, Hans de Goede wrote:
> Hi,
> 
> On 06/24/2013 03:04 PM, Daniel P. Berrange wrote:
> >On Mon, Jun 24, 2013 at 02:45:25PM +0200, Hans de Goede wrote:
> >>Hi,
> >>
> >>On 06/24/2013 02:39 PM, Daniel P. Berrange wrote:
> >>>On Mon, Jun 24, 2013 at 02:31:27PM +0200, Hans de Goede wrote:
> >>>>Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> >>>>---
> >>>>  gtk/channel-main.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++---
> >>>>  1 file changed, 69 insertions(+), 4 deletions(-)
> >>>
> >>>IIUC, implicit in your patch here is that the communication protocol
> >>>between spice client & guest agent uses guest OS specific line ending
> >>>markers, and the spice client must do all conversions to guest OS
> >>>format. Is that really what we want ?
> >>
> >>Yes, this is by design. The reason for this is that there are no real
> >>conventions as to what line-endings to use inside the clipboard data,
> >>so ie the clipboard on unix (X) may contain text data with CRLF
> >>line-endings. And some programs may depend on this.
> >>
> >>So to minimize the change of breaking things we don't want to do any
> >>conversion when doing copy and paste between a unix guest and unix client,
> >>or a windows guest and windows client.
> >>
> >>>Personally I would have said that the line ending markers should be
> >>>invariant (always \n) in the comms protocol and that each end point
> >>>must handle conversion to/from \r\n if required.
> >>
> >>That was my initial design too, but see above.
> >>
> >>>But perhaps there are backwards compat issues forcing your choice
> >>>here ?
> >>
> >>Well currently we don't do any conversions, so keeping the wire
> >>format in guest "encoding" makes things a bit easier wrt backward
> >>compat handling, but we could have moved to always use \n on the
> >>wire using guest capabilities bits, so that is not the main reason
> >>for this.
> >
> >Ok, that makes sense.
> >
> >Would be nice to describe this rationale in the commit message for
> >benefit of people looking back at this change years down the road.
> 
> It is already described in the commit message of the protocol update
> for this, which is IMHO the proper place for this:
> http://cgit.freedesktop.org/spice/spice-protocol/commit/?id=7be0e88e7e03a956b364cc847aad11b96ed47273

IMHO it should still be described here, or that commit could be
referenced here as the source of the policy being implemented.

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|


More information about the Spice-devel mailing list