Fwd: Closures in openjdk

Mark Reinhold mr at sun.com
Wed Jun 18 09:59:19 PDT 2008

> Date: Fri, 13 Jun 2008 16:16:39 -0700
> From: Neal Gafter <neal at gafter.com>

> I think there has been a misunderstaing about how I developed the closures
> prototype.  The binaries I distributed were generated by applying a set of
> diffs to the JRL version of the code.  Every distributed version I produced
> was generated from sources that were uniformly licensed under the JRL plus
> my own original deltas.  My new source files were under headers asserting my
> own personal copyright.

I don't see any problem with this (though IANAL).

> The underlying code that my diffs are applicable to have been dual licensed
> to me by Sun under both the JRL and GPLv2.  The diffs I sent to Jonathan
> contain no JRL code whatsoever. The full patch is based on and contains only
> code licensed under GPLv2.  I have even added GPLv2 license headers to my
> new source files.  Therefore both you and I are free to distribute that set
> of changes under GPLv2.  I am depending only on rights granted under GPLv2.
> I am not depending on any rights granted under the JRL for the openjdk
> closures project, so my proposed actions cannot reasonably be interpreted as
> a violation of that license.
> I don't think I need any special dispensation from Sun to continue
> development of the closures project.

Here, things get tricky.

Sun has never dual-licensed any code under both the JRL and GPLv2, at
least not by the usual definition of that term, i.e., by shipping one
source bundle that carries both licenses.  Much of the JDK code that
was (and still is) available under the JRL was also made available
under GPLv2 starting in May 2007, in entirely separate source bundles.
Changes developed against that code under the JRL prior to May 2007 are,
from a strict legal perspective, covered by the JRL rather than GPLv2.

My understanding -- which may be incorrect -- is that you began work
on the Closures prototype before May 2007, using the javac code that
was GPL'd in November 2006 combined with some non-javac code (e.g.,
some existing java.lang classes) acquired under the JRL.  If this is
true then your modifications to the non-javac code are covered by the
JRL rather than GPLv2 even though the same non-javac code was later
made available under GPLv2.

I realize that, from a purely practical perspective, this may seem
rather artificial.  I've therefore asked Sun legal to check the above
analysis and consider whether there's some way for you to go ahead and
publish all of your changes under GPLv2 without "special dispensation",
as you say, from Sun.  I hope to get an answer from them in the next
few days.

In the meantime, you've already received the letter granting you the
right to contribute changes originally developed under the JRL after
forward-porting them to the current GPLv2 code.  If you want to get
moving today rather than wait for this legalistic corner case to be
settled then all you need to do is send your patch to Jon Gibbons as
a contribution under the SCA.  Jon can then apply the diffs, push the
result into the Closures forest, and from that point onward the code
will be GPL'd.

- Mark

More information about the closures-dev mailing list