[Top][All Lists]

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

Re: GPL traitor !

From: Alan Mackenzie
Subject: Re: GPL traitor !
Date: Mon, 11 May 2009 08:43:28 +0000 (UTC)
User-agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (FreeBSD/4.11-RELEASE (i386))

In gnu.misc.discuss Hyman Rosen <> wrote:
> Alan Mackenzie wrote:
>> In (ii), the new code generator is an extension of GCC, using its data
>> structures, conventions etc.  This new code, if it is released, must be
>> released under the GPL.  Just how it's slotted into the existing GCC is
>> immaterial.

> You are wrong. Extensions fall under the GPL only if they incorporate
> GPLed code within them by inclusion, not by reference.

The notion of "inclusion" doesn't make sense when talking about computer
programs.  Tell me, is an intricate C Macro "included in" or "referred to
by" the extension?  What about a data structure it uses?

> That is, if the extension is written by taking existing code and
> modifying, it falls under the copyright of the existing work (and is
> a derivative work as well, ....


> ..., so that the GCC copyright holders could not use it without the
> permission of its author).

Yes, sort of.  But the new author is not licensed to distribute his
derivative work at all, except under the GPL.

> If the extension is written as a separate new work, it does not fall
> under the GPL, even if it makes extensive use of GPLed header files
> and of data structures that appear in the GPLed code.

In that case, the extension is derived from the source code of the data
structures, and thus isn't a "separate" new work.

> Attempting to use copyright to prevent interoperability is considered
> by the courts to be a serious breach, and is not allowed.

Hey, that's quite artistic, Hyman!  :-)  Interoperability has nothing to
do with what's been discussed so far.

One of the central aims of the GPL is to promote interoperability, as
you're well aware.

Alan Mackenzie (Nuremberg, Germany).

reply via email to

[Prev in Thread] Current Thread [Next in Thread]