Again, you’re leading with the definition-of-FOSS argument.
Step back from FOSS for a second.
I think most people would agree that there’s somewhat of a moral issue with just taking someone else’s open source software and just hosting it and making billions, with nothing for the creators, because you are a megacorp who is good at hosting.
Now, is there a way to solve that and have the benefits of FOSS?
Both Mongo and MariaDB have tried to address this with licensing - MariaDB seems to have done this much less clumsily than Mongo, but both still had FOSS advocates shrieking
---
EDIT to include response to below comments so everyone doesn't keep repeating the same things:
> Either your product is fully free and you accept that people can fork it, even Amazon, or you choose a restrictive license. You can't make "free" (as in libre) compatible with "but".
> I can totally see that you think this is unfair, but they did allow it and they were perfectly happy when being FOSS brought them market share. You have to take the good with the bad
> If you have a moral qualm with bigcorps using your work for free, you don’t license in such a way that they can. Make your own license, or slap AGPL3 on it - either way, no bigcorp touches it.
> But you cannot be mad when you say “I release this code under these terms” and AWS takes you up on your offer.
If everyone stomps their feet and says "there's no solution, otherwise it's not OSS!" then the end result is only going to be a lot less open-source software.
I'm not asking if someone who wrote code and chose an existing OSS license that allows any possible usage has any real recourse once they want to make money off of it - obviously not.
I am asking, can we find a way to ensure software creators are compensated while still having the generally-recognized benefits of FOSS?
> Don't you think there's a moral issue expecting free contributions to something which only you are allowed to monetize?
Nowhere in OSS licenses does it include the expectations of free contributions
> And how can you satisfy users to the greatest extent while also preventing them from using the provider that is best able to meet their needs?
Again, can we just find a way for the creators to be compensated?
I'd love for the OSS to be available as a hosted solution to be available on every cloud provider, including if the original creators choose to provide a cloud hosting.
I'd also love for the original creators to be able to get some sliver of the money AWS/Google/Azure are making off of it.
---
To me it seems like if you were to start a business around your open-source code right now, you would be smart to do one of these two things:
1. a MariaDB/CockroachDB BSL approach, where the newest versions are BSL, with a restriction that you can't provide a product where you just host our software without paying us, then all code automatically is fully open-source (GPL or whatever) after x amount of time, or x major version releases.
- this comes with the danger of all the bad PR and gnashing of teeth that comes with non-pure-OSS licenses, or people just not adopting it because they dislike or don't understand the license
2. Open-Core with non-OSS-licensed Enterprise versions, and lean really hard into developing hosting and enterprise integrations to make sure you can make some money off the nonfree portions
- this seems even more dangerous, that you have to be distracted on such things that are not the core product in order to defend against ending up like Docker, with everyone using it and no one paying you a dime.
You’ve got it precisely backwards. The license placed on a software encodes what you wish to allow other people to do with it.
If you have a moral qualm with bigcorps using your work for free, you don’t license in such a way that they can. Make your own license, or slap AGPL3 on it - either way, no bigcorp touches it.
But you cannot be mad when you say “I release this code under these terms” and AWS takes you up on your offer.
Disclosure: I work for AWS, but they don't pay me to share my personal opinions on FOSS licenses here on HN. I'm speaking for myself.
Personally, I am a fan of AGPLv3. But I am uncomfortable with advice to apply APLv3 code in an expectation that BigCorps will not touch it. There are many very large companies, including multinational companies based in China, that have no fear of AGPLv3, and are also prepared to meet the obligations of the license.
Many times I have read (including in comments down thread) that "big companies fear AGPLv3." That may be true in some cases, but not all. And the state of adoption or rejection of community licenses changes over time. 25 years ago, many companies "feared" GPLv2.
That changed, and now GPLv2 is widely accepted. The same could happen for AGPLv3, and personally I think that the movements that advocate for Software Freedom will be closer to achieving their goals if that happened.
Maybe I got the timelines wrong - isn't that what was originally happening with Mongo and AWS - AWS was hosting Mongo when it was still under AGPL?
Also the Google policy seems to stem from:
1. It's never really been defined very well what "interaction over a network" means for AGPL and how truly viral it really is - although I'm sure ever there were ever landmark cases in the US establishing it, things would magically end up in Google's favor
2. Google purposely spreading FUD around more restrictive OSS licenses to discourage their existence
Interesting - so a clean room implementation is somehow more attractive than complying with the AGPL.
So AGPL is open source, but in practice it seems like it's so much more restrictive than something like BSL that is not open source.
This just makes OSS vs not-OSS seem like even more of an theoretical line in the sand.
As for
> Hence, Mongo relicensed under a new license, the SSPL, that says if you implement an SSPL-covered API, the SSPL extends.
That definitely looks ugly on Mongo, implementing an API is such a fundamental part of software compatibility. Seems like the exact wrong way to go about it.
Amazon didn't implement an entirely new database. As you can see on https://en.wikipedia.org/wiki/Amazon_DocumentDB, they just built an (admittedly clever) PostgreSQL plugin on top of Aurora PostgreSQL.
Aurora PostgreSQL is based on Aurora, which amusingly traces its roots to MySQL, but that was a long time ago. You can decide how many planks Amazon must install on the ship of Theseus before you're willing to call something "a new database", but the fundamental point is that none of those planks came from MongoDB, thanks to AGPL3.
This is one of the big reasons I think that discussing "open source" is dangerous and tricky. It's not a binary, and there's no one monolith that decides what it is/it isn't. Even ignoring the traditional "FSF vs BSD" holy wars, there's plenty of depth. For example: is the JSON license[0] open source? It's certainly permissive enough, but lots of different groups have different interpretations as to why it isn't: the FSF[1] says it violates their freedom zero, that a user has the right to run a program as they want for any purpose; the OSI says it isn't because their licenses cannot discriminate around intent - quite literally, the OSI supports Evil here ;-)
I've released code under permissive licenses (Apache, BSD, and MPL that I remember off-hand), and at least one feature I know made its way into a commercial product. In those cases I simply didn't care because I didn't consider the code particularly novel, important, or special. It scratched my itch. Occasionally it scratched my employers itch, so I was already paid to write it, which was nice.
If I ever write code that I consider novel, important, or special, I plan to release it under AGPL3 - while you may think Google is overreacting on accident or to create FUD around it, the plain text of the license makes the intent exceptionally clear:
> public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
This alone is enough to make the AGPL3 blacklisted anywhere that wants to keep their source closed: you may believe the courts would decide for the big corporation if push comes to shove, and you may even be right, but practical evidence shows that almost nobody wants to risk it.
Part of the problem here is that a generation of programmers seems to think that open source is all the same, so a license is something that you just whack <enter> to when your scaffolding tool suggests one. But in reality, talking about "open source" is useless at best and dangerously imprecise at worst, talking about licenses is the only way to get people on the same page.
> That definitely looks ugly on Mongo, implementing an API is such a fundamental part of software compatibility. Seems like the exact wrong way to go about it.
It did the trick for them, at least against AWS: as expected, they successfully forced the wire format to diverge after AWS launched DocumentDB. It also got them pulled from Debian, Fedora, and I don't know how many other distributions for being non-free. But hey, at that point, they were already a known quantity, so it probably won't hurt in the long run.
> If everyone stomps their feet and says "there's no solution, otherwise it's not OSS!" then the end result is only going to be a lot less open-source software
There's going to be less people trading on the idea of open source software while relying on the exclusivity of control of proprietary software—which in fact does not solve the problems which lead users to prefer open source software—to enable monetization, so we’ll be back to the status quo before the last handful of years where open source software was peripheral projects and supporting infrastructure funded by its users either as internal projects or via external foundations, rather than the central products of startups that have no business plan consistent with the product remaining open. But that’s okay.
I mean it seems to me like of these two situations:
1) there's a lot of software that's mostly-open-source-except-Amazon-isnt-allowed-to-run-a-hosted-version-of-it-without-paying-the-authors
2) all the software from 1) is completely proprietary
a lot more people benefit from 1 than 2. But somehow it seems that OSS purists prefer #2? It seems like they would rather less Open-Source Software in the world, all to maintain the purity of the meaning?
> there's a lot of software that's mostly-open-source-except-Amazon-isnt-allowed-to-run-a-hosted-version-of-it-without-paying-the-authors
That's...not mostly open source. Being able to pay whomever to run a hosted version for you and not have that be exclusive to the original creators isn't, especially in the age when hosted services are in high demand, a peripheral feature of open source. It's integral to the value proposition.
I said nothing about having hosting "be exclusive to the original creators"
If AWS/Google/Azure had to pay some fee to the original creators to provide a hosted version, they would definitely do it for a popular enough product.
Everyone would still get all the benefits, except AWS/Google/Azure get a little less money (down from some hundreds of millions) and the creators get a little more than $0.
I fail to see the negative effects on any entity there except what would amount to rounding error in AWS costs. Doesn't actually seem so integral to the value proposition of open source. Definitely seems "mostly open source".
Yes, because OSS software enjoys a massive popularity boost -- there are a lot of people who will always chose an open source product if one is available. So in the option (2) some software will turn proprietary, but I bet that overall number of OSS users will not change that much... it will be just re-distributed.
For example, if ElasticSearch would have been closed source? People would go to Solr. If Solr closes? Postgres and a lot of swearing.
You have to remember that while AWS ElasticSearch was a bad thing for Elastic Co, it was absolutely great for all sorts of much smaller companies who did not have enough resources to run their own clusters, as Elastic's offering is 2x price of AWS one [0].
I don't think it's a matter of maintaining the purity of the meaning, it's about maintaining the intent. The point of FOSS isn't to let people benefit up to the point where they start being able to outcompete you, the point is to let people benefit freely. If you want to achieve the former, you can just release it for free for non-commercial purposes.
> Now, is there a way to solve that and have the benefits of FOSS?
The answer is simple - no. Either your product is fully free and you accept that people can fork it, even Amazon, or you choose a restrictive license. You can't make "free" (as in libre) compatible with "but".
I can totally see that you think this is unfair, but they did allow it and they were perfectly happy when being FOSS brought them market share. You have to take the good with the bad.
If everyone stomps their feet and says "there's no solution, otherwise it's not OSS!" then the end result is only going to be a lot less open-source software.
Well, it's just the free speech issue all over. Either you censor speech or you risk people saying things that you really don't like. This is exactly the same situation: Either you go FOSS, with all the benefits it entails, and risk getting forked by a major player or you go proprietary and risk not getting adopted at all by major players and open source enthusiasts.
Don't get me wrong, I feel with the Elastic team and I can understand why they're unhappy (even if I don't agree with their pettiness). I also don't particularly like the move Amazon did here. But that's why we want free software: If the current owner of the software does something you don't like, you can still use the software. That's the whole point.
And you're still free to pay Elastic to manage a cluster on AWS for you; Amazon might have forked the project, but it's still the customer that needs to switch to OpenSearch.
The end result may be that there's a little bit more proprietary software; so be it, people could already make proprietary software. We'll still have plenty of Open Source software that's actually Open Source. That's better than losing Open Source altogether.
The question was not "would it be FOSS". The question is whether you can have the benefits of FOSS, or as much of them as possible.
Imagine just as an example, a license for personal software that is exactly the same as GPLv2 except billionaires can't use it. Functionally that has the same benefits as FOSS, even though it's not.
Honestly it seems like the only downside there would be all the OSS purist/billionaire-defender HN commenters would have a field day, then you could move on.
One of the key benefits of FOSS is that if I don’t want to (or am not capable to) do something with the software, I can pay someone to do that part for me. Maybe that’s fix a bug, extend/modify the software, or maybe it’s operate and host it for me.
I’d like to choose AWS to do this hosting in a lot of cases, assuming they’re willing. Barring them from hosting it is impinging on my freedom as a user and therefore with respect to whether I think that software is Free and Open.
That’s the exact freedom that Elastic is trying to remove here, for their own (totally valid) business reasons (they don’t want to compete head-to-head with AWS hosting), but in so doing, they’re removing an essential freedom from users. This is not about defending billionaires; it’s about having choice in the use of the software purporting to be free and open.
I don't think they want to stop you from doing those things, and hiring out to do that, I think they want it to not be offered as a prepackaged product.
So it's a reduction in freedom, but it's not a reduction in user freedom.
Those are just differences in timing and system efficiency. In one view, RHEL is a pre-packaged product. In another view, it’s a bunch of users outsourcing a portion of FOSS management to an expert company because they don’t want to do it.
I don't think I understand your argument. Even if it is just timing and efficiency (I'd argue it's a few other things too), wouldn't that mean it's not just a matter of perspective?
Fair. I retract “just” as I agree it’s a few other things, but in one world, I can contract out my Linux packaging to Redhat or my Elasticsearch hosting to Amazon and in another world I can’t. I think that’s a significant difference in freedom to me, as the user/potential user.
“You have the freedom to contract for help with our software with this company but not that company” or “you have the freedom to contract for hosting in inefficient arrangements that we can beat in competition but not in efficient ways that we’d rather not compete against”.
From a purely practical angle, how am I to ascertain why they chose Apache 2.0 as the license and how should I weigh that knowledge/guess against the crystal clear grant terms of “Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.”?
If I license any of my code under that license, I hope someone builds a billion dollar business on it. If someone else does the same, how should a licensor understand the difference and act accordingly?
Don't you think there's a moral issue expecting free contributions to something which only you are allowed to monetize? And how can you satisfy users to the greatest extent while also preventing them from using the provider that is best able to meet their needs?
EDIT: regarding your inline response,
> Nowhere in OSS licenses does it include the expectations of free contributions
The expectation is not encoded in the license, it is the reason for choosing the license. Why would anyone want to afford you the benefits of FOSS so that you can personally monetize it and nobody else?
There are plenty of reasons for choosing an OSS license - people can easily audit the code, people can self host for their own purposes, etc.
There is plenty of code that is only open-sourced after it has been fully created by a single organization/entity - no free contributions needed!
If we're talking about expectations not encoded in the license it's very clear that developers would just like to be able to release software with all those OSS benefits, but also to have a way to be compensated when AWS takes it, charges people to have it run it on an AWS server, and makes a ton of money.
I'm not denying AWS is adding value, but it sure is odd that they're the only ones making a dime there.
I don't think those are really reasons for choosing an OSS license, they are reasons for choosing a source-available license (of which OSS licenses are just one kind).
> I'm not denying AWS is adding value, but it sure is odd that they're the only ones making a dime there.
I don't understand what's odd about it. If ES were never open source and was a proprietary product from the beginning, there would be nothing stopping Amazon from paying for it and providing it as a service under contract from Elastic, if they thought it added enough value to make that worthwhile. Then they would both be profiting in a monetary sense from the relationship. But it's not a proprietary product (or at least, it wasn't previously)
There is a talk by an OSS person (I forget the details), where they make the argument that AWS selling hosting for a particular piece of software increase the market for that software, which means that while AWS takes some share of the pie, the size of the pie is bigger so the original author's share goes down but the size of their slice goes up. So I'm not sure in every case AWS selling hosted software is actually a bad thing for the original authors.
I want to afford anyone the benefit of an F/OSS license so they don’t have to waste their life energy recreating a wheel that I’ve already created. If it helps you and saves you time, have at it! In other cases, I contribute back patches so that companies can ship better software to their users (sometimes so I benefit; other times just so someone else doesn’t have to fix the same bug I just fixed).
This license case isn’t about “you can personally monetize it and nobody else” but rather “you and anyone else who wants to can try to monetize it”.
Right, I mean to say why would potential contributors want to afford those benefits to the original author so that only the original author can monetize it?
But which copyright owner? If the open source project has multiple contributors (not an unusual scenario in the slightest), it's not just a matter of one person's copyrights. Plus you get into the issue of the projects dependencies, and who owns those?
* requiring code to be assigned by the author to a single person/company, consolidating ownership
* building your entire base on friendly licensed software (3BSD) and ducking any GPL
So it’s very easy to say, for example, that the Mozilla Foundation owns all the code that makes up Firefox - they won’t accept your pull request otherwise.
you know that responding to comments tends to make a discussion flow, rather than stealing all our work for your own comment, incorporating them without credit? ;-)
Step back from FOSS for a second.
I think most people would agree that there’s somewhat of a moral issue with just taking someone else’s open source software and just hosting it and making billions, with nothing for the creators, because you are a megacorp who is good at hosting.
Now, is there a way to solve that and have the benefits of FOSS?
Both Mongo and MariaDB have tried to address this with licensing - MariaDB seems to have done this much less clumsily than Mongo, but both still had FOSS advocates shrieking
---
EDIT to include response to below comments so everyone doesn't keep repeating the same things:
> Either your product is fully free and you accept that people can fork it, even Amazon, or you choose a restrictive license. You can't make "free" (as in libre) compatible with "but".
> I can totally see that you think this is unfair, but they did allow it and they were perfectly happy when being FOSS brought them market share. You have to take the good with the bad
> If you have a moral qualm with bigcorps using your work for free, you don’t license in such a way that they can. Make your own license, or slap AGPL3 on it - either way, no bigcorp touches it.
> But you cannot be mad when you say “I release this code under these terms” and AWS takes you up on your offer.
If everyone stomps their feet and says "there's no solution, otherwise it's not OSS!" then the end result is only going to be a lot less open-source software.
I'm not asking if someone who wrote code and chose an existing OSS license that allows any possible usage has any real recourse once they want to make money off of it - obviously not.
I am asking, can we find a way to ensure software creators are compensated while still having the generally-recognized benefits of FOSS?
> Don't you think there's a moral issue expecting free contributions to something which only you are allowed to monetize?
Nowhere in OSS licenses does it include the expectations of free contributions
> And how can you satisfy users to the greatest extent while also preventing them from using the provider that is best able to meet their needs?
Again, can we just find a way for the creators to be compensated?
I'd love for the OSS to be available as a hosted solution to be available on every cloud provider, including if the original creators choose to provide a cloud hosting.
I'd also love for the original creators to be able to get some sliver of the money AWS/Google/Azure are making off of it.
---
To me it seems like if you were to start a business around your open-source code right now, you would be smart to do one of these two things:
1. a MariaDB/CockroachDB BSL approach, where the newest versions are BSL, with a restriction that you can't provide a product where you just host our software without paying us, then all code automatically is fully open-source (GPL or whatever) after x amount of time, or x major version releases.
2. Open-Core with non-OSS-licensed Enterprise versions, and lean really hard into developing hosting and enterprise integrations to make sure you can make some money off the nonfree portions