[Spice-devel] repository reorg
Uri Lublin
uril at redhat.com
Wed Jun 22 10:14:57 PDT 2011
On 06/22/2011 06:00 PM, Alon Levy wrote:
> Hi All,
>
> We currently have the following repositories:
> spice-protocol
> spice
> spice-gtk
also
spice-vdagent (for both Windows and Linux)
spice-xpi/active-x (as mentioned below)
>
> 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
What will you do with other components that require spice-protocol, such as
spice-vdagent.
> 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.
Many times changes in "common/" files come with changes in "server/" or
"client/" files (for example, adding a parameter to an existing function, or
adding a new function). So we're back to committing into two repositories (plus
synchronizing their versions).
Maybe using git magic is a better solution (?).
Specifically I'm thinking of "git submodule", but there may be a better way.
Uri.
More information about the Spice-devel
mailing list