On the tyranny of defining “open source”

I am not a lawyer and therefore am possibly not qualified to discuss the legal peculiars presented herein. Everything in this post is mere opinion and should not be treated as legal or other advice.

Recently, there’s been a bit of a kerfuffle around Elasticsearch. It started by them announcing that they’re relicensing the code under the Server Side Public License, instead of the Apache 2.0 License it was under beforehand. They have the full power to do this since contributions to Elasticsearch were submitted under CLA that transferred their copyright to Elasticsearch BV.

There are many who are vocal critics of the SSPL, the foremost being the Open Source Initiative. The aforelinked post, however, argues that SSPL is not open source on the basis of the OSD. Which, in fact, is not quite true—the SSPL provides complete and total freedom to run software licensed thereunder, provided that the infrastructure software is also made open source. [1] This means that no freedoms are taken away; SSPL instead makes the license “viral” the same way GPL is, except by extending the virality to infrastructure software. In a way, SSPL is just GPL, [2] turned up to 11 and adjusted for today’s SaaS-heavy world.

Now, sure, one could argue whether this “virality” isn’t actually a restriction of use, for perhaps some software running inside your favourite SaaS is actually proprietary and not owned by you, and therefore cannot be made open-source. I’ll just have to defer to the precedent set by the Linux kernel that’s been found in many, many consumer devices, especially wireless APs, and which, no doubt, has had previously proprietary drivers attached that were made open source by the virtue of the GPL. SSPL’s wording might also be in partial conflict with OSD’s point 9, but software such as Elasticsearch isn’t really “distributed along other software” so I believe it doesn’t apply either.

But this is not what I’m here to argue—I’ll defer to Kyle Mitchell, who is in fact an actual lawyer and has hashed over the license particulars already.

When I first learned about open source, it was in the context of freedom. It was an ideal: the Four Essential Freedoms, the ability for anyone to use and hack on any software anywhere. But this is a colloquialisation; in fact, “open source” and “free software” (which I’ll hereafter call “libre software” to disambiguate the “libre” and “gratis” meanings) are nowhere near synonyms, despite how they’re often used.

Libre software, as espoused by the Free Software Foundation and Richard Stallman, indeed is this ideal; it’s the antithesis of software ownership, and the embodiment of the slogan that “information wants to be free,” if we were to treat software as a form of information. And that one I still find a noble goal to work towards, although itself not without its problems.

Open source, meanwhile, is a different beast entirely. I’ve heard it described as watered down and more business friendly interpretation of libre software, and over time it’s proving to be more and more true. [3] Note that the megacorps that are in any measure engaged with the wider developer community always use the term open source, and never (or very rarely) speak of libre software.

The fact is that there is a difference of intent. Libre software is a philosophy that’s in staunch opposition to capitalism, and the vast majority of these corporations operate in a capitalistic framework, by which it means that their primary goal, at some level or another, is to make money. Most of the actions of most corporations can be viewed through this lens: does this help us make money or does this make it more difficult for us to make money? In this way they are lawnmowers—they do not have empathy; they have only goals and will work towards those goals within a certain framework.

Adhering to the principles of libre software would require these corporations to give up the notion that software is their trade secret, and instead give the software away. Unfortunately, that maps poorly onto the software that is integrally important to these corporations, such as Google’s monorepo, or Windows for Microsoft.

Open source, meanwhile, is less defined by ideology and more defined by utility. Open source allows for a corporation to selectively choose what to share with the world, how to share it, and usually place few restrictions on usage in closed scenarios (which would be unthinkable for libre software—why would you ever do anything with software that isn’t open!?) Yet at that, exactly what gets open sourced is subject to deliberation, and the potential benefits and drawbacks are weighed carefully.

For an example, let’s take Google. Both Kubernetes and Bazel grew out of Google-internal projects, but they became open sourced. My speculation about the reason for that is that this not only brings Google positive publicity, but also attains them mindshare within the developer community. After all, Kubernetes has become a de-facto standard for server software deployment, and that’s pretty great for Google which continues to hire multiple thousands of employees every year.

I suppose what I’m saying is that corporations don’t tend to make their software open source on a whim or with the sole intention being goodwill; every release is deliberated, and there is a reason why any one thing should or should not become open source. I myself have fallen into the trap of reducing this process down to a simple “they did it for the Greater Good,” which is not necessarily singularly true. As with many things in tech, it’s more nuanced than that.

In this light, it is worth asking the question of whether open source is even a worthy goal to strive towards for its own sake. Are you imparting value unto the world by having your code be available to everyone? Are you trying to smash the etairecracy by creating something that’s owned by the community instead of a megacorporation? Or are you just doing it out of the goodness of your heart, or because of your principles?

While I understand the heartbreak sentiment going on about it, I fully respect the choice of Elasticsearch BV (and MongoDB folks, for that matter) to relicense their software. The recent fights about what exactly is or isn’t “open source” has left the term defined less precisely than it ever has been, and therefore it’s no longer a label that has much value left on its own behalf.

I believe that it’s better to just treat the license of any software on its own terms. It is a list of rules, and what those rules prescribe needs not to fit within some sort of framework. Whether it fits with the values of libre software or with the Open Source Definition is good to know, but a license being “open source” does not necessarily correspond to a useful set of values to be judged by. After all, BSD and GPL represent polar opposites of the “FOSS” spectrum, and grouping them under the same banner is kind of not particularly useful. [4]

Also, as a community, I feel like we tend to throw the term “FOSS” around without considering whether it’s right to do so. Libre software and open source software are fundamentally different; just because any project satisfies both definitions doesn’t mean its values and goals align with either, and by that measure we shouldn’t apply this label without merit and intention.