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 else. 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 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]