
David Leimbach
Yes the author can privately license code to himself under any license he wants, but when he distributes code based on GPL'd code, it has to be GPL'd. That's why people hate this license, or love this license. For all the freedom it talks about it's awfully restrictive.
It has to be lincensed under GPL, but GPL doesn't have to be the only license. Consider, for example, releasing an app that depends on readline (GPL) under GPL/BSD: People may use+distribute it under GPL, they may hack it to remove the readline dependency and use and distribute it under either GPL, BSD, or both, or someone could come along and re-implement readline (guess what has happened) and everybody will be able to choose between GPL, BSD, or both, again. The GPL is viral, but it doesn't (and can't) prevent you from releasing _your_ code under -- additionally -- any bleeding license you wish[1]. It could also be argued that, as BSD explicitely allows re-lincensing, that any grant of a BSD-license implies a dual-license under GPL, as everyone and everybody can just re-license the code as such. BSD also does not claim that the lincensed code is not allowed to be used under GPL, and it does not guarantee FITNESS FOR ANY PURPOSE, which includes, but is not limited to, being distributable under violation of GPL. This, admittedly, isn't a bullet-proof argument. I'd be surpised, though, if any court would see _intent_ of closing up GPL'ed code if you release it under terms _that allow, but not by themselves enforce,_ GPL distribution. However, (apart from IANAL and whether or not above argument holds), not mentioning that your code depends on GPL and thus can't be distributed in violation of it is clearly a mean, aweful breach of the principle of least surprise and is therefore to be fought with any static means we have at our disposal: % cabal sdist foo.cabal: Error: Depends on a GPL library but only mentions "BSD3" as license. Either change License: to include GPL or remove the offending dependency. Please, please don't make this a mere warning. It's easy and painless enough to fix and will result in way less confusion about what terms some random piece of hackage code can be used under. [1] I strongly advice dual-licensing any BSD code under the Beer License, regardless of GPL involvement. -- (c) this sig last receiving data processing entity. Inspect headers for copyright history. All rights reserved. Copying, hiring, renting, performance and/or quoting of this signature prohibited.