What's wrong with CLA?
I've contributed to project with CLA. Have been using them and then wanted a feature and the project accepted my patch.
Ther are still many people contributing to project with CLA.
In addition to what buzzy_hacker has written, in a normal FOSS project A I can ask maintainer X to include a feature from a compatible FOSS project B written by programmer Y. The maintainer can do it themselves, or I can adapt the code myself and submit a patch, referencing the original authors. That's how FOSS is supposed to work.
In a CLA-restricted project, there's only one entitity that can contribute copyleft code. Everyone else must donate the code to them, and they forbid themselves from using other people's copyleft code, because they can't relicense it.
> If there are multiple authors of a copyrighted work, successful enforcement depends on having the cooperation of all authors.
> In order to make sure that all of our copyrights can meet the recordkeeping and other requirements of registration, and in order to be able to enforce the GPL most effectively, FSF requires that each author of code incorporated in FSF projects provide a copyright assignment
FSF is not the average recipient of copyright assignments - I'd be much more comfortable giving copyright assignment to FSF than to pretty much any other entity:
* They're much less likely to rugpull on the contributors and change the licence to something non-free: even pessimistically assuming their leadership got subverted somehow, doing something like this would pretty much be the deathknell to FSF. So there's a known, very high cost to the negative side of CLAs.
* They're much more likely than the average project or corporation to actually use the positive benefits of copyright assignment, to pursue legal action and enforce the Free licences the way it empowers them to.
> give a single entity, the project steward, a special license distinct from the one that everyone else gets, so that they may use your contribution in any way they please
But that's not a justification.
The project steward is contributing more than 90% of the code, maintain the infrastructure and servers, do the promotion, ...
So yeah, they may give some condition to accept your contribution, but I think that's fair.
They don't force you to contribute. And depending of the motivation for your contribution, you get what you want, eg, the feeling of contributing to an open source project presumably used by many people, or having that entity to maintain your patch for free.
I mean, you can fork if you like, but the likelihood that your fork is getting used is not that big, and mean more work from your side to maintain the change.
A CLA is what legally allowed Oracle to release the once copyleft OpenSolaris under a closed source license, including code contributed outside of the previous owner company, Sun. CLA is a tool for companies to change the deal after the deal.
There's a famous talk about this, which resulted in many us referring to Oracle and its billionaire CEO as the "lawn mower."