A lot of noise is being made about Microsoft’s decision to bar certain software licenses from the Windows Phone Marketplace. One headline reads “Microsoft bans free software from Windows Phone Marketplace“, which is categorically and entirely incorrect. The simple addition of the word “some” would go a long way to calming the water. Let’s be clear: there is nothing whatsoever stopping any developer from releasing free and/or open source software on Windows Phone 7.
What you do need to do, as a software developer, is choose your license very carefully. This has always been the case. For example, if you wanted to release software under GPLv2, and make that software available in the iTunes App Store, you could not do so without breaching the terms of said GPLv2. In fact, the Free Software Foundation has made their position on this very clear.
Does this mean that you are not permitted to distribute free and/or open source apps on the iPhone? Absolutely not.
I’d go as far as to say that by banning specific licenses in the Windows Phone Marketplace, Microsoft have done the correct and appropriate thing. They are protecting Windows Phone 7 developers from unintentionally breaching license terms. By submitting apps to the Marketplace, you are intentionally putting your code under the terms and restrictions that apply to that Marketplace, so you need to check if those restrictions are in breach of any other license terms you are using. Microsoft have helped by showing developers a few of the more popular license terms that would be breached if used on the Marketplace.
The solution? Read the terms of your chosen software license very carefully. As a starter for 10, Wikipedia has a list of various open source licenses. I am certainly not a lawyer, but I’d hazard a guess that the licenses listed as incompatible with the GPL2 are more likely to be compatible with Microsoft’s Marketplace terms.
Additionally, if you have a large possible liability — including a liability against something like a GPL breach — consult a lawyer.