Re: Eclipse 3.0 Running ILLEGALY on Kaffe
Brian Thomas Sniffen wrote:
Måns Rullgård <firstname.lastname@example.org> writes:
It is compiled against an interface, not an implementation. Which
particular implementation was used while compiling is irrelevant.
Can you support this assertion? The program, including its libraries,
which the developer intends to put on end-user systems appears quite
relevant to me.
For a file written in Java, all that ends up in the compiled bytecode
file from a library its compiled against are a bunch of strings denoting
class, interface, field and method *names* that are used from the
library, if any, but not the actual content of the library, i.e. actual
expressions of data structures or methods as they exist in the library.
That's a major difference between Java classes and C headers.
For Java APIs that are defined by some specification like J2SE 1.4, the
developers of a GPLd class re-implementing it would have a hard time
claiming copyright on the class, interface, field or method *names*, as
they are not their own original work to claim copyright on, but are the
result of the necessity of implementing an already existing
specification. It would be the same as SCO's bogus 'Linux uses Unix
interface names, so it all belongs to us' claim.
When the *names* are not copyrightable content, then there is no way for
a copyright-based license to work its magic into works that just include
the *names*. If the names are original work of the authors, then they
are copyrightable, and then the GPL works. If they are not, like the
name "java.lang.Object" is not my original work, then it would be a
pretty far off claim :)
For the rest of the argument, I kindly refer to Andrew Suffield's
analysis of Gadek's claims about 'undistributable Java in main' from 2003: