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

Re: cdrtools

On Friday 11 August 2006 14:48 pm, Joerg Schilling wrote:
> The FSF GPL FAQ e.g. incorrectly claims:
> 	Linking ABC statically or dynamically with other modules is making a
> 	combined work based on ABC. Thus, the terms and conditions of the GNU
>         General Public License cover the whole combination.
> The GPL does not contain the term "combined work", so this is an invalid
> claim. 
> The GPL rather talks about a "derived work" and simply linking two modules
> together does definitely not make module B a "derived work" of module A
> if module A calls code from module B but module B does not call code from
> module A.

Let's put aside for the moment that the FAQ is not meant to be a legal 
document as opposed to the GPL itself, and that the FAQ is not saying B would 
be a derived work of A, but rather that the combination would be...

I have a general question about how the GPL is construed to cover the case of 
dynamic linking.  According to the GPL, section 0:

  The act of running the Program is not restricted...

And since dynamic linking is done at the time the program is run, this would 
appear to me to be what applies.  In particular, it appears to me that you 
could satisfy the GPL and still dynamically link against a non-free library, 
and distribute both, by invoking the "mere aggregation" clause of section 2.  
(Of course, you would have to be very careful about any inline functions, 
etc., from the non-free headers...)

As a hypothetical example, let's say that program A uses library B, both 
licensed under the GPL.  Now the author of B decides he doesn't want anybody 
selling B at all, so he releases a newer version under a non-free license, 
and Debian decides to package the old version of B as B-free and the new 
version in non-free.  Is Debian allowed to keep distributing A, while 
distributing B-nonfree at the same time, given that some users might not end 
up installing B-free?  Suppose that later B-free is considered old and buggy 
enough that we refuse to support it, so B-free is removed from the archive.  
Now does Debian have to stop distributing A as well?  Even if by this point 
nobody actually had B-free installed any more?  (I think my answers would be: 
distributing A with B-free and B-nonfree is permissible, but once B-free went 
A would have to go as well.  Of course, there would also be the solution we 
already have with B-free = lesstif and B-nonfree = libmotif, but let's say 
for the sake of argument B's maintainer doesn't take that course, and instead 
makes libB1-nonfree: Provides: libB1.)

On the other hand, since the FSF is the author of the license, and their own 
FAQ states that they consider dynamic linking to fall under the terms of the 
license, distributing GPL programs dynamically linked against 
GPL-incompatible libraries would clearly be exploiting a loophole under any 
definition of that term that I know of.  And exploiting a loophole in the GPL 
would hardly be a way to endear oneself to the free software community.  
Thus, I'm hoping that the above is more of an academic question than anything 

In any case, static linking clearly falls under the definition of a "work 
based on the Program" in section 0, so you cannot e.g. extend GPL'd program A 
to use non-free library B, then distribute a resulting binary with B 
statically linked in.  (Which is not the same thing as saying this would make 
B a derived work of A.)
Daniel Schepler

Reply to: