The gap in that case was that the GPL was not sufficient to ensure that software remain free software when companies started using SaaS for software that previously would have been run locally. SaaS was in effect a workaround for the GPL's distribution requirement (enabling companies to avoid giving the software's users the freedoms associated with free software), so the AGPL was created for software that was meant to run on a server.
This is different: the point of contention here is not that Elastic's software was being made proprietary (they could have easily used the AGPL if that was their concern, the AGPLv3 predates the first Elasticsearch release by three years) but that Amazon is using their software to compete with them. That's something that's pretty fundamental to both free software:
>The freedom to run the program as you wish, for any purpose (freedom 0).
...and open source:
>The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
Freedom 0 is a feature, not a bug! It may be a "gap" in Elastic's business model, but it's certainly not a gap in FOSS licenses - the freedom to use the software as you wish is a pretty core value of free software.
Now that said, I do think that taking FOSS and making it proprietary certainly does violate the spirit of free software. Amazon doesn't seem to have done that here, though - their fork is under the Apache 2 license.
When I choose Apache or MIT, I do so for a reason and if you or Amazon use code in compliance with that license, I’m happy and you’re not “exploiting a gap” but rather “complying with the terms I offered”.
To me it boils down to if you think that it's worth it: whenever I put MIT or Apache 2.0 on my public Github projects, I don't mind anyone going out making millions on them. Other side of the coin; if I make millions on some obscure library I found on Github with an MIT license, I do not expect them to be outraged about it.
If you do not think it's worth it, as you said there are a range of other licenses out there. I love the notion of human knowledge being free and available to all to the fullest extent, I think it will drive (and has driven) immense value for humankind.
Choosing sides here seems to be choosing between two profit seeking companies. Why, as a developer, you should take a side?
In my opinion, the bottom line is this: if Amazon's exploitative behavior is continues then we're going to see more and more open source products shift towards janky-kind-of-open-source or entirely closed licenses. Small or experimental projects will have open and permissive licenses, their authors will have plans for shifting licenses should the product become really successful.
I think it marks the end of this idea that you could have an open source project and then build a commercial offering around it. No matter who you are, odds are good Amazon will get such an offering off the ground faster and they have a built-in market of AWS customers.
Elasticsearch has made their motives clear: they have real concerns that Amazon is diluting their brand and they feel that Amazon is costing them too many customers with their proprietary AWS product. We can quibble about the morals of Amazon's move (they have none, corporations have no morals) but let's not lose sight of the outcome: Amazon has forced another OSS project to switch to a closed license[0].
[0]: https://techcrunch.com/2019/02/21/redis-labs-changes-its-ope...
Part of the whole concept of free software is that you have freedom of choice with vendors (this is derived from "freedom 0"). Amazon is providing the software and its support as part of the Elasticsearch offering as a managed service. Elastic is a competing vendor, both as a managed service and in a traditional sense too.
Elastic made this decision because they wanted to be the exclusive vendor for Elasticsearch. That's fine, but it's not in the spirit of free software.
If anything, Elastic has exploited the third-party contributors who contributed to Elasticsearch under a CLA by promising to not do what they did and then blaming AWS for doing it anyway.
Other companies have built products on Elasticsearch (I worked one one myself at one time) and they haven't been sued by Elastic. In my experience, Elastic has behaved in the spirit of free software. Now that their license has changed I would expect they will receive fewer submissions of code from outside companies. In my opinion, the difference here is both scale and misrepresentation of the offering by Amazon through unauthorized use of Elastic's trademarks.
This is not the first company to change their license in order to avoid providing free improvements to Amazon's proprietary services, I believe that this is unique to Amazon, perhaps because of the size of their AWS customer base. I can't find any similar stories of companies changing their licenses because their code was being used by RedHat.
Amazon is one of the largest and wealthiest technology companies in the world with a large captive audience of customers locked into their AWS product. On what terms could Elasticsearch compete with Amazon, especially when any improvements to the product would effectively be improvements to Amazon's product as well?
While I may step out of the way of an oncoming train, is it really a choice? No, it's clear that an oncoming train forces people to step out of the way.
Having a permissive license is a massive asset for getting people to adopt your software, but it means you will have no control over what they do with it.
They want the goodwill and other benefits of a permissive license without loss of control that these licenses bring.
What they are objecting to is having their project co-opted by Amazon, one of the largest and wealthiest technology companies in the world. Elasticsearch and Amazon have been battling this out for a couple of years now, this is the latest move in that battle.[0] They have been very clear that the reason they are changing the license is Amazon, not "the drawbacks" of an open source license.
[0]: https://searchaws.techtarget.com/news/252471650/AWS-faces-El...
* Amazon, from the wealth of innovative managed services they could offer without fully maintaining them themselves
* OSS companies, for the ability to financially sustain their projects and still offer it for free for those that want to self host without offering a managed version of the same software
* End users, who can both use the software however they wish and also choose to get a nice managed version of it.
Instead what will happen due to AWS behavior here is that there will be a lot less incentive to develop innovative new services, at least in a non-proprietary way => therefore there will be fewer services in general for AWS to offer without doing all the product work from scratch, fewer tools in general for engineers and fewer OSS tools in particular and more Firebase-like offerings. So everybody loses here in the long run.
I'm going to go on a limb and say that whichever of the cloud providers figures out the "app store" equivalent for managed services is going to be able to take over from AWS.
There is no ambiguity in this case, they are offering the exact same elasticsearch API.
But this is not even the point. I'm not interested in the legal distinctions here at all, thats for the lawyers to delineate in more detail. The point is that Amazon are practically throwing away a huge business opportunity that would also encourage more FOSS to be built in a sustainable way ("app store" / "managed service store") for some short term gain, by throwing companies such as MongoDB and Elastic under the bus.
Yes, because ES didn't use any GPL license even when they had every option to; they used the Apache license which is explicitly incredibly permissive.
With their Apache choice a pragmatic balance was met where developers could use/modify it as they please or use a managed solution from EC or even a managed solution from another company. The ecosystem thrives and their company can thrive.
But a managed solution from AWS ends being materially new and different: AWS is able to undercut them on every front, and people end up viewing AWS ElasticSearch as the canonical ElasticSearch.
Maybe trademark infringement aside, Amazon didn't break the law but they created an unprecedented situation that changed the effective balance of power which changed whether Apache was achieving their EC's goals or not.
Permissive licenses like MIT/Apache have historically been what companies prefer to have when evaluating free software. And, generally, it hasn't been a problem for companies like Elastic because companies like Amazon didn't "take" profits from Elastic (and others).
What has shifted is that, where before, there was a "code of honor" that companies could use FOSS software and Elastic would benefit from the uptick in adoption via support contracts, community building libs + writing docs, and encouraging "network effects" for them.
The "cost" of being a FOSS company was lower than the "reaped" benefits of the network effects.
That has shifted with "predatory" behavior from companies like Amazon. That abuse of the "vulnerability" in the FOSS ecosystem is a tragedy of the commons. It means that companies have to be more cautious about what they choose to open source.
This is just my opinion, of course. As a founder of a software company though, I see this as a real struggle. I would prefer have https://refinery.io be an entirely open source tool and we make money via supporting the ecosystem.
Unfortunately, it just isn't clear cut. The best option that I see today is a model like what MongoDB and CockroachDB have with licenses like BSL. But, they're not truly "open source". And that sucks.
We are living in a time where there are no good answers in the face of exploitative behavior by companies like Amazon. It means companies like mine have to maintain a proprietary platform in order to make money.
As a developer, it hurts my ideals. As a business owner, it's a risk I can't afford to take. That's why this behavior is a problem for FOSS.
I've run a couple of COSS companies and have a few arrows in the back on this subject. The 'code of honor' is not enough to float even a small company. I don't think it ever was.
Most people simply won't pay if they don't have to. It's not just a matter of money. Buying software in established companies can be a head-exploding hassle--as in 6 months of fighting procurement. Plus those do-a-good-deed contracts have a habit of disappearing as soon as there's a budget crunch or the enlightened manager who pushed it through moves to something else.
I'm not knocking such contracts in any way. They are kind of like crowdfunding for OSS and can be lifesavers. But it's naive to build a company on them.
To have a profitable COSS business you need to sell something sticky that customers need and can't get elsewhere, so there's a real exchange of value.
Amazon unsticks anything that isn't nailed down...
Open Source is for getting popular, and all of the arguments that Open Source people make against Free Software are about the ability to get popular (corporate usage and corporate contributors.) The reason companies use Open Source is because when you license something that way, it's theirs now. They're investing in their own property.
Free Software doesn't intend to have this problem, and if it sees a problem, it fixes the bug. You don't own Free Software, you own the devices that you install it on. You still might end up competing with someone, but you'll never fall behind.
Basically, their problem is that it's impossible to compete with Amazon on delivering a managed SaaS, and most of their money was coming from that.
In terms of the software itself and user freedoms, the licenses used have achieved their goals - ES is free, people using it can control exactly what they are running, can patch it and redistribute etc. No one owns ES itself, so it is Free Software in your sense.
The people who are having a problem though are the project behind most of the work on this. Now, whether this is a real problem (the company is struggling to remain profitable because of Amazon) or just a fake problem (the company is profitable but it's not growing as expected in some 5 year plan) I don't know, but this is the reason for this type of change.
Amazon has a small team for developing their version and at the end of the day, it has to fit into the operating constraints that they have. There are plenty of huge gaps in managed ES that the vendor can (and does) exploit.
It's an interesting idea to think that "Free Software" creates a sort of "distributed code base". In the sense that "code will be eventually pushed to the main repo when the patch is created". That's an interesting perspective.
Now AGPL might have, if it was used from the start... not because it would prevent any monitization, but because it might bring enough legal uncertainty for AWS to even consider using it
Suppose Elastic had used GPL instead. Then Amazon's hands are tied to a greater extent, but we still lose out. If AWS is the one maintaining ElasticSearch, then ES will steadily become more and more nichely-suited to being a part of the Amazon cloud and less suited to a self-hosted use case. Users can patch it for their own use-cases, but they'll never be able to make it as good as it would have been if there were full-time maintainers supporting them. The commons still become less rich.
The dream is that Elastic can keep maintaining ES but ES remains Apache2. Given AWS's presence in the market, it seems like that's not an especially viable option. For Elastic to keep maintaining ES while switching ES to a more restrictive license which doesn't prevent normal use cases but hamstrings AWS is less desirable, but still preferable to Elastic folding, because ES remains a tool which we can all use and patch as needed to power our own services.
On the contrary, the commons gets the version of ElasticSearch that is most useful to end users. If Elastic can offer better service to end-users, their deployment will be more popular and people will prefer their patches; if AWS can offer better service to end-users, their deployment will be more popular.
Not really, because Elastic doesn't get money from people using their free product. So, Elastic could theoretically go bankrupt even while providing an arbitrarily more popular ElasticSearch version.
AWS on the other hand is charging money for using their service, so they only need to compete with Elastic on the hosted version of ES. If their fork of ES is very hard to host on your own, that's a net benefit to AWS, regardless of how easy Elastic's fork is in the same scenarios - neither company is making money off the non-hosted version.
Network effects are great for behemoths but not so good for consumers.
I'm skeptical though.
If that were the point of the licensing, it'd be encoded in the license. This is the branding of the license, which is just innuendo. Amazon doesn't belong to any church that recognizes the spirit of Open Source, instead they just read the license and follow it.
I think the point of OSS - and there are various flavors so this isn't some unitary point, but more like a general direction - is the insight that copyright isn't actually a good model for software development. OSS licenses are a hack to sidestep fundementally misdesigned legal structures while staying within them. But because OSS uses licenses to create a more open development model, it's restricted in what it can do; it's "just" an EULA essentially.
Ideally, we'd fix this in the law, not via tricky licenses, but we don't live in a world where that ideal is anywhere even close to a serious enough problem to be addressed - at least, that's my take on "the point of the [OSS] licensing".
The various flavors of OSS try additionally to either use various other approaches to encourage a more open model in a closed world, or conversely don't bother since it's a hopeless endeavor, or vary exactly how open they want things to be; but the general gist is that the license is a hack; it's a design limitation, not by design.
Yeah — clearly they're acting in total accordance with their own interests. My point is that they're acting contrary to ours.
They make perfectly legal use of that code. What they're doing seems to be in my interest because if they do it, it means I could also establish a business using permissive code to run it and hopefully make money off it. It's good news for many wannabe startup founders out there.
This mirrors how, in general, markets approach human values. They're a nice thing to have if you can afford them, perhaps you can mention them in your marketing - but the moment competition threatens your margins, you'll drop these values to stay competitive. Ethics is a market inefficiency, and expecting companies to behave ethically over time if not explicitly forced to is, indeed, naive.
If it restricts who can use the software or what they can do with it I believe it isn't classified as free software.
The AGPL is slightly different than GPL. It confers more responsibilities on cloud providers, so that the users of the software (as a service) have the right to the source and any modifications.
Running a profitable business to service free software has nothing to do with the philosophy.
"Open source" on the other hand...
So... you admit that the people who created the GPL decided their license wasn't sufficient to cover a certain usecase and revised it to cover it. But you think it's unfair to call this a "gap" that ES is now trying to close?
EDIT: I do think it's fair to point out ways in which the new license for ES is worse than the AGPL, but I do think it's important to point out that it's possible to believe in open source licenses and to think that the way AWS uses software violates the spirit of open source. The people who work on GNU seem to think that!