[Top][All Lists]

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

What is a "derivative work"?

From: Antonios Christofides
Subject: What is a "derivative work"?
Date: Sat, 25 Jan 2003 21:54:53 +0200
User-agent: Mutt/1.3.28i

Although my reading of Google Groups indicates that this question has
been asked and discussed many times, I haven't been able to find an
adequate answer. The question roughly is why using a software library
can be considered a derivative work of that library. I'm sorry my post
is long, but I thought that this kind of question needs a clear and
careful description.

Here's the most discussed clause of the GPL:

    when you distribute [sections of the modified work that are not
    derived from the Program] as part of a whole which is a work based
    on the Program, the distribution of the whole must be on the terms
    of this License

A "work based on the Program", says the GPL in the definitions
section, means any derivative work. And a "derivative work", says the
U.S. copyright law, means a work based on the Program; but luckily it
also gives some examples of what it considers derivative works. I'll
also use an example to make this discussion easier.

cdrecord is a GPL'ed command-line program that can record CDs.
Numerous graphical front-ends to cdrecord exist, such as xcdroast,
kreatecd, gcombust, and others. If I want to make a graphical
front-end to cdrecord, I have three options:

(a) My front-end can do the job by asking cdrecord to do it by passing
    it command-line arguments
(b) I can change cdrecord's source so that it becomes a library rather
    than a standalone program, and get the job done by making calls to
    the library's functions
(c) I can plainly incorporate cdrecord's source files into my program.

I understand that the FSF claims that with (b) and (c) the resulting
work is a derived work, whereas with (a) it isn't. I don't have a clue
why they claim this. I'm not a lawyer, but using my common sense I
conclude that, since copyright law does not know anything about static
linking, dynamic linking, and executing files, the way of executing
cdrecord code shouldn't matter at all. In all three cases, the
front-end together with cdrecord are to me a work based on cdrecord.
It is a cdrecord with a different interface. Take cdrecord away and
you have an application that does absolutely nothing.

Let's see a counter-example. readline is a GPL'ed library that
provides line-editing capabilities. mysql is a text-based client to
the MySQL server, and mysql uses, I believe, readline; I can tell
because I can edit the mysql commands the same way I can edit bash
commands. It is said that this makes mysql a work based on readline.
Well, readline does offer some additional convenience, but if you take
it out, mysql will still be able to do EVERYTHING it now does. Not
being a lawyer, I can't understand how it can be claimed that mysql is
based on readline; this seems to me equivalent to claiming that the GNU
tar manual is a work based on "Time and the Art of Living" by Robert
Grudin, because it contains an extract of the latter.

Could someone offer some illumination?

reply via email to

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