Hacker News new | ask | show | jobs
by ninkendo 1988 days ago
Hmm, I guess there's two arguments happening here...

- Apple can't include GPLv3 software in iOS because it only runs signed code, and the keys needed to sign system components are kept secret by Apple. From this perspective, the developer agreement is a red herring.

- App Store developers can't include GPLv3 code in their apps, because then Apple would be breaking the terms of GPLv3 by not providing the "Installation Information" as you put it, which would be required for users to freely modify the app. (This "Installation information" being the iOS SDK and a Developer signing key needed to run your own code on your device.) Keep in mind that when Apple distributes your app via the app store, they take on the responsibilities to adhere to the terms of its license as they pertain to "redistribution", since that's exactly what Apple is doing.

> GPLv3 object code that is not conveyed as part of a change of possession of a User Product is not subject to the installation information requirement. This requirement was added to GPLv3 specifically to stop what TiVo was doing--shipping GPL code on their boxes that could not be replaced by the user--and it was narrowly drafted to only cover that situation.

If Apple were to include GPLv3 code directly as part of iOS, they absolutely would be "shipping GPL code on their boxes that could not be replaced by the user"... something that is OK in GPLv2 (so long as you provide the source like they're doing in TFA), but not OK in GPLv3 (because of the tivoization clauses.)

To tie all this to my original point... macOS ends up having to kill all its uses of GPLv3 (even though you can replace it on device and build your own, on macs), because of the shared architecture and engineering with iOS. It's easier to just ban GPLv3 from the entire company really.