Nice web design, but poor logic: Why OccupyGPL is wrong.

Update 2015-02-12, ~12 p.m. CT: Eric Schultz just told me[1] that the OccupyGPL site has suddenly started redirecting to choosealicense.com[2], within the last few hours! So my post here is already obsolete — the problem has solved itself. If anyone knows more about this, please leave a comment here. In the meantime, I’ve put a copy of the original text at the end of this post[3] for reference.

The authors of that site are trying to advocate for open source software licenses of the permissive[5] variety as opposed to the copyleft[6] variety — the GPL[7] being the best-known example of the latter.

OccupyGPL’s logic is confused, however, and their conclusion doesn’t hold up.

They start by saying flat-out:

The GPL is not a free license. It restricts freedoms only to people it deems to be morally acceptable. Often there are people who do not fall inside this morally acceptable box, yet they do really have good intentions.

That makes no sense. There is a very specific, well-developed definition of “freedom” that is used by the free and open source software movement. The Free Software Foundation expresses it elegantly in a four-point definition[8], and the Open Source Initiative expresses it somewhat less elegantly (but no less clearly) in a ten-point definition[9], but it’s the same concept either way. That’s also the same definition of “freedom” used by Freedom Defined[10], by Creative Commons[11], and by virtually every other organization, including even governments (see here[12] for one example), for deciding what constitutes free and open source software. And under this widely-used, extremely well-agreed-on definition of “freedom”, the GPL is a free license. I mean, it’s not even a close call: just look at the definition, look at the GPL, and see that the GPL meets the definition. QED.

What OccupyGPL doesn’t like is the GPL’s “share-alike” clause, the one that says if you share a GPL’d program with someone, even one to which you have made modifications (such modifications are automatically also covered by the GPL), then you have to offer that recipient the full source code under the GPL, so that the recipient has all the same freedoms you have.

In the strange world of OccupyGPL, that’s a “restriction”, I guess because it… restricts you from placing restrictions on someone else? But that’s as silly as saying that outlawing slavery reduces freedom, because it takes away some people’s freedom to own slaves. Hey, the analogy may be inflammatory, but the logic is the same, and it doesn’t make sense in either case. The freedom to take away others’ freedom is not a meaningful freedom to have — the proper word for that is not “freedom” but “power”.

An only slightly less silly argument offered by OccupyGPL is that the requirement to distribute source code (on request) along with your program could be an onerous burden, and that any license that places onerous burdens on the licensor is problematic. Except that the requirement to distribute source code is not onerous and by definition can never be onerous: you have the source code, and clearly you have a distribution mechanism that was sufficient to distribute the program itself, so you can just distribute the source code via that mechanism as well. The marginal cost for doing so is, basically, zero. Anyone who distributes GPL’d software can comply with the terms of the GPL without any significant extra effort. We have all been doing so for decades now. It’s a complete non-problem. A requirement to enable redistribution is not the same as a restriction on use, no matter how hard they try to paint it as such.

So that argument doesn’t really hold up either.

The third argument offered against the GPL by OccupyGPL is a strictly utilitarian one, but even at that it’s pretty weak. Quoting from their site:

Lets assume that there is a company that wants to use your open source library and integrate it into their proprietary program, they’re even willing to improve your library and release the improvements to the public so that the whole community benefits.

Unfortunately, at the end of the day, the company needs to ship a product so it’d like to keep their core closed source. The GPL outlaws this kind of interaction. Our good citizen, a company wants to release their patches to your library back to the community and yet the GPL is banning them from doing so! It’s not giving them freedom at all! Instead, the GPL is a different set of restrictions. It may be that you personally find the set of restrictions that the GPL offers more morally palatable than traditional closed source licenses, but it is not a free license. It does not grant freedom, it grants different restrictions.

Okay, so now we’re not talking about “more free” vs “less free” anymore (despite the non-sequitur that closes the second paragraph above, and the abuse of the word “banning” to mean something it plainly does not mean). We’re just talking about whether the GPL suits someone’s business model. But that’s a pretty short conversation: the GPL doesn’t suit everyone’s business model — specifically, it doesn’t suit business models that involve restrictive monopoly powers. On the other hand, it’s great for those whose businesses depend on preventing monopolies. For example, consider this alternative utilitarian scenario:

