But with a CLA, it becomes much easier for their code to move towards source-available.
The thing is, a GPL or AGPL license without a CLA would actually be a reasonable defense against closing down the software in the future, since it would block Element from being relicensed to something more restrictive without the permission of the copyright holders. Even if there is a legitimate need to sell exceptions, a CLA that gave the company a limited right to sell specific exceptions would be better than full copyright assignment and would actually increase my trust in the project rather than worrying me.
https://github.com/nextcloud/server#contribution-guidelines-
>Nextcloud doesn't require a CLA (Contributor License Agreement). The copyright belongs to all the individual contributors. Therefore we recommend that every contributor adds the following line to the header of a file if they changed it substantially: > >@copyright Copyright (c) <year>, <your name> (<your email address>)
Other organisations could still choose to maintain a repo of Synapse/Dendrite that integrates any AGPL code, including all code released by Element.
That might be a better upstream than Element! — but it would take work. For it to happen, someone would need to do and/or fund that work.
It's a shame though because this change feels like it's weaponizing the AGPL to make the code harder to use rather than relying on the AGPL to preserve software freedom, and it's a shame because I think a more nuanced and limited contributor agreement with narrower permissions could potentially have the opposite effect and be a highly positive change and a highly credible commitment to keeping the project Open, without closing off any of the revenue opportunities that Element seems to be chasing.
I will push back a little though on the idea that nothing is different at all. This change also has the side-effect of giving contributors fewer rights over the code they write themselves. It's not clear to me whether the copyright assignment here means that the contributor is also bound by the AGPL for the code they themselves submit. If that's the case, then this is a meaningful reduction of contributor rights. I think the GPL works best when it is a universal mutual agreement by all parties to keep the code Open to everyone under the same terms; not when it is used selectively to close off specific rights of only specific parties.
But as it stands, without a CLA I could write the same code for both Element and a more permissive fork of Element and I could choose to relicense the code I offer Element to allow for the more permissive use. With a CLA, I don't know that I can do that.
Right, that's exactly the controversy, people are scared of the code being relicensed.
Rather than a CLA, a limited license grant from contributors to allow dual licensing but not the transition away from AGPL might potentially be a way to provide that kind of funding and to close off companies building proprietary products on top of Element without contributing back, while simultaneously decreasing the danger of the code being relicensed entirely; which the company is claiming they have no plans to do anyway.
The inclusion of copyleft code into Element that isn't owned by the company is the safety measure, accepting contributor-owned GPL code is a way for companies to credibly signal that they will not move to a source available model in the future. Sure, a separate upstream could be maintained, but unless Element is planning to pull from that upstream repo then a separate upstream is indistinguishable from a hostile fork and an abandonment of Element as the primary contributor. It's not about the repository, it's about whether the flagship implementation of the Matrix server code has the possibility of being turned into a proprietary product.
If we're going to go with a different upstream, what we're saying is that Element is not going to be providing the flagship implementations -- and I don't think people are eager to make that kind of decision.
If it's any consolation, compared to a month ago when everything was permissively-licensed, Element is no more or less able to make a proprietary fork, and everyone else is now less able.