Eben Moglen has now stated that GPLv3 will be redrafted to include clear language that will make the Novell-Microsoft agreement an obvious GPL violation, and more:
"GPL version 3 will be adjusted so the effect of the current deal is that Microsoft will by giving away access to the very patents Microsoft is trying to assert."
I expect that got Microsoft's attention. When his statement was read to Novell, it put out a statement that illustrates, to me, what the real problem is -- getting cute with the GPL:
We dealt with the current GPL license (GPL version 2) when we worked on our partnership with Microsoft. We reaffirm that our patent cooperation agreement is compliant with GPLv2. The fact that Mr. Moglen offered no opinion on this question is instructive. As to GPLv3, which is still a work in progress, Novell has supported the Free Software Foundation's pursuit of transparent discussions that surface and address the needs of all relevant constituencies -- customers, developers and vendors. For GPLv3 to be viable and relevant, it will need to address the needs of these constituencies, and Novell maintains that its partnership with Microsoft benefits those constituencies. The GPLv3 efforts should not be turned to a task designed to undo a transaction that will actually promote the enterprise-wide adoption of Linux and one that will best address the computing needs of customers.
Well, it is going to. You can take that to the bank, and Novell has ensured not only that it will happen but that GPLv3 will have broader community support than it did before.
You can see that Novell's asserting in its statement that the agreement *was* compliant with GPLv2. So did Tivo, and in Tivo's case, it was literally in compliance while being out of compliance with the purpose or spirit of the license. Now we may have a second case of getting cute with GPLv2, technically abiding by the letter of its terms while flouting its clear purpose and intent. I say "may" because Moglen has yet to finish his audit of the agreement, and now that it's being redone, I expect that will mean we won't hear his assessment for a while longer. It may in fact be directly violative of the GPL. He is reviewing the actual agreement.
But let's assume, for the sake of this discussion only, that Novell managed to squeak by the terms of GPLv2 by a millimeter. Would that not illustrate beautifully exactly why we need GPLv3? We need it because folks are starting to get cute with v2.
Let's review the four freedoms the GPL is designed to provide, and I'll let Richard Stallman do that, since he thought it up in the first place, as expressed in a speech at NYU in 2001:
A program is free software for you, a particular
user, if you have the following freedoms:
First, Freedom Zero is the freedom to run the
program for any purpose, any way you like.
If you have all of these freedoms, the program is free software, for you --
and that's crucial.
Freedom One is the freedom to help yourself by changing the program
to suit your needs.
Freedom Two is the freedom to help your neighbor by distributing copies of the
And Freedom Three is the freedom to help build your
community by publishing an improved version so others can get the
benefit of your work.
Tivo made some of these freedoms a sham, as explained by Eben Moglen, who is guiding the GPLv3 redrafting process:
All future versions of the GPL will fully protect the freedoms that the Free Software Foundation defined decades ago, and which we believe all software users everywhere should be guaranteed. Freedom zero, the freedom to use software, is infringed if you are required to pay fees or make promises in order to use software, anywhere, anytime. FSF will never publish a license that violates freedom zero. Similarly, freedom two, the freedom to modify a program, and freedom three, the freedom to share, are violated if private modification is prohibited or sharing is required rather than permitted. You can always modify free software for your own use, and decide whether to share it with other people. If you share with others, the GPL says now and always will say that you have to give them the same freedoms you were given by others who contributed to the code you are using, modifying and redistributing.
Just reading that, isn't it obvious what is wrong with the Novell agreement? I think you can see from his statement that the Novell-Microsoft patent peace is not in harmony with freedom zero, for starters. There are other things wrong with it too, but since Microsoft is asking for input on what needs to change, and I'm glad that they are asking, I thought it would help to explain the basics. I think some in Novell need a refresher course as well.
And to clarify for Microsoft and others, here's part of a speech that Richard Stalllman gave recently in which he explains the point of the patent clause in GPLv3. Can anyone now claim, after the appalling Novell-Microsoft agreement, that no such clause is needed?
But there are some places where we actually have changed the policies in small ways. One of these concerns software patents. GPL version two is based on an implicit grant of a patent licence. The idea is that if somebody says "here is a thing and you can use it", implicitly he's promising he's not going to sue you for patent infringement if you go ahead and do what he said; however, since in the past eight years or so some other Free Software licences have included explicit statements of patent licenses, patent licence grants by people distributing the software, and so we decided to do the same thing, and we've included an explicit statement that the distributors of the software all promise not to sue anybody who is using any version of that software for patent infringement based on the versions that they distributed. Basically, whatever their versions do, they're promising not to sue you for.
However, there's a subtlety that came up in this. What if somebody doesn't have a patent but he has got a licence for that patent, and he distributes the code to you. Well, does that licence he got include your exercise of the four freedoms? Including your freedom to redistribute copies yourself, with changes? Maybe not, but if it doesn't, it creates a dangerous and unfair situation. Unfair to you because he is distributing the software, or distributing his version of the software, and he is not going to get sued for patent infringement because he got a licence. He distributes it to you under the GPL and the GPL says you are free to redistribute it too, but if you do that you might get sued because his patent license might not cover you.
Well, this is unfair, this is something that's not supposed to happen. He received this program under the GPL and the GPL says when he distributes a version of it, he must really give you the freedom to do the same. If he can count on safely doing it, and he knows you will get sued if you do it, by a third party, he's cheating. So, GPL version three, along with the explicit patent licence grant, says that if he is knowingly relying on a patent licence for distributing his version, he must take some effective step to protect you as well if you distribute.
So what is implicit in GPLv2 is being made explicit in v3, because some, like Novell and Microsoft, apparently need a very bright line or they will fudge, as they did. I guess it's human nature to fudge. If everyone thought about others as being as valuable as themselves, who'd need laws or legally enforceable licenses? The purpose of the GPL if one must boil it down into a phrase is to ensure fairness, to protect against corporate hijackings and other cowboy tricks, to compel decency.
Fairness is the law's purpose as well. And as you know from earlier articles, the courts enforce laws, but they have another purpose: they also provide equity, another word for fairness. And while Novell in its statement, hopefully now overruled by the rewrite we are hearing about, makes the implied assertion that it is in literal compliance with GPLv2, it is obviously not in compliance with the purpose or spirit of it, as the community's overwhelming reaction ought to by now have informed it.
Now, if you're a certain type of business sharpie, you may thumb your nose and say, so sue me. And indeed that is a tempting possibility. But before you insist, ask yourself this: if two parties go to court in a dispute, and one party says, we knew about the license, and we knew what the terms were, and we deliberately couched our agreement to bypass the clear purpose and the intent of the license when we thought we'd figured out a loophole, do you really believe for a minute that any court of equity will endorse such behavior?
There is substantial case law that says that courts will not. Why not? Because it's not fair. Duh. And by now, there are ample statements given to the media by both Novell and Microsoft that they knew about the GPL, understood its terms and requirements, and wrote specifically to avoid the license's intended effects with respect to patents. Of course, they would likely argue that they were trying to do what they wanted to do while still complying. But the world has now judged that claim to be ridiculous. It doesn't pass the smell test. There isn't much about the deal that does, actually, which is why it's a good thing they are reevaluating.
What is clear is that some enterprise players wish to make money from GNU/Linux. That's fine with everyone. But you can't make honorable money from cheating. The GPL provides the rules of the road. It's the overwhelming choice of FOSS programmers. You have to live with that if you want the code. It doesn't matter what you think of the GPL, whether you hate it, think it's too this or too that, or how you'd prefer it to read. It is what it is. And you have to abide by its terms. If you want different terms, do participate in the GPLv3 process, by all means.
Let me put it into terms I know Microsoft will understand. Microsoft releases its software under a license, a EULA. It expects everyone to abide by the terms of the EULA, and it enforces the terms both technically and by means of the courts. Folks come up with all kinds of reasons they claim are their right to not follow the EULA's terms, but Microsoft pursues even individual eBay sellers to make clear what their EULA means to them. That's how holy its EULA terms are to it. The GPL is the equivalent. It's no different. If you don't abide by the terms, you can't make excuses. That's not extremism or zealotry. It's the law. The GPL is built upon copyright law and it is enforced by copyright law. That is the law of the land here, and you don't have to be a zealot to think that abiding by the law of the land is appropriate.
Some few may say, "Hey, I wrote some of the code, and I don't care. Novell can do that. Or, Tivo has my permission." If those who wrote the code wish to dual license their now GPL'd software, or make use of the exceptions language in GPLv3, they are free to do so. If they wish to write proprietary software so they can do proprietary things with it, it's fine with me. Even Stallman has said there are circumstances where writing proprietary software would be justified. What they are not free to do is get cute with the GPL and try to make it do proprietary things, or to distort the terms on code that was written by other people, or pretend they didn't ever really mean what the license clearly states, or that somehow compromise is now "necessary" so as to satisfy alleged customers, who are apparently as blind and amoral as the alleged shareholders we keep hearing about who we are told have such voracious appetites for profit that corporations are somehow compelled to jettison all other values and interests.
And by the way, Linux wasn't written by one man or even by 30 people. If you think you can write what you need with just 30 people, by all means do so. It's the proprietary method, and if that's what you really want, do that, by all means. But don't pretend for a moment that this is how Linux got here. Shutter the bazaar or scurry back into the cathedral if you wish, but you can't bring the GPL in there with you. Capiche? I get why businesses prefer their own privileges to be higher on the totem pole than everyone else's and I understand that they are in business to make money, but the GPL isn't expendible if you want the code. It's a package deal. Companies are used to forcing their developers to do what they want, whether they like it nor not, and if the poor developer is an employee, they may even feel they have to go along with strategies that they actually hate, although a fair number of SUSE guys left Novell even before this agreement. But you can't force FOSS community developers to do that, because they don't work for nothing. They work for your compliance with the GPL or whatever other license they choose to put on their freely available code. I see clearly that there was a coordinated push to isolate GPLv3, to try to persuade the community that only extremists will use it or would want its protections. But it has backfired. The community's reaction to the Novell action is overwhelmingly obvious.
You have to write your own code if you wish to do things the GPL won't let you do or get the original author to give you special permission. Why? Because the GPL is the license that the authors put on their "intellectual property" and if you accept, as corporate entities surely do, that concept of owning property of the mind, on what basis do you justify getting cute with the GPL's terms or looking for clever workarounds and avoidance mechanisms? It's not just a matter of honor. It's the law. Stallman has argued that it's the American Way. Of course, he was reacting to Microsoft's then-smear that the GPL was unAmerican.
The bottom line is: The author gets to decide under what terms he chooses to allow anyone else to copy, modify and distribute his code. And what matters is what the license says, not what some individual here or there might have had in his mind. Short-sighted business interests may think they can just box up what FOSS has now produced, so they no longer need the open source method, the community, or the license that made Linux and FOSS successful in the first place. They will naturally try to repeat what they did with Unix. So they may be willing to kill the goose that lays the golden egg, because all they can focus on is the golden egg in the hand that they'd like to run off with. Happily, we have the GPL to hem in that kind of myopic player.
A license can be adjusted to the needs of the day. Today's need is to block corporate interests from whittling away at the GPL so they can make a buck unfairly. And that is precisely what is going to happen. Moglen:
"I'm instructed by my client," Moglen said, referring to the FSF, "that version 3 will contain measures that will prevent any such deal from occurring in the future. We will change the law such that . . . we will reverse the legal consequences of this deal."
Folks didn't write all that code you love and need so you could rope it off, tie it up in proprietary requirements and make a killing for yourselves at the cost of abiding by the GPL. That is how you pay for the GPL'd code, by compliance.
Sun's Jonathan Schwartz wrote that an executive at either Microsoft or Novell said "free has to have a price." I expect we can guess which company's executive is more likely to have said that. On its face, that's a ridiculous statement, but on a deeper level, one could answer that the price for free is that you must abide by the GPL. That's how you pay for all that freely available code. "Yeah but I *want* to, I *need* to, Linux will be more popular, my customers *demand* that I sidestep the clear meaning of the GPL" doesn't count. There is no honorable workaround. And with GPLv3, by March there will be no legal workaround either.