views:

140

answers:

3

I just came across this article that mentions both Microsoft and Apple have banned all GPLv3 based code from their mobile "app store"-related sites.

http://www.zdnet.co.uk/reviews/developer-tools/2010/09/27/windows-phone-7-developer-tools-a-first-look-40090296/

excerpt:

"The one unfriendly part of the agreements you need to sign is that there's an explicit ban on GPLv3-licensed software. Reading between the lines, several other open-source licences that require source code distribution won't be valid. Some feel that this is, in part, designed to prevent Microsoft being found to be a distributor and forcing it to licence patents or provide source code for applications hosted in the Marketplace. Apple has pulled GNU Go from the app store, so Microsoft isn't alone here."

Has anyone else heard of this? Are these claims correct? I don't see any citations.

I'm creating a small forum for people to share apps and sometimes source code for a certain niche market. Should I be worried?

+3  A: 

Sharing apps and source code is fine, and both Apple and Microsoft encourage that (on their own terms, of course ;)

The problem with the GPL is its stipulation that when any code under the GPL licence is incorporated into another app, that whole app must then be made open source (and under the GPL) too. I expect what Apple and Microsoft are trying to do here is avoiding a "gotcha" whereby someone is able to state that, because their app stores contain GPL-licenced code, now their app stores must also be made open source - and perhaps even every other app! Probably pretty unlikely, but not worth the risk.

There are pros and cons regarding GPL, and I'm not sure this is the place to debate them, but GPL does bring some fairly onerous conditions to the party.

I would expect an app that allows people to share apps and source code would not get caught out by this - but I would suggest that you may want to explicitly ban GPL-licenced code too so you don't get caught out. You could point people instead to the increasingly popular MIT licence - http://www.opensource.org/licenses/mit-license.php

h4xxr
+1 for MIT license.
David Titarenco
MakerOfThings7
Nice, MakerOfThings7, I will go and contribute!
h4xxr
I'm not sure that's it - the relevant clause says "derived work", and nobody could possibly claim that the app store is a derived work of an application in it. I suspect it's more to do with the patent grants in GPL3 (although I thought GPL2 wasn't okay for Apple's app store anyway because of the "no additional restriction" stuff).
Peter
I'm pretty sure that answer by @JosephH is more correct. I don't think that anyone could reasonably argue that distributing GPL means that the mechanism for distributing the software is as well. It'd be like saying that distributing GPL software on CD now also makes the software to read / write the CD also be GPL'ed. The bans seems to target v3 of GPL, and not v2 which also has this "viral" nature. I think the patent implications are most likely.
userx
A: 

If it's your code, then you can license it anyway you want. The problem comes if you want to use someone else's GPLv3 code as part of your app and then put it on the app store. In that case you're stuck by the viral nature of GPLv3. The app store TOS is generally considered incompatible with GPLv3.

JOTN
+4  A: 

I think you need to look at why GPLv3 is not allowed in these places.

We can only speculate a bit on why this is. However, in the case of Apple, if a developer put a GPLv3 app up into the app store, it would be Apple that is distributing it, as all appstore transactions are done through Apple. This means Apple would have to comply with the GPLv3. There are many troubling clauses in the GPLv3, but just to cite one example, there is a patent clause:

    This License gives unlimited permission to privately modify and run the
    Program, provided you do not bring suit for patent infringement against
    anyone for making, using or distributing their own works based on the
    Program.

So if Apple used GPLv3 software, they would pretty much give up all their rights to assert their patents (assuming any company they wanted to sue had downloaded a GPLv3 app from the appstore, and has produced a modified variant that includes the patented technology).

Gnu GO / GPLv2

On the subject of gnu go, the license in question was the GPLv2 (gnu go is currently GPLv3, but it was GPLv2 when the problem occurred). You can read more here:

http://www.fsf.org/news/2010-05-app-store-compliance

and here:

http://lwn.net/Articles/396535/

This was actually a very technical violation; I think many (maybe even most) GPLv2 copyright owners would not seen it as a violation. The problem was a clause in the app store end user agreement that (from memory) said that the user could not distribute apps they buy from the app store, which is removing a right the user has under the GPL. Technically of course it's impossible for a user to share an app anyway on an unjailbroken phone. The problem was not that they can't share the app, but that the license said they couldn't.

When do you fall into the same situation?

I'm not sure you've really given enough information for any advice about that.

If you are distributing GPLv3 code on your forum, then you need to comply with the license. If you are distributing only in source form, and you and/or your company doesn't own/develop anything itself, then compliance should be pretty straightforward. You just need to make sure your forum terms & conditions don't claim ownership of any code, don't prevent people sharing any code they find on your forum, and so on.

JosephH