You may have heard about WP7 restrictions against Free Software in Microsoft’s application delivery system. In this post, I will share my view. Note that although I have studied Free Software licenses for years (mostly from curiosity), I am not a lawyer. So don’t take this as legal advice.
First of all, application delivery mechanism for WP7 (or call it “App Store”) is completely incompatible with Free Software. User has no means of getting the source code, nor installing modified software. That makes all software received through this mechanism non-free, regardless whether previous license was BSD, GPL or any other FSF or OSI certified license. In case of copyleft license, this would be a violation, but that is besides the point. Acquired software is not Free in practical sense, in a way that user can’t help himself by examining the code, which one of basic Freedoms that Free Software gives.
What is more interesting is that Microsoft Application Provider Agreement have gone step further, and called out various Free Software licenses by name, defining them as “Excluded License”:
e. 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.
And here is what excluded license means:
“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.
Kudos to Red Hat’s Jan Wildeboer for noticing this and blogging about it. I highlighted second part because I want to discuss it separately.
It is obvious from fist, non-highlighted part, that Microsoft wants users of WP7 to not have Freedom in using the software. Therefore with clause (i), it bans all licenses that require disclosing any source code. This excludes all copyleft licenses, including MPL, EPL, and off course all versions of GPL. This alone would mean no *Free* Software for the user, while Free *Software* might find it’s way to the user if it was previously licensed under permissive license (BSD, Appache) and proprietarized upon submitting to WP7 “App Store”. But user will have it as proprietary software.
Clause (ii) is more of the same, but clause (iii) I think might be FUD. No Free Software license requires redistributing at no charge, and license that would require that would never pass FSF and OSI certification process. So it is possible that this clause is there only so that Microsoft advocates can spray FUD on GPL, something they love to do. It is bad for Microsoft if people talk about clause(i), that Microsoft banned every copyleft license, but it is good for Microsoft if people talk about clause (iii) and misinterpret GPL as anti-capitalist license (which is not). If that makes one coder stay away from GPL, then that is good for MSFT.
But now comes highlighted part.
It doesn’t make sense for Microsoft to call out GPLv3 (and APGPv3 and LGPLv3) when they effectively already banned it (and many other licenses) with first part. They effectively banned those three GPL-based licenses twice. Why those deserve honor to be banned twice from Microsoft walled garden? It could be FUD again, as with (iii). They want people to talk about GPL and forget about all those licenses they banned, and above all, not talk about software Freedom. But there is another issue with calling out only GPLv3, AGPLv3 and LGPLv3: Those licenses have explicit patent grant, granting required patent rights from developer *and* distributor (which is in this case Microsoft) to all users of software and to all derivative works. This means that Microsoft wants to make sure that nobody ever gets any patent grant from them, in other words, they want to reserve right to sue their users and downstream distributors.
But why do that, I wondered.
Some would say that they need protection from clever hackers. Someone could stuff half of Debian repository into some “app”, con the way for that app into WP7 “App Store”, and then download such “Trojan Horse” from WP7 handset and say: “Haha, suck it Microsoft, your FUD doesn’t work anymore, you gave us patent grant for all this software and now go undo those patent deals with Novell and others and stop claiming that we infringe”. But that wouldn’t work. If nothing else, then from technical reasons.
WP7 only works with .NET
No native access at all, and only Microsoft-supplied .NET languages are allowed. This makes platform really really closed. But it means only people that could use GPL this way to get insurance from Microsoft that their software is not going to be shut down by Microsoft lawsuit, are the .NET developers.
WP7 would be nice chance for Microsoft to make a statement that they are never ever planing to force Mono underground with software patents. They could do that by allowing and encouraging GPLv3 apps in their app store. After all, only .NET developers can get those patent grants, since noting else runs on WP7. But sadly, Microsoft is doing just the opposite. Their double-ban of GPLv3 sends message to their devotees in Mono movement: they need to use permissive license without patent protection if they plan to have proprietary port to WP7. This shows that Microsoft wants to reserve right to sue against Mono ecosystem, as we already know by now. Will Mono app developers prefer GPL or Microsoft walled garden? Well, considering that Mono leader is “psyched” about developing for WP7 phones, my guess is that Mono devs will want to follow the leader and port their stuff to WP7. Profile of people who are endorsing Mono is such that they will probably do whatever Microsoft and De Icaza asks them to.
But wider FLOSS community needs to continue shunning Mono because Microsoft obviously didn’t change it’s mind. They are still making sure they don’t give patent grant to Mono users, and are not shy to double-ban licenses which would give them needed guarantees.
So, next stage in Microsoft’s war against Free Software commences. Novell sold all their patents to Microsoft-owned consortium, while Mono goes to Seattle-based Attachmate Corporation, in order to attach more victims for Microsoft.
SEC filling is very clear:
Also on November 21, 2010, Novell entered into a Patent Purchase Agreement (the “Patent Purchase Agreement”) with CPTN Holdings LLC, a Delaware limited liability company and consortium of technology companies organized by Microsoft Corporation (“CPTN”). The Patent Purchase Agreement provides that, upon the terms and subject to the conditions set forth in the Patent Purchase Agreement, Novell will sell to CPTN all of Novell’s right, title and interest in 882 patents (the “Assigned Patents”) for $450 million in cash (the “Patent Sale”).
Microsoft acquired all Novell’s patents, through a proxy called CPTN Holdings LLC. From there, patents will probably end up with some Microsoft-loyal trolls like Paul Allen or Nathan Myhrvold, but this is just a guess. What is certain, $450m in cash buys Microsoft a patent gun to scare and extort companies using GNU/Linux. That is their only option, since Windows is fallen far behind and is beyond repair.