Subject: Re: Licensing and the library version of git

From: Shawn Pearce <[email-masked]>
Date: Fri, 28 Jul 2006 01:04:45 -0400

Wolfgang Denk <[email-masked]> wrote:
> In message <[email-masked]> you wrote:
> >
> > I see that someone is already writing a pure Java version which will
> > work around the GPL problem assuming the Java version is released
> > under a compatible license.
> 
> ... and assuming it is a clean-room  implementation  which  does  not
> borrow from the GPL code.

Heh.  This is actually possibly a problem.

I'm the person developing the Java implementation.

I've seen some of the core GIT code.  The reflog implementation is my
most notable contribution, but I've seen other things in there too.

Most of the Java code is quite different from the C code; the
largest common component is the pack delta decompressor.  I ran it
past Nico as he wrote the C version. He didn't seem to think that
the Java version was derived from the C version.

The issue there really was that the pack file format wasn't
completely documented external from the code (I actually found a
bug in the docs and submitted a patch to correct it) and the delta
format is definately not documented so I had to dig around in the
C code to figure it out.  On the other hand the commit format,
tree format and the loose object header were all clearly self
describing so I didn't need to go digging through the source to
figure out how to parse (or generate) them.

So yes, the Java implementation is derived from the C
(GPL'd!) implementation, but also no, its not...

I think its going to really just come down to a list consensus.
If Linus, Junio, Nico, et.al. think that my Java version is too
derived from the C GPL'd implementation to be released under any
license other than the GPL then I'll probably just abandon the code
line entirely, as the GPL is incompatible with the Sun JRE runtime
lirbary.  On the other hand its probably going to be released under
the IBM Common Public License or the Apache License.

-- 
Shawn.