tl;dr The communities that form around community open source are very different from those that form around commercial open source; confuse them at your own risk.
The recent announcement by Elastic to relicense their software away from open source licenses to commercial and source-available licenses only has triggered the debate about rights and expectations of open source communities again (local copy 1, 2, 3).
Legally speaking, I assume that this is fully within Elastic’s rights. I assume they either outright own all copyright to the relicensed code or collected copyrights by way of contributor license agreements from anyone whose code they accepted into their code base.
Morally speaking, some people are questioning Elastic’s right to do so. They assert that the relicensing broke a contract with the community. I can understand this disappointment, but I can’t see how people can complain about Elastic acting in its own interest. Nobody was fooled here, Elastic was a commercial company from the beginning.
The confusion seems to stem from not properly distinguishing community open source from commercial open source.
- Community open source is software that has no single proprietor and whose copyright is broadly distributed. This includes foundations like the ASF, who formally may be the proprietor of their projects (they collect the copyright), but by way of processes and bylaws clearly acts as a representative of a community and not for commercial interests.
- Commercial open source is software that usually has a single or dominant proprietor who will manage the software according to their commercial interests.
The community around a community open source project determines where it is headed, including licensing changes (usually: never). The community around a commercial open source software does not.
The development efforts of a community open source project are carried 100% by the community (including vendors). The development efforts of a commercial open source project are mostly carried by its proprietor (percentages of outside contributions will vary by how and where you draw the boundary around the commercial open source and any supporting community open source).
With this, it is no surprise if a commercial open source vendor acts in their own interests, even if this (perceived or real) goes against the interests of the commercial open source community. In general, it is within their rights, and I don’t see how anyone can complain.
The only moral hazard I see is if the commercial open source vendor made promises and then broke them. Those who complain about Elastic argue that there were such implicit promises, but I have not seen them. Elastic obviously thinks there weren’t any.
A possible solution is to adopt what I called the commercial open source pledge. In it, a vendor clarifies its future intentions. This idea hasn’t got much traction though, because (I guess) vendors prefer to not make forward looking statements. So, users need to remain vigilant, as always, and think before they act.