GNU logo
To distribute an application through the Microsoft Marketplace requires agreement with the terms of the Microsoft Application Provider Agreement found on the the Microsoft Developer Network. One of those terms, Article 5, forbids the distribution of an application that would be covered under GNU.org's and the Free Software Foundation's GPL 3 license. GPL 3 is termed an 'Excluded License' by Microsoft. This means an application cannot use any GPL 3-based libraries because an application that did would be covered by GPL 3 as well. Microsoft Marketplace addresses Windows, Windows Phone and XBox platforms.
Microsoft's restrictions are specfic to GPL 3 though. At this point it does not exclude open source licenses such as BSD, LGPL or even GNU's GPL 2 but there seems to be no reason those could not be added to the list of 'Excluded Licenses.'
The likely reason that Microsoft specifically excluded GPL 3 is that GPL 3 is more restrictive in its terms such as the anti-tivoization clauses. GPL 3 is built on GPL 2 that requires access to the source code and the ability to redistribute and reuse that code. Wikipedia's GPL coverage goes into more detail on the subject.
The Marketplace license only address distribution of applications. A different license could cover the target platforms and each does have a license from Microsoft. At this point installing applications on a Windows Phone without going through the Marketplace will be beyond the average consumer. Windows and the XBox support other media that has been the typical method of installing applications. At this point I think you can still use GPL 3 applications on all the platforms.
Still, it is disconcerting to me, and probably most developers, that we now have to be concerned about what tools and platforms we utilize to create and distribute applications. Fear, uncertianty and doubt (FUD) is no fun and bad commercially in the long run.
This issue will continue to be of importance and products like Black Duck Software's ProtexIP (see Is it GPL if it quacks like a Duck?) already address the situation at least from the perspective of identifying license dependencies. These tools would allow a developer to determine if their application could be covered under GPL 2.
Part of the issue is how GPL and other open source licenses affect derivative works. I am not a lawyer, but, in general, if you start with a GPL 2 library or source code then the resulting work will be covered under GPL 2. It is possible to release that work under GPL 3 but that covers only the derivative work, not anything it was based on. That is still covered by GPL 2.
It is also possible to distribute a derivative work using different licenses as long as all the underlying license requirements are met. In the example, the derivative work could be distributed using GPL 2 and GPL 3 but it could not be distributed using a BSD license.
What is annoying about Microsoft's restrictions is that commercial software can be covered under GPL 3. Open source does not mean vendors cannot charge for a product. It does mean that there are fewer restrictions on its use and that the source code is available.
The big issue for some developers will be whether it is possible to even ship a product using Microsoft Marketplace. As noted, once you start with GPL 3 then your derivative work must be covered under GPL 3. There are many great applications that will be available under other platforms like Android that may never see the light of day on a Microsoft platform because of these new licensing terms.