Microsoft bars GPL open source apps from WP7
Pushes developers to use its own open license in Windows Phone Marketplace
Published: 21 February, 2011
Like Apple, Microsoft has a difficult relationship with open source developers, and it has provoked an outcry by barring apps licensed under the GPL v3 process (the main one used by Java) from Windows Phone Marketplace.
Google has also been hostile to GPL v3, adopting Apache for Android and its related virtual machine, Dalvik. Microsoft wants WP7 developers to use an open source license it creaed itself, Microsoft Public License. It has been promoting a series of open source projects, made available under this license last month, called Windows Phone Recipes. It uses Apache for its open source Outlook tools.
The Windows Phone Marketplace application provider agreement states that programs "must not include software that... in whole or in part, are governed by or subject to an Excluded License", which "include, but are not limited to the GPLv3 Licenses." Although this was in the terms published last September, the restriction only hit the headlines last week when Red Hat technology evangelist Jan Wildeboer wrote in his blog that he was "quite astonished" by the scope of the agreement.
As it says "in whole or in part", no GPL libraries or documentation could be used, he argued, and the document "also appears to ban further open source licences, including any one that allows software to be redistributed for free."
Apple has also been under fire from open source supporters. Last May, the Free Software Foundation said Apple's developer license agreement was "incompatible" with GPL v3.
One of the issues at stake seems to be a clause in GPL v3 that bars 'Tivoization'. TiVO's digital video recorders, like Microsoft Xbox and Windows Phone 7 (and other mobile platforms) block users from running software that has been modified, and apps only run when signed by the vendor. That is barred in GPL v3, but not in some other open source licenses such as BSD and Apache, according to ZDnet.