Lots of confusion from lots of quarters about today’s joint announcement between Novell and Microsoft.
A lot of that confusion is surely deliberate. There was a lot of talk about “customer demand” and “interoperability” and “peace of mind,” and lots of fancy talk like that. Obfuscatory talk that suits use when they’re avoiding the uncomfortable prospect of looking you in the eye and telling you the truth.
So let’s get real. Let’s look at one detail that was *perfectly* clear from today’s announcement.
Novell paid Microsoft for the exclusive right to distribute a “Microsoft patent protected Linux” — without realizing, evidently, that if they ever choose to exercise this exclusive right in conjunction with any GPL software — like, oh, the kernel, or Mono — they will be directly contravening Section 7 of the GPL, thus voiding their own right to distribute the software in question under the GPL.
Let’s all read Section 7 of the GPL together, shall we? It reads thusly:
“If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.”
Why does Section 7 exist? To prevent *exactly* what M$ and Novell tried to do today.
This legal stuff always gives me a bit of a headache, so let’s go through the most prominent example of “Novell projects that might infringe on M$ patents”: Mono.
So Ximian created Mono, which was released, at least in part, under the GPL. Then Novell acquired Ximian, because open source is relevant, whereas NDS is not. Yaaay, Novell loves open source! Then let’s say that Novell discovers that parts of the Mono codebase might actually violate Microsoft patents. Whoops! How’d *that* happen? Novell is now subject to a great big patent lawsuit, right?
Well, it’s not entirely clear. Which is the point of patents, of course. Patents aren’t designed to be clear; they’re designed to be broad and vague and scary. That’s why engineers hate them. But what *is* clear is that there’s the *potential* for a lawsuit, and that *potential* is enough to scare the bejeebus out of Novell.
Fair enough. These potential patent threats are real, and in the world of Big Software Companies, you must deal with them. So basically, Novell has two choices: agree to Cross License Everything, or Get Ready to Fight. Last November, when Novell joined the Open Invention Network and contributed some of their patent portfolio to the defense of Linux, it appeared as though they were preparing the Fight option.
Today, Novell changed gears and chose the “Cross License Everything” defense instead.
Now Novell is no longer subject to a patent lawsuit for Mono. Hurrah for Novell!
So the nice folks at Canonical decide that Mono is cool, and they incorporate Mono into Ubuntu — but they don’t pay Microsoft’s “License Everything” fee, because why would they? Microsoft won’t actually *admit* to holding any patents around Mono. They won’t *deny* it either, though. And then, when Canonical starts making money… BAM! Microsoft says, “A-HA! Mono violates these seventeen patents, and you haven’t paid your Cross License Everything Tax! Pay up, Spaceman, or prepare to be sued!”
But, see, we’ve read section 7 of the GPL, and we recognize “allegation of patent infringement” as clear as day. And since Canonical is no longer free to redistribute Mono freely with Ubuntu — Novell is no longer allowed to distribute Mono under the GPL! Whoops! How’d *that* happen?
To recap: if Novell distributes code under the GPL, and that code infringes a M$ patent, and M$ tries to assert patent rights, Novell immediately loses the right to distribute that code under the GPL, per section 7.
Why would customers, developers, or partners want any part of that mess? How does this make anything easier, for anybody?
As an aside: The opensuse mailing list has been fascinating tonight.