Fw: What is Copyleft?
david at usermode.org
Fri Feb 23 07:15:59 UTC 2001
On Thursday 22 February 2001 10:37 pm, Ryan S. Dancey wrote:
> I'm suggesting that the definition of a derivative work can't include data
> being passed between two independent pieces of code, via file, via a
> network, or via an internal process communication. Making a function call
> is not the same thing as actually incorporating the code of that function
> into the body of the calling code.
Though I'm on your "side", there is a big difference between data transfer
and code execution. Transferring data between two processes by way of IPC or
a network protocol is in a completely different realm than a single thread of
execution weaving its way in and out between an application and a library.
> When you make a function call in compile-time linked code, you are creating
> a derivative work, because the function code itself will be compiled into
> the Program and inextricably combined with your code. When the two are
> separated by a run-time linking, there can be no derivative work.
The FSF makes a distinction between dynamic linkage and run-time linkage
(corba, etc). Some criteria between the two are flawed, but one that is worth
considering is that with dynamic linkage, the *intent* to link GPL to non-GPL
code is made by the author, while with run-time linkage it is made by the
user at runtime.
If there were two libraries with sufficiently similar APIs, then dynamic
linkage would be allowed, because the intent could have been to link with one
or the other. An example would be writing a GPL app to link with either Motif
or Lesstif. I think that using "intent" as a criteria is still rather weak,
but it is a term found throughout copyright law.
Your example of printer drivers for Windows already has an exception to it,
since the driver will be interfacing with the operating system.
More information about the License-discuss