Is Commons Clause open source? Weighing in on the Redis license change
There’s been some changes to the Redis licenses. How does it affect you, and what is this Commons Clause?
Redis recently made headlines when their license got a makeover to include the Commons Clause. Open source fans have been discussing this development and Redis has been responding to the news. What changes has the license undergone? What does this clause include? Is Redis open source or not?
The Redis licenses page is a good place as any to start understanding this news.
It opens with the following statements:
Redis is open source, BSD license.
Redis Modules, which are add-ons on top of Redis, are created by people in the community and bear different licenses (such as BSD and MIT), according to creator’s choice.
Redis Enterprise is closed source by Redis Labs.
Co-founder and CTO of Redis Labs Yiftach Shoolman made a blog post on August 22, 2018 explaining the license change. He addressed some concerns from the community.
In the post, Shoolman assures readers that the license for open source Redis was never altered. However, the license for Redis Modules has been modified.
Redis Modules has been changed from AGPL to Apache v2.0 with a Commons Clause.
More information on the previously-used AGPL license and its terms and conditions can be found here. Redis abandoned the AGPL license on the grounds that AGPL “does not prevent cloud provides (like AWS) from using AGPL-licensed code to build managed services”. Shoolman also maintains that the company received requests from developers to move licenses.
(It may be worth noting that Google has banned AGPL licensing in the company in 2011. Skepticism over the AGPL has been heavy since its creation, so the move from the license comes as little surprise.)
Defining the Commons Clause
Let’s take a look at the Commons Clause and see what this modification means.
First of all, the Commons Clause is not open source. This is not mere opinion, this is stated directly on their website under the FAQ.
Open source projects must fall under certain guidelines. This criteria is set by the Open Source Initiative and includes: Free redistribution, source code, allowed derived works, integrity of the author’s source code, no discrimination against persons or groups, no discrimination against fields of endeavors, distribution of license, licence must not be a specific product, must not restrict other software, and must be technology-neutral.
What prevents the Commons Clause from being open source?
Here is the README.md file for the Commons Clause from GitHub:
“Commons Clause” License Condition v1.0
The Software is provided to you by the Licensor under the License, as defined below, subject to the following condition.
Without limiting other conditions in the License, the grant of rights under the License will not include, and the License does not grant to you, right to Sell the Software.
For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/ support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software. Any license notice or attribution required by the ense must also include this Commons Cause License Condition notice.
Simply put: no selling, no charging fees, no commercial setting.
So, why change the license? The reason given by Yiftach Shoolman is a matter of money. On his clarifying blog post he writes:
“Cloud providers have been taking advantage of the open source community for years by selling (for hundreds of millions of dollars) cloud services based on open source code they didn’t develop (e.g. Docker, Spark, Hadoop, Redis, Elasticsearch and others). This discourages the community from investing in developing open source code, because any potential benefit goes to cloud providers rather than the code developer or their sponsor.”
As speculation grows, a new update titled “Redis will remain BSD licensed” posted on August 22, 2018 discusses the change and admits some fault.
Antirez writes, “I think that Redis Labs Common Clause page did not provide a clear and complete information, but software companies often make communication errors, it happens.” We await further developments and clarifications from Redis.
What do you make of the news? Is the Commons Clause a blessing to give code creators the payment they deserve or is it a curse to open source projects?