[Kaffe] can the classpath project be used with Kaffe.

Alex Nicolaou anicolao at mud.cgl.uwaterloo.ca
Tue Feb 9 23:16:38 PST 1999

Godmar Back wrote:
> Are you sure?
> I can take pieces of classpath, add my own stuff and sell it as proprietary
> software without releasing the source code to the pieces I added?
> Then what's the "GPL" in "LGPL" for?

Yes, I'm sure. From paragraph 5 of the LGPL:

  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, is called a "work that uses the Library". 
  Such a work, in isolation, is not a derivative 
  work of the Library, and therefore falls outside 
  the scope of this License. 

  However, linking a "work that uses the Library" 
  with the Library creates an executable that is a 
  derivative of the Library (because it contains 
  portions of the Library), rather than a "work 
  that uses the library". The executable is therefore 
  covered by this License. Section 6 states terms for
  distribution of such executables. 

So, if I link my code with Classpath, then I've made an executable that
is subject to the LGPL, but my "program" is not. For the sake of
speaking more in the licenses terms, let's assume I compile and link
using a compiler that produces a single monolithic native binary (there
are a few available). Then only the resulting binary is covered by the
license; my source code is not. (However, the GPL in "LGPL" protects
against me modifying Classpath itself and not distributing those
modifications; if I modify Classpath, I have to distribute Classpath++,
my modified, LGPL version of Classpath.) If I link a monolithic binary
against Kaffe's library, my source for that binary must also be GPL (it
clearly "contains" portions of Kaffe). 

The restrictions on my resulting binary linked against Classpath include
only these features (paraphrased from paragraph 6 in the LGPL):

1. allow the user to modify my binary
2. allow the user to reverse engineer for the purposes of debugging mods
from (1)
3. allow the user to reconstruct my binary by re-linking it with the
LGPL library

So, if I build a VM, I can include Classpath as its runtime library and
charge for my VM, even though my VM "contains" Classpath, as long as I'm
willing to let the end user patch the binary and reverse engineer to
debug the patch, and modify Classpath and then re-build a working VM
from the bits I provide.

> I still don't see the difference:  everything that's added to both
> classpath's and kaffe's libs would be contaminated (though RMS doesn't
> like that term) and the source to it would have to be released if someone
> wished to distribute it, for monetary reasons or not.

Yes, you are right here. I can't add to Classpath or Kaffe's libs
without releasing my source. But I can write a difficult program (a VM)
that contains Classpath, and sell it. I cannot write the same program
and ship with Kaffe's libs.


More information about the kaffe mailing list