Contributor License Agreement

Background

2024-06-12 The FreePBX CLA process has been updated with the project’s move to GitHub for all development. If you’ve filled out the CLA PDF and emailed in the past, you are asked to please go through the process outlined here to update the CLA on file.

First of all, what exactly is a Contributor License Agreement (hereafter referred to as CLA)?

Those of us who’ve been employed as Software Engineers are already familiar with CLAs, although in the corporate world they are generally called an “Intellectual Property Assignment Agreement”. In many ways a CLA is nothing more than that, but specifically geared towards Open Source projects.

A CLA is a legal document in which you state you are entitled to contribute the code/ documentation/ translation to FreePBX and are willing to have it used in distributions and derivative works. This means that should there be any kind of legal issue in the future as to the origins and ownership of any particular piece of code, then FreePBX has the necessary forms on file from the contributor(s) saying they were permitted to make this contribution.

The CLA also ensures that once you have provided a contribution, you cannot try to withdraw permission for its use at a later date. People and companies can therefore use that software, confident that they will not be asked to stop using pieces of the code at a later date.

How

The process to record a CLA first requires a GitHub account which is available to all for free. All OSS development at Sangoma is centralized at GitHub. To contribute to the FreePBX project, we ask that you carefully review the text of the agreement by clicking the link here:

https://oss-cla.sangoma.com/freepbx/framework

Use the button at the bottom to indicate your agreement with the CLA text, which will require that you login using your GitHub credentials. Once done, that GitHub user account can make Pull Requests against all of Sangoma’s OSS projects.

Why

This page was created to maintain a simple way to explain the need for Contributor License Agreements and why they are so important. It is key to note that the FreePBX project is not the first to do this and certainly will not be the last. Contributor License Agreements (CLAs) can be used to enable vendors to easily pursue legal resolution in the case of copyright disputes or to relicense products from which contributions have been received from third parties.

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. In the case of FreePBX this means that, you, the contributor will assign the copyright in all contributions to the project owner, which is Sangoma Technologies Corp. 

Even the Free Software Foundation (the creators of the GPL license used within FreePBX) require you to sign a CLA to submit code back to the project. See for yourself:

But Foo Project Does Not Require an Agreement!

Just because other projects do not require a CLA does not mean every project besides FreePBX does not require a CLA. In no particular order here is a list of some famous and well known companies that also require a code submission agreement to contribute to their source code.

  • Google

  • Openstack

  • Oracle

  • Apache Software Foundation

  • Bacula, Canonical Ltd

  • Chef

  • Diaspora

  • Digia/Qt Project

  • Discourse

  • Django

  • Dojo Toolkit 

  • Eclipse

  • Free Software Foundation

  • Go

  • JBoss Netty

  • Joomla

  • jQuery

  • Meteor

  • Node.js

  • OpenMediaVault

  • OpenStack

  • Zend for Zend Framework

Our agreement is very similar to agreements you'd have to fill out if you want to make patches or submit code to any of the companies or projects above.

Appendix

Sections Attributed to:

If you'd like to see some examples of other legal language for Contributor License Agreements then you can certainly checkout these two:

Return to Documentation Home I Return to Sangoma Support