What is wrong with GPLv3 for Apple and why is it okay in Linux?
EDIT: Linux is GPLv2 only and does not accept GPLv3 submissions. It is likely that your question can be restated as “Why are GPLv3 programs able to use syscalls in Linux without infecting the kernel with GPLv3 compliance requirements?”, and this is likely due to the clearly declared syscall exception as noted in their licensing docs:
https://github.com/torvalds/linux/blob/master/Documentation/...
And, Torvalds commented on never-GPLv3 in 2006:
As far as I understand it, if the GPLv3 clauses would apply, Apple would have to allow anyone to run their own, modified version of macOS on their computer, meaning Apple would need to provide a way for people to circumvent / disable all the secure boot architecture.
Also, things like "Activation Lock", where Apple requires your Apple ID password to re-install the OS (a theft protection feature) doesn't sound like it would be easy to reconcile with GPLv3.
"Activation Lock" is an iOS thing. On Macs you can set a firmware password [2], but I don't see how that would conflict with GPLv3.
[0] https://developer.apple.com/library/archive/documentation/Se...
This seems dubious, since the FSF themselves make the statement that aggregates of differently licensed software are fine, as long as you comply with GPL for the GPL-licensed parts: https://www.gnu.org/licenses/gpl-faq.en.html#MereAggregation
All of macOS, since 10.0, is built on ever-more-interlocking systems of ‘intimate’ communication. As upthread points out, there’s a hardware chip that uses IPC to interlock with SIP to protect system files. The depth of IPC used to deliver a Macintosh appears to qualify the entire shipping OS for the “larger program” clause.
Setting IPC aside, it’s still easy to construct a case against GPLv3: If bash is included in an operating system release that can be downloaded like any other program on the Mac App Store, then it’s absolutely plausible to a layperson that the inclusion of GPLv3 in that program would - like any other program - infect it in its entirety with GPLv3’s copyleft requirements. macOS isn’t an aggregate software repository to its users, and a judge could easily be convinced to agree.
I’m not Apple’s lawyer, but I hope this helps convey what I imagine is part of their reasoning against it.
At least we get diversity in our shells. I quite like that, it reminds me of the UNIX days when every OS was slightly different at the shell level, with different command line options for simple commands in Solaris/IRIX/HP-UX and those myriad of different IBM systems.
Can't have it too easy, can we? Or else anyone would be able to do our programmer jobs!
Shouldn't this be the other way around? The concern would be with non-GPL programs making syscalls and getting infected with a GPLed kernel. The kernel isn't at risk of being infected.