[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Undistributable java in main

Dalibor Topic wrote:
GPL says:

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. ...
As running is clearly not covered under GPL, your argument doesn't work.

Modification *IS* covered by the GPL.  (FYI, it's not my argument, it's
Richard Stallman's).

Now, linking *is* a form of modification.  Were it not, you could simply
link your proprietary program with the GNU readline library.  See
http://www.gnu.org/licenses/why-not-lgpl.html if you have doubts about
useability of a GPL library within proprietary code.

The fact that linking is done statically *or* dynamically is irrelevant;
the result is that you have a combined work; all parts of the work must
be licensed under terms that allow for the part to be combined with the
other parts.

The frequent confusion is that people think that running a Java application
is the same as running a compiled C application; it's not.

A compiled C application is mostly *self-contained*, except for the C library
routines.  The designers of glibc anticipated this, and made sure GNU libc
was licensed under the LGPL, otherwise you would not be able to *run* your
C application, as it would have to be *combined* (e.g. lined) dynamically
with glibc, thus forming a derived work (which is actually the work that is
being *executed*).

So, in summary: *running* is not covered by the GPL.  Your problem is that
you do not want to merely run ant; you want to run a work that is composed
of: ant + classpath + kaffe.  What the GPL does NOT allow you to do is to
*create* this combined work (statically or dynamically) so that you can
run it.

FYI, here are excerpts from my private correspondance with RMS:

    So, how come "running" a non-free Java program on Kaffe would violate
    the GPL license?  This is a point I have difficulty to understand.

    Because it is linking the two together.

    Just to confirm that I now understand correctly...

    Linking (dynamic and/or static) of an GPL work "A" with another work "B"
    is addressed by clause 2 of the GPL, namely: "you may *modify* your
    copy...".  This is because linking "A" with "B" does *modify* "A".

    The analogy would be to say that "linking" a work by Shakespeare (which
    is in the public domain) with an "introduction and commentary" does
    create a derived work, even though no word has been changed in
    Shakespeare's text.  So, the simple act of "linking" constitutes a
    modification of the original work.  Right?

    Right.  It makes a collective or combined work.



Etienne M. Gagnon, Ph.D.             http://www.info.uqam.ca/~egagnon/
SableVM:                                       http://www.sablevm.org/
SableCC:                                       http://www.sablecc.org/

Reply to: