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.
MongoDB has a modified version of the AGPL that they call Server Side Public License that might interest you. Specifically the change in section 13:
By my reading, it closes that loophole you mention by specifically calling out interfaces and APIs as also requiring the source to be available. At the top of the page I linked there is also a PDF showing the removals and additions they made to the AGPL to end up with their SSPL.
That a pretty interesting license, I distinctly remember that there were an argument on the internet over that license. So I took the time to review what happened, there were few criticisms for it:
Conflict over “Open Source” Definition - Open source license must allow the software to be freely used, modified, and shared. The SSPL adds additional restrictions, particularly the requirement to open source not just the software itself but also the software used to offer the program as a service.
Restricts Freedom to Use the Software - It requires that anyone who makes the software available as a service must release the source code for their entire stack.
But none the less, this license is an interesting one and an inspiration could be drawn from it to not go to that extreme stipulated by SSPL, but to have some lines drawn to address some of the concerns around AGPL loopholes.
I’ve always found this particular one somewhat frustrating. It’s essentially the intolerance paradox repackaged into a software licensing analog:
“You are restricting the freedom of users by taking away their ability to close the code and restrict the freedom of other users!”
It’s always read very “I got mine” to me.
That said, while I lean copyleft, I also don’t find just barring commercial use entirely interesting. The goal is to ensure source code remains available to users; I think there are better ways of addressing that than trying to delineate and exclude commercial use.
That one of the reason why I brought up this thread to bring up discussion on some of the other ways we could address this while retaining commercial use.
My interpretation of non-commercial licensing is that it would allows the code to remain open, it just that it may mandates companies to purchase commercial license if they wish to peruse such project commercially. There are some projects that practiced dual licensing schemes.
This isn’t a hill I’m willing to die on at all, but it does mildly annoy me that The Open Source Definition is used by proponents to mean the same thing as “open-source”. For anyone not familiar, The Open Source Definition is a document used to determine whether code should be certified by the Open Source Initiate as “OSI Certified”. Proponents argue that anything which does not meet the OSI’s definition is not open-source, while I think there’s room in the language and the mind for disagreement on whether “open-source” and “eligible for OSI certification” are synonyms.
The OSI was originally founded with the goal of registering a trademark for “Open Source”, but this was unsuccessful as the term is too broad and descriptive. Failing that, the OSI decided to instead register the trademark “OSI Certified”, which can be applied to works which meet their Open Source Definition. Ultimately, what this means is that nobody owns the phrase “open-source” and it’s an organic part of language which is not strictly defined by the specific terms of any certifying documents.
Over the years, there have been plenty of non-commercially licensed software with source available for use: a popular example is video, computer and arcade game emulators. The MAME emulator was for years released under its own non-commercial copyleft license before eventually being relicensed under BSD (which meets OSI’s Open Source Definition), and popular SNES and Mega Drive/Genesis emulators Snes9x and Genesis Plus GX both continue to be released under similarly “open but non-commercial” licenses.
I’ll happily agree that none of those are eligible to bear the “OSI Certified” trademark and that they don’t meet OSI’s Open Source Definition. But when people start saying they’re “not open-source” it rubs me the wrong way, because we’re just talking, not trying to achieve trademark certification. Not to mention that the whole nature of software licensing is to note what restrictions there are on the use of the code, e.g. most open-source, copyleft licenses deny you the right to use their code without attribution. However, we basically all agree that that’s fine and you can still call a license open-source if it includes that restriction. It’s a shades of gray situation that people are treating as black and white just because a definition exists which they can refer back to, with the assumption that all people must subscribe to those specific terms.
There’s entirely valid counter-arguments, of course. It’s useful to have strict definitions of nebulous concepts like open-source because it could cause confusion, and you have to draw the line somewhere or else the term becomes completely meaningless. e.g. You risk people referring to things like source code leaks as “open-source”. There are frequently cases of people ignoring non-commercial license terms and selling those softwares (Snes9x and Genesis Plus GX are often bundled with commercial retro emulation hardware), which you could argue stems from confusion about whether or not commercial use is allowed. But the same devices often violate the licenses of OSD-compliant software as well, so it seems more likely they just don’t care about open-source software licensing terms.
So anyway, Genesis Plus GX is open-source but I’m not willing to fight you about it.
Yeah, I think it falls squarely into your thing about a new term from open source as its not recognized as being open source by the OSI and probably won’t be due to it being too restrictive, but the restrictions close the loopholes, forcing the software to be more free at the same time so it’s kind of in a weird spot