GPL with the Classpath exception - clarification needed

John Cowan cowan at
Fri Mar 27 14:43:54 UTC 2009

Roger Fujii scripsit:

> Assuming you agree that a "C" Program A, calling a non-system GPLed
> "C" library L, means that Program A must be GPLed, under what logic
> do you think this works by?

It works because the work AL.exe generated by linking A with L is
a derivative work of L, *not* because A itself is a derivative work
of L.  (That's according to the FSF theory of the effect of the GPL.
The alternative theory, openly espoused by a minority, is that AL.exe
is only a collective work, and therefore the GPL is no stronger than
the LGPL.)

> huh?  how could it be?  if it were, it must be *GPLed.  AFAIK, all
> copylefts basically say "if you are a derivative work, you must use
> license X (where X is the copyleft license).   But, under conditions X,
> Y, Z....., you do not create a derivative work, thus you are free to
> do as you like."

Whether a work is a derivative work is a matter of fact (or more
accurately, mixed fact and law).  A license can't say that X is not
a derivative work of Y if it, in fact, is.  The LGPL does say that
certain derivative works in object form do not require full source to
be released under the LGPL, only the modified source (if any) of the
LGPLed work itself.

> > Quite so.  Under the GPL, a derivative executable work must be
> > distributed with full source.  Under the LGPL, you only need to
> > distribute the LGPLed source.
> Not exactly - the correct phrase is that you have some legal obligations
> for the LGPL code/objects that you distribute.   I am not required to
> distribute the source for glibc, for example (assuming that you aren't
> distributing glibc).

Yes, that is more precise.  However, the distinction I gave is the
most important distinction in practice, neglecting system libraries,
libraries that depend on application data, and other special cases:

Incorporate a GPLed library, you must distribute full source.

Incorporate an LGPLed library, you must distribute source for the library.

Incorporate a GPL+CP library, you need not distribute source at all.

> This is utterly incorrect.  With LGPL 2.1, how can you say that
> "derivative work" is irrelevant when "worked based on the Library" is
> DEFINED to be "A program that contains no derivative of any portion
> of the Library, but is designed to work with the Library by being
> compiled or linked with it"?  Using your definition, nothing can be a
> "work that uses the Library".

Again, I was less than precise.  When you link a work based on the
library with the library itself, you create a derivative work of the
library; however, the LGPL does not require you to distributing the
source of the work based on the library.

> It is worth noting that LGPL3 does not use the word derived anywhere.

V3 licenses use private terminology.

> It is *not*.    Since the classpath exception exempts only "independent
> modules" and "|An independent module is a module which is not derived
> from or based on this library", your ability to use the exception
> depends on whose definition of "derived" you are using.  So, App A ->
> LGPL B -> LGPL C can have different implications than App A -> LGPL B ->

Can you give a particular case?

> >The GPL+CP matters
> >only for a library written in a language where delivery by way of static
> >executables is the norm, and replacement would require the proprietary
> >part of the application to be delivered as .o files or something similar.
> I think you meant LGPL here.   

That is to say, there is little difference in effect between the GPL+CP
and the LGPL.

> Pages 43-45 doesn't generate any confidence on your position.
> Being told "oh, the courts will probably go your way" isn't the
> certainty that most people want on such things.

Then they are doomed to be disappointed.  The only certainty in legal
matters is that of the highest court that has jurisdiction, and then only
in the particular case it decides.  "The law is what the judge decides
it is" (a maxim useful to lawyers and litigants, though not to judges,
who are sworn to do justice according to law).  See below.

The first thing you learn in a lawin' family    John Cowan
is that there ain't no definite answers         cowan at
to anything.  --Calpurnia in To Kill A Mockingbird

More information about the License-discuss mailing list