Wesnoth struggles with App Store's GPL incompatibilities

This article brought to you by LWN subscribers Subscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible.

In light of the recent GPL compliance complaint made by the Free Software Foundation against Apple's App Store, which sells and distributes software for Apple gadgets, it was probably inevitable that other problem applications would surface. While there are various opinions on whether the App Store can legally distribute GPL-covered binaries—along with diverging opinions on what benefits, if any, the App Store provides to free software projects—it is clear that some people object to their GPL-licensed code appearing in the App Store. So it shouldn't come as a huge surprise that the port of the The Battle for Wesnoth for the iPhone/iPad, which was released last November, has run into some resistance.

As is usual for the wesnoth-dev mailing list, the discussion was largely polite and respectful, but there was clear disagreement. Rusty Russell raised the issue after a friend showed him Wesnoth running on an iPad: "That's great, except that it came via the Apple App Store. I didn't think that was allowed under the GPL?". He pointed to the FSF's blog post about GNU Go, and noted that he was "uncomfortable with Apple's restrictions on the devices after they sell them".

Wesnoth lead developer David White responded that, unlike GNU Go, Wesnoth had been ported to Apple's devices with the explicit endorsement of the development community. He and the other developers, including Kyle Poole who did the port, believed that the port was "acting within the GPL" because the source was available and:

It is entirely permissible for anyone to compile the game from source and distribute it using their own distribution mechanism to people with an iPhone device. There may be some barriers to distribution but these barriers are entirely technical due to the "walled garden" nature of the iPhone.

White went on to describe the benefits that he saw from putting the application into the App Store: revenue for the project, which is being used to fund art development, and raising the profile of FLOSS gaming. He noted that it helped users become more aware of FLOSS games, but also made other free software game projects aware of the App Store as a distribution platform. Russell didn't find those to be particularly compelling arguments in favor of distributing Wesnoth in the App Store, in fact he found the opposite to be true.

Because the App Store EULA imposes restrictions on what users can do with the binaries they download, the FSF and others believe that it runs afoul of the "further restrictions" clause in section 6 of the GPL. As Russell points out, the "walled garden" that Apple is creating violates his understanding of users' rights under the GPL:

I want recipients of my software to receive all the benefits that I have received. I want them to be able to mod, share and experiment with the software, and this is reflected in my preference for the GPL. It's not really relevant *how* people are prevented from doing so, except to the questions "Does it matter?" and "Can I do anything to prevent it?". So, does it matter? As a software developer, a machine on which the owner cannot choose what software to create and run is anathema. As a free software developer, a machine which restricts free software is particularly disturbing.

In addition, Russell is skeptical that users are really being exposed to free software gaming, instead they are just finding "a great game for $5". He also believes it's "self-defeating" to strengthen the Apple platform by putting more free software on it. But others clearly disagree. Patrick Parker noted that it was not a secret that an iPhone port was taking place, as it had been discussed on the forums and on IRC, and that a complaint at this late date was "selfish". Furthermore, he was unhappy seeing Wesnoth used as a weapon:

You essentially are saying that you want Battle for Wesnoth to be used as a tool in the "Freeness" war against Apple, regardless of the wishes of the Lead Developer of Wesnoth, the active developers of Wesnoth, or the Wesnoth userbase itself. To me that seems selfish, not selfless. If you have a low opinion of Apple and their restrictive licenses, which I know I certainly do, there are plenty of other ways to go about expressing it.

Russell agreed with some of that, saying that he worked on Wesnoth because it aligned with his selfish goals: "I want to encourage Freeness, and helping Wesnoth seemed like a good way to do that. Or, if you prefer, 'a tool in the "Freeness" war'." But he also acknowledged that others had different goals, which is where the license comes into play: "that's why we have a license, and a common understanding of what it means".

The FSF's complaint, which raised the license issue for the first time, came well after the Wesnoth port was completed after some eight months of work by Poole. That puts the project, and White in particular, in an uncomfortable position. His "main concern" when Poole approached him about porting the code was to ensure that the full source code would be available. The source is available, but White is, to some extent, stuck between a rock and a hard place:

