Can Java code EVER be GPLd, at all?

Jules Bean jmlb2 at hermes.cam.ac.uk
Mon Nov 15 09:22:24 UTC 1999


On Sun, 14 Nov 1999, Arandir wrote:

> On Sun, 14 Nov 1999, Jules Bean wrote:
> 
> > The real issue is the thorny problem of 'derived work'. Ignoring
> > 'clickwrap' licenses [which, IMHO, are not free software], a copyright
> > license can only affect someone else's work to the extent that it is a
> > derived work of your work.
> > 
> > AFAIK, *no one knows* to what extent library linking creates a derived
> > work. It is a 'fuzzy' issue, which would be decided on a case-by-case
> > basis by a magistrate or a judge. To some extent, the author of the first
> > program can influence this decision - a phrase like 'I consider works of
> > the form XXX to be a derived works of this one' in the license text *will*
> > influence a judge. But, it won't rule the day, if the judge considers it
> > to unwarranted.
> 
> I doesn't have to be this fuzzy. Books are *not* derivitive of their
> bibliographies. When you're talking about linking, you're usually
> talking about libraries. The sole and intended purpose of libraries is
> to be linked to. It doesn't matter if you think my app is derived from
> readline or not, the fact is that I am using readline in the manner in
> which it is intended. To restrict this is to restrict the *use* of
> readline. Should anyone ever take a developer to court over the single
> line "#include <gpllib.h>", rest assured that the prosecution will
> lose.

'It doesn't have to be this fuzzy'? How are we going to disambiguate it?
I'm claiming it's fuzzy, because no one knows the answer, and there is no
legal precedent I know of :-)  If someone can contradict me on the latter,
I'm very keen to see it, of course.

Yes, agreed, books are not derivatives of their bibliographies.  I said as
much myself - some cases are clear, others aren't.

I also take your point about linking to readline.  It's a very good one.
It's certainly quite possible that a judge would rule that way - but my
guess is, that they wouldn't. Part of the confusion arises from the
difference between source code and binary code. Using static linking, on
the one hand, it is clear that your executable actually includes the
binary code of readline - so you are definitely distributing readline.
The question is then 'Is this mere aggregation, or have we created a
derived work?'.  If the distribution is mere aggregation, then as long as
you satisfy the GPL on libreadline itself (i.e. supply that source),
you're in the clear.  If it's creation of a derived work, you must supply
source to your app (per the GPL).  It's this question which I claim is
legally unresolved.

Further to that, I'm then claiming (and many agree with me) that the law
will see the difference between dynamic linking and static linking as a
'technical detail' and irrelevant to the IP issues.  But, again, it's
untested, and a judge might disagree. [Actually, I seem to remember that
there was a test case, or at least ruling to support this idea, but my
memory is very hazy on it...]

> 
> > 3) 'primetools2' can now be linked happily against either 'gmp' or 'hmp'.
> > In this case, it's pretty clear that it is a derivate work of neither.
> 
> Imagine what would have happened if the Harmony project had been completed. KDE
> could then be linked to either Harmony or to Qt. If Redhat then came along and
> called distributing KDE a crime, they would look like utter fools.

Exactly! That is *exactly* why the harmony project was started, and
*exactly* why Redhat and Debian were hoping harmony would come to
fruition.  Because once a free alternative to the library exists, the
combined work *is* free software (see later on...).

> 
> > The problem is, people on this list are searching for hard lines.  I see
> > arguments like 'but if that is true, then by logical extension, every
> > shell script is a derived work of bash'.  There are no hard lines.
> > 'Derived work' is an important concept, but not one that can always be
> > perfectly delineated.
> 
> The lack of hard lines is precisely why I won't use any GPL'd libraries with my
> own code. Even though I am clearly within the bounds of the law by doing so,
> there are many, many people who don't agree, and I don't have the funds to
> defend myself from spurious lawsuits.

Fair enough.  I can understand that.  You're touching also, I think, on
the issue of respecting the author's wishes, which is (IMO) important too.

> 
> > If an application 'A' uses a library 'B' in what might be described as an
> > 'essential' way, then, irrespective of the physical mechanism of linkage
> > (static/dynamic/run-time/compile-time/corba) I would expect 'A' to be
> > considered as a derived work of 'A'.  Especially if 'A' is distributed
> > together with 'B', and especially if 'A' won't function without 'B'.
> 
> You're playing with semantics here. Lawyers like to do this, but users do not.
> Every use of a library is "essential" from the perspective of that library.

That's right.  But the ruling will be by a lawyer, won't it.  So if we're
talking about what's legal, and what's not, that's what will matter. Let
me give an example of what I mean: If your application is an image-loading
application, and you've managed to make it abstractly able to load a huge
number of libraries for particular image formats, then my guess is that it
won't matter if a few of the libraries are GPL - as long as you don't
distribute them all together..

> 
> Think on this: You have every freedom in the world to write Free
> Software that uses Microsoft's MFC, Borland's OWL, Rogue's Tools++,
> etc. But in the land of the Free, you are not free to write BSD
> applications that link to GPL libraries.

Yup.  To the extent that that's true, superficially that's ironic [I
don't know enough about rogue tools to know if it is likely to qualify
for the 'system libraries' exception]. GPL'ing a library is saying 'I give
this library to the community, but it can only be used in free software'.
This is a compromise, a reduction in freedom, used (hopefully) to make
things better in the long term.

> 
> > So, in the java example, if you GPL your java library, and a commercial
> > company distributes a java program using it, then I would expect the GPL
> > to apply - even though the technicalities of linking differ from the C
> > case.
> 
> Why exactly would you call this condition "freedom"?

It's not the freedom part of the GPL.  It's the other bit - it's the
helping software stay free part.  It's actually been quite successful, and
as a result the community has benefitted with software being free that
otherwise wouldn't have been.

Jules

/----------------+-------------------------------+---------------------\
|  Jelibean aka  | jules at jellybean.co.uk         |  6 Evelyn Rd	       |
|  Jules aka     | jules at debian.org              |  Richmond, Surrey   |
|  Julian Bean   | jmlb2 at hermes.cam.ac.uk        |  TW9 2TF *UK*       |
+----------------+-------------------------------+---------------------+
|  War doesn't demonstrate who's right... just who's left.             |
|  When privacy is outlawed... only the outlaws have privacy.          |
\----------------------------------------------------------------------/




More information about the License-discuss mailing list