什么是开源贡献者协议
CLA,全称 Contributor License Agreement(贡献者许可协议),简单来说就是项目接收贡献者提交的 Pull Request
之前,需要贡献者签署的一份协议,协议只需签署一次,对该贡献者的所有提交都生效。
Gitee 已原生支持 CLA 协议的管理、签署和合规审查过程。 该功能目前已面向 Gitee 上的「组织」开放,组织管理员可通过
组织主页
->设置
->CLA 管理
进行 CLA 的管理。
CLA 由项目所有方自行定义,在细节上有大大小小的差异,没有统一的标准,但大致包括以下内容:
- 关于签署该 CLA 的主体和贡献的定义;
- 授予著作权和专利许可给拥有该软件知识产权的公司或组织;
- 签署者保证依法有权授予上述许可 ;
- 所有的贡献内容均为个人版权所有,或经过版权所有者的授权,对于贡献内容造成的侵权并不知情;
- 贡献内容的免责声明;
- 说明贡献者提交非原创作品应该采用的方式;
- 保证在获悉任何方面不准确的事实或情况之时通知签约方。
CLA 跟开源许可证不同,开源许可证也就 100 多种,CLA 那是成千上万种,每一个项目都有自己的 CLA。不过这些 CLA 之间也有共同点,因为大部分都是从 Apache 软件基金会制定的 CLA 演变过来的。其条款内容冗长,且里面涉及很多法律术语,除了律师之外,大部分普通人都很难理解这些术语代表什么意思。如果你要弄懂,可能得花时间花钱找律师咨询。
没有签署 CLA 会怎么样?
没有签署 CLA,则表示贡献者没有授权,如果企业或组织要重新签署 CLA,或更换开源许可证,又或者起诉他人侵权,总之所有需要有版权才能做的事情,那么都必须一一通知贡献者并取得对方同意。
对于贡献者较少的开源软件来说,这很容易;倘若是一些大型和长期项目,这个过程可能会耗费很长时间,因为企业或组织要找的可能不仅仅是数量众多的贡献者,还有他们的继承人。
相关案例
2015 年,LLVM 社区发起了对代码进行重新授权的提案,希望能从现有的 NCSA 许可证更改为 Apache 2.0 License。六年过去了,这项工作还在进行中。LLVM 社区正在追踪一些过去的贡献者,以收集他们对协议变更的认可。目前有 94% 以上的旧代码获得重新许可的批准,预计 2023 年可以接近 100% ,届时就可以合法地变更许可证。
听起来有些不可思议,但没办法,大家都是这这么做的,Mozilla 也是花了数年时间(2001-2006 年)重新授权 Firefox、Thunderbird 和相关软件。