
On Tue, Jan 25, 2011 at 21:11, David Leimbach
I am not an IP lawyer, but this is my understanding of the GPL and it's transitive relationship with bodies of work that aren't GPL'd. BSD3 doesn't really state anything about what it links with, but the GPL injects itself into the tree of stuff it's linked with via the derivative works clause. The consequence is that the entire derivative work becomes GPL'd as well, and those distributing the derivative work must adhere to the terms of the GPL for distribution and provide source.
This is correct. If you create a derivative work of BSD3 and GPL code (eg, a binary), it's covered by both the BSD3 and GPL. The GPL requires you to provide source code for that binary.
This is somewhat in the tradition of commercial middleware requiring a royalty fee or some per-installation licensing when a work is distributed that uses a particular library with such terms. In other words transitive licensing properties are NOT unique to the GPL.
EVERY license propagates down the dependency chain. If a PublicDomain application depends on a BSD3 library, then compiled versions of that application must obey the BSD license's copyright, endorsement, and warranty clauses. It's disingenuous to suggest this only matters to GPL code.
At least that's always been my understanding. A BSD3 library in isolation may still remain BSD3, but if it's not useful without being linked to a GPL'd library, then the point is kind of moot, except that someone is free to implement a replacement for the GPL'd part to avoid the transitive properties in the derivative work, in much the same way you could implement a free version of a commercial library (barring patent or other violations) to avoid transitive properties of the commercial license.
Licensing is a property of the code, not the package; Cabal's licensing field is only a useful shorthand for "most of the code here is covered by...". Many people write BSD3 code that depends on GPL libraries, because they believe 1) their code is not important enough to protect (eg, one-off libs) or 2) want to encourage commercial forks (eg, during exploratory design). Sorry to sound so pedantic about this, but I often field emails along the lines of: Hi! I really like <some library> and want to use it for a program I'm writing. But because its GPL I can't (the program is BSD). Can you please relicense your library so BSD code can use it? And then I have to email them back, and explain, and reassure them that the GPL is not actually the green-eyed bogeyman portrayed by some tabloids. At one point, I actually had to offer to sign/mail a physical letter just to convince some guy I wasn't trying to trick him.