
Apple’s Great GPL Purge (2012) - LaSombra
http://meta.ath0.com/2012/02/05/apples-great-gpl-purge/
======
geofft
> _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.

~~~
AceJohnny2
> _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)

~~~
microcolonel
Emacs is definitely gone, I was shocked to find. I must say, having Emacs
(even aging Emacs) in the default distribution of OSX was helpful from time to
time, needing to edit a configuration file on a colleague's Mac.

~~~
riffic
Good use-case for vim

------
yjftsjthsd-h
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
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.

~~~
detaro
> _clang is still significantly worse than GCC_

On what basis is that a "fact" without further context? I'd say that very much
depends on what you consider or measure.

~~~
CoolGuySteve
The compile times are much longer and the generated code is usually slower
_except_ for autovectorized code.

I've spent a lot of time testing both clang and gcc, and right now the only
part of clang I use regularly is the static analyzer in my continuous
integration.

For C++ in particular, the compile times are 2-3 times as long. It's
unbelievable how slow it is.

------
classics2
I can’t imagine why they would want software with viral licenses out of their
codebase.

~~~
lolc
Pick your poison. Where the GPL is viral, proprietary licences are fatal.

~~~
elcaminocomplex
Specifically in what way are proprietary licenses deadly?

Lock-in can certainly be problematic but with more open interchange formats
that’s becoming less of an issue.

Saying proprietary licenses are deadly without explanation seems more like
zealotry than reasoned consideration.

Thankfully we have alternatives to the GPL like MIT and Apache for people who
want to share source but not force that choice on others.

~~~
geofft
The GPL has no power that owners of proprietary code don't already have. The
GPL is a software license under copyright law which grants certain permissions
subject to certain conditions. If you don't fulfill those conditions, standard
copyright law takes effect.

The GPL does not on its own have the power to "infect" the rest of your
codebase. You can absolutely decide you want to distribute GPL'd software
compiled in with proprietary software for which you don't want to release the
source. The owner of the GPL software still does not, at this point, have any
right to _your_ source. All they can do is say, since you have not obeyed the
conditions, you don't have a valid license for _my_ software, and I am now
ready to sue you for infringement.

You can resolve this situation by relicensing the proprietary components under
the GPL and distributing source, if you'd like. GPLv3 has an explicit
provision that says, if you do this within 30 days of being notified of the
problem, the license retroactively does apply to you and it wasn't
infringement. Many major GPLv2 rightsholders have voluntarily adopted the same
condition for their GPLv2 code:
[https://gplcc.github.io/gplcc/](https://gplcc.github.io/gplcc/)

You can also resolve the situation by settling with them out of court, going
to court and paying damages, going to court and arguing it was fair use / de
minimis / whatever, trying to buy them out, etc. If you're willing to do any
of those, then you don't have to release your source. (If you go to court and
lose, you will probably be ordered to not _further_ distribute the GPL'd code
in violation of the license.)

 _None of this is specific to the GPL._ If you use proprietary code without a
license at all, the rightsholders can still sue you. You can still negotiate
with them. You can still fight it out in court. The rightsholder can even
choose to say, "Hey, you know what? If you release the entire source code to
your product publicly, we'll drop this case." They have the ability to
negotiate that with you because that's the same ability GPL rightsholders
have.

GPL is considered "viral" because, for most people, releasing the rest of your
source code is preferable to losing in court for regular copyright
infringement. With proprietary software, if it's found out that you've misused
someone's code, they probably will _not_ offer you that viral option - they'll
go straight for the monetary damages. If you don't consider that fatal, then
you shouldn't fear that situation with the GPL, either.

~~~
SpicyLemonZest
The GPL is considered viral because linking GPL code into my application
imposes legal requirements and restrictions on all the other code in my
application. Most licenses don't do this. If I bought a proprietary software
license that said "you must not use this code in a program that implements
DRM", I would call that viral as well.

~~~
dependenttypes
> Most licenses don't do this

Most free software licenses? Sure. Most Proprietary software licenses? I don't
know about that. For example from IE 5:

> 6\. EXPORT RESTRICTIONS. You agree that you will not export or re-export the
> SOFTWARE PRODUCT, any part thereof, or any process or service that is the
> direct product of the SOFTWARE PRODUCT (the foregoing collectively referred
> to as the "Restricted Components"), to any country, person or entity subject
> to U.S. export restrictions. You specifically agree not to export or re-
> export any of the Restricted Components (i) to any country to which the U.S.
> has embargoed or restricted the export of goods or services, which currently
> include, but are not necessarily limited to Cuba, Iran, Iraq, Libya, North
> Korea, Sudan, and Syria, or to any national of any such country, wherever
> located, who intends to transmit or transport the products back to such
> country; (ii) to any entity who you know or have reason to know will utilize
> the Restricted Components in the design, development or production of
> nuclear, chemical or biological weapons; or (iii) to any entity who you know
> or have reason to know has been prohibited from participating in U.S. export
> transactions by any federal agency of the U.S. government. You warrant and
> represent that neither the BXA nor any other U.S. federal agency has
> suspended, revoked or denied your export privileges.

I have seen similar clauses in a lot of other software in the past (such as
itunes, Adobe programs, and Norton I think).

------
vr46
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
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](https://clang.llvm.org/comparison.html),
with more points for/against each option at that page.

~~~
shagie
You can see a bit of the gcc monolith and the llvm approach battle it out
within the policy of what gets added to Emacs -
[https://lwn.net/Articles/632773/](https://lwn.net/Articles/632773/)

------
pmoriarty
Releasing all my code as AGPL is one small way in which I oppose the
corporatization of the internet.

------
fmajid
_> 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
Note that in Catalina, the default shell changed from a very outdated GPLv2
version of Bash to Zsh.

~~~
sigjuice
The old bash still ships with Catalina.

~~~
saagarjha
I’d expect that change at some point in the near future.

~~~
astrodust
Based on the banner you get when you use bash, yeah. They're pushing zsh
really hard.

------
hyperion2010
No emacs on iOS is thus a sad song that may be sung til the end of time.

------
quotemstr
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
The damning change for me was seeing CUPS (which they bought outright, mind
you) go from GPL to Apache 2.

~~~
big_chungus
Apple develops the software; it can license the software however it likes.

~~~
thrillgore
They didn't for quite a long time. They've been anti-GNU for a long time. And
they've pretty much supplied or funded all the tools needed to replace the GNU
userland.

------
myrandomcomment
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
Perhaps Richard Stallman spending years bragging that he beat Steve Jobs that
one time was a long-term mistake.