Lets assume that there is a company that wants to launch an online srevice based on your open source program. Their plan is to make proprietary improvements to the program, such that people who use their service and come to depend on those proprietary improvements, have no way to get the source code under an open source license from the company. Not only are those people increasingly locked-in to the proprietary company, but your own business suffers because you insist on giving users (and competitors) freedom.

Fortunately, you released your software the AGPL[13] (a variant of the GPL and no doubt equally hated by the folks at OccupyGPL). This means that the other vendor can’t offer customers a version of your code with proprietary additions — instead, that vendor has to release their changes under the AGPL too. They can still offer the service, but now everyone’s freedom is supported, and we get true competition in a non-monopolistic market. May the best service provider win! It’s a good thing you didn’t use one of those “permissive” licenses, because that would have resulted people’s freedoms being taken away.

This is not some far-fetched scenario, by the way. This is the actual, real-world business justification used by many companies — including my own company[14] — for publishing software under copyleft licenses. I’m not saying that OccupyGPL’s scenario is not realistic. It’s also perfectly realistic. It’s just not a very good argument for the GPL being bad. Copyleft licenses have a complex range of effects; to cherry-pick one particular effect and use it as the basis for an unsupportably broad argument is poor logic and not even very convincing rhetoric.

In short, it doesn’t make sense to say that copyleft licenses are “more free” or “less free” as compared to permissive licenses. Both types of license are fully free; they just differ in other respects. Those differences are worth discussing, and which license you use will depend on what your goals are, but nominalism and cherry-picked scenarios are not a contribution to that discussion nor a help to people trying to choose a license.

Original text of OccupyGPL.org, for reference:

This is Google’s cache of http://www.occupygpl.org/[4]. It is a snapshot of the page as it appeared on Feb 10, 2015 14:53:17 GMT. The current page[4] could have changed in the meantime. Learn more[15]Tip: To quickly find your search term on this page, press Ctrl+F or ?-F (Mac) and use the find bar.

The movement to encourage the usage of permissive open source licenses.

The Manifesto

The GPL is not a free license. It restricts freedoms only to people it
deems to be morally acceptable. Often there are people who do not fall inside this morally
acceptable box, yet they do really have good intentions.

Lets assume that there is a company that wants to use your open source library and integrate
it into their proprietary program, they’re even willing to improve your library and release the
improvements to the public so that the whole community benefits.
Unfortunately, at the end of the day, the company needs to ship a product so it’d like to
keep their core closed source. The GPL outlaws this kind of interaction. Our good citizen,
a company wants to release their patches to your library back to the community and yet the
GPL is banning them from doing so! It’s not giving them freedom at all! Instead, the GPL
is a different set of restrictions. It may be that you personally find the set of restrictions
that the GPL offers more morally palatable than traditional closed source licenses, but it is
not a free license. It does not grant freedom, it grants different restrictions.

The GPL is not a free license. It does not grant freedom, it grants different restrictions.

The GPL is too restrictive for most projects. Instead it’s a good idea to use a
TRULY OSS license, a permissive license. Doing so will not make you
vulnerable to companies trying to magically make your code closed source, as you will
continue to distribute it.
There is a significant gain from having more people involved in your project.
Even if these people are companies who want to develop proprietary solutions. A company using
your technology will increase the value of the project. A LOT OF contributions
to open source technologies are from companies using these projects. If you however restrict them
from using your open source project, they might develop their own one which may be open source
(Congratz! You just got another competitor!) or proprietary. Neither you nor the company do really
benefit from this situation. You do want more people using your technology! And they do want to use
and work on an existing project to save a lot of development time and possibly creating a new industry
standard.

Join the Fight!

Here are a few ways on how you can encourage the usage of permissive licenses.

Spread the Word!

Let people know about this site:

Prefer projects using a permissive license!

Use more projects which are licensed under a permissive license, e.g. Clang, node.js or jQuery.

(Re-)License your projects using a permissive license!

License your projects using a permissive license like the MIT, BSD or Apache2 license.
If you have existing non-permissive projects think about relicensing them. Please be aware that the other
contributors also need to agree to the relicensing.

Let library developers know that you want to use it under permissive terms.

