Microsoft recently released their Windows Phone 7 and XBox App store licenses (seems all of the cool kids are getting into this app store model these days). Normally that wouldn't even register a blip on my radar, save for the veritable Internet shit-storm that followed when folks like Jan Wildeboer read the license and noticed a few choice lines in it:
In Section 5e:
The Application must not include software, documentation, or other materials that, in whole or in part, are governed by or subject to an Excluded License, or that would otherwise cause the Application to be subject to the terms of an Excluded License.
which, in section 11 defines an "Excluded License" thus:
“Excluded License” means any license requiring, as a condition of use, modification and/or distribution of the software subject to the license, that the software or other software combined and/or distributed with it be (i) disclosed or distributed in source code form; (ii) licensed for the purpose of making derivative works; or (iii) redistributable at no charge. Excluded Licenses include, but are not limited to the GPLv3 Licenses. For the purpose of this definition, “GPLv3 Licenses” means the GNU General Public License version 3, the GNU Affero General Public License version 3, the GNU Lesser General Public License version 3, and any equivalents to the foregoing.
Immediately my GPL Lizard Brain went off. "Exclude the GPL?", it raged, "Well, that sinks it. I'm never buying another Microsoft blah blah crap crap". For many folks, it was just another sign that good-ol' Microsoft just killed off all of it's efforts with Open Source, and their true colors as the evil empire emerged. Indeed, Microsoft had committed a licensing atrocity, and the only thing in short supply to help rectify the situation was kindling and torches.
This morning, in a half-dazed stumble through the morning routine I read Simon Phipps' article summarizing the events, and the claim that Microsoft is banning their own software licenses. The GPL Lizard Brain must've been napping, because what I read there wasn't a call to arms, but a reason that Microsoft adopted this strategy in the first place. No, it's not in the article itself, but Simon's article got me thinking of what could possibly make a company that has made inroads into Open Source could stand to benefit from excluding the GPL.
Microsoft is nothing if not pragmatic. They've also had a long history with software licenses, and have created some real doozies in the past. What if Microsoft's app store license isn't saying that they don't want GPLed software because it's evil, but that they don't want GPLed software because they don't know how to handle it in an app store model.
I'll grossly oversimplify the GPL here, but the basic premise is that the source code need be made available to anyone who asks for it, and if you modify the source code, you need to make those changes available as well. So, in an app store model, you get a personalized blob of encrypted binaries that are signed for your device and your device alone. If you give Microsoft a GPLed program, they have to give you the source code as well (or at least a pointer to it), and the implicit promise that if you modify that code, you'll be able to run it on your device. I'm pretty sure that's not what they intend for their app store, but rather than figure out how to best solve the problem, they did the only thing they knew how to do, which is ban the problem altogether. And it only takes a few seconds for someone who is keen on GPLed software to realize they're being excluded, and... well, then it's time for the torches and kindling.
A better, and more pragmatic approach (which is what Microsoft is looking for anyway) would be to engage Microsoft in dialog; how can we work together to ensure that GPLed software CAN be distributed in their app store. How can Microsoft ensure the license for the GPL is being adhered to, and how can they ensure that their platform and GPLed software can co-exist together.
Microsoft is still learning how to play in the Open Source / Free Software playground. Instead of excluding them for not playing well with us, why don't we show them how we play well together, and help them whenever we see them playing badly with us.