想贡献源码?还是先看看怎么签CLA吧
,近日小编看到一篇以开源项目为例来聊 CLA 的文章,特来分享给大家。
以下为文章正文。
自从 ohUrlShortener 短链接系统宣布开源并正式对外发布之后,陆续收到不少朋友问询:有的朋友提了功能需求、有的朋友表示愿意参与共建。本周早些时候,通过某位热心朋友贡献,迎来了第一个 Pull Request 补充了某项功能短缺。
在处理这个 Pull Request 之前,我正在考虑关于 CLA 的事情,并着手开始编写相关内容。没想到适用场景,出现的如此之快。那么,今天就来跟大家说说,开源项目所说的 CLA 到底是什么。
01
—
Contributor License Agreement
CLA 的全称是 Contributor License Agreement ,亦即「贡献者许可协议」。它主要是开源项目与贡献者之间的一些约定。在这样的一份协议中,开源项目(管理者或贡献的接受者)与贡献方之间,需要通过协议的方式做一定的约定,区分双方的权力和义务等。比如,ohUrlShortener 项目的 CLA协议内容如下:
ohUrlShortenerContributorLicenseAgreement
首先,ohUrlShortener 感谢您的支持和贡献,并向您表达崇高的敬意。
本贡献者协议(以下简称“本协议”)由您与 ohUrlShortener 签署。您通过签署本协议同意接受本协议并受其约束。您基于本协议授予 ohUrlShortener 的权利自您首次向 ohUrlShortener “贡献” 之日起生效(其中包括您在同意本协议条款和相应条件之前已提交“贡献”的情况在内)。
您同意如下条款:
一、定义
“您” 系指与 ohUrlShortener 签订本协议的著作权人、或经授权人授权的自然人或法人单位、组织等。
“贡献” 系指有您自愿提交并且被并入或存档于 ohUrlShortener 之中的代码、文案的或其他原创作品以及任何对现有作品进行修改或补充的原创作品(以下简称“作品”)。本条款定义的“提交”系指以电子、口头或书面交流任意形式发送给 ohUrlShortener 接受者的内容。
二、著作权许可授权
您基于本协议,特此就您(不论以源代码或目标代码形式)提交的“贡献” 永久的、全球性的、非独占的、免费的、免授权费的、不可撤销的、无附加限制的著作权授予 ohUrlShortener 的接受者。ohUrlShortener 的接受者可以复制、修改、开发衍生作品、公开展示、公开表演、再许可和分发您的“贡献”和相关衍生作品。
三、专利权许可授权 您基于本协议,您特此授予 ohUrlShortener 的接收者永久的、全球性的、非独占的、免费的、免授权费的、不可撤销的(本条款下述情形除外)专利许可,以制造、委托制造、使用、许诺销售、销售、进口和以其他方式转让其“贡献”。如果任何实体针对您或其他实体提起专利诉讼(包括诉讼中的交叉诉讼或反诉),指控您“贡献”或前述结合构成直接或间接专利侵权,则您根据本协议就该“贡献”或“作品”授予该实体的所有专利许可自该实体提起该诉讼之日起终止。
四、如您拟提交非原创作品,您可以将该部分内容与您“贡献”进行区分后提交 ohUrlShortener,并根据您所知标识该部分内容的来源以及任何许可或其他限制的完整细节(包括但不限于相关专利、商标和许可协议)内容,并以显著方式注明“代第三方提交:[此处注明第三方名称]”
五、除非您自愿,否则您无需为您“贡献”提供支持服务。即您既可以选择不提供支持服务,也可以选择免费或收费提供支持服务。除非适用的法律要求或经书面同意,您提供“贡献”仅是“按原样”提供,不附带任何明示或默示担保及条件(包括但不限于任何权利担保、非侵权保证,适销性保证、适用性保证或条件)
六、除本协议明确约定外,您在提交“贡献”时无任何明示或默示担保。无论基于何种法律理论(即使已告知可能有此类损害赔偿),您不对任何因使用您所提交的“贡献”或前述结合而引发的(无论何种原因所致)直接或间接损害承担责任。
七、您同意,在遇到任何将导致本协议项下承诺不准确的事实或情况时将及时通知 ohUrlShortener 接受者。
八、本协议(含通过引用并入本协议的所有文件),构成缔约方之间就本协议议题的完整且排他性协议,废止并替代针对此议题任何或所有之前或同期的书面或口头讨论、谈判、备忘录和其它协议。
签名:
通过上述的协议内容能够看出,一般情况下 CLA 的核心大致是:
- 约定协议签署人的身份及「贡献」的含义
- 约定「贡献」产生之后,「接受者」获得了不可撤销的、免费的、全球性的、非独占的、免授权费的使用权
- 约定「贡献」中如果存在专利的话,「接受者」获得了免费的、不可撤销的、免授权费用的、全球性的、非独占的使用权
- 约定「贡献」的版权属于贡献者(贡献者仍然要在源代码中加入自己的注释内容,留下姓名和版权信息等)
为了方便签署协议,有时候 CLA 也可以分为「个人版」和「企业版」来区分。个人版主要提供给个人开发者签署,就像 ohUrlShortener 上述协议内容一样。但是,假如某个企业或者组织需要签署的话,就没有必要与该企业名下的所有个人一一签署协议了。开源项目(接受者)一般情况下可以提供一个说明,直接与某公司签署协议(具体内容可以约定以某邮箱后缀来识别贡献者身份等),由公司维护白名单提交给开源项目,方便对贡献进行识别管理。
02
—
一定要有 CLA 才可以开源吗?
03
—
CLA 并不能免除所有纠纷
世界上大多数开源项目都有 CLA 协议内容,但这不能算是一种标准,而且这些年来也不乏各种反对的声音,也有一种声音认为 CLA 将会彻底终结开放开源的精神。以下两个事件是业界发生过较有趣的事件:
- 2019年 MongoDB 宣布将其开放协议由 GNU AGPLv3 迁移到 Server Side Public License 协议
- 2021年 Elasticsearch 宣布将其开放协议由 Apache License 2.0 迁移到 Server Side Public License
04
—
除了 CLA 还有 DCO
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
借鉴某位网友的翻译了解下大致内容:
该贡献全部或部分由我创建,我有权根据文件中指明的开源许可提交;要么 该贡献是基于以前的工作,这些工作属于适当的开源许可,无论这些工作全部还是部分由我完成,我有权根据相同的开源许可证(除非我被允许根据不同的许可证提交)提交修改后的工作;要么 该贡献由1、2、或 3 证明的其他人直接提供给我,而我没有对其进行修改 我理解并同意该项目和贡献是公开的,并且该贡献的记录(包括我随之提交的所有个人信息,包括我的签字)将无限期保留,并且可以与本项目或涉及的开源许可证保持一致或者重新分配https://jimmysong.io/blog/open-source-cla/
有奖问答
学霸带你入门强化学习
关于强化学习,你有哪些疑问呢?
欢迎前来提问,还有技术书籍赠送哦
扫码立即参与问答
觉得不错,请点个在看呀
关键词
开源项目
代码
项目
作品
贡献者
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。