[kwlug-disc] Permissive vs copyleft licenses

Chris Frey cdfrey at foursquare.net
Mon Dec 21 05:13:17 EST 2020


On Sun, Dec 20, 2020 at 09:53:39AM -0500, Doug Moen wrote:
> RMS is not the friend of software freedom that he portrays himself
> as. For years, RMS actively worked to prevent the GCC project from
> turning their compiler back end into a library, because RMS did not want
> free software projects not under his direct control to use the GCC code
> generator. When LLVM was released, RMS called it a "terrible setback"
> for free software. Like WTF? Is this the statement of somebody who
> actually cares about software freedom, or does RMS use the rhetoric of
> free software for empire building and self glorification?

Andrew made a lot of excellent points, so I'll focus on only a few additions.
To answer your above question, RMS's answer is right here:

	https://gcc.gnu.org/legacy-ml/gcc/2014-01/msg00247.html

The whole thread is kinda interesting actually.

Again it comes down to the definition of freedom.  If you define freedom
as "get out of my way", then you probably like BSD.  If you define
freedom as "the same rights for everyone, even the end user" then you
probably like GPL.  If it depends on the context, then you probably
like both. :-)

You can't recompile and reinstall your Apple laptop kernel with LLVM yet.
That's the level of freedom RMS is fighting for.  And he was using his
power over the direction of GCC to try to obtain it.

In other words, he was using legal power to make a tactical decision
to control the technical features of GCC in order to increase
copyleft power against proprietary software writers.

(Side note, in that same thread, it looks like the toolification argument
was already being addressed in GCC back in 2014:
https://gcc.gnu.org/legacy-ml/gcc/2014-01/msg00212.html  So I suspect
the "sky is falling" arguments such as Eric Raymond was making were a
bit overblown... GCC is still here, and is now at version 10.)

Does the technical interference from RMS bother the geek in me?  Yep.
But I also see the long view, and know he has solid reasons for the
position he takes.  He has certainly written about them enough for
everyone to understand.

One could say RMS's tactic worked so well that proprietary companies
(Apple, Qualcomm, IBM, Google, Intel, Facebook, Microsoft, according to
the LLVM foundation sponsors list) banded together to release
open code under a permissive license in order to avoid using GCC. :-)
I find that funny.

Note the options they could have taken: They didn't ignore GCC.
They didn't merely remain in the proprietary world with each company
making their own tools.  They didn't even fork GCC for their own ends,
to make it modular or whatever.  They fought copyleft by joining forces
and giving stuff away for free.  (I'm talking purely company strategy
here, not technical motivations.)  In other words, they had to abandon
their usual proprietary habits in order to overcome copyleft.  Their choice
to avoid GCC and the GPL is as much a principled stance as RMS's.
While the geeks working on LLVM and Clang might be more interested in
technology (I don't know their philosophical or license beliefs),
I think the companies backing them were very interested in the license.

It's definitely a win for open source software, because now we have two
full compiler suites.  It wasn't quite the epic win for copyleft
that RMS wanted, but receiving a free-as-in-beer compiler suite
can't really be called defeat either.  And GCC is still here.

I believe that if you stand in the way of technical improvement, that
technical improvement will route around you (just like the internet routes
around censorship), even if you have the full weight of government and the
law behind you.  It's happened before with encryption laws and patents,
where technology just moves across borders to where it can live freely,
whether that's weapons-grade encryption in PGP, or MP3 encoders encumbered
by patents.  Eventually the roadblocks will be left in the dust.

I suspect that's what happened here.  A combination of technical
re-routing, backed by the pockets of people who don't like the GPL.
LLVM is a technological advance because it makes compiler writing easier.
RMS made himself a roadblock in the hopes of advancing against a
larger problem: that of proprietary software that end users can't change.
He eventually lost the LLVM battle, but the war is not over.

It's not always clear there even is a war right now, because we're
swimming in so much abundant code.  But as Andrew points out, there's
nothing proprietary companies would love more than if we all just gave
up on our foolish GPL ideas, swallowed the lie that "copyleft is dying",
and wrote code they could use for proprietary purposes.

Yet.....

While researching for this (getting long) email, I ran across an example
of how providing permissively licensed code can be detrimental to freedom.

	https://www.fsf.org/blogs/sysadmin/the-management-engine-an-attack-on-computer-users-freedom

I was unaware of this, but apparently a BSD-licensed version of Minix
was used as the operating system inside the Intel MEI / ME chip.
This chip apparently can't easily be turned off, and has great powers
to inspect and control a computer running an Intel chipset.

I'm sure Intel is capable of writing such an OS from scratch, but in
this case, open source software gave them a faster path.

The GPL helps in fights like this as well.  If companies are going to
try to box us in, at least we don't have to help them do it.



In the end, I'm still puzzling about "living" software.

	Does software have to be popular to live?

I'm not sure if it is true yet, depending on one's definition of "live".
Anybody can write a GPL or BSD program, shove it up to github and let
it die of bitrot.  But it takes real work to maintain a system such
as LLVM or GCC.  And yet both of these are thriving.  It is fairly
easy to tell how LLVM survives.  It is less clear to me how GCC
survives.  And yet it does.  I need to do more research on that.

When I wrote earlier:

> Licenses do matter.

I was not referring to popularity.  I was responding to what Paul wrote:

> As I get older and grumpier I increasingly feel that the FLOSS movement       
> succeeded not because of the licensing, but because it was a movement         
> (what we call "network effects" these days).

So popularity is part of the "living" equation.  Software needs
users and maintainers to keep on being relevant.

But I think licenses *and* network effects matter.  Licenses are
part of the toolset, and also part of the motivation.  It's not all
about getting stuff done.  There are people who are very concerned
and work hard to make ALL of computing free, as a few hours of reading
the GNU and FSF sites will make clear.  Not a ton of people, but enough
to matter.

I admire both the RMS types and the BSD types, as I hope I've made clear
in past posts.  And when you witness the lengths to which companies will go
to avoid GPL (as we can see with LLVM, etc), it is proof that licenses
matter for them too.

When the pain of letting Apple and Google control what software we are
allowed to install becomes too great, then a focus on freedom will
return again, and the need for things like GPL will become more obvious.
If Apple and Google are smart, they will postpone that pain for a long
long time, because we users are pretty complacent these days, and that is
to their advantage.

- Chris





More information about the kwlug-disc mailing list