You want to use a library but you don’t like the license? Try to open an issue and contact a maintainer
about a possible license change. Discussion is healthy!

Help new open source developer understand that the GPL isn’t the right license for everything

A lot of young open source developers license everything with GPL terms without even knowing
possible consequences. The popularity of GPL projects like Linux made the GPL to be a somewhat
standard choice. This isn’t good! A lot of open source projects would benefit more from a
permissive license. Create awareness, be awesome!

Permissive Licenses

Some popular Permissive licenses.

MIT License

A permissive license that is short and to the point. It lets
people do anything with your code with proper attribution and without
warranty.License[24] | TLDR; Legal[25]

BSD 2-Clause License

A permissive license lets people do anything with your code with proper attribution and without warranty.License[26] | TLDR; Legal[27]

BSD 3-Clause License

A permissive license lets people do anything with your code
with proper attribution and without warranty. With a Trademark clause.License[28] | TLDR; Legal[29]

ISC License

The ISC license is functionally equivalent to the BSD
2-Clause and MIT licenses, removing some language that is no longer
necessary.License[30] | TLDR; Legal[31]

Apache v2

A permissive license that also provides an express grant of patent rights from contributors to users.License[32] | TLDR; Legal[31]

Frequently Asked Questions

Q: I don’t want others to close my code!

A: They can’t, your code still is open source. What did they close then? THEIR work
which just happens to be based on your open source code. If you don’t like this, then your
existing license may be a good fit after all.

Q: What is if they write a wrapper around my lib and sell it for $10.000?

A: Yes that could happen but it’s also a rather unlikely scenario. If all they’ve done
is a thin wrapper then you or someone else in the open source community is also capable
of making such a thin wrapper in no time. Then all you need do is undercut them
by $10.000 and a good chunk of freedom.

The more likely scenario is that a company takes your code and produces a large amount
of other code that just happens to use your lib at its core. The said company will sell
their code and their extensions for a large sum of money and they are perfectly entitled
to do so. It’s after all THEIR code.

Even this scenario is beneficial to you. Said company will likely find bugs and fix them.

Q: Open source projects can’t live without the restrictions the GPL offers!

A: Thats not true! Several of our most beloved open source projects are using permissive
licenses: Clang, LLVM, node.js, jquery.

Q: Whats with the name? “Occupy GPL” do you want to destroy the GPL? And all GPL projects?

A: No. Yes it may sound like this, especially thanks to the old really misleading
subtitle. We’ve choosen that name because it’s very aggressive and generates a lot of
attention. We think that the GPL isn’t a good license and it shouldn’t be used as much
as it is today in open source software. Thats an opinion. There is lots of cool software
licensed under the GPL which we’re using every day: Linux, Git, Blender and a lot more.
Kudos to all those awesome folks!

Q: You clearly have no idea what free software is about.

A: Maybe, but I’m more interested in open source software anyway (The FSF makes a distinction here).
I’m also not interested in politics. Just technology and how to improve it.
A nice quote from Linus Torvalds:

“That’s the point of open source – the ability to make the code better for your
particular needs, whoever the ‘your’ in question happens to be.”

Q: What about the LGPL? It seems to fit your problem.

A: Yes the LGPL is (in our humble opinion) a huge improvement over the GPL and somewhat
solves a lot of the problems I’ve mentioned. But it’s also way more complicated to use
then a permissive license and you still have the risk of doing copyright infringement
just by using the project the wrong way.

Q: Isn’t this a bit too aggressive? This site and all? GPL is cool, please don’t hate it

A: Yes, it’s aggressive but that was intentional :), we think that there is a problem
which needs to be tackled, for which one needs attention. If you’re hapy with everything
as it is, cool! Have a nice day!
If you however see a problem in
posts like this you’re probably at the right place!

Q: What is the purpose of this site?

A: To encourage the usage of permissive open source licenses and create awareness that
the GPL isn’t the right license for every open source project.

Q: I HATE YOU, I HATE THIS, I’LL NOW MAKE MY OWN OCCUPY PERMISSIVE LICENSES SITE!

A: Cool. Feel free to fork this
page. You can even relicense it under GPL terms if you want to. It’s MIT licensed after all.