This one is something that were brought up a lot by developers including me who are very weary about corporations profiting off of our work for free and this basically put us off from contributing to open source in general.
We get a bunch of dialogues about this such as:
Developers like me: “Many of us who create are concerned about our work being exploited. The possibility of corporations profiting from our open-source contributions without giving back to the community disincentivizes us from participating in such endeavors.”
Open-Source Advocates: “The AGPL exists to mitigate such concerns. It requires derivative works to also be open-source.”
Developers like me: “While I appreciate the intention behind AGPL, there is a loophole - a ‘condom code’ if you will. Even though Linux Kernel prevents such strategies by refusing to merge these changes and that it’s difficult for a singular corporation to force an adoption of a forked version of Linux Kernel, a corporation can fork our much smaller project however and introduce such legal bypass to the copyleft restrictions. This bypass can be justified by them under the guise of extending the software’s capabilities with a plugin interface or an interprocess communication protocol layer, similar to how PostgreSQL allows User Defined Functions. However, I must caution that I’m not well-versed in the legal intricacies.”
When bringing up on non-commercial clause for licensing
Open-Source Advocates: “Disallowing commercial use of your project contradicts the principles of open-source.”
Developers like me: “Well, then perhaps we need a new term, something like ‘Open Code Project’. We can create projects that encourage collaboration and openness while also restricting commercial exploitation.”
So I created this post, because we do need to discuss on a path forward for Open Source in general knowing that corporation can shirk around this restriction and discourage developers like me from participating in open source or open code projects.
Edited to add:
I really want to thank you all for discussing a rather contentious topic and adding your own thoughts to this. I really appreciate everyone’s thoughts into this. I clearly have a lot to do on researches.
Contributing to open source projects is pretty much just altruism.
If we’re talking about protection of people integrating open source code in their proprietary code we’ll always have issues. It doesn’t matter if we declare our projects under GPL, AGPL, LGPL, CC or whatever, unless they do shoddy work, we won’t be able to know what code snippets, libraries or frameworks they’re using when source code isn’t disclosed.
People that want to be assholes will always be assholes. If you feel like giving back, contribute to an open source project. If you don’t, don’t. But making it about evil corporations is a bit meh. Even a company like Amazon is actively contributing to improving Java, offering the Amazon Corretto JDK for free. So the path forward may just be trying to be the change yourself, and making sure the company you’re working for is also giving back somehow.
I think the biggest con with this kind of license is that it also means neither you nor the collaborators can try to make a living out of it. Such a type of license forces entirely hobby work.
The cost of maintainership of the project and the fact that it may exclude people that don’t have the privilege of being able to contribute in their free time are both things that concern me quite a bit when you remove all commercial usage.
From what I understood about the copyright law is that you could create a separate license apart from non-commercial license and you could still sell a commercial license (if all contributors agreed to it, CAA/CLA agreements been signed, or some other agreements in place.) A project can have multiple licenses. Please correct me if I’m wrong however.
Yeah, that’d be the only way to do this but it also means the project can change the license at any time. As an outside developer, I would probably not want to rely on a project where it can go fully closed source potentially at any time.
It’s also worth noting but if you have a non-commercial license, you will also be incompatible with any GPL license.
I agree, the parasitic nature of this relationship has been sharpened in the past week and made many of us think more critically of it.
My question is - what happens if several significant FOSS projects change their licence to “Sources must be publically available if repackaged” or even “Cannot be packaged for sale”, specifically to prevent a non-freely available distro profiting from it.
Yes, that distro could fork the software at the point before the new licence is applied, but they they would be responsible for maintaining that fork going forwards, no? And that would take a lot of resources and need it to be called something else.
Absolutely, your understanding mirrors mine. The re-licensing process is a complex one, particularly in the context of FOSS projects with multiple contributors. It requires unanimous agreement from all contributors, unless a Contributor License Agreement (CLA) or Copyright Assignment Agreement is already in place, which can simplify the process.
As for the scenario where a distro continues to maintain a hard fork of the project from the point before re-licensing, it’s certainly possible. However, as you pointed out, it would place a substantial burden on the distro in terms of resources. They would need to maintain and update the code independently, which might not be feasible or desirable.
In regards to the proposed license conditions, “Sources must be publicly available if repackaged” or “Cannot be packaged for sale”, it’s worth noting that the first one is already embodied in the principles of GPL/AGPL. The second proposal, however, raises more complex considerations. This approach would indeed help address the issue of commercial exploitation that I initially raised. But as you’ve mentioned, the challenge lies in navigating the re-licensing process.
If a FOSS project is already licensed under a different license, a re-license would require obtaining permissions from all contributors, which might prove to be a logistical challenge. Therefore, any change in the licensing model needs to be thought through carefully, taking into account not only the potential legal complexities but also the broader implications for the open-source community.
Disclaimer that I’m not a lawyer.
I recently came across this license, which addresses some of your concerns: https://commonsclause.com/
Just to add to the topic, the ‘condom code’ point you bring up is actually well-established in the business - the so-called ‘Embrace, Extend, Extinguish’ technique.
There are a number of licenses that do this. And yes, many of them are not OSI approved and people will say mean things about not using the word open source. Which you should ignore and instead perhaps say fair source instead if you care.
A couple to look at:
a public LICENSE that makes software free for noncommercial and small-business use, with a guarantee that fair, reasonable, and nondiscriminatory paid-license terms will be available for everyone else
Prosperity is a public LICENSE for software that makes work free for noncommercial use, with a built-in free trial for commercial users.
I also recommend going through the back log of posts by Kyle Mitchell, an engineer - lawyer who has authored a number of great software licenses, including the two I listed.