Subject: Re: LGPL vs. GPL + Classpath Exception
From: Mark Wielaard <mark@klomp.org>
Date: Fri, 08 Jun 2007 09:17:18 +0200

On Thu, 2007-06-07 at 17:04 -0400, Matthew Flaschen wrote:
> Bruce Alspaugh wrote:
> > Can someone summarize the main differences between the LGPL, and the GPL
> > with a classpath exception?
> > Sun has released Java using the GPL + Classpath exception.  Was there
> > some reason why they would choose it over LGPL?
> 
> Well, they chose GPL + Classpath because that is the license used by,
> appropriately, the GNU Classpath project
> (http://www.gnu.org/software/classpath/).  The question is then why
> Classpath has that license.  The main difference is that LGPL poses
> certain requirements on the application that uses the LGPL library.  It
> needn't be under LGPL or GPL (or any free license), and source doesn't
> have to be provided.  However, the license must allow /private/
> modification, and reverse-engineering.  It says "the terms permit
> modification of the work for the customer's own use and reverse
> engineering for debugging such modifications."  That's a pretty low
> standard of freedom, but apparently it still makes people uncomfortable
> so Classpath has no such constraint.

And the historic context is that there used to be different core class
libraries for the GNU project, GNU Classpath which came from the Japhar
side by the Hungry programmers, and was later adopted by other runtimes
like IKVM, SableVM, JamVM, Cacao, JikesRVM and later Kaffe (which also
used to have its own class library, but under the GPL). And libgcj the
runtime library for GCJ (GNU Compiler for the Java programming language)
part of GCC. This was silly and duplication of work. So (back in 2000)
the projects decided to merge. GNU Classpath used to be under the LGPL,
but the libgcj people preferred a license more like other GCC runtime
licenses (like libstdc++) which were all GPL + exception based (for the
reasons stated above). So the merged project adopted that approach to be
consistent with other GCC runtime libraries for other programming
languages.

May I hereby applaud Sun for adopting the license strategy used by the
existing free software communities out there. They actually document
their reasoning in their Free and Open Source Java - FAQ:
http://www.sun.com/software/opensource/java/faq.jsp#g7 [1]
It already paid of nicely by having people mix-and-match the code bases:
http://article.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/5
And from reading planet.classpath.org you get the feeling that various
people and projects are excited and pushing Java forward in new and
innovative ways.

Cheers,

Mark