[Spice-devel] repository reorg

Alon Levy alevy at redhat.com
Thu Jun 23 03:18:11 PDT 2011


On Wed, Jun 22, 2011 at 05:00:10PM +0200, Alon Levy wrote:
> Hi All,

Ok, take two with Gerd's and Hans's and Uri's comments.

 (1) spice-protocol - keep it, move code generation stuff here
 (spice_codegen.py, python_modules, spice*.proto), and have the dist tarball
 contain the cpp and c files resulting from running it.

 (2) spice-server - new repo from spice/server, will submodule common. will
 keep requiring spice-protocol as a separate entity, and will reference the c
 files therein (does this make any sense, carrying c files as installed files?
 I can't think of any other outcome of moving the codegen to spice-protocol)

 (3) spice-client - this will be the spice-gtk repo (or is anyone in favor of
 keeping spice-gtk name?), and it will submodule common too.

 (4) common - submodule. easier to do cross changes with spice-server and spice-client,
 dist tarballs package it (for spice-client, spice-server).

 And the rest don't require any changes:

  Rely just on spice-protocol, as before:
   linux/vdagent
   windows/vdagent
   spice-xpi
   spice-x
   windows driver
   linux driver
  And these rely on spice-server, same as before
   qemu
   xspice

> 
>  We currently have the following repositories:
>   spice-protocol
>   spice
>   spice-gtk
> 
>  spice-protocol contains the following parts:
>   qxl_dev.h - required by qemu and drivers
>   controller.h - required by spice client and xpi/active-x
>   the rest - protocol definitions for server and client
>  
>  spice is composed of
>   codegen - generation of marshallers, demarshallers, and defines that go into spice-protocol.
>   server - server implementation
>   client - old client implementation
>   common - shared by server and client, further subdivided to:
>    glz/lz/quic encoders and decoders
>    cache implementation
>    canvas rendering implementation
>    used by the server, old client and new client.
>  
>  Inefficiencies with the current repositories:
>   1. updates to the protocol need to go to spice/spice.proto, run the codegen,
>     and put the results to spice-protocol
>   2. common exists in both spice and spice-gtk. since it hasn't been touched in
>     a while it isn't a real problem, but still the code duplication is bad and
>     in the future (3d canvas) it will be modified.
> 
>  Suggested changes:
>   spice - merge spice-protocol into it
>   spice-protocol - kill it
>   common - extract to a separate library, it's own configure, pkg-config, name it spice-render,
>    and have spice-gtk and spice (server and old client) rely on it.
>   spice-gtk - keep it as is. easier to develop with a separate configure since it doesn't contain
>   all the requirement checks for the server.
> 
>  Suggestion is Marc-Andre's but he didn't think it was important enough to discuss, I take
>  responsibility for the time wasted as a result of this email.
> 
> Alon
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list