When contributing to a FLOSS project, some companies/organizations require a Contributor License Agreement (CLA) that is legally binding and gives you the rights to contribute code but also at the same time allowing the copyright holder to take your code and take complete credit for it while passing liability to you.

If they want, they can re-license your code to a non-free one without your control as they own your work. Canonical is known to be shady with their CLAs as they leverage the GPL to force you to use free software but then change it to non-free code since they have all the power to do so as the original copyright holder. Some say that Upstart may have been more popular and systemd would have never existed if Canonical was better with contributed code and them being less draconian with forcing their own copyrights.

On the other hand, projects like Docker and the Linux kernel use the Developer Certificate of Origin approach (https://blog.docker.com/2014/01/docker-code-contributions-require-developer-certificate-of-origin/) where you basically accept the certificate one time and don't have to go through the legal approach that a CLA may impose. It is simple and out of the way, but many FLOSS companies don't do this approach so it isn't that popular.

So from your experiences, what is your preferred approach?

Reply via email to