
On 1/27/11 2:21 PM, Maciej Piechotka wrote:
On Thu, 2011-01-27 at 00:45 -0500, wren ng thornton wrote:
On 1/26/11 5:51 AM, Maciej Piechotka wrote:
Some projects (like Linux) remove this clause and I'm not sure how many projects are marked on hackage as GPL2 being GPL2-only.
Technically GPLx and GPLy are incompatible for all x and y such that x /= y.The problem is that *technically* the phrasing of the viral clause prohibits dual licensing, despite the obvious intention.
Could you elaborate? I cannot see any problem why author, having all rights, cannot publish code under GPL-2 and MPL. Sure GPL-2 allows someone to fork it into single-licence fork.
IANAL, but that is the synopsis that was given to me by and old friend who was. ISTR that the FSF may have a page on the matter too (circa "how to upgrade to GPL3" pages), though I'm loo lazy to look for it now. The problem is in the exact wording of how the viral clause is phrased, which is somewhat at odds with the intention. Basically, if you license your work under GPL2, and someone else wants to use it in a derivative work, then they must distribute the composite work under GPL2. All well and good, since this is the intention of the viral clause. However, copyright law doesn't have any built-in notion of "versioning". So if you distribute your work as GPL2 and someone does some derivative work that they want to distribute as GPL3, then technically they must distribute the composite work under the *joint* license (GPL2 && GPL3); however, since parts of the GPL3 were specifically written as "bugfixes" to the GPL2, this means the joint license is inconsistent and so noone can simultaneously adhere to both of them, so the composite work cannot be (non-vacuously) distributed. Conversely, if your work was distributed as GPL2+ then you are providing a disjunction of licenses for users to choose from. The person making their derivative work would be free to choose the GPL3 (or GPL3+) license(s) for their use of your work, and this is clearly compatible with their own GPL3 (or GPL3+) license, so the composite work can be released under GPL3 && GPL3 == GPL3 (or GPL3+ && GPL3+ == GPL3+, or GPL3+ && GPL3 == GPL3,...) If you're familiar with linear logic, this is basically the same kind of differentiation between multiplicative and additive conjunction.
Hmm. By GPL I understend FSF version which allows relicensing.
I'm not sure exactly what you're meaning by "relicensing"...
I'm not sure about the interpretation (and IANAL) but I'm not entirely sure if GPLx+ and GPLx-only are compatible at all.
If one project is released under "GPL version x (or, at your option, any later version)" and the other is released under "GPL version x" (only), then the composite work can satisfy both by being released under "GPL version x" (only), since they have the option to choose "GPL version x" as their license for the first project. It's only a problem when x-only is not in the range of y+. -- Live well, ~wren