No such thing as GPL for Java (was Re: Compulsory checkin clauses.)

Justin Wells jread at semiotek.com
Tue Aug 8 03:03:41 UTC 2000


On Mon, Aug 07, 2000 at 05:33:45PM -0400, John Cowan wrote:

> > For example, a GPL'd program contains a file called 'foo.c' among its 
> > source code. I write a brand new 'foo.c' containing no material from the
> > original, but compatibly conforming to its API, and release that under
> > some proprietary license. I include a build script which copies my foo.c
> > over top of the original and conveniently builds the modified version for
> > the people who purchased my foo.c from me.
> 
> This is a stronger case, because "foo" is a genuine module with an
> exposed API.  (Of course, you have to have read only the API documentation,
> not "foo.c", to have any hope of being clean-room.)  If a module]
> has a released API, I don't see that there's any hope of preventing
> people from replacing it by another module.

This example is particularly relevant to me. I worded it above in terms of
the C langauge because everyone is familiar with that--but really what 
worries me is Java. 

Java has no concept of static linking--everything is linked at runtime, 
and almost every class has a well published API thanks to "javadoc", which
runs over the code and translates comments into an HTML documentation page.

So every GPL'd Java program is susceptible to this: just rewrite a class 
and ship it in "binary" (.class) format only. It won't be linked with the
program until runtime so you haven't distributed a derived work.

For Java developers using the GPL is effectively the same as using LGPL.

Justin




More information about the License-discuss mailing list