Well, GPLv3's installation instructions requirement more or less is targeted squarely at consumer electronics companies and that includes Apple. If Apple were to include GPLv3 software in iOS, the only way to comply with the license would be to significantly alter their security model to include an owner override. While there are ways that Apple could still use GPLv3 software, not change their security model, and remain in compliance[0]; I imagine they decided it would be easier to just ban new GPL software in their OS entirely rather than deal with the compliance headaches.
Apple in particular never shipped any GPLv3 software in their OS and stopped updating even v2 software. They used to be very heavy GCC users, but wrote their own permissively-licensed compiler that outdoes it in almost every way. In their defense, they actually wanted LLVM to be an upstream FSF project; but RMS famously lost the e-mail because he daily-drives barely functional ancient laptops. In a sense, that too is enterprise-hostility; albeit not owing to choice of license. I imagine that if the FSF had agreed to refactor GCC the way Apple wanted, Apple would have gone through the time and effort of GPLv3 compliance.
I'd also argue that GPLv3 didn't actually fix the TiVo loophole. It can't - not unless we're going to pull an SSPL and start writing copylefts that trip on software that merely runs alongside Linux. The way TiVo got around the GPLv2 installation instructions requirement was to make their own proprietary app enforce the kernel lockout rather than the bootloader, and prohibiting that would be very draconian.
That being said, you also should take into account the historical context of GPLv3's announcement and development. The FSF had some pretty crazy ideas, like rolling the Affero clause into GPLv3, that probably scared people into dropping their upgrade clauses even if it never actually made it into an actual FSF license document. The end document we actually got is relatively tame, but the message the FSF sent was that they were willing to ship whatever license language they felt met their personal definition of software freedom. If you didn't like any new restrictions they added to your own code, tough.
[0] Stuff that runs in a sandbox container and doesn't use private entitlements probably isn't violating GPLv3, because Apple hands out free dev accounts that let you compile and run whatever, albeit with some annoying requirements to renew the app's signature every week.
GPLv3 addresses definitions (such as what constitutes source-code), software license compatibility, software patents as well as tivotization. The clauses around software patents are what I was referring to. By design, they are hostile towards software patents. Hence for instance Apple not updating BASH for so long (macOS still ships with BASH 3.2.57, the last version that was GPLv2) and the switch to (the MIT licensed) Z shell. Not commenting on the legitimacy of software patents, Apple's take on using GPLv3 licensed software - merely stating cause and effect.
I believe that most corporate legal departments (who are the ones controlling what licenses can/can’t be used, not the engineers) received GPLv3 as an end to simple ways to guarantee that GPL had no possibility of bringing legal trouble.
Even if it’s technically possible to comply with GPLv3 without open sourcing proprietary code, there’s enough caveats/hoop jumps involved that it was seen as too risky to even try. They don’t want, “no legal issues as long as”, they want a flat, unconditional “no legal issues ever”.
kmeisthax|4 years ago
Apple in particular never shipped any GPLv3 software in their OS and stopped updating even v2 software. They used to be very heavy GCC users, but wrote their own permissively-licensed compiler that outdoes it in almost every way. In their defense, they actually wanted LLVM to be an upstream FSF project; but RMS famously lost the e-mail because he daily-drives barely functional ancient laptops. In a sense, that too is enterprise-hostility; albeit not owing to choice of license. I imagine that if the FSF had agreed to refactor GCC the way Apple wanted, Apple would have gone through the time and effort of GPLv3 compliance.
I'd also argue that GPLv3 didn't actually fix the TiVo loophole. It can't - not unless we're going to pull an SSPL and start writing copylefts that trip on software that merely runs alongside Linux. The way TiVo got around the GPLv2 installation instructions requirement was to make their own proprietary app enforce the kernel lockout rather than the bootloader, and prohibiting that would be very draconian.
That being said, you also should take into account the historical context of GPLv3's announcement and development. The FSF had some pretty crazy ideas, like rolling the Affero clause into GPLv3, that probably scared people into dropping their upgrade clauses even if it never actually made it into an actual FSF license document. The end document we actually got is relatively tame, but the message the FSF sent was that they were willing to ship whatever license language they felt met their personal definition of software freedom. If you didn't like any new restrictions they added to your own code, tough.
[0] Stuff that runs in a sandbox container and doesn't use private entitlements probably isn't violating GPLv3, because Apple hands out free dev accounts that let you compile and run whatever, albeit with some annoying requirements to renew the app's signature every week.
no_time|4 years ago
Damn imagine the horror.
sbuk|4 years ago
kitsunesoba|4 years ago
Even if it’s technically possible to comply with GPLv3 without open sourcing proprietary code, there’s enough caveats/hoop jumps involved that it was seen as too risky to even try. They don’t want, “no legal issues as long as”, they want a flat, unconditional “no legal issues ever”.