*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
