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?"
If it's your code you can use whichever licenses you want including making your code available under more than one license. If you're using someone else's code though then you have to stick to their license.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
"version 2, or at your option, any later version"
Remember that almost all GPL'd software permits using the terms of future versions of the GPL. Unless they have chosen to omitt this part of the license you can use GPLv3 without issue. If that won't work, then you should license GPLv2 WITH the option of using the future terms. That way you are compliant with both GPLv2 and GPLv3 and let people work out the library licensing on their own.
Claus
Just pick GPLv2, with the usual 'version 2 or later' language in it, for your own code.
That allows you to mix any variation of your code, GPLv2-or-later code and/or GPLv3 code in a GPLv3 project.
It also allows you to use your code with those relatively few projects that are 'GPLv2 only'(such as the Linux kernel) and/or GPLv2-or-later code in a GPLv2-only project.
That's about as compatible as you'll get with those three flavours of GPL. No license you pick will allow you to mix 'GPLv2 only' code with GPLv3 code.
I'll take the bait. . .
9 291
Most cameras are mass storage devices. If you can't get them to work with Linux, I do not think the problem is Linux or the computer or the camera.
Or did you mean a webcam? That isn't a problem either. See http://www.theinquirer.net/default.aspx?article=3
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
The GPLv3 Wiki FAQ is here:
http://gplv3.fsf.org/wiki/index.php/FAQ_Update
You can check the questions already on it to find if yours is answered, and if not, add your question to it. I added a couple of questions and within a couple of days, someone had merged them into one and answered it.
There's one slight comment to this. If you link with GPL libraries it is considered by many that your code has to be licensed under that license. If you are using libraries which are GPL V2 only and libraries which become GPL V3 only, there might be some incompatibility since you can't be both at the same time (dual licensing lets the licensee choose, but not actually have both at the same time). In this case your code can be distributed with the "any version later than 2" and will be compatible with both sets of libraries individually, however, distribution of object code which needs both libraries to work might be a problem. I'm not sure if someone has a good answer to what the limitatinos would be? Most people sensibly use the FSF recommended wording and so you can use "either version 2 of the License, or (at your option) any later version.". In this case, you should wait until the GPL v3 is out and then start using GPL v3 for all of the libraries. Your own code should be able to be "version 2 or later" without a problem.
You only have to release the source code to the kernel changes if you plan to distribute the modifications. The GPL's restrictions only apply to distributors. Private use of the software, including changes to the source code, is completely unrestricted. The GPL only applies if you intend to release those modifications to the world. Likewise, the GPL does not say that gcc can only compile code released under the GPL. The license only means that gcc itself is under the GPL, meaning that ordinary use of the program is unrestricted. The GPL doesn't apply to code compiled under gcc and then distributed, only to distribution of gcc itself. Anything you compile with gcc, assuming that all of the source it compiled is entirely your own and not from other sources, can be licensed under the license of your choice.
Here's the problems you will face. If you license under GPL version 2 or later then you can't incorporate code that is licensed under version 3 (but not version 2) into your project (others here seem to imply that you can) until you move up to version 3 yourself. Basically you need to think of it this way, in order to use other people's code in your project your license has to be a subset of their license. In order for others to use your code their license has to be a subset of yours. Here is what I would recommend:
As for allowing others to use your code, you have some options with that as well:
I think this about as comprehensive of a guide as I can give you. I'm not a lawyer or a representative of the Free Software Foundation and my statements above are just opinion and not to be taken as legal advice. I just know what I know and am passing that knowledge on.
Windows is a bonfire, Linux is the sun. Linux only looks smaller if you lack perspective.