[Kaffe] can the classpath project be used with Kaffe.
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
3. allow the user to reconstruct my binary by re-linking it with the
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