LWN.net Logo

Re: Wesnoth Apple App Store GPL violation?

From:  Gabriel Morin <gabrielmorin-AT-gmail.com>
To:  dev-talk <wesnoth-dev-AT-gna.org>
Subject:  Re: Wesnoth Apple App Store GPL violation?
Date:  Mon, 12 Jul 2010 22:07:23 -0400
Archive-link:  Article, Thread

Is there a GPL violation?

Regarding the GPL violation, up to now the main point that was discussed
here seems to have been the app store EULA limiting binary redistribution,
but I've done a bit more research, and discovered some things that are
possibly worse. I'm providing this info to make the situation clearer, and
I'm asking people to take time to make their own research, instead of
reading one sentence out of context and screaming "omg omg". In short, at
least try to scream for a good reason.

Restrictions on modification and redistribution

The EFF [1]obtained a copy of the iPhone Developer Program License
Agreement (my observations are based on [2]this version). Kyle had to
agree to this agreement as everyone other iPhone dev, and probably didn't
mention it since the agreement prohibits making public statements about
it.

Quoting the EFF article, here comes the bad stuff:
App Store Only: Section 7.2 makes it clear that any applications developed
using Apple's SDK may only be publicly distributed through the App Store,
and that Apple can reject an app for any reason, even if it meets all the
formal requirements disclosed by Apple. So if you use the SDK and your app
is rejected by Apple, you're prohibited from distributing it through
competing app stores like [3]Cydia or [4]Rock Your Phone.

or, directly quoted from Apple's document:

3.2
...
(f) Applications developed using the Apple Software may only be
distributed if selected by Apple
(in its sole discretion) for distribution via the App Store or for limited
distribution on Registered
Devices (ad hoc distribution) as contemplated in this Agreement.
[...]

7.3����� No Other Distribution Authorized Under this Agreement
Except for the distribution of freely available Licensed Applications and
the distribution of
Applications for use on Registered Devices as set forth in Sections 7.1
and 7.2 above, no other
distribution of programs or applications developed using the Apple
Software is authorized or
permitted hereunder. In the absence of a separate agreement with Apple,
You agree not to
distribute Your Application to third parties via other distribution
methods or to enable or permit
others to do so.

Compare this to the GPL (I encourage you to read those excerpts in
context):

2. You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such
modifications or work [...]

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. [...]

7. [...]� If you cannot distribute so as to satisfy simultaneously your
obligations under this License and any other pertinent obligations, then
as a consequence you may not distribute the Program at all. [...]

Apple says "you can't distribute this iPhone app in any form or through
any means unless we explicitly allow you to do so, and you can't allow
others to disobey this rule". GPL says: "you can distribute this iPhone
app in any form and through any means you want, and you can't prevent
others to do so". Do I sense a subtle opposition?

What I can clearly see here is that having access to the Wesnoth iPhone
port source code is pretty much useless, probably explicitly prohibited by
Apple, and even if it wasn't, doesn't accomplish at all the GPL's purpose
of allowing downstream users to freely modify and redistribute the
program.

In fact, it seems that you can't acquire the iPhone SDK and agree to its
terms of use without automatically voiding your rights to
modify/redistribute any GPL program for the iPhone.

Let's say I purchase wesnoth for my hypothetical iPhone and download the
source code:

  * Apple's app store EULA prohibits me to redistribute the binary.
  * Kyle is obligated by Apple to tell me I have no right to
 modify/redistribute the app in source form either, since it was
 developed with the SDK.
  * If I want to modify and redistribute Wesnoth for the iPhone, I must
 use the developer SDK, which forces me to agree to only do it through
 Apple's appstore, and if they refuse my app, distributing it by any
 other mean is illegal.
  * Any workaround I could possibly think of involves jailbreaking, whose
 illegality has not been ruled by courts yet (I think), but which I
 can't do anyways without breaking my agreement(s) with Apple.
  * Having to ask permission to redistribute already flies straight in the
 face of the GPL, but realistically speaking, do you think Apple will
 allow a second, third, fourth distributor of Wesnoth on the app store?
 It wouldn't make sense from a business point of view, and they are
 known to be very stringent in their selection. Anyone who downloads
 wesnoth for the iPhone is supposed to have the same rights for
 modification, redistribution and selling as Kyle Poole, but in essence
 we've granted this fine gentleman exclusive commercial rights to
 wesnoth.

Possible conflict with closed-source DRM

Another interesting part of Apple's document, which may or may not affect
our discussion:

3.3.16������ If Your Application includes any FOSS, You agree to comply
with all applicable
FOSS licensing terms. You also agree not to use any FOSS in the
development of Your
Application in such a way that would cause the non-FOSS portions of the
Apple Software to
be subject to any FOSS licensing terms or obligations.

and

5.
...
You further represent and warrant to Apple that the licensing terms
governing Your Application, or
governing any third party code or FOSS included in Your Application, will
be consistent with and
not conflict with the digital signing or content protection aspects of the
Program or any of the
terms, conditions or requirements of the Program or this Agreement. In
particular, such licensing
terms will not purport to require Apple (or its agents) to disclose or
make available any of the
keys, authorization codes, methods, procedures, data or other information
related to the Security
Solution, digital signing or digital rights management mechanisms utilized
as part of the Program.

Does Apple add any DRM-type code (or require the developer to do it
secretly) to the binary that goes on the appstore? If so, the GPL clearly
forces them to publish their drm code as part of the wesnoth source code,
and they saw fit to protect themselves against this in the parts I put in
bold. If such hidden DRM exists, then Kyle's publishing of wesnoth on the
app store violates the iPhone Developer Program License Agreement.
Keep in mind that if Apple doesn't do DRM this way, nothing prevents them
from introducing it in the near future.

In case you're wondering why they seem to imply that you *can* include
FLOSS in an iPhone app, they're refering to LGPL-style licensed libraries
could conceivably be included in a commercial iPhone app and not
contradict this clause. All the other license clashes mentioned in this
email would still apply, though.

The relevant GPLv2 section:
2. b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any part
thereof, to be licensed as a whole at no charge to all third parties under
the terms of this License

Failure to offer source code download
Superficially this seems to be nitpicking from a pragmatic POV, but
further reflection shows that it's a very pragmatic clause that makes
sense. And holds legal weight.

(quoting the GPLv2)

3. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections 1
and 2 above provided that you also do one of the following:

  a) Accompany it with the complete corresponding machine-readable
  source code, which must be distributed under the terms of Sections
  1 and 2 above on a medium customarily used for software
  interchange; or,

  b) Accompany it with a written offer, valid for at least three
  years, to give any third party, for a charge no more than your
  cost of physically performing source distribution, a complete
  machine-readable copy of the corresponding source code, to be
  distributed under the terms of Sections 1 and 2 above on a medium
  customarily used for software interchange; or,

  c) Accompany it with the information you received as to the offer
  to distribute corresponding source code. (This alternative is
  allowed only for noncommercial distribution and only if you
  received the program in object code or executable form with such
  an offer, in accord with Subsection b above.)

Apple doesn't offer a download of the source code + this is a commercial
distribution = failure to comply with the GPL. I already hear the anti-GPL
screams, so let me just point out that this is very easy to comply with,
and that it makes a lot of sense (ok, you linked to
[5]wesnoth.org/sourceforge.net/gna!, but those go down, what? Apple is
supposed to ensure "in-person" that purchasers of iPhone wesnoth can
obtain a copy of the source code, not rely happily on a third-party.)
Conclusion - My understanding of the situation
My global view of this is that the GPL (and people who use it for their
software) is incredibly generous: fulfill a few easy conditions, and
commit to pass on the same rights you obtain, and you can *sell* what may
be the work of hundreds of people.
Wesnoth's case shows that Apple is only too willing to profit from GPL
apps, but isn't willing to make the extremely minimal efforts to acquire
the right to sell them on the app store.They don't even have the basic
infrastructure in place for redistribution of source code, which is a
basic condition set by the GPL for commercial redistribution. (Don't tell
me their lawyers don't know the GPL by heart, I'll laugh at you.)
Furthermore they impose on users and developers licenses that are in many
parts the complete opposite of the GPL. We can't really stop them from
depriving their users of using GPL apps, and they themselves don't deserve
making money from those apps.

Saying that there's a GPL violation is not the right term. The whole apple
licensing agreements are mo********ing anti-GPL constructs.

I think the documents I linked here highlight the fact that Apple started
a war a while ago, and is trying to create a future for computing where
free software isn't even possible. They want total control and lock-in
over both devs and users, and that means artificial rarity and big money.
In that sense giving in and relicensing or dual-licensing wesnoth (a, if
not the flagship of FLOSS gaming) is telling them they're right, and
encouraging the creation of a situation where Wesnoth being GPL (or any
license really) will be a moot point, since very few people will have
devices where they can actually redistribute and modify it.

This said, it saddens me to see such a talented dev as Kyle in this mess,
but he got into it willingly, and agreed to this dubious secret agreement.
If iPhone wesnoth stops, he still made a lot of money from it, taking
advantage of users through an illegal rarity (created in cooperation with
Apple) in the distribution of the game. Wesnoth devs who agreed to the
scheme shouldn't feel proud, either, but at least they made no personal
profit.

I've come to the conclusion that, both legally and ethically, it's
impossible to justify Wesnoth's presence on the app store. As an alternate
source of income, I suggest selling wesnoth for all available platforms
(even alongside the free download), which might have better luck than a
donation button which people often interpret as begging. Some of the money
should be reinvested in a bit of marketing. If we can somehow maintain an
iPhone port of wesnoth without using the Apple SDK, we could sell that
too, for jailbroken iPhones, but the Android market might be a much better
place to make money while respecting users and the GPL. Maybe I'm
daydreaming, but maybe Kyle with his experience of mobile devices, could
stay with us and work on an Android port instead.

Gabriel aka gabba

References

Visible links
1. http://www.eff.org/deeplinks/2010/03/iphone-developer-pro...
2. http://www.eff.org/files/20100127_iphone_dev_agr.pdf
3. http://cydia.saurik.com/
4. http://rockyourphone.com/
5. http://wesnoth.org/sourceforge.net/gna
_______________________________________________
Wesnoth-dev mailing list
Wesnoth-dev@gna.org
https://mail.gna.org/listinfo/wesnoth-dev


(Log in to post comments)

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds