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

Re: GPL and command-line libraries



"Wesley W. Terpstra" <wesley@terpstra.ca> writes:

> On Tue, Nov 02, 2004 at 11:12:11PM +0100, Måns Rullgård wrote:
>> > If Mr Wontshare's client doesn't work without your software, this is
>> > what I call a derivative work. Whether it is linked to it using ELF or
>> > not is irrelevant.
>> 
>> Mr. Wontshare's program *uses* the GPL program, but isn't derived from
>> it.  See http://www.gnu.org/licenses/gpl-faq.html#MereAggregation.
>
> To quote that answer:
>
>   What constitutes combining two parts into one program? This is a
>   legal question, which ultimately judges will decide. We believe
>   that a proper criterion depends both on the mechanism of
>   communication (exec, pipes, rpc, function calls within a shared
>   address space, etc.) and the semantics of the communication (what
>   kinds of information are interchanged).
>
> My question was essentially, does the scenario I outlined constitute
> combining two parts into one. I believe the answer should be yes.
> However, IANAL and I thought FSF lawyes frequent debian-legal (?) 
> might be able to tell me what a judge would likely think.

To find out what a judge might rule, you might as well flip a coin.
That's what the courts do anyway, if one of the sides doesn't have
much more money than the other.  In that case, the side with the money
wins.

>> Further, consider what would happen if someone else created an
>> application with an interface compatible with the OP's program.  Would
>> Mr. Wontshare's program then become a derivative this program as well?
>> A program compatible with the OP's could even be written before Mr.
>> Wontshare writes his.  Which one is it then derived from?  The only
>> consistent answer is that it is not derived at all.
>
> Or else, his is a derivative work of whichever one he makes use of.
> If he ships with one of them, his intention seems to be clear.
>
> I don't see how that is logically inconsistent.

It's all about causality.  Consider two scenarios, both involving
three programs, A, B and C.

Scenario 1:
  1. A is written.
  2. B written, and makes use of A.  You argue that B is a derivative
     work of A.
  3. C is written, and is compatible with A.  B is clearly not a
     derivative work of C, since it existed before C.

Scenario 2:
  1. A is written.
  2. C is written, and is compatible with A.  C is not a derivative
     work of A.  If it were, most of the GNU programs would be
     illegal, since they would be derivative works of non-free
     compatible programs.
  3. B is written, and makes use of the interface shared between A and
     C.

In the second scenario, if B is a derivative work of A, it must also
be a derivative work of C, since A and C are equivalent.  This
conflicts with scenario 1, where B cannot possibly be a derivative
work of C.  In both cases, we have in the end an identical set of
programs, and the derivedness relations between them must also be
equal.  The only solution is that B is not derived from either A or C.

-- 
Måns Rullgård
mru@inprovide.com



Reply to: