I've often harped on Apple for its policy regarding jailbreaking, but of course, Apple isn't the only company engaging in such practices. We already talked about Motorola, and now, we have Sony - already a company with a checkered past when it comes to consumer rights. As it turns out, Sony don't want you jailbreaking your their Playstation 3.

This is the interpretation of some. Others, for instance the Free Software Foundation, believe that dynamic linking is creating a derivative work. For this reason, they have created the LGPL (which does allow dynamic linking in proprietary applications, but not static linking).

This might be what the FSF believe, but it is not what copyright law says. Copyright law says that a derived work must include major elements of an earlier copyrighted work. Dynamic linked libraries (the earlier copyrighted work) are NOT present in the as-distributed work (whereas static linked libraries are). Furthermore, it is the act of distribution of code, and not the mere running of code, that the copyleft provisions of the GPL apply to.

If the FSF were to try to mount a case such as you argue in court, I do not see how they could logically prevail.

The FSF have never tried to argue such a case, AFAIK, and all GPL violations that have been argued by the FSF have involved instances where GPL code was in fact being distributed, physically included within larger (proprietary) works. This, and only this, is the no-no that has bite under the law.

It's true that the cases they have taken to court were clear violations like the busybox case. They mostly go after cases where there was no intent to provide source of any kind.

Minor nitpick ... they have ONLY EVER gone after cases where there was no intent to provide source of any kind, and there were clear violations of distribution of GPL code, like the busybox case. There is no "mostly" about it.

But the FSF has also stated that dynamic linking constitutes a combined program.

The FSF are free to believe whatever they want, it doesn't change what the copyright law actually says.

Copyright law says that major elements of another work (written by another party) must be included in a later work for that later work to be considered a derived work.

The FSF's own GPL license clearly says that only the act of re-distribution of GPL code invokes the copyleft requirement for that code, and that upon that act of redistribution the source code of the GPL elements must be published in order to enjoy the permission to redistribute that the GPL license grants.

There are no conditions on merely running GPL code ... the GPL license grants universal permission for anyone and everyone to run GPL code anywhere under any circumstances. This therefore includes permission for a proprietary binary program to run (or call, if you like) a GPL library if it is already installed on a users system.

When one dynamically links to a library, the library is not actually present in the resulting binary. The resulting binary executable will only work if the library in question is already present on the user's system. This fact is very important, because it clearly shows that using dynamic linking means that the linked library is NOT re-distributed within the binary package.

Given all these clear facts, copyright law, and the GPL license wording itself, a solid case is established that dynamically linking to a GPL library and then distributing the resulting compiled binary is clearly NOT an act of distributing GPL code.

IMO (remember, IANAL), the FSF would have a very, very difficult case to argue otherwise. Even though I am not a lawyer, if I were on a jury, and those were the facts of the case, I would certainly not find in favour of the FSF argument.

Indeed, it is not clear at all, and I agree with nt_jerkface that the GPL is far to ambiguous in this respect. Even if you believe that dynamic linking does not form a derivative work (which effectively makes the GPL a badly-worded LGPL). What if headers contain a significant amount of macros that do become part of your compiled program? What about C++ templates? And if C++ templates create a derivative work, isn't that weird (create an instantiation in the library and you are safe, create one in your code, and you are not)?

As many have come to find out, the GPL is a legal minefield. Sure, it has advantages if you embrace FLOSS ideals, want to force contribution of changes, or to give competitors an advantage they can run with (well, arguably only the AGPL helps fully). But it's a hell of a complicated license, and it's not strange companies want too touch it as little as possible.