GPLv2 and GPLv3 Coexisting In the Same Project?
cyclop writes "I am coding a data analysis application in my laboratory that I would like to release as free (as in freedom) software. Moreover I am going to begin a small OSS game that will be based, in part, on GPLv2 libraries. Problem is: in both cases, I'd like to be able to exchange code both with GPLv2 and (future) GPLv3 projects. I have no particular passions about either license — only thing is I don't want BSD-style 'do anything you want' licensing but a copyleft license. I know that GPLv2 and GPLv3 are not compatible. What can I do? Double licensing? Is there a compatible-with-both license? Adding exceptions? What do you think is the best way to address the GPLv2-to-GPLv3 transition without ending up on one or the other side of the barricade?"
OR... you can use Trolltech's licensing scheme (OSS projects get to use it free, commercial ones have to pay up licensing fees).
I like either GPL version, but if you're not too hung-up on using GPL, http://www.opensource.org/ has a whole array of open-source offically-sanctioned licensing - one of those may fit your needs better. (cue RMS fans w/ mod points stampeding in protest, but seriously; if it does the job, use it).
The beauty of this is, it's all up to you how you want to handle it.
Quo usque tandem abutere, Nimbus, patientia nostra?
*bzzt* If you link against GPLv2 code, then you are required to distribute the whole under the GPLv2. And if you link against GPLv3 code, then you are required to distribute the whole under the GPLv3. Simply keeping the source open and available isn't sufficient. You can fork the libraries all you like, but you still can't combine your fork with code written under another license and then legally distribute the end product.
MySQL is a special situation, because they own the copyright on all the code, giving them the legal right to relicense it under whatever terms they feel like. If you want to incorporate third-party code into your project, you don't have that luxury.
The original question is a little vague, but it sounds like (s)he wants to link against third-party GPLv2 code today, and later incorporate other third-party GPLv3 into the project. If you do that, you can't distribute the end result under any circumstances, since there's no way to simultaneously satisfy the requirements of both the GPLv2 and GPLv3. (Unless, of course, the GPLv2 code includes the "or ... any future version" clause, in which case you can legally distribute the whole codebase under the GPLv3.)
It is a fact that you will not be able to mix code distributed under GPLv2 without the "or later version" option and code licensed under GPLv3 in the same program. How much of a problem this turns out to be in practice is as yet unknown. However, it is not misinformation to point out that a real issue may exist.
Seriously, who's going to sue who over this? Ignore the differences between v2 and v3 and mix it up at will. In the extremely unlikely event that someone complains, call it a "bundle" and let the licenses exist on their own.
Pedantry has no place in this kind of thing.
Tired of FB/Google censorship? Visit UNCENSORED!
My calling people who disagree with the GPLv3 "dumb or dishonest" seems to be a figment of your imagination. I've always insisted that people are free to use whatever license they want for their own code. I haven't called them dumb or dishonest for making that choice. SUN and IBM seem happy with the GPLv3. TiVo is not happy because they won't be able to use GPLv3 code without passing on the four freedoms and Microsoft seems horrified by the GPLv3. The GPLv3 does a better job at enforcing freedom. People or corporations who are against freedom will be against the GPLv3. That's fine. But even if a lot of corporations (besides TiVo and Microsoft) were against the GPLv3 I don't think it would be wise to amend it just to cater to them. Most of our world now seems to cater to the large corporations: the mass media is corporate controlled; and even the Congress and the president (both parties) seem to be controlled by the corporations. Would it be such a sin to have one tiny little corner of the world that does not kowtow to the corporations? Free software should not be neutered in order to cater to the whims of people who don't want software to be free. No license or contract can force someone to break the law. If you distrust the FSF so much then you shouldn't use the "any later version" clause in your licenses. That's fine. That's your choice. If you are part of a massive project involving many developers then license upgrades will be difficult, perhaps even impossible. I chose to trust the FSF so I kept the "any later version" clause when I licensed my software. That is my choice. I gave up some control in exchange for an easier upgrade path especially for other people who might want to use some of my code in a new project.
We don't see the world as it is, we see it as we are.
-- Anais Nin