From: Dave Watson Date: Fri, 09 May 2008 02:29:37 GMT Subject: Re: Java Git (aka jgit) library switching license to BSD/EPL Message-ID: <1CC65F01-3F34-4DE9-9AB8-BAB2F1C22723@mimvista.com> In-Reply-To: <20080509021158.GA29038@spearce.org> I have no objection to the relicense, if it will help things out. -- Dave Watson Director of Software Development MIMvista Corp. On May 8, 2008, at 10:11 PM, "Shawn O. Pearce" wrote: > The Java Git library (also known as "jgit"[*1*]) is a 100% pure Java > implementation of a data access library for the Git on-disk data > structures, as well as a re-implementation of some commonly used > application functions such as history graph traversal/visualization > and network transport (fetch). > > Since its inception on March 6, 2006 jgit has been under the > GPLv2 license. To make the library available to a wider audience > (including but not limited to the Eclipse Git plugin, numerous > Apache projects such as Ant/Maven, the Netbeans IDE, etc.) we are > switching to a dual license between a 3-clause BSD (the EDL[*2*]) > and the EPL[*3*]. > > As of the bleeding edge (40c5c6cb11b8cc6caf3ea6a681caf0a6b8d66f36 > [*4*]) the ownership of all currently surviving lines of code is > broken down as follows: > > $ sh owner.sh > 78% 27607 Shawn O. Pearce > 17% 6061 Robin Rosenberg > 4% 1518 Dave Watson > 0% 4 Thad Hughes > 0% 2 Roger C. Soares > ------------------------------ > 100% 35192 total > > Robin and Dave: > > With 17% and 4% ownership, can you please reply to verify > this license change will be permitted for your contributions? > Please note this change is _only_ to jgit, and not to the egit > (Eclipse plugin) code. > > Nico, Linus, Junio, Daniel, Dscho, et.al.: > > We would appreciate it if you could provide a statement saying > you have no current copyright ownership interest in jgit, and that > you do not currently own nor invented any patents related to the > "Git technology" that this code might need to use to function as > a Git implementation. > > Part of the application process for EGit to become a project > under the umbrella of the Eclipse Foundation[*5*] requires us > to be reasonably certain the source code we are contributing is > free of claims that could be brought by a 3rd party. A statement > from major contributors to C Git (those who created much of the > C implementation) would show those individuals have no claims > to bring against the current version of jgit, and that jgit is > therefore likely to be free of any IP claims. > > There are three particular sections of jgit code that I would > like to bring to your attention before you respond: > > * BinaryDelta[*6*] bears a striking simiarlity to patch-delta.c. > * PackFetchConnection[*7*] does what builtin-fetch-pack.c does. > * IndexPack[*8*] does what index-pack.c does. > > Here (and everywhere else in jgit) we have tried to avoid directly > translating C->Java, but sometimes things just come out in a > similar way once expressed in source form. Knowing both the jgit > and C git code well I think these are the closest sections where > someone might suspect jgit copied code from C git. The attached > owner.sh script applied to those three files in C git came up > with the following major contributors: > > 33% 616 Nicolas Pitre > 16% 304 Junio C Hamano > 13% 241 Johannes Schindelin > 10% 197 Sergey Vlasov > 5% 107 Linus Torvalds > 5% 105 Shawn O. Pearce > 5% 94 Martin Koegler > 3% 71 Daniel Barkalow > 2% 40 Johannes Sixt > 1% 36 Geert Bosch > > > *1* http://repo.or.cz/w/egit.git > *2* http://www.eclipse.org/org/documents/edl-v10.php > *3* http://www.eclipse.org/org/documents/epl-v10.php > *4* http://repo.or.cz/w/egit/spearce.git > *5* http://wiki.eclipse.org/EGit/Proposal > > *6* http://repo.or.cz/w/egit/spearce.git?a=blob;f=org.spearce.jgit/src/org/spearce/jgit/lib/BinaryDelta.java;h=bba6b19a4000923abfe57b844bae17e7a03e0419;hb=40c5c6cb11b8cc6caf3ea6a681caf0a6b8d66f36 > *7* http://repo.or.cz/w/egit/spearce.git?a=blob;f=org.spearce.jgit/src/org/spearce/jgit/transport/PackFetchConnection.java;h=c7fa66c0654eaf84c143e61ee4d11b74d73db28f;hb=40c5c6cb11b8cc6caf3ea6a681caf0a6b8d66f36 > *8* http://repo.or.cz/w/egit/spearce.git?a=blob;f=org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java;h=b6e5956f62fa8cb60770c991699ae7b457d8954f;hb=40c5c6cb11b8cc6caf3ea6a681caf0a6b8d66f36 > > --8< owner.sh -- > #!/bin/sh > > for f in $(git ls-files \ > jgit \ > org.spearce.jgit \ > org.spearce.jgit.test \ > | egrep -v '.(launch|pack|idx)$' \ > | egrep -v ^org.spearce.jgit/lib/ \ > ) > do > git blame -C -C --whitespace "$f" > done | perl -e ' > $total = 0; > while (<>) { > die "$_\n" unless > /^[0-9a-f]+ (?:[^)]+)?\((.*?) \d{4}-\d{2}-\d{2} /; > $n = $1; > $n =~ s/^\s+//; > $n =~ s/\s+$//; > $who{$n}++; > $total++; > } > @own = map {[$_, $who{$_}, $who{$_} * 100 / $total]} keys %who; > $fnd = 0; > foreach (sort {$b->[2] <=> $a->[2]} @own) { > $fnd += $_->[1]; > printf "%3i%% %7i %s\n", $_->[2], $_->[1], $_->[0]; > } > $unk = $total - $fnd; > print "-" x 30, "\n"; > if ($unk > 0) { > printf "%3i%% %7i (unknown)\n", $unk * 100 / $total, $unk; > } > printf "%3i%% %7i total\n", 100, $total; > ' > > -- > Shawn.