I was going to talk today about why Microsoft, or to be more precise, companies that have convinced the overwhelming majority of users to buy their products, deserve special consideration, particularly by governments whose JOB is to be a facilitator of its citizens choices, not a guide for them. The point I had planned for next Monday, however, made more sense to discuss today, particularly after John Le'Brecage (that name again) explained so eloquently the problem Microsoft's licensing term poses for GPL-style software licenses in his response to my last post.
As Mr. Le'Brecage notes, a number of open source licenses demand that The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. As he later explains:
In not so many words, this clause from the OSD means that the implementor must allow sublicensing. Microsoft doesn't allow sublicensing of their patents instanced in code and doesn't allow the implementor to use any license that demands he do. All OSI approved license demand sublicensing either explicitely or implicitely, therefore No OSI-approved license can be used.
Mr. Le'Brecage then goes on to list the licenses that wouldn't be allowed to use Microsoft's Office XML specification.
John is correct. Microsoft's license for its Office XML formats is not compatible with a GPL license, which means GPL software (or, to be more precise, licenses that share the sublicensing restriction previously quoted) can't use the Microsoft Office XML formats. What no one seems to bother to ask, however, is WHY this restriction exists.
Granted, the "whys" of something don't matter as much as the simple fact that armies of open source developers have arranged themselves behind these rules, and have voluntarily bound themselves to them. As David Berlind noted:
Microsoft's position on what open source developers should be concerning themselves with is not as important as what open source developers (a part of "the public") are actually concerned with.
Even so, if an open souce license required users to wear red pumps and a top hat, I should think that those users would demand to know why that was necessary. Silly example, but we're programmers, and we're supposed to be logical. I want to know why it is so important to enable automatic sublicensing. Larry Rosen, general counsel and secretary of the Open Source Initiative (OSI), told David Berlind that "Open source depends on the right to sub-license. Fine and dandy. Now tell me why sublicensing matters?
...and don't tell me that it's because patents are evil, and thus life must be made as hard as possible for anyone who possesses software patents. I know software patents are evil, or at least have lots of bad aspects, and have argued as much in past articles. However, lots of companies in the REAL world have to live in the patent minefield. Insisting they ride into battle with their patent weaponry essentially neutralized seems naive in the extreme.
But I'm getting ahead of myself. Why do companies like Microsoft disallow automatic sublicensing and require each user to agree to specific licensing terms?
Microsoft's license to use IP associated with its Office XML specification is transferable. It's just not automatically transferable. Each user must agree to Microsoft's licensing terms.
Quoting the license:
If you distribute, license or sell a Licensed Implementation, this license is conditioned upon you requiring that the following notice be prominently displayed in all copies and derivative works of your source code and in copies of the documentation and licenses associated with your Licensed Implementation:
"This product may incorporate intellectual property owned by Microsoft Corporation. The terms and conditions upon which Microsoft is licensing such intellectual property may be found at http://msdn.microsoft.com/library/en-us/odcXMLRef/html/odcXMLRefLegalNotice.asp."
There are advantages to this model. This enables Microsoft to ensure that its disclaimer of liability is legally enforceable. That isn't anything shocking. I've made open source software, and I used the MIT license, which basically says "you can't sue me if anything goes wrong." I made the software available for free. Microsoft makes its Office XML formats available for free. It only seems fair that users don't feel they have the right to hire lawyers and extract pounds of flesh from entities that have given them free stuff. It's annoying that we have to do that, but we live in a litigious society.
Mandatory per-user licensing also enables "patent trading," a topic I discussed way back in December of 2002. The relevant section from Microsoft's licensing agreement is as follows:
Microsoft reserves the right to terminate this license grant if you sue Microsoft or any of Microsoft's affiliates for patent infringement over claims relating to reading or writing of files that comply with the Office XML formats. This license is perpetual subject to this reservation.
In other words, if you, as recipient of Microsoft's IP, decide to sue Microsoft for patents used in that specification, it's not just rude, it also automatically denies you access to Microsoft's patents. That's not a broad statement that says you can't sue Microsoft for ANY patent infringement. It just means that you can't sue them for patents related to the Office XML formats. This isn't that far off from language proposed for inclusion in the next generation of the GPL license. If you use patents against GPLed software, you automatically are denied the right to use that GPLed software.
All these things are designed to mitigate the harmful effects of patents and litigation, something not possible with a blanket grant of rights that doesn't require end-users to agree to any limitations on their actions. It's a bit like the argument that the NRA makes when talking about gun laws. Criminals have guns, and therefore armed private citizens are the best defense. Now, I might wish that guns weren't so prevalent in the first place (more legal guns certainly makes it easier for criminals to get them), but in a world where they are, it's hard to argue with statistics that suggest that right to carry laws actually do reduce crime in a nation where guns are as common as beer cans at a college frat party (and that analogy was chosen entirely on purpose).
So, that being said, why is it so important that automatic sublicensing occur? Is it so terrible a shock to the system of open source programmers to have to put the word "Microsoft" in licensing terms they present to users?
The answer better not be "because it is," unless you like to wear red pumps and top hats while using my software. If there is a rational reason for this restriction, I'm open to consider it. You just have to convince me that that reason is sufficiently important to justify riding into battle with guns emptied of artillery. That's not a problem if your opponents are doing the same thing. It's suicidally stupid if they aren't.