More about the App Store GPL Enforcement
Let's start by making sure everybody's on the same page: in order to use the App Store, you have to agree to the iTunes Store Terms of Service and/or the App Store Terms of Service. You can confirm this yourself just by reading the documents: they say as much in their all-caps preambles. The two documents are pretty similar; this post will give section numbers from the App Store Terms of Service, but the same language appears in the iTunes Store Terms of Service and so our analysis applies identically to it. You can read both those documents on Apple's site, and we have a copy of that page as it exists today to provide this commentary.
Along the same lines, we'll be talking about GPLv2 specifically in this blog post, since that's the license at issue, but this analysis would apply to all versions of the GNU GPL and AGPL. Section 6 of GPLv2 says:
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.
(Emphasis added.) This last sentence is a crucial part of the strong copyleft in the GPL and AGPL: it prevents distributors from using separate legal agreements, like Terms of Service or NDAs, to take away the freedoms that the license is supposed to grant. This is the license condition that Apple is violating when it distributes GPL-covered software through the App Store.
In the App Store Terms of Service, the programs that you download from the App Store are called "Products" (the definition is in section 4). In section 9(b), the Terms set out "Usage Rules" for the software:
You acknowledge that Products contain security technology that limits your usage of Products to the following applicable Usage Rules, and, whether or not Products are limited by security technology, you agree to use Products in compliance with the applicable Usage Rules.
The Terms go on to list the specific usage rules. In effect, the Usage Rules do the same thing as Apple's Digital Restrictions Management—narrowly limiting what you can do with the software—but the method is different: they work legally instead of technologically. Rules (i) and (iii) say that you are required to accept the Terms of Service to use the software, and that you may only install the software on five approved devices. These rules are exactly the kind of "further restrictions" that are prohibited by the GPL: they limit your ability to use and distribute the software.
Some people have pointed out that the App Store Terms of Service say that a separate license to the software is provided to you by the developer, and that's true. But the Usage Rules are imposed on you no matter how the software is licensed. The Terms themselves make this explicit this in section 9(c), which says:
The Usage Rules shall govern your rights with respect to the Products, in addition to any other terms or rules that may have been established between you and another party. (Emphasis added.)
That's the problem in a nutshell: Apple's Terms of Service impose restrictive limits on use and distribution for any software distributed through the App Store, and the GPL doesn't allow that. This specific case involves other issues, but this is the one that's most unique and deserves explanation.
We would've liked to see Apple do the right thing and remove these limits, but it looks like that's not going to happen. Apple has removed GNU Go from the App Store, continuing their longstanding habit of preventing users from doing anything that Apple doesn't want them to do. As we said in our initial announcement, this is disappointing but unsurprising; Apple made this choice a long time ago. We just need to make sure everybody else gets the message: if you value your independence and creativity, you should be aware that Apple doesn't. Take your computing elsewhere.