
GPL Enforcement in Apple's App Store - chanux
http://www.fsf.org/news/2010-05-app-store-compliance/
======
jwr
The FSF should take a more active role in GPL violations overall. This is by
far not the only one. See for example how Drobo completely ignores requests
for source code, while spreading FUD about proprietary drivers:

[http://www.drobospace.com/forums/showthread.php?tid=935&...](http://www.drobospace.com/forums/showthread.php?tid=935&pid=6816&highlight=gpl#pid6816)

I'm not a fan of bashing Apple at every occasion, but a shakedown of phone
software licensing would not hurt — it would actually clarify the situation
(both for iPhone OS and Android) and perhaps force companies to change the
terms of service somewhat.

UPDATE: I double-checked and since my last request they actually posted an
E-mail address where you can supposedly request the code. I did request the
code and I'm waiting to see what happens.

Also, for those who think this is fanaticism: I'm doing this, because the
DroboShare is unreliable and lost my data by corrupting the entire Drobo
volume. I need the code, because I want to check whether Drobo actually
improved the Linux HFS+ code or not (I suspect not).

~~~
p0ppe
The Drobo forums are only available to paying customers, but I did come across
the following page;

<http://support.datarobotics.com/app/answers/detail/a_id/434>

Seems you can request the code by e-mail. No idea why they'd like to know your
company affiliation though.

~~~
stcredzero
_No idea why they'd like to know your company affiliation though._

Marketing.

------
pierrefar
What I don't like about this post is that they explicitely say _The primary
problem is that Apple imposes numerous legal restrictions on use and
distribution of GNU Go through the iTunes Store Terms of Service, which is
forbidden by section 6 of GPLv2._ I'd like to see them enumerate these legal
restrictions and explain how they contravene the GPL. Don't leave us guessing.

For reference, a copy of the GPL V2:
<http://www.gnu.org/licenses/gpl-2.0.html>

Section 6: _6\. Each time you redistribute the Program (or any work based on
the Program), the recipient automatically receives a license from the original
licensor to copy, distribute or modify the Program subject to these terms and
conditions. You may not impose any further restrictions on the recipients'
exercise of the rights granted herein. You are not responsible for enforcing
compliance by third parties to this License._

~~~
stoney
I suppose that the _right_ to copy, distribute or modify the Program is not
the same as the _ability_ to do so.

Apple could grant everyone the right to redistribute any GPL'ed apps, but it
wouldn't make any practical difference because who could I distribute the app
to?

~~~
endgame
Isn't this the "Tivoisation" problem that GPLv3 was meant to address?

~~~
rbanffy
Precisely

------
kuahyeow
A subtext here not mentioned is that FSF / GNU owns the copyright to GNU Go,
hence they enforce their rights. Violations of GPL in other projects should be
enforced by the copyright owners

~~~
mtigas
Very good point. The cynic in me thinks that if Apple pulls GNU Go, it’ll be
_solely_ for the copyright issue. (Similarly, other GPL’d apps that may exist
in the app store via unofficial ports or forks.)

What’s Apple to lose if a user or developer of an open-source GPL’d
application mistakenly pushes said application to the App Store? That is,
until another a copyright holder or another developer calls foul.

I’m interested to see how this plays out between the FSF and Apple. Some murky
territory we’re getting into regarding Apple regulation on licensing &
copyright claims.

------
alain94040
The issue is so much simpler than you all make of it. And Apple is essentially
not liable or responsible. The developer is the one who may be doing something
wrong.

It goes like this: the developer enters into two separate agreements.

One is with the open source community, as he is re-using code licensed under
the GPL. Any modifications and new code that links to that open source code,
he must re-publish in source code.

Two, is the agreement with Apple to use the SDK and its APIs. Apple places
restrictions on what you can say about the APIs (namely, that you can't say
much at all:-).

If the developer modifies GPL code and mixes it with confidential APIs from
Apple, he is stuck. He can either publish the source, and Apple can go after
him, or he can keep the source confidential, and the authors of the Open
Source code can go after him since he is using their code without a license
(copyright infringment).

That's it. Apple is not particularly liable for what developers do. Of course,
in practice, Apple being the company with big pockets, if I was trying to make
a billion dollars from such a case, I'd sue Apple, not the poor Russian
developer in their basement.

------
kd5bjo
Presumably, the process of getting your app into the app store involves you
licensing it to apple on some kind of standardized terms that allow them to
sell it on your behalf. Thus, Apple is acting within their rights, and the
original developer did something that they weren't allowed to do.

~~~
abrahamsen
The contract with the submitter is not going to protect Apple. The submitter
cannot grant Apple the right to distribute code belonging to someone else.

At best, the contract can be used to show that Apple acted in good faith, and
thus limiting the damages to be paid to the owner (here, the FSF). But since
the FSF doesn't usually demand damages, that is not relevant for this case.

The DMCA safe harbor provision (which protects sites like Hacker News) will
not protect Apple either unless the application is free. In which case Apple
should respond to a DMCA takedown notice.

------
demallien
Is anyone aware of Apple going after somebody that distibutes the source code
of their iPhone app? My interpretation (IANAL) of sectoin 7.2 of the Apple
Developer License is that you are not allowed to distribute your apps anyway
other than through the App store. But if you are distibuting the source code,
as required by GPL v2, that doesn't seem to be infringing to me. Of course,
maybe someone can point to an example of Apple harassing someone that was
doing this.

Of course, maybe the FSF is getting all upset about the fact that not just
anyone can download code onto an iPhone., only those in the Apple Developer
Program? Except I personally find that situation as similar to needing to have
a piece of hardware to use software designed for that hardware. If I use GPL
code that I have modified such that it will only run on a PS3, I'm not obliged
to furnish users with a PS3...

~~~
TallGuyShort
Although I think the FSF would love to see all of those things, the actual
legal technicality that they have in mind is the requirement that whoever
distributes the software (i.e. the App Store) is responsible for making the
source code available also - which they just don't do.

~~~
demallien
I wonder if Apple actually counts as distributing the software in that case
though. I mean, it wasn't Apple that _used_ the GPLed software after all. I
remember seeing Redhat on sale in a box in an electronics store in Australia
10 years ago, and I don't think anyone would hold that store responsible for
the distribution of the source code - it was obviously Redhat that was
responsible...

~~~
tghw
Not only do they distribute it, they profit from that distribution^. If they
were just a "dumb pipe", like an ISP, then no, but they have an active hand in
it.

(^ Not that profiting from it is a conflict with the GPL, it just reinforces
their status as a distributor.)

~~~
demallien
I don't know that the retailer of a product containing GPL software can really
be said to be distributing programs as defined in the GPL. If I buy a
Panasonic TV with linux inside it from my local Fry's, does Fry's have to take
on the task of furnishing me with the source code of the program in question?
It doesn't _feel_ right.

Oh, and just a note - if the application in question is free, then Apple
doesn't profit from it at all.

------
yanowitz
I think this is the app in question ("Go go"):
<http://itunes.apple.com/us/app/go-go/id300106575?mt=8>

("It's driven by the GNU Go 3.6 engine")

I ran into a similar issue with a GNU Backgammon app. The publisher (who
wasn't charging for the app) put up the source
(<https://svn.leozide.com/pocketbg/>) after being asked but now that I'm
looking at it, it doesn't appear to get linked to obviously on the site (I
haven't checked inside the app).

------
tlrobinson
iPhone OS already contains GPL v2 code (at least libgcc and libstdc++) so
presumably Apple is in compliance on that front.

Is FSF suggesting that it's not enough for the developer to distribute the
source code, and _Apple_ must also distribute the source code of any 3rd party
applications (which use GPL code) distributed via the App Store?

GPL v2 doesn't contain the anti-tivoization clause that v3 does, so that can't
be the problem. I don't know what else they could claim, it would be nice if
they could clarify the specific violations.

~~~
_delirium
It doesn't appear they're objecting to the source-code distribution (which is
allowed to be separate from the binary), but to the app store's license terms
for apps: <http://www.apple.com/legal/itunes/appstore/dev/stdeula/>

Since GNU Go is under the GPL, they're saying: you can't distribute it under
Apple's "Licensed Application End User License Agreement", because that isn't
a license the original author applied to the software, and the GPL prohibits
you from piling on a new license.

This no-new-license-terms section of the GPL is to keep people from subverting
the GPL by tacking on new terms to GPL'd software, which I believe includes
EULAs. So, unless you're the original author and copyright holder (in which
case you can always add whatever terms you want), you can't tell end users
something like: "it's GPL, but here are more rules you have to follow if you
want a copy [click yes to agree to these terms]". Since the App Store
basically does that---it has an EULA that you have to agree to before you can
get a copy of GNU Go---it falls afoul of that provision.

In practice it's more making a point, because Apple probably cannot really
enforce any of the additional terms against users of a copy of GNU Go, and
it's not clear they'd care about doing so. But it violates the FSF's principle
that end-users should be able to modify the very copy of the software they
receive, because it tacks on terms that amount to, "you cannot reverse-
engineer or decompile this copy of GNU Go", which clearly isn't a condition
the FSF itself, as the GNU Go copyright holder, would've added.

A workaround, if Apple cared enough, would be to exempt open-source apps from
the EULA terms, because the terms are really mainly aimed at stopping reverse
engineering, and there's no point in stopping reverse-engineering of apps
which are already open source. (Android's app store avoids this problem
entirely by not applying _any_ default EULA, and leaving it entirely up to the
app author which EULA, if any, they want to ship.)

~~~
greendestiny
The App Store allows custom EULAs though they have to meet some minimum terms.
I have no idea if the minimum terms are GPL compatible (probably not you'd
imagine).

~~~
tghw
Don't those custom EULAs just supplement the Apple EULA? If so, that doesn't
solve the problem.

------
dangrover
So even if you provide full source for your app, you can't have it on the app
store period? Or would this person also be breaking the GPL if they simply
uploaded a binary to their site?

------
jsz0
This is why I never liked the GPL. If someone wants to use GNU GO in their app
suddenly they're on the hook for the political restrictions the GPL imposes
even if they're making no significant modifications to it? In this case
restricting their freedom to distribute their app where and how they want to.
Of course you should adhere to the licenses you use it's just an interesting
parallel track of software license restrictions. Looking at it purely from the
perspective of using outside code, with a license you have no control over,
the primary difference here is who dictates the terms to you. Apple or FSF.
Either way they _are_ going to dictate the terms.

------
againstyou
hey guys, look at the Id's DOOM classic for the iPhone. it's GPLed by John
Carmack you can download via App Store you can download the full code
<http://www.idsoftware.com/doom-classic/>

------
sjwright
Hang on, if the source wasn't distributed to Apple (it generally isn't), how
can Apple be expected to comply? Sounds to me like Apple need to take the app
off the store. Any failure here is the fault of the submitter failing to
comply with the GPL; Apple is just an innocent victim.

~~~
tghw
The source really isn't the problem. An app developer can put a link on the
app page that has the source. I think the problems stem more from things like:

    
    
        6. Each time you redistribute the Program (or any work based on the Program),
        the recipient automatically receives a license from the original licensor to
        copy, distribute or modify the Program subject to these terms and conditions.
        You may not impose any further restrictions on the recipients' exercise of
        the rights granted herein. You are not responsible for enforcing compliance
        by third parties to this License.
    

Apple definitely imposes "further restrictions on the recipients' exercise of
the rights granted". I can't copy the game from my iPhone to my friend's
iPhone. I can't even use a copy of the source without paying Apple more money
for a dev license.

------
tvon
> _(...) we want to resolve this situation as amicably as possible._

Have they emailed the author to request that the app be pulled? That seems
like the most obvious and efficient way to obtain the goal of getting the app
out of the App Store.

~~~
joe_the_user
_..."the upstream developers for this port are also violating the GPL, and we
are discussing this with them too."_

~~~
tvon
Ah, that's what I get for skimming.

------
maxklein
That sucks. So basically, Gnu is saying that nobody is allowed to develop for
Apples platform with any GPLed code? That does not seem like freedom to me.

The GPL knows that the software will be removed from the store. So they are
basically killing it to support their philosophy. That's not freedom, that's
just religious ideology.

If I wrote code 10 years ago under the GPL and I want to release it now on the
iPhone platform, I don't want a bunch of people to come tell me what to do or
what not to do with the code I wrote. I did not sign up to a cult and have to
follow their rules. When I can do what I want with my copy of my code, then
that is freedom.

~~~
asnyder
They're saying that if you want to use GPLed code, then you have to follow the
GPL rules. Clearly the person writing that code decided to use a GPL license,
instead of something more flexible like an MIT or BSD license. Thus it makes
perfect sense that they force those that use that code comply with the license
chosen. If they didn't, they would be doing a disservice to the code authors.

If you don't like the license, don't use code that specifically chose to use
that license. There are many alternatives to libraries out there, and as a
last resort you can always write your own, original, non-GPLed code that
performs a similar function.

It's also my understanding that if the situation is such that you wrote the
code, then you can change the license on the code you wrote and continue with
that base, however, the original code is still GPLed and would remain open.

[Updated for clarification]

~~~
spot
yea but most programs have some libraries. it seems unlikely that one entity
will own all the code (unless you happen to be the FSF). unless the libraries
are less-than GPL licensed and compatible with the App store terms, then you
are stuck.

it sounds to me that in many or even most circumstances, the GPL and the App
store cannot mix unless Apple makes some allowances. it would be great to hear
from the FSF exactly what would be required.

~~~
dedward
As long as the libraries aren't statically linked you are okay there... at
least as far as libraries that are part of the stock system goes. (otherwise
we'd never be able to build against, say, a differnet libc or anything like
that)

"However, as a special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary form) with
the major components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies the
executable."

