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

Re: Combining proprietary code and GPL for in-house use



Anthony Towns <aj@azure.humbug.org.au> writes:

> If it's done to get around the provision in the GPL, then it probably is,
> but that's not the only reason to do it, merely the most likely.

Yes, I'm assuming only cases where the intention is to get around the
GPL.  Like I said, intention matters a great deal here.

> > Right.  In such a case, {FooCorp,Debian} would be infringing.  
> 
> You keep saying this. What, exactly, are they infringing? I've given some
> specific details where you can assume intentions in a previous message if
> that's helpful.

If a single person distributed LibFoo (a GPL'd library) and Frobnitz
(a program that uses LibFoo, distributed under terms incomptable with
the GPL) as a single thing, they would be in violation of the GPL (and
maybe also the Frobnitz license).  The GPL applies to the whole
program LibFoo+Frobnitz, and if Frobnitz's license is incompatible
with the GPL, the combo cannot be distributed.

If that person decides to ship LibFoo and Frobnitz on separate days
and separate disks to get around the issue, that is a subterfuge that
courts just ignore.  This is just what {FooCorp,Debian} does.  

Now, Debian isn't choosing to be part of {FooCorp,Debian}, but FooCorp
is, and so they are liable.

Suppose instead that Frobnitz works with LibFoo, and also with LibBar.
LibBar supports the same interfaces as LibFoo, and is in the public
domain.  In that case, it's going to be very hard to show that FooCorp
is intending to be part of the {FooCorp,Debian} combined distribution
of LibFoo+Frobnitz, and in general one would say that there is no
infringement here.  (But it's a gray area; if LibBar is totally fake,
such that nobody would seriously entertain linking Frobnitz with
anything but LibFoo, then it wouldn't matter if LibBar exists or not.) 

> Another general rule is that if something has signficant non-infringing
> uses, then it's okay, even if there are infringing uses.

This is quite correct, and its why the existence of a serious LibBar
in my example above changes the situation considerably.

> All of which is to say, I'm not seeing the illegal act here, for which
> blame is to be apportioned. So I don't see the relevance or utility of
> your rule here.

The illegal act is the one that would be obviously illegal if FooCorp
were distributing the linked program Frobnitz+LibFoo.  

> (TBH, I'm not too concerned if this is a flaw in the GPL: at worst,
> it means you hook in non-free software to existing GPL software using
> documented interfaces as long as you have your own completely compatible
> implementation of the GPLed stuff that you use exclusively, and as long
> as you make sure never to distribute the GPLed software. Forgetting
> either would probably put you at risk of your program being considered
> a derivative work, and you'd end up screwed. And, personally, I'd be
> pretty concerned if the FSF or the GPL found some way to declare using
> compatible reimplementations illegal.)

Yes: it forces you to reimplement whatever GPL'd thing you have.  

Here's one reason why the FSF really cares:

Suppose someone takes GCC and turns the backend into a library.  Then
they distribute that, under the GPL, and a non-free frontend.  This
would be a disaster; it's the whole point of the GPL that someone who
wants to use any part of GCC has to make the whole thing they produce
free software.

Now note that here the backend of GCC is playing the role of LibFoo.
Writing a fully comptable "LibBar" would be a monumental task, and if
someone does that, certainly they have the right to link it with their
own frontend; GCC has nothing to do with it.  But if they want to use
the GCC backend in their product, they must make the frontend free
software.  

So as your parenthesis indicates, the interpretation I'm giving (and
the one the FSF insists on) produces the "right" results in cases like
this.

The FSF is entirely on record as saying that writing compatible
reimplementations is entirely fine; the FSF was once one of the few
people crying foul at the attempts of Apple and Lotus to copyright
interfaces and has no intention of trying the same thing itself.

Thomas



Reply to: