What is Copyleft?
Ryan S. Dancey
ryand at frpg.com
Thu Feb 22 21:47:35 UTC 2001
From: "John Cowan" <jcowan at reutershealth.com>
> Dynamic linking with unfree libraries *not* distributed with the OS is a
> gray area in the GPL. When it was written, dynamic linking was a
> marginal concept. The FSF believes that linking with unfree dynamic
> libraries, except as mentioned above, is not allowed.
"a work "based on the Program" means either the program or any derivative
work under copyright law..."
Is the argument that a run-time link to external code creates a derivative
work (in the sense that the copyright statutes define a derivative work) of
the Program and the external code? Under this theory, you couldn't use
GPL'd code with RPC or HTML or SMPT or any other inter-process communication
system unless the whole system was GPL'd!
If I understand the internals of the situation correctly (which I may not),
a program that binds to a DLL at runtime does so through the mediation of
the OS. Data is packaged, handed to the OS, the OS moves it from the
process making the call to the target process, where the data is unpacked
and loaded into the target's address space. There's never a time where the
free software is even in the same address space as the (potentially)
non-free library code.
How can that create a derivative work?
Is a web page with external URLs a "derivative work" of the base page and
all the pages the links (and those page's links, ad nauseum) refer to?
If I use a GPL'd program to output a CSV data file, and import that into a
database, is a derivative work created that combines my code and the
Also from Section 0:
"The act of running the Program is not restricted."
That would seem to exclude anything the code does once it starts to execute
from being covered by the terms of the GPL, would it not?
PS: I completely understand how the utility of a program could be crippled
if it relied on non-free code in an external library. However, I don't
think you can say that the copyright statute's definition of a "derivative
work" extends the license's conditions to the external libraries.
I think you would have to add a section to the GPL that explicitly required
the source code of any library bound at run-time to be covered by the terms
of the license; a term that would be particularly tricky to draft since the
program could be written in such a way that the library that would actually
be bound at run-time was indeterminate when the software was written (such
as selecting from a number of different printer drivers or video drivers,
some of which may antedate the release of the program itself...)
More information about the License-discuss