4 ms·
A bit off topic, but is there some consensus about what the best way to license software so that non-commercial use = MIT, commercial use = 'proprietary, please
by tpush 6y ago
A bit off topic, but is there some consensus about what the best way to license software so that non-commercial use = MIT, commercial use = 'proprietary, please negotiate a license' is?
Like, some standardized legalese or something.
- wmf 6y agoThere isn't any consensus. Right now there's a whole variety of licenses like BSL, SSPL, etc.
- geofft 6y agoThe problem is this is kind of ill-defined. If I, an open-source hobbyist, am thinking about incorporating some code from your software into my project which I want to allow unrestricted commercial use of (i.e., which I want to put under a standard F/OSS license), even though I am not making any money from it, are you okay with that? If you're not okay with that, then the open-source-like properties of allowing derivatives / incorporation into other works probably just aren't appealing to you at all, and what you probably want is a simple "Non-commercial use is permitted" statement. But it won't actually be the MIT license, which permits unrestricted use, modification, and redistribution. If you are okay with me incorporating your code, then how do you define how much of your code I can use? If I build a GUI around your program and I tell AWS that they can freely build a GUI, is that still okay with you? That's going to have to be a case-by-case thing, probably. Another question is what you expect to do about contributions. If I, an open-source hobbyist, contribute some useful feature to your code, am I entitled to get paid a portion of what commercial users pay you? The simplest answer here might be to not accept contributions. Some practical options, depending on what you're really trying to do, might be: - licensing under the AGPL, on the assumption that many companies are scared by it even though it isn't a restriction on use (just a compliance headache for potential external use), and maybe clearly advertising a less restrictive commercial license (which could be MIT, or could be a super long contract/EULA) for money - licensing a previous version of your code under the MIT license, but keeping the current version as just source-available - marking commercial features as proprietary and source-available (what GitLab does, and what Elasticsearch used to do) - capitalizing on the fact that you know the software really well, and selling consulting / support but using a free software license (what Red Hat, Canonical, etc. do) - capitalizing on the fact that you know the software really well, and running it as SaaS (what Google does with Kubernetes, for instance) - giving your software a simple "Non-commercial use permitted" statement, but saying that open source developers who are interested in parts of your code are free to contact you and you're willing to relicense limited parts of the code as MIT on request Finally, what's your goal? Is it to prevent commercial use? Is it to make money from commercial users? Commercial software houses are, sort of by definition, good at writing software in-house - if your software is a really good idea as opposed to a really good implementation of an old idea, chances are that a motivated commercial developer will just make their own version of it.
- tpush 6y agoThanks for the very informative post! Really, the licensing I envision would be: 1) Any entity that does/wants to derive commercial value from the software should compensate the copyright holder. Example entities here are both "I want to sell software that includes/is derived from your software" and "I'm a company/freelancer using your product as part of my business operations". 2) Any other entity can use the software in any way they see fit (like e.g. MIT) except that 1) applies transitively to any derived software. The situation here is less "This is an open source thing where I take all your contributions and profit off it" but more "This is a commercial for-profit thing that would normally be proprietary closed-source, but everyone can copy/inspect/modify the source as long as they do not profit from it". Contributions would either be disallowed, or under a CLA if for some reason someone wants to contribute to it (with the clear expectation that someone else is going to profit from it).
- lmm 6y agoSounds like a proprietary license with source available under some circumstances, similar to what e.g. Microsoft uses for Windows? I don't think it's worth worrying much about what licensing terms you'd apply to modifications or derivatives, because few people are going to put much time and effort into code that depends on your proprietary code.
- wongarsu 6y agoIf you're just sharing binaries then CC-BY-NC-SA (or some other variant of the creative commons licenses). For open source projects there isn't really an agreed upon equivalent. The most popular version is probably "AGPL, or talk to us for a more permissive licence". Most companies would rather pay you than use something under AGPL license terms, but for hobby use AGPL works just fine.