git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Java Git (aka jgit) library switching license to BSD/EPL
@ 2008-05-09  2:11 Shawn O. Pearce
  2008-05-09  2:29 ` Dave Watson
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Shawn O. Pearce @ 2008-05-09  2:11 UTC (permalink / raw)
  To: Junio C Hamano, Linus Torvalds, Nicolas Pitre,
	Johannes Schindelin, Daniel Barkalow <b
  Cc: Philippe Ombredanne, git

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.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Java Git (aka jgit) library switching license to BSD/EPL
  2008-05-09  2:11 Java Git (aka jgit) library switching license to BSD/EPL Shawn O. Pearce
@ 2008-05-09  2:29 ` Dave Watson
  2008-05-09  3:05 ` Daniel Barkalow
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Dave Watson @ 2008-05-09  2:29 UTC (permalink / raw)
  To: Shawn O. Pearce
  Cc: Junio C Hamano, Linus Torvalds, Nicolas Pitre,
	Johannes Schindelin, Daniel Barkalow, Robin Rosenberg,
	Philippe Ombredanne, git

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" <spearce@spearce.org>  
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.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Java Git (aka jgit) library switching license to BSD/EPL
  2008-05-09  2:11 Java Git (aka jgit) library switching license to BSD/EPL Shawn O. Pearce
  2008-05-09  2:29 ` Dave Watson
@ 2008-05-09  3:05 ` Daniel Barkalow
  2008-05-09  7:20 ` Robin Rosenberg
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Daniel Barkalow @ 2008-05-09  3:05 UTC (permalink / raw)
  To: Shawn O. Pearce
  Cc: Junio C Hamano, Linus Torvalds, Nicolas Pitre,
	Johannes Schindelin, Robin Rosenberg, Dave Watson,
	Philippe Ombredanne, git

On Thu, 8 May 2008, Shawn O. Pearce wrote:

> 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.

No current copyright ownership or related patents for me. (And if I had 
copyright ownership, I'd be fine with the relicense anyway.)

	-Daniel
*This .sig left intentionally blank*

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Java Git (aka jgit) library switching license to BSD/EPL
  2008-05-09  2:11 Java Git (aka jgit) library switching license to BSD/EPL Shawn O. Pearce
  2008-05-09  2:29 ` Dave Watson
  2008-05-09  3:05 ` Daniel Barkalow
@ 2008-05-09  7:20 ` Robin Rosenberg
  2008-05-09  9:57 ` Johannes Schindelin
  2008-05-09 16:26 ` Nicolas Pitre
  4 siblings, 0 replies; 7+ messages in thread
From: Robin Rosenberg @ 2008-05-09  7:20 UTC (permalink / raw)
  To: Shawn O. Pearce
  Cc: Junio C Hamano, Linus Torvalds, Nicolas Pitre,
	Johannes Schindelin, Daniel Barkalow, Dave Watson,
	Philippe Ombredanne, git

fredagen den 9 maj 2008 04.11.58 skrev Shawn O. Pearce:
> 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*].

I confirm this is fine with me.

-- robin

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Java Git (aka jgit) library switching license to BSD/EPL
  2008-05-09  2:11 Java Git (aka jgit) library switching license to BSD/EPL Shawn O. Pearce
                   ` (2 preceding siblings ...)
  2008-05-09  7:20 ` Robin Rosenberg
@ 2008-05-09  9:57 ` Johannes Schindelin
  2008-05-09 16:26 ` Nicolas Pitre
  4 siblings, 0 replies; 7+ messages in thread
From: Johannes Schindelin @ 2008-05-09  9:57 UTC (permalink / raw)
  To: Shawn O. Pearce
  Cc: Junio C Hamano, Linus Torvalds, Nicolas Pitre, Daniel Barkalow,
	Robin Rosenberg, Dave Watson, Philippe Ombredanne, git

Hi,

On Thu, 8 May 2008, Shawn O. Pearce wrote:

> 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.

I confirm that if there is any copyright attributable to me, that I am 
excited to relicense with whatever license, at the discretion of Shawn O. 
Pearce.

Thanks,
Dscho

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Java Git (aka jgit) library switching license to BSD/EPL
  2008-05-09  2:11 Java Git (aka jgit) library switching license to BSD/EPL Shawn O. Pearce
                   ` (3 preceding siblings ...)
  2008-05-09  9:57 ` Johannes Schindelin
@ 2008-05-09 16:26 ` Nicolas Pitre
  2008-05-09 23:38   ` Shawn O. Pearce
  4 siblings, 1 reply; 7+ messages in thread
From: Nicolas Pitre @ 2008-05-09 16:26 UTC (permalink / raw)
  To: Shawn O. Pearce
  Cc: Junio C Hamano, Linus Torvalds, Johannes Schindelin,
	Daniel Barkalow, Robin Rosenberg, Dave Watson,
	Philippe Ombredanne, git

On Thu, 8 May 2008, Shawn O. Pearce wrote:

> 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.

I do not have any such copyright nor patent claims for the jgit code.

As long as the C version remains the authoritative reference 
implementation for protocol and data format, and any algorithmic 
improvements made to the jgit source can be merged back into the C 
version using the GPL, then I have no issue with the license used by 
jgit either.


Nicolas

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Java Git (aka jgit) library switching license to BSD/EPL
  2008-05-09 16:26 ` Nicolas Pitre
@ 2008-05-09 23:38   ` Shawn O. Pearce
  0 siblings, 0 replies; 7+ messages in thread
From: Shawn O. Pearce @ 2008-05-09 23:38 UTC (permalink / raw)
  To: Nicolas Pitre
  Cc: Junio C Hamano, Linus Torvalds, Johannes Schindelin,
	Daniel Barkalow, Robin Rosenberg, Dave Watson,
	Philippe Ombredanne, git

Nicolas Pitre <nico@cam.org> wrote:
> On Thu, 8 May 2008, Shawn O. Pearce wrote:
> 
> > 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.
> 
> I do not have any such copyright nor patent claims for the jgit code.
> 
> As long as the C version remains the authoritative reference 
> implementation for protocol and data format,

I don't think anyone is going to argue with that.  Its very unlikey
that jgit would unseat C git as the Git implementation used by
everyone.  But I do hope that jgit grows more in popularity as more
people come to Git, especially Java users/developers.

> and any algorithmic 
> improvements made to the jgit source can be merged back into the C 
> version using the GPL, then I have no issue with the license used by 
> jgit either.

This shouldn't be a problem.  We're moving to a 3-clause BSD.  As I
understand it, anyone can take code under a 3-clause BSD license,
make a few changes, and release the modified version under the GPL,
and the original BSD project can't take those changes back in due
to the changes being licensed under the GPL.  From what I have
read this has happened several times in the Linux kernel with code
obtained from *BSD.

So long as someone is willing to port the improved algorithm across
langauges from Java->C, even if it is a direct translation, it can
still be included in C Git.

Thanks for the reply Nico (and everyone else), it is most appreciated.

-- 
Shawn.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-05-09 23:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-09  2:11 Java Git (aka jgit) library switching license to BSD/EPL Shawn O. Pearce
2008-05-09  2:29 ` Dave Watson
2008-05-09  3:05 ` Daniel Barkalow
2008-05-09  7:20 ` Robin Rosenberg
2008-05-09  9:57 ` Johannes Schindelin
2008-05-09 16:26 ` Nicolas Pitre
2008-05-09 23:38   ` Shawn O. Pearce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).