Although we personally trusted and would've moved forward with Moxie's informal permission to distribute SignalProtocol within ChatSecure on the App Store, our funder required us to get the legal details squared away or we'd lose our funding. This announcement is an amazing gift for us, and for other GPL compatible Mac/iOS apps.
This announcement also more broadly benefits the copyleft community. There has been a decline in GPL apps on Apple platforms, particularly because of this conflict between the GPL and Apple's App Stores. It makes it clumsy to accept pull requests because you need a CLA to allow relicensing for distribution. There's a also lot of FUD from anti-Apple copyleft zealots. Having a good template for other developers who wish to stick to strong copyleft without worrying about App Store issues is a great contribution to the Apple-friendly copyleft community.
Apple could always do what Google does, to state that in the case of copyleft licenses their term take precedence over the ToS (neutralizing restrictive terms like the redistribution ban on everything you download from the store).
This meme keeps going around that the Android store is GPL compatible. But where is the actual license text that allows this, or at least how does the situation differ from that with iOS? I checked the current Google Play Terms of Service and the iTunes Terms and Conditions. The two were alike in several respects:
- They had no blanket exception or deference I could find to third party agreements, nor any relevant mention of the terms "open source" or "copyleft".
There is something in the Google ToS that could be interpreted as such an exception, but the wording gives it dubious applicability to third party apps, and in any case, the Google Play ToS says that "if there is any conflict between the Google Play Terms of Service and the Google ToS, the Google Play Terms of Service shall prevail".
- They dictated various random usage rules, again without any explicit exception clause.
- One of those rules was a requirement not to circumvent DRM. AFAIK, both app stores do in fact store apps obfuscated/encrypted on disk, so it wouldn't be possible to usefully redistribute the apps without engaging in such circumvention. (The requirement was in each case worded broadly enough to potentially apply to any DRM included with the app itself, though this is just another example of a random potentially-conflicting usage rule.)
- However, they both state that apps are licensed directly from the developer to the user, with the store distributing them on the developer's behalf, rather than licensed to the store and sublicensed from there to the user. (If that even means anything.) Therefore, it could be argued - I don't know how much validity this would have, but it could be argued - that the GPL's "you may not impose any further restrictions" clause is not in fact violated, because you (i.e. the app developer) are not imposing any further restrictions - the restrictions come from a separate contract you're not a party to - and Google/Apple is not bound by the terms because it's just distributing stuff on your behalf rather than on its own authority.
Therefore, on both stores GPL compatibility is possible but dubious. Where is the difference?
(By the way, I've been lazy and haven't checked the respective developer agreements. It's possible that one or both agreements have clauses that impede legally submitting GPL apps to the store, but they can't generally authorize behavior that the ToS forbids - since users are not party to them - so any such difference wouldn't affect my main point about the Play Store having similar restrictions to what people have complained about wrt the iOS App Store.)
Source:
== The Google ToS clause ==
Open source software is important to us. Some software used in our Services may be offered under an open source license that we will make available to you. There may be provisions in the open source license that expressly override some of these terms.
Capturing of Streams. You may not use Google Play or any Content in conjunction with any stream-ripping, stream capture or similar software to record or create a copy of any Content that is presented to you in streaming format.
Use of Android Apps. You must use apps from Google Play in accordance with the Google Play Business and Program Policies which are in place from time to time, the current version of which can be found at http://play.google.com/about/android-developer-policies.html
Apple:
(ii) If you are a commercial enterprise or educational institution, you may download and sync an App Store Product for use by either (a) a single individual on one or more iOS or tvOS Devices used by that individual that you own or control or (b) multiple individuals, on a single shared iOS or tvOS Device you own or control. [..] For the sake of clarity, each iOS or tvOS Device used serially or collectively by multiple users requires a separate license.
== No DRM circumvention ==
Google:
Security Features. You may not attempt to, nor assist, authorise or encourage others to circumvent, disable or defeat any of the security features or components, such as digital rights management software or encryption, that protect, obfuscate or otherwise restrict access to any Content or Google Play. If you violate any security feature, you may incur civil or criminal liability.
Apple:
You agree that the App and Book Services and certain App and Book Products include security technology that limits your use of App and Book Products and that, whether or not App and Book Products are limited by security technology, you shall use App and Book Products in compliance with the applicable usage rules established by Apple and its principals (“Usage Rules”), and that any other use of the App and Book Products may constitute a copyright infringement. Any security technology is an inseparable part of the App and Book Products. Apple reserves the right to modify the Usage Rules at any time. You agree not to violate, circumvent, reverse-engineer, decompile, disassemble, or otherwise tamper with any of the security technology related to such Usage Rules for any reason—or to attempt or assist another person to do so.
== On who is licensing apps to whom ==
Google:
When you buy “Content” (defined as data files, applications, written text, mobile device software, music, audio files or other sounds, photographs, videos or other images) on Google Play you will buy it either:
[..]
(c) in the case of Android apps, from the Provider of the app (an “App Sale”).
Each time that you purchase Content, you enter into a separate sale contract:
[..]
(f) with the Provider of the Content you have purchased (in the case of App Sales).
The separate sale contract in (e) or (f) above (as applicable) is in addition to your contract with Google Inc. for the use of the Service (i.e. these Google Play Terms of Service).
Apple:
You acknowledge that: you are acquiring the license to each Third-Party Product from the Application Provider; Apple is acting as agent for the Application Provider in providing each such Third-Party Product to you; and Apple is not a party to the license between you and the Application Provider with respect to that Third-Party Product.
(warning: the Apple ToS has separate sections with similar terms for media and apps, and there is also a "Licensed Application End User License Agreement" that specifies it's merely a default for apps without their own terms, so make sure you look in the right sections.)
> 3.8: You agree that Google and/or third parties own all right [...]. You agree that you will not, and will not allow any third party to, (i) copy, sell, license, distribute, transfer, modify, adapt, translate, prepare derivative works from, decompile, reverse engineer, disassemble or otherwise attempt to derive source code from the Products, unless otherwise permitted
And primarily 4.2, which you already found: In the event of a conflict between the Terms and any such licenses, the open source software licenses shall prevail with respect to those components.
> You may not sell, rent, lease, redistribute, broadcast, transmit, communicate, modify, sublicense or transfer or assign any Content or your rights to Content to any third party without authorization
> And primarily 4.2, which you already found: In the event of a conflict between the Terms and any such licenses, the open source software licenses shall prevail with respect to those components.
No, I didn't find that, I found a similar clause in the overall Google ToS which, as I said, didn't seem like it would be applicable to third party applications. I see, this is what you were referring to. 4.2 would definitely qualify as the kind of blanket exemption I was looking for - if it is actually in effect.
Interesting. Your first link is not the Google Play ToS; it's your second link which calls itself the "Google Play Terms of Service", while your first link is the "Android Market Terms of Service", and does not contain the text "Google Play". But "Android Market" is a dead brand. And a relevant-looking page on android.com contains links to the Google Play ToS and other agreements, but not your Android Market ToS:
I suppose that the failure of the new ToS to include similar language is probably a mistake, as is the fact that the Play ToS contains so many terms (like the stream ripping clause I quoted) that seem like they're intended for media rather than apps, but have no explicit limitation to the former. But that doesn't change the fact that the ToS is what it is, and has been for years, yet people still upload GPL stuff.
Also, if Google were to fix this it wouldn't just be a matter of adding the clause back. As I mentioned, from what I can tell (not an Android user myself), Google Play encrypts APKs at rest as a DRM measure; since modifying and redistributing them would require cracking the encryption, the Play ToS's anti-DRM-circumvention clause is presumably an "additional restriction" from the GPL's point of view. (If we ignore the who-contracts-with-whom question I raised, at any rate.) Giving the GPL priority prevents incompatibility, but Google presumably wouldn't want there to be a loophole where crackers could legally reverse engineer the DRM that applies to all apps by claiming to do it for the purpose of distributing a GPL app. This wasn't an issue in 2011 because the encryption feature hadn't been released yet; the Market ToS has an anti-circumvention clause too, but if there is no actual DRM to circumvent, there's no issue.
Of course, there is a solution: Google could just allow developers to turn off DRM on a per-app basis. But they'd have to care enough to implement that.
Which is essentially the same problem as with Apple. I said that Google's and Apple's ToSes were alike in enforcing random usage rules on apps with no exceptions, but there's a difference in quantity: since Apple's has separate sections for iTunes proper and the App Store, it doesn't have the same kinds of probably-not-intended-to-apply rules as Google's. In fact, aside from DRM clauses, the only restrictions in Apple's ToS that apply to third-party apps distributed with their own ToS are four paragraphs of "APP STORE AND APP STORE FOR APPLE TV PRODUCT USAGE RULES", of which two are a prohibition on using the same iTunes account on multiple commercial or multi-user devices, and the other two are essentially a description of DRM limitations. If Apple wanted to properly support GPL on the store, it would have to add an option for developers to disable DRM on their apps, same as Google, but then legally speaking it wouldn't need to add any dangerous-seeming blanket exception clause; it would just need to add an exception to those four paragraphs. Again, a matter of caring.
Historically, Google has cared a lot more about open source and particularly the GPL while Apple has kind of turned up its nose - but then, historically, Apple was under different management than it is today. Maybe I should try filing a Radar.
Outside of the name calling, what FUD would that be? Are we uncertain if apple apply an app-store license on apps they distribute? Are we uncertain if user can or can't install their own modified version of apps on their devices?
Although we personally trusted and would've moved forward with Moxie's informal permission to distribute SignalProtocol within ChatSecure on the App Store, our funder required us to get the legal details squared away or we'd lose our funding. This announcement is an amazing gift for us, and for other GPL compatible Mac/iOS apps.
This announcement also more broadly benefits the copyleft community. There has been a decline in GPL apps on Apple platforms, particularly because of this conflict between the GPL and Apple's App Stores. It makes it clumsy to accept pull requests because you need a CLA to allow relicensing for distribution. There's a also lot of FUD from anti-Apple copyleft zealots. Having a good template for other developers who wish to stick to strong copyleft without worrying about App Store issues is a great contribution to the Apple-friendly copyleft community.