"...your license terms may conflict with the limitations set forth in Section 3 of those Terms, but only to the extent required by the FOSS that you use."
That appears to mean that you can release a GPLed application if you use pre-existing GPL code, but you can't just decide to release your application under the GPL because you want to. In the latter case, there's no requirement "by the FOSS that you use", so the anti-reverse-engineering clauses kick in.
But I guess that's purely academic, because if it's your own code, you can release the binary on Microsoft's terms, and separately offer the source code under GPL.
The relevant issue is sideloading and proprietary compilation. iOS falls down because it is impossible for a user to build an app from source and install an app on a vendor-approved machine.
As far as I can make out, as long as you have the debug tools and a 'developer license' (just need a MS ID, no fee), you can install arbitrary un-approved Metro apps on WinRT/8. Compilation still has to happen on an x86 machine (no MSVS on ARM; csc is actually on the WinRT image but missing DLLs); it's not great but still somewhat better than the iOS situation.
Your usages are not limited; except you cannot use the application on more than 5 devices, unless the license clearly says you can use it on more devices. [...]
Therefore, I think it is quite safe, now, to publish a FOSS application on the Windows Store.
This surprises me a bit - doesn't the GNU GPL explicitly state that you cannot impose any further usage restrictions other than the ones states in the GPL?
Apple does a lot of things that probably don't have sound business reasons behind them in the name of control (which, in turn, they often claim is a business reason: I have yet to see any good evidence of this, however, only correlation that "Apple is successful" and "Apple is controlling", but no attempt to control for "Apple actually builds good things occasionally, and their competition is often incompetent in their attempts to build the same things, at least for the high-end market that scores you a lot of the $-points that people using attempt to score 'successful' with").
In this case, iOS is the one platform (well, technically Android could, and there is probably at least a couple handset manufacturers who decided to do this, but I can't come up with any off the top of my head) that requires you to pay Apple a subscription fee (the amount being unimportant: the key being that it allows them to better limit and control access, gives them options on how to track people or ban them) even if all you want to do is compile a normal application (not the fancy stuff we jailbreak for, but a regular-old boring "app") and load it on to you own device.
In contrast, Microsoft and Google only do this if you want to distribute your software using their marketplaces: you can, for free, "side-load" applications, with at most having to turn off some protection switch under Settings. (In the case of Microsoft, you still need an account, but as someone else pointed out it seems to be free; personally I think that actually is already out of scope for a GPL application, at least under a license like GPLv3 if not GPLv2; I am probably in the minority opinion on this: though, I'd find the FSF's opinion interesting.) Apple probably believes there is a business reason for this.
Richard Stallman tells a story (or did when I saw him give a lecture a decade or so ago) about Steve Jobs approaching him to do a deal on allowing NeXT to keep the GCC Objective C front end closed; rms explained that wasn't going to happen, and NeXT would have to GPL it.
I wouldn't be surprised if Apple's enthusiasm for LLVM and distaste for GPL code stems from that incident.
It is hard to tell, but it seems that there were a few months where a pure preprocessor was (getting?) integrated into gcc, where the idea was to ship gcc sources with a NeXT licensed library to users, and have those users do the linking step, thus preventing NeXT from breaking the GPL. One could argue that this was one of the things that, eventually, led to the library exception to the GPL (http://en.wikipedia.org/wiki/GNU_General_Public_License#Vers...)
It's not really that surprising, Microsoft has been quite FOSS-friendly for about five years now. A good chunk of their web stack (MVC, the ASP.NET membership providers, Entity Framework, Web API, Web Pages) are all open-source - http://aspnetwebstack.codeplex.com/
No, it's up to the project. You can use Team Foundation Server on Codeplex, but not everyone has that, and although it's "supposed" to work with a subversion client, the support there sucks.
Really? I would assume that the drm system they use would prevent the distribution of GPL apps; I mean that's why you can't distribute them on the Apple, Android or MS phone app stores.
GPLv3 does not forbid the presence of DRM. Section 3 of GPLv3 reads:
"3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures."
There is also a relevent piece of section 6, saying:
"If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM)."
> Really? I would assume that the drm system they use would prevent the distribution of GPL apps; I mean that's why you can't distribute them on the Apple, Android or MS phone app stores.
You must be aware that this is false, yes? There are many FOSS/GPL apps in the Android distribution system.
The existence of Digital Rights Management doesn't mean every app must be a potential lawsuit to qualify.
That appears to mean that you can release a GPLed application if you use pre-existing GPL code, but you can't just decide to release your application under the GPL because you want to. In the latter case, there's no requirement "by the FOSS that you use", so the anti-reverse-engineering clauses kick in.
But I guess that's purely academic, because if it's your own code, you can release the binary on Microsoft's terms, and separately offer the source code under GPL.