Toward Copyleft Equality for All
sfconservancy.org
sfconservancy.org
At the heart of Kuhn's argument about "seediness" seems to be CLAs, which is where a third-party developer using software under FOSS terms is asked to sign the rights to their modifications over to the original vendor. If CLAs were coercive, this would indeed be seedy: FOSS developers would be getting baited into contributing to commercial products. But CLAs aren't coercive; the AGPL requires only that you meet the requirements of the license itself, not that you sign away your rights to your own modifications. People sign CLAs because they want their modifications upstreamed, and to avoid maintaining forks, not because they're legally required to do so.
Meanwhile, the kinds of software we talk about when we talk about the AGPL are overwhelmingly things that used to be (and in some cases in large part still are) closed source proprietary products. It's a little hard to imagine a closed source distributed database taking off in 2020; 20-30 years ago, to use Kuhn's framing, the opposite statement would have been more valid.
Fundamentally, software offered under the AGPL is almost always developed under the model of a single commercial vendor doing most of the heavy lifting, and, usually, all of the initial lift in getting a piece of software to the point of viability. It's hard to see how these vendors are taking something from the community by releasing their products under the AGPL when their alternatives would certainly be either a fully closed-source proprietary release, or no release at all. Kuhn writes as if licensing and advocacy decisions determine the economics of software development, but if the last 30 years has been an experiment conclusively demonstrating anything, it's that --- at least for the kinds of serverside code we're talking about --- no matter how you license it, companies paying software developers are what gets software built.
I have strong opinions only about the AGPL; I don't pretend to fully understand the ramifications of MongoDB's SS GPL, nor do I support the SS GPL unreservedly.
My understanding is that it's not the dual-licensing per se that's toxic, but the goal of copyleft-noncompliance legal actions. Rather than, as the FSF and SFC seek: "Our primary goal in GPL enforcement is to bring about GPL compliance." (https://sfconservancy.org/copyleft-compliance/principles.htm...) The businesses of which Kuhn is critical seek instead "to 'convert' those FOSS users into paying customers for proprietary licensing for the same codebase."
Arguably, the failure here might be of the GPL failing to specify what is an acceptable remedy, though if that were defanged to only be "release affected code as <copyleft license>", it might afford too great a latitude to other forms of black-hat actors.
I'm not sure if I agree with Kuhn's assessments or remedies. I think the discussion's worth having, and appreciate your input.
RMS discusses this here:
https://www.gnu.org/philosophy/selling-exceptions.html
"I consider selling exceptions an acceptable thing for a company to do, and I will suggest it where appropriate as a way to get programs freed."
https://writing.kemitchell.com/series/SSPL.html
Kyle is a advocate of dual licensing ("selling exceptions") and has even created License Zero [1] which is attempting to allow the creation of npm libraries which are dual licensed and an automatic command line tool to pay developers.
[1]: https://licensezero.com/ see also https://writing.kemitchell.com/2017/09/12/The-License-Zero-M...
This is still coercive though. It is the big party using their power to get developers to give up their rights.
Notably, by giving up these rights, it becomes possible for the party to go against the FOSS principles that were the reason copy-left was invented.
Sometimes that big party is a single developer, or just a small group. They invest several years into developing a working product, unpaid, and then give it away, with the condition that anybody who wants to use it in a proprietary product must pay up.
Not all CLAs require a developer to "give up their rights." The code authors can retain their copyright, but sign an irrevocable contract which allows for the distributor to re-license their work as they see fit. The original author too, is still able to license it as they see fit.
If, on the other hand, the developers only release their work as AGPL with no separate licensing, all they are doing is ensuring that a subset of companies who might otherwise use their software, definitely wont. There are many companies who simply can't AGPL their own works and if they can't use your software, they'll find an alternative, or develop and alternative in house.
I'm certainly against the idea of coercing companies to pay for licenses by instilling fear, but I think it's only a subset of dual licensing companies which do this. A dual licensing approach isn't inherently coercive. If they're clear about their licensing model up-front then it shouldn't be an issue.
Also consider that at any point, you can take one of these AGPL dual licensed products, fork it, and not sign over any CLA, then you can distribute a fully copy-left variant of it with some additions of your own. You would question why wouldn't everyone contribute to your version rather than the one where they hand over the copyright of their modifications. There's an obvious reason this rarely happens: The bulk of the work and maintenance is being done by the company collecting the license fees, and community contributions are just a small percent. There are cases where the community version gets enough development effort to be able to spin off a successful fork - eg, MariaDB.
"This problem became clear to me in mid-2003 when MySQL AB attempted to hire me as a consultant. I was financially in need of supplementary income so I seriously considered taking the work, but the initial conference call felt surreal and convinced me that MySQL AB was engaging in problematic behavior . Specifically, their goal was to develop scare tactics regarding the GPLv2."
CLAs are frequently coercive, rights depriving and generally a bad move, and I as a FOSS contributor won't sign them.
Yes, occasionally they are used correctly - but more often than not they're used to crowdsource work on what is really a proprietary codebase with crazy potential restrictions if the owning company decides to call them in.
To me the GPL is clear: You can USE the software for anything, but you have legal responsibilities if you redistribute it.
The dual license scheme seems like a good way of letting people buy their way out of the responsibility part, and generating revenue to help maintain the software.
http://www.olafsw.de/a-better-qt-because-of-open-source-and-... https://old.reddit.com/r/QtFramework/comments/e9376a/trouble... https://news.ycombinator.com/item?id=21755337
Why would anyone choose this?
It must be for the sake of giving the downstream users some sort of assurance that a Bad Thing won't happen to them, as a sort of promise.
"If we ever commercialize this, we will give all of you the opportunity to do the same."
It seems that the only authors for whom it would make sense to choosing this license would be authors who have no intention of going mixed proprietary licensing now, or in the future. Moreover, authors who believe in copyleft FOSS licenses and want to keep the project that way.
Someone who chooses that license knowing they will likely issue proprietary versions might as well skip straight to a simpler BSD-style license that is implied in that action.
Someone who doesn't believe in copyleft FOSS would also just skip this sort of thing and give the users the "hyper-permissive" license.
No matter what promises a copyright holder makes, they can retract them. However, at least this will be in force for users who hold existing copies. So that is to say, if the authors decide to commercialize and switch to Affero GPL, then only the new issues of the software going forward will be bound by that AGPL; the existing users will have the "hyper-permissive" license for the code up to that point.
It's about clear communication of a commitment to users and licensees. It's about building trust, and hence strengthening and broadening the community around the software.
I licensor can know that they never intend to re-license code commercially, but their users and licensees can't know that in the same way. Without a clause like this have to take that on trust and some might choose not to do that, missing out and weakening the adoption of the code and it's community. The presence of a clear commitments avoids that problem.
And those derivative works do not have the option to use a less restrictive license that allows such behavior.
Not sure of this though.
But is that true? Basically, the license is copyleft now, but if certain conditions occur in the future, it will become BSD-like (let's go with that designation for familiarity).
Thus, the license is effectively (copyleft | BSD).
A project which uses regular old predatory copyleft can therefore use it now and continue to use it, whichever way it plays out.
But I would assume that derived works could not choose to use the code as BSD - it’s not “choice of copyleft or BSD” it’s “copyleft unless you try to do something shady.”
Somehow..?
1. I've long heard that various SaaS companies really didn't like the Affero General Public License. Kuhn makes a case for why this is a validly justified concern, something I'd not previously considered.
2. The copyleft restriction termination is a really interesting concept, though not without its own set of consequences which should be closely examined. Historically, the advantage of copyleft has been that it applies equally to all. The abuse of it (by firms also marketing properietary solutions) is a problem, but removing copyleft obligations entirely might not go as intended.
3. Copyright assignments to copylefted codebases without an explicit restriction of those to require copyleft-only usage, a distinction which differentiates strongly between the uses at, say, FSF vs. MySQL AG / Oracle, clearly also present issues, as has long been argued.
Free, open-source software is about control: controlling what code manipulates your data.
In short, it seems that the license really doesn't really do much of substance for the user, and just saddles the operator with extra burdens.
But it obliges you to provide or make available those changes if the use will "propogate" the work.
By the way, the AGPL3 definition of "propagate" looks exactly the same as that of the the regular GPL3. Operating software as a server doesn't fall under "propagate".
For self-service, this means that you're not locked out of the development capabilities of the service you've left -- though that arguably creates a free-rider problem for that service.
* You know what code is providing your services.
* You have the option to run that code yourself.
* Other service providers can provide the same service using the same code, so you're not locked in.
Thus a provision reverting to a BSD-style license in case of proprietary licensing would, I believe, do nothing to encourage them to use it in the first place.
I wouldn't be surprised if MongoDB has been spreading FUD for years to cause this.
I'm glad that Bradley is drawing critical attention to this issue.
> efforts to draft even more restrictive software copyleft licenses
A non-free "copyleft" license is not worthy of the name and is a problem because it is non-free, not because of "copyleft".
> The clause still needs work
The license needs work,it seems to treat copyleft as a form of punishment for authors to be tolerated for a while rather than as a strategy to permanently protect the freedom of all software users.
> a basic approach to incorporating similar copyleft equality clauses into written exceptions for existing copyleft licenses, such as the Affero GPL
These clauses can and will be removed by downstream users for any alterations or additions they make to the software in order to provide it to their cloud-based users. This will redouble the downstream use dynamics that VC-funded "open source" projects, some of the heaviest users of abusive CLAs, whine about.
Any issues companies have with FOSS licenses is entirely on them, assuming they arent one of the few who actively contributes to and fights for FOSS. MongoDB doesn't like competition from Amazon? Understandable. But don't play the victim and then turn around and screw everyone who isn't Amazon over with a license change. Maybe instead you could take some of your shake-down money and put it to good use by lobbying against these monopolistic conglomarates in the valley so that they can't use their overreaching power to screw you with your own code. Maybe instead, you could encourage ALL developers to start using copyleft licenses, instead of the weaker licenses everyone loves to throw on their project these days. Because those weaker licenses are somewhat to blame for this too. What good is a FOSS program if its just going to lead to more proprietary software? How does that help anyone? There's a reason most of the big tech monopolies release most of the open source code they do produce under non-copyleft licenses. Its not because they love FOSS, its so that they can pay lip service to the community and then use it with their the proprietary programs we're so concerned about them surveiling us with. Of course, the retort to all of this is "developers need to eat to, how can we make money off of copyleft?" I have two answers, one thats snarky but possibly helpful and one that's honest but possibly rude, and hopefully enlightening. The first answer is "Ask Qt." "Ask Blender." "Ask Redhat." Ask one of the many companies that do buisiness while still releasing their main software under a FOSS license. They all seem to be doing pretty well. The second answer is that I don't care how or even if you make money. Thats not the reason you release something as FOSS. Never has been, never will be. If you release software as FOSS, its because you believe that there should be a balance of power between developers and users. Its because you believe that sharing information and knowledge is the best way we can improve quality of life for ourselves and those around us. If you can't make those ideals your biggest priority even in the face of financial loss, frankly don't even bother releasing your software as FOSS. I'd rather your software be proprietary. That way I'll know to avoid it and we won't have to waste eachothers time.