Business Source License v1.1 A Brief Analysis
Introduction
I use terraform a lot at work for developing proof of concepts that are
repeatable in the cloud.
I saw yesterday a blog post on the parent company of terraform
(Hashicorp’s) website.
It talks about how Hashicorp is moving its products from
Mozilla Public License v2.0 to the Business Source License v1.1.
What is the Business Source License (BUSL) v1.1?
The BUSL-v1.1 was developed by MariaDB. Its purpose was stated on their FAQ page as:
To create a license that strikes a balance between being able to run a financially viable software company while still supporting the original tenets of Open Source, such as empowering all software developers to be part of the innovation cycle – giving them open access to the code so they can modify or distribute the software by making the entire source code available from the start. Ultimately, we hope that BSL will create more Open Source software. (source)
The BUSL-V1.1 is a simple license that has the following restriction:
The Licensor hereby grants you the right to copy, modify, create derivative works, redistribute, and make non-production use of the Licensed Work. The Licensor may make an Additional Use Grant, above, permitting limited production use. (source)
That sounds bad… you are allowed to make non-production use of the Licensed Work.
The neat part about the license is that its basically parameterized.
There are additional terms in the license:
Licensed Work- The work the license applies to.Additional Use Grant- Additional terms that apply to the license.Change License- Another license that theLicensed Workwill eventually change to after theChange Date.Change Date- The date after which theLicensed Workconverts from theBUSL-v1.1to the license specified as theChange License.
Hashicorp’s Specific Terms
In the case of Hashicorp's specific BUSL-v1.1 license, the Additional Use Grant is stated as:
You may make production use of the Licensed Work, provided such use does not include offering the Licensed Work to third parties on a hosted or embedded basis which is competitive with HashiCorp’s products (source)
The way I read this Hashicorp adopted the BUSL-v1.1 to try and prevent
others from wrapping their services as SaaS products and competing with the SaaS
offerings Hashicorp offers.
Otherwise your use is still permitted for instance if you use terraform for your companies infrastructure management or use vault for secrets management or another one of their services so long as you are not using it to make a competitor to their products. In the event you are building a commercial offering that does not align with the BUSL-V1.1 terms specific to HashiCorp per the license you can get a commercial license.
Is It Bussin?
I saw a lot of questions online asking how does this license change affect me
and some responses were quite negative additionally some seemed to be assuming
facts that I was not seeing.
Like how now to use terraform you now had to pay even if you do not use
Terraform Cloud.
This kind of talk is what motivated me to write this to clarify what the
BUSL-v1.1 is and why it was created.
This license change from a practical perspective only changes things if you are
shipping a product to third parties that offers HashCorp products as a services
or has HashiCorp products embedded in them which would violate the new
Additional use Grant terms.
If you are violating those terms with a product now offered under the HashiCorp
BUSL-V1.1 license, you would need to get a commercial license from HashiCorp.
The issue here is I do not know under what terms these commercial licenses are offered. I think an option like Epic Games offers for the Unreal Engine would be a neat idea. According to Unreal Engine website you can use the Unreal Engine for commercial projects for free, and only after you surpass $1 million in gross revenue, then you pay a 5% royalty (source). This seems like an interesting idea to provide protection for OSS companies while still allowing innovation around their products while protecting there revenue.
I personally have no issue with the license change as I understand it. It actually seems like a reasonable (though imperfect) protection for an Open Source Software (OSS) company to adopt.
OSS is hard and often not very rewarding from a monetary perspective. That combined with several notable examples of some large cloud vendors taking popular OSS projects and wrapping them as a SaaS while contributing little to nothing back the the creators, I see this as a reasonable solution.
For an example see this blog post from the Elastic Company about how they changed their license specifically because they felt they were being taken advantage of.
Ultimately things like the BUSL-v1.1 are a necessary mechanism to keep smaller
OSS shops viable and hope that people will try to approach things like this
taking the OSS developers perspective into account.