I’ve been through this a few times. You need to decide on the outcomes you want, and then pick the license to fit, not the other way around.
The https://choosealicense.com/ site makes finding something really easy.
See Licenses | Choose a License for a nice overview. SPDX License List | Software Package Data Exchange (SPDX) has a very comprehensive but not very practical list of
accepted & common licences.
A well known / tested licence is always a better choice. BSD 2-Clause is such an example, or MIT which both have sensible liability & warranty claims, and don’t impose many conditions on usage.
From the MIT one:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
I think this is pretty clear about liability, and it’s very well understood. The less common a license you choose, the more likely it is that organisations are unlikely to choose it. You may feel that is a desirable outcome, it’s your choice after all.
If you have a trademark (a brand/name) that you intend to actively protect legally then Apache License 2.0 | Choose a License has a trademark claim. Trademarks in most regions require active protection (you send nasty letters from your lawyer to people who abuse yours, and if necessary follow up with a court filing), and if you don’t do that, you may lose the trademark.
Finally, choosing a GPL-ish licence for BEAM applications is tricky. What is a “larger work” in the context of an OTP Application? Or is it the whole Release? IANAL but I wouldn’t use a GPL-ish component in an Elixir app, just to avoid potential problems in the future, where my project now has an overall GPL licence because a component uses it.
As an aside, personally, after 25 years of open source work, I have come to 3 conclusions:
- use the licence that your programming language/tools are written in unless there’s some really good reason not to. This maximises your “give-back-ability” to the community, people can copy and cherry-pick freely.
- you can’t use a legal LICENSE to force companies and people to share or collaborate. It simply doesn’t work. You can sue them after the fact, like GPL enforcement, but its slow, inefficient, and doesn’t really work in the larger scheme. Focus on building and promoting collaboration culture within your community.
- if somebody forks my code, & makes it better, then we won anyway.
Getting really Off Topic, the battle between AWS and Elastic (or Redis which had a similar argument) is really about Venture Capitalists vs Amazon Capitalists, and to an extent, branding, as already pointed out. As Elastic Co is valued at over $10B I don’t think the founder can really complain that they haven’t had a good return on the invested hours. It has ~ $870M cash balance sheet, $700M revenues, growing at 40% each quarter, and made $500M gross profit with debt of $600M. I think we can safely say they did Just Fine with their original Apache v2 Licence strategy. If AWS keeps improving ElasticSearch, then Elastic can continue to pull their patches and ideas into Elastic, and the software improves. It might not be desirable for their company, but that’s a very different perspective.