Home > Uncategorized > WP7 walled garden

WP7 walled garden

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.

Categories: Uncategorized
  1. February 17, 2011 at 11:38 pm

    I hadn’t considered the patent clause, actually… I was looking at this as more of an issue surrounding how Section 6 would play with an approval-based Marketplace using digital signatures.

    I put together a post discussing that perspective at http://chris.olstrom.com/opinion/windows-phone-marketplace-and-the-gplv3/ , though now you’ve got me thinking that it may be slightly more complicated than either of us had considered.

    Whichever case is true (or both), I don’t think this was a Microsoft-versus-Freedom situation, for a change. Yes, they are patent trolls. Yes, they have a history of being at odds with the free software movement(s), and I haven’t seen signs indicating they’ve changed their tune on that… but I don’t think it was political (this time). I think they hit a fork in the road, and their business model required them to exclude GPLv3 code, since releasing their signing keys (to comply with Section 6) would undermine the distribution model they’re attempting to build.

    • February 18, 2011 at 6:16 pm

      Hello Chris and thank you for taking time to comment.

      I read your post and must say I pretty much completely disagree.

      Fist, You say that Microsoft legal document isn’t blanket exclusion. But it is. It says explicitly that licenses with requirement of sharing code is are not allowed, ie, no copyleft. That is in (i) part. As I said, that includes whole heck of a lot licenses, and not only version 3 of GPL. It includes v2 set of GNU licenses, it includes MPL and their own MS-RL http://blogs.computerworlduk.com/simon-says/2011/02/microsoft-bans-its-own-licenses/index.htm

      They basically just allowed proprietary software, and BSD-like are only allowed because they can morph into proprietary software at will. Users will never get any Freedom, even if they only use BSD-based software.

      Second, if you are right and Microsoft created tivoized/DRMed system that is so closed that it can’t run any user-modified code, ever, than that is against Freedom and against users, and I don’t get how you mean that Microsoft didn’t deserve criticism for that. It is they who made shackles and they should be criticized. Not GPL, which ensures that users are not shackled.

      Third, I don’t believe “their business model requires them to do evil” can excuse anyone. They chose their own business model. I am very well aware that they did this from business reasons and I very well understand their business model. But Mafia bosses also tend to have something they call a business model.

      • February 22, 2011 at 7:06 am

        Thanks for reading the post on my site.

        Regarding the first two points:

        The terms in question cover applications distributed via the Marketplace, not those that run on the device itself… so yes, it is a tivo-ized system, but (with limitations) user-modified and homebrew code can be run on devices.

        As for the business model thing, that’s not exactly what I said. What I was saying is that folks are making this out to be a political issue (Microsoft vs Freedom), and I think it’s simpler than that.

  2. oiaohm
    February 20, 2011 at 6:49 am

    Chris please read and understand before keeping on being a idiot. http://www.gnu.org/licenses/gpl-faq.html#GiveUpKeys

    Person must be given the key used to sign the binary? answer is no. Hang on how can this be no. “A Key” only has to be given if user cannot install the software and have it function.

    If you cannot install software and have it function without a key it is a walled garden.

    Next does the “A key” have to be a master key to all devices. Answer no. User must be provided with a key that the software they build works on the device they own. So this could be serial number based. Also nothing about GPLv3 says that device warranty cannot be voided in exchange for key to install own software.

    Now this is still a walled garden but a tolerant one to home-brew.

    MS basically wants a full walled garden. About time you wake up GPLv3 is not as bad as a lot make out.

    • February 22, 2011 at 6:44 am

      Reviewing that specific FAQ entry, it seems to support the point I was making. Correct me if I’m wrong, but my understanding is that applications on WP7 that request specific device permissions require a valid signature, in addition to all applications distributed through the Marketplace.

      This does not prevent homebrew, nor did I imply that it did. Software licensed under the GPLv3 is not prohibited from *running* on Windows Phone 7, just from being distributed via the Windows Phone Marketplace. It is the keys used to sign applications distributed thusly that I was referring to.

      Not sure what you mean by “wake up”… there was no suggestion that the GPLv3 was a bad thing, just that it appears incompatible with the Marketplace.

      • February 22, 2011 at 6:58 pm

        Chris Olstrom :

        Software licensed under the GPLv3 is not prohibited from *running* on Windows Phone 7, just from being distributed via the Windows Phone Marketplace.

        Well, this breaks the argument that microsoft *couldn’t* obey GPL. If they make exceptions for code that is home-brew, then they could make separate section in “Marketplace” for Free Software, and just don’t DRM those binaries. So they could obey GPL, just that they didn’t want to.

  1. February 18, 2011 at 6:16 am
  2. February 19, 2011 at 11:08 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: