*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 obtained a copy of the iPhone Developer Program License
Agreement<http://www.eff.org/deeplinks/2010/03/iphone-developer-program-license-agreement-all>(my
observations are based on this
version <http://www.eff.org/files/20100127_iphone_dev_agr.pdf>). 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 Cydia <http://cydia.saurik.com/> or Rock Your
Phone <http://rockyourphone.com/>. *

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
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
_______________________________________________
Wesnoth-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to