Tomorrow at noon GPLv3 will be released. I was on one of the committees, so it's a relief it's finally done. I just wanted to say out loud how hard it was to try to get everyone's wants included. But the effort was real. And not everybody on the committees were fanbois either, from what I saw on the committee I was on. Lots of give and take. FSF demonstrated a willingness to listen to everyone and take seriously what all were saying and they made some adjustments that they didn't particularly want to make but made anyway to try to meet concerns others had.
If it wasn't possible to please absolutely everyone on planet earth, it's because not everyone is on the same page as to what matters most. That's fine. GPLv3 isn't trying to be the one and only license in the world. And it's not a religion or a political document. It's a license. That's all it is. Use it if it suits your needs. It surely meets some current legal needs in a way no other license does. In fact, what it foresaw regarding patents actually came to pass while it was in the draft process.
Did you see the latest from Linspire, by the way, speaking of current events? Hold your nose, because I'm going to show you.
Kevin Carmony tries to justify his decision to sign a patent deal with Microsoft, and he couches it in part like this:
Lastly...some distributions have come out, claiming to be taking the "morale high ground" by refusing to give into "Microsoft threats," while openly promoting the means of circumventing proprietary software on their web sites, amounting to nothing more than high-brow software piracy.
Some are claiming anti-Microsoft sentiment in regards to our recent announcement, but I don't see them licensing or respecting the IP from many others, not just Microsoft. That's not how I define the "moral high ground."
So, if we don't sign patent deals with Microsoft, we're pirates? Puh-lease. I told you to hold your nose. I don't even know what he's talking about. It would be hard to find a group that tries as hard as FOSS programmers do to respect the property of others, in my experience. That's why SCO can't find anything in Linux and it's no doubt why there has never been a patent infringement suit against it.
As for Microsoft, it won't show anything. Please do show us the patents with specificity, Mr. Carmony. You must know what they are, if you are "respecting" them. So share with the community what you know. By all means we will respect any legitimate patents by ripping out whatever we need to, pay whatever we need to, and work around it. But you have to tell us what they are so we can check them for obviousness, for a start, and prior art, so we can make sure this isn't just Microsoft selling the world a pig in a poke. They do have a reputation for FUD. Had you not heard?
And if you signed without knowing about any specific patents, say so. Because then you are not respecting someone's IP at all. You are giving in to Mafia-like threats based on fear. That is not the moral high ground to me, although you are free to do whatever you please.
I mention this just to point out that GPLv3 can't please everyone, because ideas differ about what is right and what isn't. But if your desire is to build up over time an oasis of code a little more free of patent infringement threats (the only final solution is for software and patents to get a divorce, of course) and with the assurance that no one can take your code and sign patent deals -- with Microsoft or anyone else -- that you don't want your code involved with, GPLv3 is likely your license. GPLv2 can't protect your code from those patent deals, as you now can clearly see. So if that matters to you, GPLv2 is not perfect for you.
Mr. Carmony asked a question, will Linux split in two factions? The answer is no. Some Linux distros will limp along a while and then die off, because they misunderstood what folks want when they choose GNU/Linux and FOSS. You can see that already. Red Hat, which refused to sign any such deal, is flourishing, for example. It's not about code that "just works". Apple offers that already. It's the freedom. And we've proven willing to put up with some temporary frustration in order to get it. In time, FOSS will win, and all those proprietary codecs and everything else will be made available on pleasanter terms, because market share does that.
Even businesses want freedom to customize without fear. The GPL -- both versions -- gives you that in a way that patent deals never can. GPLv2 and v3 are usable together, don't forget. GPLv3 code can run *on* the kernel without any license problems.
Update: I used the wrong adjective. I'm sorry if I confused you. I woke up thinking it was Friday, and it's been like that all day. Here's the correct info from Richard Stallman's essay:
When we say that GPLv2 and GPLv3 are incompatible, it means there is no legal way to combine code under GPLv2 with code under GPLv3 in a single program. This is because both GPLv2 and GPLv3 are copyleft licenses: each of them says, “If you include code under this license in a larger program, the larger program must be under this license too.” There is no way to make them compatible. We could add a GPLv2-compatibility clause to GPLv3, but it wouldn't do the job, because GPLv2 would need a similar clause.
Fortunately, license incompatibility only matters when you want to link, merge or combine code from two different programs into a single program. There is no problem in having GPLv3-covered and GPLv2-covered programs side by side in an operating system. For instance, the TeX license and the Apache license are incompatible with GPLv2, but that doesn't stop us from running TeX and Apache in the same system with Linux, Bash and GCC. This is because they are all separate programs. Likewise, if Bash and GCC move to GPLv3, while Linux remains under GPLv2, there is no conflict.
Keeping a program under GPLv2 won't create problems.
And here's the GPLv3 FAQ on compatibility:
How is GPLv3 compatible with other GNU licenses?
The various GNU licenses enjoy broad compatibility between each other. The only time you may not be able to combine code under two of these licenses is when you want to use code that's only under an older version of a license with code that's under a newer version.
It has a handy chart.
So as GPLv3 builds up a large pool of safer code, everyone will know where the greatest safety and freedom from patent threats can be obtained without having to sign off on a de facto proprietization of code that was written with the clear intent that it stay free of patent deals. Freedom is what we switched from Microsoft's products *for*.
If you wish to respect other people's IP, you might start by respecting the GPL. It's a legal license, and its intent is clear. Deals that try to leapfrog over it or slice off a bit of it or undermine it are not the way to show you respect the authors' right to tell you what you can do with copyrighted software they have written and own and released under terms that you are supposed to respect.