A Contributor License Agreement (CLA) defines the terms under which intellectual property has been contributed to a company/project, typically software under an open source license.

Rationale

CLAs can be used to enable vendors to easily pursue legal resolution in the case of copyright disputes, or to relicense products to which contributions have been received from third parties. CLAs are important especially for corporate open source projects under a copyleft license, since without a CLA the contribution would restrict the guardian as well.

The purpose of a CLA is to ensure that the guardian of a project's outputs has the necessary ownership or grants of rights over all contributions to allow them to distribute under the chosen license, often by granting an irrevocable license to allow the project maintainer to use the contribution; if copyright is actually transferred, the agreement is more normally known as a Copyright Transfer Agreement. CLAs also have roles in raising awareness of IPR issues within a project.

Relicensing controversy

When a CLA requires a contributor to assign unrestricted republishing rights to the project, contributed code can be relicensed at the discretion of the project, even when the CLA does not assign copyright to the project. Prominent open source advocates regard CLAs as dangerous to open source rights.

Examples In 2019 MongoDB used these rights granted by its CLA to achieve a move to a non-open-source license.

In January 2021, the Elasticsearch project used such rights to move the project to a non-open-source license arguing Amazon had been "misleading and confusing the community".

[...] Our license change is aimed at preventing companies from taking our Elasticsearch and Kibana products and providing them directly as a service without collaborating with us.

Our license change comes after years of what we believe to be Amazon/AWS misleading and confusing the community - enough is enough.

We’ve tried every avenue available including going through the courts, but with AWS’s ongoing behavior, we have decided to change our license so that we can focus on building products and innovating rather than litigating [...]

CLAs which restrict relicensing Project Harmony Project Harmony was established by Canonical in 2010 to optionally avoid the problems discussed above. It provides a CLA template-builder. Based on choices made, the CLA will allow the contributor to keep copyright and assign rights to the project (as above) but with various restrictions on relicensing: using the template requires choosing one of the mutually-exclusive options, which range in restrictiveness. A real-world example is the Ubuntu project. The CLA leaves copyright with the contributor and allows the project to relicense the code but with a restriction based on the license the contribution was made under: 2.3 Outbound License

Based on the grant of rights in Sections 2.1 and 2.2, if We include Your Contribution in a Material, We may license the Contribution under any license, including copyleft, permissive, commercial, or proprietary licenses. As a condition on the exercise of this right, We agree to also license the Contribution under the terms of the license or licenses which We are using for the Material on the Submission Date.

Fedora The Fedora Project formerly required contributors to sign a CLA, either as an organization or as an individual. However, this was retired in 2011 and instead contributors must agree to the Fedora Project Contributor Agreement, which is not a license agreement and does not include assignment of copyright.

Users

Companies and projects that use CLAs include: .NET Foundation Adobe Apache Software Foundation Canonical Ltd Clojure Cloud Native Computing Foundation CyanogenMod Diaspora Digia/Qt Project Discourse Django Dojo Toolkit eBay Software Foundation, LLC Subsidiary of eBay Eclipse Elastic Element Facebook Go Google HashiCorp Home Assistant InfluxDB Joomla jQuery Kubernetes OpenBMC Python Meteor Microsoft MuseScore OpenMediaVault OpenStack Puppet Salesforce Sangoma TiddlyWiki TLDR Pages W3C Zed (text editor) Zend Technologies for Zend Framework (1.x series only)

KDE KDE uses Free Software Foundation Europe's Fiduciary Licence Agreement of which (FLA-1.2) states in section 3.3:

However, it is optional and every contributor is allowed not to assign their copyright to KDE e.V.

See also Developer Certificate of Origin Know your customer Open-core model

References

External links Contributor Licence Agreements from OSS Watch ContributorAgreements.org CLA assistant — enables contributors to sign CLAs from within a pull request