On one hand I feel an obligation to Kyle [Poole] since I told him I felt he could distribute Wesnoth on the app store if he undertook the substantial effort to complete the port. On the other hand, I am of course obliged to all of the Wesnoth developers who have contributed content under the terms of the GPL, and specifically those ones who feel strongly that source code availability and other measures are not sufficient to meet the terms of the GPL and thus that Wesnoth being distributed on the app store is a very serious violation of the GPL.

Poole describes the port as having an impact that is very much in keeping with the ideas behind the GPL, even if Apple's EULA tries to hinder it:

As a direct result of me spending more than 8 months fulltime working on the iPhone port and publishing the source code, many other iPhone projects have benefited from my work, not to mention improvements which can be used for other Wesnoth branches such as Android, or backported to the trunk. I think the spirit of GPL very much comes through in the iPhone port.

But the power grab enabled by Apple's EULA is sweeping, which is what concerns Russell: "AFAICT, the device is designed not to allow the freedoms the GPL tried to guarantee." By not allowing Wesnoth binaries to be redistributed, Apple has gone further than others, he said:

But disallowing independent distribution is... breathtaking. None of the platforms I've ever coded for have done that, and it really scares me. I'm sure you've thought about this far more that I have: am I overreacting?

His question remains unanswered, at least directly, but certainly some see the arguments made by Russell and the FSF as too rigidly interpreting the GPL. For example, Richard Kettering resolutely defends what he perceives to be the interests of the artists and musicians in the project:

We do not see a conflict between the GPL and the iOS, and we'd be outraged if you take wesnoth away from us in order to strive for a slightly more fundamentalist interpretation of the GPL. Removing our ability to run the software we have built, on the platform we want, just because you dislike the platform, flies in the face of everything the GPL has ever stood for.

The irony of that last sentence seems to have escaped Kettering, but Russell is quick to point it out: "Generalize the words 'just because you dislike the platform' to 'for any reason' and you've summed up the problem with these devices very well :("

White has suggested that a list of Wesnoth contributors be created from the Subversion logs, and that each be contacted to be made aware of the situation. Any that are willing can make a licensing exception to allow their contribution to be used in an application distributed through the App Store. Those that aren't willing, and Russell and others may well be in that camp, would have their contributions removed from the App Store version.

Exactly what form that exception would take is up in the air. Paul Ebermann is concerned that wording it will be difficult, but White disagrees as he thinks a specific App Store exception can be made. Currently, the plan is to convene an IRC meeting of all concerned project members to discuss the problem. Decisions on license exception wording, as well as a plan to remove any content from contributors unwilling to agree, will presumably be worked on as part of that meeting.

Apple does provide the means for applications to present their own custom EULA, so Poole looked into the possibility of using the GPL as Wesnoth's EULA. But, Apple has closed off that potential remedy as well: "Apple states that any custom EULA must meet their 'minimum terms' which can't be more permissive than their default." But, as Gabriel Morin pointed out, there are even worse terms in the Apple's iPhone Developer Program License, which Poole was required to sign, but he "probably didn't mention it since the agreement prohibits making public statements about it". Morin doesn't see how it is at all possible to reconcile the GPL and that agreement.

This is clearly a clash between a license intended to ensure user freedoms and a company hell-bent on ensuring that it is in complete control of what can run on the devices it sells. There may be ways to remove code or content from the Wesnoth codebase, such that all that remains has some kind of license exception to allow it to run on iPhones and iPads, but the question will still remain: does working around Apple's draconian requirements really help the cause of free software? Opinions clearly vary, but it is something our communities will continue to struggle with.

One clear lesson from all of this was noted by Parker: "However, if I ever start my own open source project, I will probably require copyright removal or assignment as a precondition to inclusion (much like the FSF does with its own programs)". Had a copyright assignment to a Wesnoth non-profit been required for all contributions, all of the App Store licensing problems could have been avoided, as the copyright owner could have issued a separate license. Whether as vibrant a community would have arisen around this hypothetical "Wesnoth with copyright assignment" project is an open question.

Apple is unlikely to change its terms regardless of what Wesnoth decides. Its walled garden is working very well for it and few, if any, of its customers are clamoring for a change. While it is very cool to see a free software game like Wesnoth running on these über-trendy gadgets, it is a bit hard to see how it brings more folks into the free software world. On the other hand, it's hard to see how denying the iPhone/iPad universe access to Wesnoth is going to make a difference either. It's really up to consumers to recognize—and clamor for—devices that respect their freedoms. So far, that just hasn't happened.