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.
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?
What's wrong with the form of words recommended by the FSF?
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
John
YOU DON'T HAVE TO USE GPLv3. You can keep using GPLv2 if you want.
Slashdot should be the first place to clarify this matter instead of joining the chorus of misinformation for the sake of ad revenue.
Seriously, RTFM first.
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
You could contact the copyright owner and ask them if you can include that code in your GPLv3 project. If it's a single copyright holder you have a pretty good chance. If it's the kernel, with 100's or 1000's of contributors, well, your mileage may vary. Best of luck....
GPLv2 allows you to do what you want with the code as long as you allow access to the source. Those items under LGPLv2 and GPLv2 you care to use, just fork them and maintain separate branches of development. For your own developed code, put it under whatever license you want. You want to allow folks to feed back changes to you, fine, add the license terms to the project in whole (maybe editorial copyright is implied here) that allows you and your group et. al. to restrict changes folded back into the main line. The downside is you'll be responsible for future maintenance of the forked code, and you risk someone forking your code. But you can reduce the risk of redistribution by restriction of the work you do, causing the folks who want the source to pull it from you based on your license terms. For a good example of dealing with multiple licenses for the same code take a look at MySQL...
... And of course, free advice is worth what you pay for it.
After your research is all done, ask yourself if there is a need to worry at all about GPLv2 versus GPLv3 and use GPLv2 for now. Software that is set free should really be set free. Personally BSD licenses are simpler and have not been restrictive of innovation to BSD or similarly licensed code bases. So look to what your goal is and then apply Occam's Razor
- Tjp
I am in wallow with my inner money grubbing capitalistic pig. ... Oink!
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.
Just become a closed source developer. That way you won't be on either side of the GPL fence. And you could (nay should) add annoying DRM to your software.
... and then they built the supercollider.
Also, I like birds?
What the hell?
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.
try gphoto2 if you can not mount them as a mass storage device...
http://www.gphoto.org/
if your talking about a digital camera? (not a webcam?)
i can understand the troll status of your comment as digital cameras are off topic, but digital cameras are not an issue for Linux as they all work fine in Linux, almost all of them are just FAT32 storage devices as far as Linux is concerned, unless you compiled your own kernel and did not add support for FAT32 or missed something else like USB support, but i am just giving you the shadow of a doubt just incase you are not being a troll and really need help with your digital camera...
Politics is Treachery, Religion is Brainwashing
"OSS projects get to use it free, commercial ones have to pay up licensing fees"
bollocks. you should say:
"GPLed projects get to use it free, PROPRIETARY ones have to pay up licensing fees"
although you are not the first to misunderstand, I hope (in vain) you are the last
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!
the issue does not seem as simple to most the developers that I know. Anyone coming from the world of proprietary code is used to a very simple system of cooperation: pay for rights.
Numerous developers see the GPL licensing issues as a lot more complex than they actually are... but that does not change the fact that there are issues to consider.
Easy example: I wanted to use some custom GUI components to enhance the look of an app, but have no experience in that realm, and no time or inclination to get experienced. It took me a week of sampling packages from proprietary vendors to choose one. Then another week to decide whether to pay the low price for the right to redistribute, or the high price to actually have the code & rights to modify. Easy. What do I want? how important is access to the code? Pay. Done.
Doing the same thing with GPL code would have required me to review licenses already involved in my project, and my future plans for the project (would I have to excise large portions of code if my business model needs to change to be successful... or if someone wants to purchase my already successful company and change the business model?).
Anyhow, the GPL is very good at what it does, protecting code. But your simple statement that sums up the issues actually becomes complex in practice.
Regards.
Distribute the source, don't link against anything. Now you can pick any license, even a non-free one.
Holy cow, I flipped out for a minute when I saw this. My dander went up and I felt the urge to fight for freedom everywhere and punish the blasphemer. Ignore the license? What the heck? How evil! How horrid! Breaking the license is a capital offense!
In my zeal to fight for the common good I had to consider for a moment who might be hurt and then my dander wilted. I have never personally known anyone who would be offended if their GPL2 code was used in a project by someone trying to use a slightly different license. Not one. I can't rule out the possibility but in the absolute worse case scenario you get a nasty letter that says "stop misusing my code" and you pull it and ask someone else to fill in the blank.
Back to the bat cave Robin, there is no evil here.
B) Eliminate all the stupid users. This is frowned upon by society.
I can tell you two people who would be very annoyed if their GPL v2 code got used in a GPL v3 project. One is me, not that important, the other is Linus Torvalds, much more important.
I'm sticking with GPL v2 only on my projects, although I've been careful to keep in contact with people who have submitted code, so we can change to GPL v3 if we decide we like the final version.
Combination - fun iPhone puzzling
From the referenced page: "Fortunately, license incompatibility only matters when you want to link, merge or combine code from two different programs into a single program."
SO what about libraries that have been released under the GPL rather than the LGPL? Libraries are not "programs" but they are always, no exception, "linked, merged, or combined". What happens then?
The Mozilla Public License (MPL) and the Common Development and Distribution License (CDDL) are not compatible with the GPL.
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.
#include ".signature"
How was that flamebait? Please explain. I was addressing a (most likely troll) person trying to spread Linux FUD that the solution is perfectly simple. Most cameras just work. If that's flamebait, then I don't know what the hell to tell you.
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
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.
why not just do a GPLv2 or later why you still have contact?
Money is the root of all evil?
NOWAI!
Because the way the GPL v3 is forming at the moment, I and a few other writers don't agree with it. There is a slim possibility some day someone might want to 'tivo' some of our code, and we want to allow that.
Combination - fun iPhone puzzling
And i dont know if its the "right" way, but i was confused enought with gplv2 without throwing gplv3 into the mix. So i did is remove all external code (unless it was things like libc) and stopped depending on libraries (as such). Where i couldnt get away with this i simple deleted anything i'd used from my project that was in my code tree and made the install notes say things like "download version 2.1.15 of open=excelent=app, and place it here".
;)
As i said, i have no idea if thats fair or just but im beginning to get the feeling that i need a lawyer for coding oss
This license crap is getting old if you can't read sometihing and figure it out just write your own license
I don't like how GPL considers dynamic-linking to a GPLed .so or .dll file as "modification" in their license.
.so is actually modifying the GPLd library. Why does GPL use such weasel-like lawyerese language that is intended to confuse and deceive the reader of the license.
Modifying source of a GPLd gpllib.so to create a new gpllib.so is definitely modification and should be fed back. But it is absurd to claim that linking to a GPLd
Linking is not modification! Fix the damn wording.
ahhh.... But is there any way you can dictate a GPLv2 or latest? Any precedent for that?
Money is the root of all evil?
You will need to hire a lawyer with expertise in OSS licensing.
is there any way you can dictate a GPLv2 or latest?
You can always add permissions for your own code. You can say "You have permission to redistribute this under the GPLv2 and you have permission to redistribute this on Tuesdays".
-
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.