git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Licensing and the library version of git

From
Shawn Pearce <spearce@spearce.org>
Date
Jul 28, 2006, 05:04 UTC
Message-ID
<20060728050444.GA30783@spearce.org>
In-Reply-To
<20060727195614.7EDAE353B04@atlas.denx.de>
Wolfgang Denk <wd@denx.de> wrote:
Show 8 quoted lines
> In message <9e4733910607270554p5622ee20ida8c264cf3122500@mail.gmail.com> 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.
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 37 of 41 in “Licensing and the library version of git”
  1. Jon SmirlJul 26, 2006
  2. Shawn PearceJul 27, 2006
  3. Petr BaudisJul 27, 2006
  4. Johannes SchindelinJul 27, 2006
  5. Jon SmirlJul 27, 2006
  6. Petr BaudisJul 27, 2006
  7. Jon SmirlJul 27, 2006
  8. Johannes SchindelinJul 27, 2006
  9. Linus TorvaldsJul 27, 2006
  10. Linus TorvaldsJul 27, 2006
  11. Jakub NarebskiJul 27, 2006
  12. Jon SmirlJul 27, 2006
  13. Anand KumriaJul 28, 2006
  14. Grzegorz KulewskiJul 27, 2006
  15. Linus TorvaldsJul 27, 2006
  16. Daniel BarkalowJul 27, 2006
  17. Johannes SchindelinJul 27, 2006
  18. David LangJul 27, 2006
  19. Linus TorvaldsJul 27, 2006
  20. David LangJul 27, 2006
  21. Johannes SchindelinJul 27, 2006
  22. Anand KumriaJul 28, 2006
  23. Jon SmirlJul 28, 2006
  24. Johannes SchindelinJul 28, 2006
  25. Johannes SchindelinJul 27, 2006
  26. Petr BaudisJul 27, 2006
  27. Petr BaudisJul 27, 2006
  28. Linus TorvaldsJul 27, 2006
  29. Wolfgang DenkJul 27, 2006
  30. Johannes SchindelinJul 27, 2006
  31. Petr BaudisJul 27, 2006
  32. Johannes SchindelinJul 27, 2006
  33. Wolfgang DenkJul 27, 2006
  34. Johannes SchindelinJul 27, 2006
  35. Linus TorvaldsJul 27, 2006
  36. Johannes SchindelinJul 27, 2006
  37. Shawn PearceJul 28, 2006
  38. Johannes SchindelinJul 28, 2006
  39. Shawn PearceJul 29, 2006
  40. Jon SmirlJul 29, 2006
  41. Johannes SchindelinJul 29, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.