Ask HN: Adding non-commercial clause to open source license?
Has anyone has released software with an open source license (eg MIT) with an additional "The software is for non-commercial use unless you have purchased a license, sponsor development, contribute something, etc....." clause?
I imagine people will either find something else or just ignore/violate the clause.
Have you tried? How was it taken?
80 comments
[ 6.3 ms ] story [ 152 ms ] threadThe Googles, and Microsoft of the world want developer tools, libraries, frameworks etc to be open but not end user software for which they commercialize.
They also do not want to limit their ability to take an "open source" software and make it a SaaS or PaaS on their cloud.
At this point, "open source" is openly hostile to Free Software
Sure under a technical definition Open Source all Free Software is open source, however not all Open Source software is Free Software.
That is the core of the problem, as we move forward in time, the amount of software that is "Open Source" while not being Free expands, not contracts.
In my mind, it's only licenses and the software they're applied to, not organizations, that can be open source or not.
> Sure under a technical definition Open Source all Free Software is open source, however not all Open Source software is Free Software.
Neither category is a subset of the other. For example, SQLite is free software but not open source, because the Free Software Definition includes public domain software, but the Open Source Definition explicitly excludes it. And prior to Perl's adoption of the GPL, it was open source but not free software due to the Artistic License 1.0. Anyway, keep in mind that these examples are really rare, and that the vast majority of programs are either both or neither.
> That is the core of the problem, as we move forward in time, the amount of software that is "Open Source" while not being Free expands, not contracts.
I can't think of any programs in recent times that are open source but not free software. Do you know of any?
Mis-information. The Open Source Definition (https://opensource.org/osd) has no such exclusion. Read it for yourself.
https://opensource.org/node/878 https://opensource.org/faq/#public-domain
My reading is the core problem is that not every jurisdiction recognizes public domain dedications, so for some people, such software may be no different than "all rights reserved".
Under CC-like conditions the source is accessible, as it is hackable, derivatives are permitted and they are usable. So it is technically "open" in a conventional sense of the word. There are however strings attached, so it's not free or libre. You can't do whatever you want with it, your freedoms are restricted.
On the other hand, it is still more permissive than what's described as "shared source", because the latter doesn't usually allow for changes or even usage.
So there's basically a distinct license category that lies between the "open source" and "shared source". There's no established name for it, but clumping it with "shared source" is not just.
Doesn't the first clause of the MIT license prevent this?
The OP is trying to prohibit commercial use, which isn’t a feature nor even a goal of the GPL.
The thing is, AGPL allows commercial use just fine, it only disallows proprietary use.
The fact that companies are dissuaded from making commercial use by being prevented from putting a proprietary moat around the software is really an indictment of those companies.
Heck, you can even make AGPL software a bit more friendly for commercial enhancements if you want by granting an exception for plugins the way some GPL software does, but those same companies would probably still be dissuaded.
There do exist people who consider the usage of open source software for cloud services without providing the derived source code also to be commercial abuse. To prevent this usage scenario is what the AGPL license was made for.
No you don't need to. People cannot change the license of code they don't own nilly-willy, only the owner(s) of code can (which can get hairy when a codebase has multiple owners).
However a license can allow sublicensing, aka sharing the code or software under a different license, but this right must be explicitly granted by the license (or by the code owner directly), and they may be conditions attached (such as attribution)
MIT:
"[...] Permission is hereby granted,[...] to use, copy, modify, merge, publish, distribute, sublicense, [...] subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."
GPL:
"[...] You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License."
So the MIT license grants you the right to redistribute the code under GPL (under attribution condition), but GPL does not grant you the right to redistribute the code under MIT.
(Note that all of this applies to redistributing the code or the software, not about your own internal use of the code or the software)
Just don't call it open source or free software. It's source-available at this point.
I wish someone would write a software compatible equivalent of Creative Commons CC BY-NC-SA however: https://creativecommons.org/licenses/by-nc-sa/4.0/
These two licenses in particular are pretty crummy. Define "commercial." When does the 30-day period start? How would my usage be proven one way or the other in court?
In many cases it's not even relevant what I would do or not, because such licenses make it not possible to integrate such code in a project under GPL, or to include it in a free distribution.
Looking at these licenses closer, I wonder if Parity could actually be considered free. Seems to my eye like it could be, but IANAL. For practical purposes, I'd probably consider it same as non-free until it's said to be DFSG-compliant. Prosperity sure isn't free though.
N8n seems to work as a "fair licensed" project, see https://github.com/n8n-io/n8n and their corresponding license initiative https://faircode.io/ .
https://polyformproject.org is another initiative with multiple different (easy to understand) licenses.
faq: https://mariadb.com/bsl-faq-adopting/
the license: https://spdx.org/licenses/BUSL-1.1.html
but keep in mind no license can protect you from misbehaviour. A license is worth nothing if you don't have the resources to fight in court
Agree. I've had this happen with my GPL sw. On a side note, I think github's copilot is a disservice to all developers in this regard as it effectively throws developers under the bus.
most of them weren't deliberate
as a software developer i know what MIT, GNU and BSL are but most people from the internet don't and they don't bother to look up
i'm pretty sure large companies wouldn't even touch copilot with a 10-foot pole
Did not think about that... interesting (unintended) side effect.
how is SSPL different from AGPL?
the user says >I don't think FOSS people would agree on that at all.
what did i say wrong?
Your only options for making a tool that you expect people to use and respect the license are the big FOSS licenses, or have it be unlicensed and sell licenses.
This is what I expected, I imagine it's unlikely they'd buy a license anyways even if it's cheaper than paying their own devs.
[1]: https://en.wikipedia.org/wiki/Shared_Source_Initiative
It's a good short-term cash grab, especially if your project has good vanity metrics (they don't magically go away when you relicense) and many users. https://www.indiehackers.com/post/how-to-earn-1-5m-in-revenu... is a case study where an open source project switched to a proprietary license and managed to extract $1.5M
But it definitely burns bridges and arguably gives the project the downsides of proprietary software (fewer contributions, people switching to open source projects) and the downsides of open source software.
Once upon a time I built a platform to simplify this [1], but it didn’t take off—between the extra mental effort, the impact to growth, and the inability to call it “open source”, I think most authors just prefer the simplicity of MIT.
[1]: https://license.land/
This is a good solution, but you have to make ultra-certain that all of your contributors, who may have chosen the GPL, understand that their contributions will be dual-licensed, too. It introduces a barrier to contribution that may be more harmful than good.
This is a common misunderstanding. A CLA allows relicensing of a contribution, but doesn't require transferring of copyright.
Transferring copyright is only needed if you want to allow changing the terms of licensing unilaterally in the future (for example, you contribute under GPL/proprietary terms today, but the company decides to change the license of your contribution to proprietary-only in the future), and makes suing for license violations a bit simpler (since one entity obviously holds the entire copyright). Technically a copyright assignment could even allow the assignee to sue the assigner for a licensing violation.
In other words, copyright assignment really isn't needed for anything reasonable a company might want to do. Only for things (like reselling the copyright to some other company or making the code proprietary only), that you wouldn't agree to if it was spelled out in a CLA.
Either way you're going to be better served by using existing licenses than trying to roll your own.
"Thanks for your inquiry/PR/bug report. You can see the current development roadmap/backlog/issue tracker board here (link). If you would like me to prioritize your issue, please consider becoming a sponsor. If you want custom work, I can also offer consulting at the €X/day rate and I can provide a substantial discount if the product of the work is also released under a FOSS-license."
In my experience, most contributors start by playing around with software, then properly using it (often in a commercial setting), and only later on contribute.
What are you trying to accomplish by restricting commercial usage? If you'd like to monetize there are a number of alternative options for that. If you're bitter because people are using your software without contributing, I would suggest just not making it open source then. The ability for anyone to take it and use it is fundamental to FOSS.
If it's not shared at all few can benefit at all. So the goal is to strike a balance.
Use terms of service and marketing to get paid.
Compelling reasons customers pay:
1. To receive a license key that unlocks paid features
2. To receive support and better documentation
3. To take advantage of cloud features
4. To support future development efforts
5. Access to beta branch (early release)
6. To use a hosted version of the software
Wordpress ecosystem is worth looking at. Everything must be GPL and their is a ton of business going on there. Example terms of service [1]
(I am not a lawyer and probably used the wrong terms)
[1] https://theeventscalendar.com/terms/
This license was crowdfunded and anybody is free to reuse its text as a base template:
https://github.com/laurent22/joplin/blob/dev/packages/server...
Also one thing you need to keep in mind, is that if you have such license you'll also need to make sure that anybody who contributes signs a CLA such as this one, otherwise the ownership of the code is not going to be clear:
https://github.com/laurent22/joplin/blob/dev/packages/server...
I've been searching for information about this subject for the last few days, as my co-founder and I ponder whether open-source can be a viable option to build our product. As two indie hackers bootstrapping, our goal is to create and monetize a SaaS, but we would like to create an open and future-proof solution.
[1] https://commonsclause.com/
In academia there's a lot of "for research purposes only, get a license otherwise" software releases. Again, the line for what is allowed and what isn't is very vague.
You may get contribution-spam fixing inexistent errors, just to fulfill the clause.
If developer X is working in company Y and a year later X changes to company Z, who can use the software Y or Z? What happens if X dies? What happens if Y goes bankrupt and W buys all the assets?
At least it leaves some leverage in the hands of the authors/contributors against flat out freeloading. Normal MIT is essentially no strings attached.
The intent of the clause is to encourage both, if you contribute, you can do whatever but maybe it doesn't work that way.
You could also make support contracts and uptime guarantees part of a paid package.
Of course, if you're just making a little utility, none of this applies.
Sure, let me fix that typo in your readme. Thanks for the perpetual commercial use license!
[1] https://slint-ui.com/ambassador-program.html