Free software licenses; A longer-term thought
Published: Sat Dec 02 2023
Introduction
Hi and welcome to Yet Another Internet Ramble ( YAIR™ ) of mine.
What I aim to write down today aren’t novel ideas; rather a distillation of my thoughts on some of the major Free software licenses, what freedoms each of these licenses carries out, how I have viewed these licenses in the past and how and why some of those views have shifted in me, over time.
Before we start, I would like to mention that I am not a lawyer. Do not take any part of this article as legal advice.
Licenses in scope
I have boiled down my own choices of open-source licenses to these:
- MIT
- Apache 2
- GPLv3
- AGPLv3
If you would like to know more about any of the above licenses, feel free to make use of the licenses summary available below:
Licenses summary
MIT
Simple, concise and permissive license. Offers just enough lawyer-speak to be valid as a license for use in any company while giving all permissions to the party obtaining such licensed software.
From tldrlegal.com:
A short, permissive software license. Basically, you can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source.
Apache 2
Similarly to the MIT license, the Apache 2 license is a permissive license. The main difference between the two licenses is that the Apache 2 contains an explicit Patent Grant.
From opensource.com:
In essence, when a software developer contributes code to a project (i.e., the Work under the license), he or she becomes a Contributor. Under the above term, Contributors are granting permission to use any of their patents that may read on their contribution. This provides peace of mind to users since the Contributor would likely be prevented from pursuing patent royalties from any users of the software covering that contribution to the project.
GPLv3
In simple terms: any software that is GPLv3 licensed must be, upon modification, also made available under the GPLv3 license.
This guarantees that software once written and licensed under the GPLv3 licnese stays Free software.
From tldrlegal.com:
You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions.
AGPLv3
I won’t add any additional text of mine here.
The description from tldrlegal.com below is perfect:
Summary endThe AGPL license differs from the other GNU licenses in that it was built for network software. You can distribute modified versions if you keep track of the changes and the date you made them. As per usual with GNU licenses, you must license derivatives under AGPL. It provides the same restrictions and freedoms as the GPLv3 but with an additional clause which makes it so that source code must be distributed along with web publication. Since web sites and services are never distributed in the traditional sense, the AGPL is the GPL of the web.
Starting off: A common (A)GPLv3 freak
I will admit. I have been a pretty heavy copyleft license freak.
I’ve genuinly felt that licenses that are too permissive (i.e. MIT and Apache 2) give way too much freedom to those evil corporations that only want to take software that we love and go full-on Embrace, extend, and extinguish on it.
In my mind back then, all software in an ideal world would be licensed under a copyleft license and market competitors would have to win out customers on different terms than on proprietary technology. And don’t get me wrong… a part of me still kinda feels like this would be incredible for users of software in general.
The problem is that we don’t live in an ideal world:
- Most people just do not care about the license of the software that they are using, and that’s fine. Not caring is a choice in and of itself.
- Alternative licenses and patents exist and (in countries I am aware of) can and will be used by companies to gain a competitive advantage.
- Companies should be able to, to a reasonable extent, own knowledge, in my opinion. Furthermore, this company’s possibility of owning knowledge can in turn be beneficial to Free software.
I think the last point specifically would be the most controversial one in a discussion with someone who is heavily copyleft-leaning (LOL, this is starting to sound almost political), so I will expand on my point right away.
The case for permissive licenses
Take 37signals, their product Basecamp and Ruby on Rails, the Free software framework they’ve built for Basecamp in it’s early days, as an example.
Let’s look at free software project that came out of the above equation, Ruby on Rails, which is published under an MIT license. There are two different licensing possibilities we could entertain as alternatives to the chosen MIT license for Ruby on Rails, so let’s do just that and look at the possible consequences of such decision, specifically for Ruby on Rails:
- Ruby on Rails isn’t released as free software and doesn’t make it’s source available
- RoR is used as the framework internally at 37signals for Basecamp and nowhere else. This can be considered a net loss for everyone, as not even 37signals can benefit from other people potentially using RoR and contributing back. Remember, 37signals aren’t selling RoR - they are selling Basecamp, built on top of RoR.
- Ruby on Rails is released under the AGPLv3 license
- Ok, caught me. This is literally an impossible scenario, as RoR was released before the AGPLv3 license. Not taking that into account.
- Now all companies (like Shopify) that would like to just slightly adjust the code would have to release the source code under the AGPLv3, imposing a burden on said company trying out new things, testing performance improvements in production etc.
- Instead of choosing Rails, companies would instead choose something that leaves them more freedom.
The MIT license works so well for Ruby on Rails, because companies that use Ruby on Rails DO NOT SELL and aren’t planning on selling Ruby on Rails itself.
They instead all use Rails as a common baseline that propels everyone forward and all contribute back to their common baseline.
Copyleft isn’t all bad!
The above story with the Ruby on Rails framework is a wonderful, long-term success story of free software. The common ground of all contributing companies and individuals is that none of them are trying to sell Rails directly.
But what if that’s your goal? What if you want to write software, make it open-source and sell it directly or over the network as SaaS? I believe this is where the copyleft licenses have an edge over fully permissive licenses.
A good success story is Grafana Labs, the company. As one of their main products they offer Grafana, a data visualization tool, both in a managed, cloud SaaS version and an installable and supported version for the enterprise called the Grafana Enterprise Stack. Obviously, you can also install Grafana yourself from binaries made available by Grafana or compile and install Grafana yourself.
Grafana Labs are experts in building Grafana and feel confident that they offering is the strongest on the market. If a competitor, for example AWS, wanted to offer Grafana in their cloud environment and make some features special for AWS, they too would have to release the source code for their modifications, as Grafana is AGPLv3 licensed. Such setup incentivizes Amazon to instead try collaborating with Grafana to give their shared customers the best experience together, instead of blatantly taking the source code without contributing to the everyone’s stable baseline.
AGPLv3 works really well for Grafana, as their open-source project is directly their product.
So where is the catch?
Businesses and people
In my opinion, the catch is in the mosts.
Most businesses can’t really afford making their own product open-source (or at least they think so).
37signals don’t feel like they can afford making their own product open-source, and yet, they contribute so much.
Even if most businesses don’t think they can afford to make their own product open-source, they still might use/produce/invest in open-source software, similarly to 37signals.
They also just might not.
What they definitely will do, if they want to continue their company’s growth, is hire great people.
In turn, those technical hirees most likely work with open-source software. Some of them might contribute back issues and bug repors, some of them might send merge requests with changes or features, and some might even maintain an open-source project themselves.
Maybe, due to company policy, they can’t use copyleft-licensed code. So they don’t and instead they use permissively licensed software and contribute to it.
The license fits their need. It fits their freedom. And helps others in the community. who receive their contribution.
Beyond the open-source licenses micro-war
I think if we increase the scope from permissive and copy-left to open-source and closed-source, we can agree that open-source licenses are a net win for the society.
Instead of focusing on the minor differences between open-source licenses, we could focus on some bigger issues:
- Where closed-source software is used, where open-source would REALLY benefit the society (public healthcare and public institutions in general, for example).
- Detecting if open-source software is used as marketing for a technological project or a company in it’s early days, with plans to pull the rug in the future if the company fails to deliver financial results to it’s investors (like Hashicorp and their switch to the BSL).
- I don’t know, a large portion of the planet’s population not having access to clean water…?
Some people make a choice not to care and use closed-source software. Others will choose to only use software that is Free software by definition.
I myself am currently paid by a company that creates primarily closed-source, proprietary software. If I have the freedom to choose software to use for any given task, I will heavily prefer to use tools that are licensed under an open-source license and/or work with defined open standards. I will also happily try helping anyone around me find a suitable open-source alternative to software they are currently using.
What I will stop doing is criticizing other people around me for software choices they are making for themselves. I definitely am guilty of doing this in the past.
I would also like to be more thankful for the software gifts I receive from strangers on the internet, going into the future.
To all people giving others gifts in the form of Free software; THANK YOU!