Fw: What is Copyleft?

Ryan S. Dancey ryand at frpg.com
Fri Feb 23 06:37:00 UTC 2001

Inadvertantly sent just to Mr. Dixon - my apologies to him for the double

From: "Rod Dixon, J.D., LL.M." <rod at cyberspaces.org>

[ I said, in reference to various library linking examples:]
>> How can that create a derivative work?
> Well, the question is why wouldn't it?

Because you're not modifying the original work.  You're not adding anything
to it.  The two parts (the Program and the Library) aren't ever combined
into one work.  If you would argue that they are combined because they're
both loaded into memory together, than you'd have to say that >everything<
in the computer's memory formed a derivative work, so you could >never< use
a GPL'd program unless every byte of information in the computer's memory
was also GPL'd.

>> 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
>> database?
>Try a better hypo or simply state what you are driving at.

 My above example is flawed.  It should have read "a database management

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.

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.

Imagine this example:

I write a program which runs interactively.  It takes an input of the name
of a DLL.

The program loads the DLL, which will cause some of the code in that DLL to
excecute automatically when the library is loaded, even if the calling
program does nothing.

If the hypothosis that run-time linking created derivative works is true,
the above program could never be covered by the GPL.

This is not such a far-fetched example.  This is how printer and video
drivers work in Windows, for example; and many are not distributed with the
OS.  It would be impossible to write a GPL'd program that used the standard
device-driver model for printing using Windows if this run-time linking
hypothesis were valid.

> There is, however, one disadvantage;
> the copyright holder of the library might create problems if they are or
> become an opponent of open source.

I think that's a danger of calling functions in non-free libraries.  I think
it's a potential design flaw.  I don't think it's a copyright violation,
thus I don't think the GPL governs the situation.


More information about the License-discuss mailing list