本文目录导读:

这是一个非常经典且重要的开源法律问题。开源项目的代码合并后,版权(著作权)仍然归原作者所有,但项目整体会基于其采用的许可证(License)进行授权。
具体归属和权利界定,取决于以下几个关键因素:
核心原则:版权不因合并而转移
- 作者保留版权:每一位贡献者(提交代码的人)对其贡献的代码片段、文件或修改,自动享有著作权,除非贡献者通过明确的书面协议(如贡献者许可协议,CLA)将其版权转让给项目或某个组织(如Apache基金会、Linux基金会),否则版权始终属于原贡献者。
- 项目拥有“整体”版权:项目作为一个整体(例如一个软件的发布版本、一个仓库的代码库),其版权通常属于项目维护者或项目所有者(如开源基金会),但这并不意味着他们拥有所有代码的版权,而是指他们拥有对项目整体进行发布、管理和维权的权利。
关键影响因素:开源许可证和贡献协议
开源许可证:项目的“宪法”
许可证决定了代码如何被使用、修改和分发,贡献者提交代码,即默认同意其贡献的代码遵循该项目所采用的许可证。
- 弱/强互惠许可证(如 GPL、AGPL、LGPL):要求衍生作品(即包含该代码的整个程序)也必须使用相同或兼容的许可证,贡献者的版权受到项目整体许可证的约束。
- 宽松许可证(如 MIT、Apache 2.0、BSD):允许其他人(包括商业公司)几乎无条件地使用、修改和分发代码,甚至可以在闭源产品中使用,贡献者的版权依然存在,但通过许可证授予了广泛的使用权。
- 版权共享(Copyleft)与允许性(Permissive):在互惠许可证下,贡献者贡献的代码会促使更多的代码也以同样的方式共享,形成“共享与延续”的生态,而在宽松许可证下,贡献者的代码可能被用于闭源项目,贡献者对此没有控制权。
贡献者许可协议:可选的“权利集中”
许多大型成熟的开源项目(如Kubernetes、TensorFlow、Linux Kernel、React)会要求贡献者签署CLA。
- 版权加许可协议:贡献者明确将贡献代码的版权(或使用权、专利许可等)授予项目维护者(或基金会)。
- 转让版权:某些CLA(特别是基金会的标准协议)会要求贡献者将版权转让给项目实体,Apache软件基金会或Eclipse基金会要求贡献者签署协议,将代码的版权转让给基金会,这样,基金会就拥有项目所有代码的版权,可以统一处理许可证、维权和商业授权问题。
- 保留版权但授予许可:更常见的是,贡献者保留版权,但通过CLA授予项目维护者一个不可撤销的、永久的、全球性的、免版税的版权许可,允许项目维护者以项目许可证的方式再分发、修改甚至重新许可(从GPL切换到MIT)。这种模式是主流,既保护了贡献者的署名权,又保证了项目维护的灵活性。
具体场景分析
| 场景 | 代码版权归属 | 项目整体版权 | 用户/项目维护者的权利 |
|---|---|---|---|
| 无CLA的宽松许可证项目(如使用MIT) | 每位贡献者保留 | 项目维护者拥有整体版权(如商标、项目名称),但代码版权分散。 | 任何用户都可以按照MIT许可证自由使用、修改、分发,维护者不能阻止任何人(包括商业公司)使用代码。 |
| 无CLA的GPL项目 | 每位贡献者保留 | 项目整体受GPL约束。 | 分发衍生作品(例如包含该代码的软件)时,必须开源并遵循GPL。 |
| 有CLA的项目(如Apache 2.0+CLA) | 贡献者保留,但通过CLA授予项目实体永久、不可撤销的许可。 | 项目实体(如Apache基金会)拥有对项目进行统一许可、变更许可证、处理侵权诉讼的完整权利。 | 用户按照项目的Apache许可证使用,项目实体可以决定更新许可证(例如从Apache 2.0切换到一个新的版本)。 |
| 贡献者转让版权的项目(如某些基金会项目早期) | 版权归属项目实体(如Linux基金会、Eclipse基金会)。 | 项目实体是唯一版权所有者。 | 项目实体可以完全控制项目,包括决定是否更变许可证、是否允许商业使用、是否进行法律诉讼。 |
常见陷阱与风险
- 许可证不兼容:如果你合并了一个使用不同许可证(尤其是互惠与宽松之间)的代码,可能会导致项目整体许可证被污染(将MIT代码合并入GPL项目,没有问题;但将GPL代码合并入MIT项目,会导致MIT项目违反GPL,必须整体改为GPL)。
- 专利风险:贡献者贡献代码的同时,也可能会使得其拥有的专利(尤其是标准必要专利)无法再向项目使用者主张,这也是CLA设计的重要目的之一。
- 署名争议:虽然贡献者的作者身份通常通过Git记录保留,但如果项目维护者在发布时没有正确列出所有贡献者,或者项目被重新发布时遗漏了作者信息,可能涉及署名权纠纷。
- 商业公司贡献:公司员工贡献代码时,版权通常属于其雇主(根据职务作品条款),如果公司没有明确的开源贡献政策,项目维护者可能需要与公司签署CLA。
总结与建议
-
对于个人贡献者:
- 你的代码版权永远是你的,你贡献时,默认授权项目使用。
- 如果项目要求你签署CLA,仔细阅读条款,特别是是否要求转让版权(强烈建议不要签,保留只会更好),还是仅授予许可。
- 使用Git的Commit记录保留你的作者信息。
- 避免将GPL代码贡献给MIT项目。
-
对于项目维护者:
- 强烈建议: 如果你的项目想商业化、想被大公司采用、或者规模很大,制定并强制要求贡献者签署CLA。
- 声明项目使用的许可证(在仓库根目录下的
LICENSE文件中明确)。 - 明确你的版权归属声明(在
CONTRIBUTING.md或仓库README中说明)。 - 如果项目将来希望更改变量许可证(例如从MIT切换到Apache),你必须获得所有贡献者的同意(或通过CLA获得授权),没有CLA的旧项目,变更许可证极其困难。
一句话总结: 代码合并后,版权不转移(除非签署版权转让的CLA),贡献者仍拥有其贡献代码的版权,但项目整体受许可证约束。项目维护者通过许可证和CLA来管理整个项目的权利授予和法律风险。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播