Can Java code EVER be GPLd, at all?

Mark Wells mark at pc-intouch.com
Sat Nov 13 08:51:52 UTC 1999



On Sat, 13 Nov 1999, Justin Wells wrote:

> On Fri, Nov 12, 1999 at 07:48:57PM -0800, Arandir wrote:
> 
> > But attempting to pass your license on to someone *else's* code is a very
> > different thing. In the case of scripts, using CORBA objects, etc., you are
> > attempting to dictate to someone *else* how they should license the code they
> > wrote.
> 
> Philosophically, this is not very different than dictating to someone else 
> that they use my license when they include my code in their application. 
> We've just changed the linking technology slightly, and then made the 
> same statement. 

This has probably been discussed before, but doesn't the GPL apply to
header files?  Dynamic linking or not, this alone should extend the GPL to
executables that link to copylefted libraries.

But then that only works for forms of linking that use header files, and
there are several that don't.  (Perl, in particular.)  And what about
using GPL'd executables from other programs? 

Are shell scripts that use the GNU file utilities inherently copylefted?
What's the difference between including GPL code in an application by
linking to libraries and including it by running executables?  I think
that as the lines between such concepts as 'compiling' and 'linking'
continue to break down the GPL is going to need to be overhauled.

> The problem, of course, is that copyright law is unlikely to concurr.

I don't think copyright law is a problem in this situation.  Its relevance
to this issue is primarily to give developers a LART to hold over the
heads of those who would violate their licenses.

> So this raises a very interesting question:
> 
>    --> Is it possible to copyleft a Java program, at all? <--
>
> All Java classes link at runtime. Thus you could use any Java class in 
> any program you like, and the result would not be subject to the GPL 
> until the program is run. So distribution, copying, etc., would be 
> unencumbered. 

Again, same situation as for Perl.

The only way to enforce this in all cases would be to decide that the GPL
applies to all APIs of any kind.  This is probably illegal, and if it's
not it's still a bad idea.  For one, it creates massive problems with
reverse-engineering.  For another, there are many APIs that have GPL and
non-GPL implementations.  (ANSI C, POSIX, Win32...)

> I would like a license for which this is not true--one that allows me 
> to impose the same kinds of terms on Java programs that people are 
> used to imposing on C programs. 
> 
> That simple statement ignores the huge thorny complexity that Java 
> introduces by being runtime linked.

It's no worse than dynamic linking of C programs.  Someone needs to come
up with an interpretation or revision of the GPL that covers the runtime
linking issue.




More information about the License-discuss mailing list