Conversation
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The GPLv3 and Apple's iOS App Store Terms of Service contain fundamentally incompatible requirements:
DRM: Apple wraps all App Store binaries in FairPlay DRM. GPLv3 Section 3 requires distributors to waive legal power to forbid circumvention of technological protection measures.
Additional restrictions: Apple's Usage Rules limit installation to authorized devices and require acceptance of Apple's ToS. GPLv3 Section 10 states "You may not impose any further restrictions on the recipients' exercise of the rights granted herein."
Anti-tivoization: GPLv3 Section 6 requires providing "Installation Information" for User Products (which includes iPhones) — the keys and procedures needed to install modified versions. Apple does not permit sideloading modified App Store binaries, and distributors cannot provide Apple's signing keys.
The FSF confirmed this incompatibility in 2010 through enforcement actions against GNU Go on the App Store. Apple removed the app rather than change its terms. VLC was similarly removed in 2011 after a contributor complaint; VideoLAN resolved it by relicensing libVLC to LGPLv2.1+.
Copyright Holder Exception
A copyright holder cannot violate their own license. Per the GNU GPL FAQ:
If Open Water Software, LLC is the sole copyright holder (or holds sufficient rights from all contributors), it can simultaneously:
This is not dual licensing — the public license remains GPLv3. It is the copyright holder exercising its inherent right to distribute its own work.
Contributor License Agreement
The complication arises with external contributions. A contributor's code enters under GPLv3, and distributing it with Apple's additional restrictions would violate their GPL grant — unless the project holds broader rights.
This is where the Contributor License Agreement comes in. Modeled on Signal's CLA, it grants Open Water Software, LLC a broad, sublicensable copyright and patent license over all contributions, while:
Signal (AGPLv3) uses this exact approach to distribute on the iOS App Store. Their CLA grants Signal Messenger the same broad rights, enabling App Store distribution despite AGPL's even stricter network-use clause.
References