top | item 21645618

Apple’s Great GPL Purge (2012)

67 points| LaSombra | 6 years ago |meta.ath0.com | reply

69 comments

order
[+] geofft|6 years ago|reply
> There are two big changes in GPL v3. The first is that it explicitly prohibits patent lawsuits against people for actually using the GPL-licensed software you ship. The second is that it carefully prevents TiVoization, locking down hardware so that people can’t actually run the software they want.

> So, which of those things are they planning for OS X, eh?

Seems pretty obvious in retrospect (and probably would have been obvious at the time, too) - they don't care about locking down Macs, but they do care about locking down iPhones and iPads. The remaining GPL software, which has stayed steady for a couple of releases, are all things you don't need on iOS: emacs, screen, etc.

[+] saurik|6 years ago|reply
> Seems pretty obvious in retrospect (and probably would have been obvious at the time, too) - they don't care about locking down Macs, but they do care about locking down iPhones and iPads.

Are we sure yet? Apple ships a read only system partition now, and requires the users to go through hoops to remove that, and they have been adding more and more of the random codesign and entitlement locking features to their base operating system (to use their AuthKit library to authenticate for Apple services, for example, you now need to not only disable System Integrity Protection, but patch the Apple Mobile File Integrity Daemon... which occurs to me maybe is now macOS instead of Mobile? ;P). These are the same steps as jaikbreaking an iOS device, only without the "exploits" (though still with patching code).

I was able to find a good walkthrough of the process here:

https://pvieito.com/2016/12/amfid-patching

> The remaining GPL software, which has stayed steady for a couple of releases, are all things you don't need on iOS: emacs, screen, etc.

If it causes you to rethink your position here, you might want to try running emacs on the latest version of macOS...

[+] belorn|6 years ago|reply
> The first is that it explicitly prohibits patent lawsuits against people for actually using the GPL-licensed software you ship

Its a bit more complex than that. You are also prohibited from distributing the software if you are knowingly relying on a patent license from a third party.

A common interpretation in the past, and suspect it still rings true today, is that Apple do not know the scope and extent of their patent agreements with other companies, but they don't want to rely on ignorance when distributing software to millions of customers. The worst case would look like this:

Third-party company sue a Apple customer over a patent.

Customer accuse Apple for misleading them and convince a developer to aid them.

Developer sue Apple for infringement.

Somewhere, somehow a memo from a lawyer actually did inform someone at apple that the third-party company had such patent, meaning that apple knowingly infringed the copyright (much higher fines/punishment).

[+] AceJohnny2|6 years ago|reply
> The remaining GPL software, which has stayed steady for a couple of releases, are all things you don't need on iOS: emacs, screen, etc.

And those are getting removed too.

