Can Java code EVER be GPLd, at all?

Justin Wells jread at semiotek.com
Mon Nov 15 21:34:42 UTC 1999


On Sun, Nov 14, 1999 at 10:22:03PM -0800, Arandir wrote:

> >   A software program or library that has to be combined with an original 
> >   work in order to be fully functional forms a derived work of the original
> >   even if they are not combined prior to use. Thus "runtime linked"
> >   programs form derived works of the material they link with.
> 
> I would use a different word than "derive". To quote from Bruce Perens
> commentary on the OS definition: "Derivation is when a program actually
> incorporates part of another program into itself."

Yes, more or less. Now what do the word "actually incorporates" mean? I 
mean, legally speaking.

"Derived work" is a copyright term, defined in copyright law. I am trying to
assert that the parties to the license accept that runtime linking constitutes
a derived work. I'm not sure that would hold up in court.. but who is? I 
guess I need to see a lawyer about this one.

I got some mail back from Richard Stallman saying that it was the FSF's 
position that runtime linking *is* derivation, even before the programs
are actually linked, providing it was the intention that they be linked
at some point. Apparently at some point they sought legal advice over 
this issue and their lawyer told them to take that view.

Whether someone else's lawyer, or better yet a judge, would agree is 
obviously an open question :-) 

At any rate, I think it strengthens that assertion somewhat if you
actually write it into a license which all parties have agreed to.

I am wondering if anyone here has any ideas about it.

> >   2. It should exempt you from being a derived work if it turns out 
> >      that you could link against a different, compatible library 
> >      instead--providing you were "fully functional" there as well.
> 
> What about cases where the developer uses preprocessing macros to determine at
> compile time which library to link to. In such a case there could be code that
> says:
> #ifdef HAVE_JW_LIB
> 	foo = coolFunc(cool params);
> #else
> 	foo = coolFunc(mundane params);
> #endif

According the my language above, the test would be whether the program was 
"fully functional" either way. If it is--then this is fine, and the code 
linking into my library does not need to be covered by my license. If it 
is only fully functional when my code was present, then I think that it 
would fall under the "derived work" categorization.

Assuming I can make that stick.. 

> I would reword it to emphasize the fact that it applies to runtime linking of
> your library. Otherwise it could be argued that you are trying to copyright an
> API. Try something like "only software licensed under the XXX license may
> link with this software, whether or not the linkage is made at compile time,
> runtime, locally, over a network, or any other form of software linkage." And
> to clarify that the end user still has some freedom, add an additional clause
> similar to: "execution of the software does not constitute linkage."

That would work too--although that would probably pull my license out of the 
domain of copyright and into the shrinkwrap world. The attempt to use the 
notion of a "derived work" was so that I could claim to be operating under
copyright law.

> Or have I totally misread your intentions?

No, you read my intentions more or less correctly. And while I may be arguing 
with you, your comments are genuinely insightful and valuable.

Justin




More information about the License-discuss mailing list