(can't immediately find the Apple Technote about that, and don't have Catalina installed to verify if that's already happened)

[+] yjftsjthsd-h|6 years ago|reply
For once, I don't see what the big deal is. If anything, I think it surprising that Apple didn't fully excise GPL stuff long ago; as this blogger notes, it's not like they couldn't pull BSD components in.

> They already annoyed and inconvenienced a lot of people with the Samba and GCC removal.

I'm curious at both of these, albeit for different reasons. I'm pretty sure there are BSD-licensed smb stacks, so this doesn't strike me as a licensing issue so much as a "wanting to remove a component that they have no interest in" issue. And why was removing GCC inconvenient? Clang is a perfectly serviceable C compiler.

[+] nwallin|6 years ago|reply
Three facts: 1: clang was significantly worse when Apple removed GCC support, 2: clang is still significantly worse than GCC, and 3: it's because of Google's investment, not Apple's, that we can think of clang as a "in the same stadium" competitor to GCC that makes Apple's removal of GCC surprising.

Any pair of these wouldn't be surprising. Apple is investing in an unproven technology, ok fine. But the congruence of these three facts is surprising. Apple is investing in a worse technology and also relies entirely on Google to improve that technology for them. Blows my mind.

[+] mjw1007|6 years ago|reply
They did replace Samba with their own SMB stack, and the new one was very buggy indeed, to the extent of "eats your data in normal usage when run against a contemporary Windows server".
[+] asveikau|6 years ago|reply
Clang has been getting better and better over time. Getting rid of GCC is a no-brainer now, but maybe not at the start of the decade.
[+] jagged-chisel|6 years ago|reply
If one needs GCC, they can install GCC. I don't get the insistence that "the tool I like should come in the default install." Not to mention, Apple would routinely let their installation languish at older versions of various utilities, necessitating upgrading via package manager.

Being 'inconvenienced' by the removal of GCC from the default install is exactly that: an inconvenience.

[+] lukeh|6 years ago|reply
Not too much in the way of BSD licensed CIFS server stacks, at least last time I checked. Most of them are proprietary or GPL (or CDDL, in the case of Solaris').
[+] ksec|6 years ago|reply
I am wondering if Apple ever contribute anything back to the *BSD?
[+] classics2|6 years ago|reply
I can’t imagine why they would want software with viral licenses out of their codebase.
[+] lolc|6 years ago|reply
Pick your poison. Where the GPL is viral, proprietary licences are fatal.
[+] m463|6 years ago|reply
Because they're in violation? bash + rootless.h for example.

Because they want to restrict your ability to run code (ios does this) GPL3 doesn't allow it.

Because their lawyers told them to?

[+] lazyguy2|6 years ago|reply
It doesn't really matter. With Linux desktop improving and Microsoft 'WSL 2' Apple is rapidly losing it's relevance.
[+] lupire|6 years ago|reply
The OP gives a much more likely explanation. Check it out.
[+] Digital-Citizen|6 years ago|reply
Because a lot of GPL'd software is best of breed and (contrary to other threads here) apparently integrates quite well. It says a lot about Apple's view of their customers (none of it good) that they'd rather distribute a badly broken proprietary SMB replacement for Samba than continue with Samba until a suitable replacement that meets with Apple's licensing desires could be found. GPL-licensed software helped get MacOS X to where it is; Apple has been a GPL licensee for most of MacOS X's existence (and still is for some programs).

And as for that tired slur about the GPL being a "viral license", Robert Chassell's essay (reproduced below) still applies. Software freedom is good for us all, and being treated with equal rights to run, share, and modify the program was apparently very useful to a lot of people (apparently including people at Apple).

From https://www.gnu.org/philosophy/vaccination.en.html

When others hurt me, I try to defend myself. But some tell me that this makes them sick. They tell me that I should permit people to rob me of my work. They tell me that I should never try to defend myself.

They tell me that I should stop using the GNU General Public License, a license that vaccinates me against hurt. Instead, I should adopt a license that permits other people to rob me with impunity. They want me to adopt a license that forbids me from fighting back. They want me to give up my right to benefit from a derivative of my own work, a right I possess under current copyright law.

Of course, the language is a little less feverish than this. Usually, I myself am not called “infectious”. Rather, the legal defense that I use is called “infectious”. The license I choose is called “viral”.

In every day language, words such as “infect” and “virus” describe disease. The rhetoric is metaphorical. A legal tool is not a disease organism; but it is popular to think of the law as an illness, so the metaphor has impact.

The people who want to rob me use language that says I make them sick when I stop them from robbing me. They do not want to draw attention to the so-called “disease” that makes them ill: my health and my rights, and the health and rights of other people. Instead, they choose metaphor to twist people's thinking. They do not want anyone to think that I am a good citizen for stopping crime. They want the metaphor to fool others into thinking that I am a disease agent.

The GNU General Public License protects me. The connotation of “virus” and “infect” is that my choice of defense gives an illness to those who want to rob me. I want freedom from their robbery; but they want the power to hurt me. They get sick when they cannot hurt me.

To use another health and illness-related metaphor, the GNU General Public License vaccinates me; it protects me from theft.

Note that the theft about which I am talking is entirely legal in some situations: if you license your work under a modified BSD license, or a similar license, then others may legally take your work, make fixes or improvements to it, and forbid you from using that code. I personally dislike this arrangement, but it exists.

[+] vr46|6 years ago|reply
GPL has long caused a problem for people who want to tightly integrate software - LLVM and Clang with Xcode for example - and reap the benefits. When GPL software has to be used taped to the end of a stick like GCC, it’s a constraint for their vision. Maybe someone who knows this better than I do will refute this point, but I don’t think that the code analysis tools and developer assistance in Xcode would be possible with GCC.
[+] saidajigumi|6 years ago|reply
Beyond licensing, there are software design/architectural issues at play, ala:

Clang is designed as an API from its inception, allowing it to be reused by source analysis tools, refactoring, IDEs (etc) as well as for code generation. GCC is built as a monolithic static compiler, which makes it extremely difficult to use as an API and integrate into other tools. Further, its historic design and current policy makes it difficult to decouple the front-end from the rest of the compiler.

via https://clang.llvm.org/comparison.html, with more points for/against each option at that page.

[+] wahern|6 years ago|reply
Two ironies here:

1) clang and LLVM APIs are so unstable that tight integration effectively requires maintaining your own fork.

2) One of the original complaints about GCC was that Stallman stonewalled addition of a richer, stable plugin API. Fast forward to today, GCC plugins are now first-class and, AFAIU, the plugins API is more stable and dependable. OTOH, turns out people aren't using plugins as much as originally thought, though the Linux kernel infrastructure does.

[+] pmoriarty|6 years ago|reply
Releasing all my code as AGPL is one small way in which I oppose the corporatization of the internet.
[+] fmajid|6 years ago|reply
> Ship tmux with the control key rebound to ^A and probably nobody will care too much that you’ve removed screen

In case he hadn't noticed, OS X has Emacs keybindings by default and perverting tmux into vi-friendly Emacs-hostile screen defaults won't fly...

[+] rgovostes|6 years ago|reply
Note that in Catalina, the default shell changed from a very outdated GPLv2 version of Bash to Zsh.
[+] sigjuice|6 years ago|reply
The old bash still ships with Catalina.
[+] hyperion2010|6 years ago|reply
No emacs on iOS is thus a sad song that may be sung til the end of time.
[+] quotemstr|6 years ago|reply
I've never understood why Apple feared the GPLv3 so much. Other companies have shipped GPLv3 code for years and haven't suffered for it. What exactly does Apple think would go wrong if it started shipping a modern bash with macOS? Shipping a bundled GPLv3 program doesn't require that the whole system be free software.
[+] thrillgore|6 years ago|reply
The damning change for me was seeing CUPS (which they bought outright, mind you) go from GPL to Apache 2.
[+] big_chungus|6 years ago|reply
Apple develops the software; it can license the software however it likes.
[+] myrandomcomment|6 years ago|reply
The current GPL3 is idealistic. It is politically motivated. We live in a capitalist world. That is the fact. No comment on the value of either. The fact is the companies are motivated by money. That is the way it works. GPL3 is scary from that point of view.
[+] rodgerd|6 years ago|reply
Perhaps Richard Stallman spending years bragging that he beat Steve Jobs that one time was a long-term mistake.