选择开源许可证而不大脑宕机(或被洗脑)






4.59/5 (9投票s)
选择您的开源许可证
引言
如果您在 Google 上搜索“选择开源许可证”,您很快就会发现
- 最好的网站并不是排在最前面的那些。几乎没有网站提供实际信息。
- 大多数文章都是比较性质的,但它们都是在 GPLv3 发布之前撰写的。
- 很少有话题能在各种公告板上引发如此多的激烈讨论和争论。
- 深入挖掘,您会发现特定的术语使得通过 Google 发现信息变得困难。
- 大约有80个OSI 批准的许可证,还有数百个其他的许可证。
这份单页旨在帮助您做好功课。在继续深入之前,请务必阅读此内容:IANAL TINLA。
1. 我应该选择哪个许可证?我可以赚钱吗?我如何阻止“搭便车的人”在我身上赚钱?我可以直接发布它吗?
抱歉,目前这些都不是您应该问的问题。至于赚钱,没有任何东西可以阻止人们通过开源赚钱(例如,提供支持、打包或集成服务)。
许可证问题是最简单的,但也是您最后应该问的问题。最终,3 个关键问题将帮助您做出决定:
- 这是一个广为人知/广泛使用的许可证吗?
- 它是否符合我的目标?
- 它与其他代码兼容吗?
别担心,您将在本文档末尾找到一些直接答案。但首先,先了解基础知识。
2. 我可以在哪里找到可靠的信息来源?
- 快速了解开源基础知识
- 开放源代码倡议 (OSI)
- 自由软件基金会 (FSF)
- Producing open source software,Karl Vogel 撰写的一本极其宝贵(且免费)的电子书,介绍如何开始一个 FOSS 项目:(一些链接已过时,但总体而言,这本书确实是一座金矿)。
- 最新:对 GNU GPLv3 的简短简化解释
花几个小时浏览这些文档;这将比盲目地在 Google 上搜索大量关于许可证的矛盾信息更有价值。
3. 我现在想要什么?将来呢?
弄清楚您具体想要实现什么。您为什么要开源这个项目?您想从中赚钱吗?您想回馈社区吗?要务实。您能投入多少时间?您是发布一个很棒的库,还是为未来的初创公司兼职?
4. 我应该问我的雇主或学校吗?
这是一个棘手的问题,因为询问本身可能会损害您与雇主的关系,所以要谨慎。另一方面,开源已经成为一个时髦的词,您应该尝试强调它对雇主的所有好处。谁知道呢,您的公司可能已经有一个开源开发人员计划了。
总的来说,这涉及就业和知识产权 (IP) 问题。重新阅读您与公司签订的协议(包括保密协议)。运用常识:不要在工作时间开发,不要使用雇主提供的网络或机器,不要选择一个竞争性项目或与您公司业务过于接近的项目。您可以在这里找到一些信息(搜索 authorization),但如果您有任何疑问,应咨询律师。
请记住,与公司的任何协议都必须涵盖知识产权和就业两个方面。必须以书面形式,并且由您知道有权签发的人(例如,在大多数情况下,仅仅项目经理的电子邮件是不够的)来执行。如果您是学生,同样适用:“您的”知识产权可能归您的学校或大学所有。
在任何情况下,尤其是在您被告知没问题的情况下,您都应该要求书面确认;例如,总结项目并提醒对方他们给您的口头授权。坚定地要求在您的电子邮件中得到答复:您需要一个明确的答案。如果答案是否定的,但您仍然想继续,您应该咨询律师。
5. 运行一个开源项目需要什么?我如何实际开始?
您应该花一些时间阅读(2.)中的资源。您将了解到社区生态系统和相关技术。当然,您还会读到关于如何开始的内容。
6. 我想从中赚钱,哪种“商业”模式最好?
您可以在这里找到一些灵感:10 种开源商业模式策略。
请注意,从根本上说,双重许可模式(开源 + 专有)通常是单向的:社区为项目做出贡献,但公司/项目不被强制要求回馈。通常,双重许可的项目在吸引新开发人员方面远不如常规的开源项目成功。
7. 我是否需要担心 CLA 和/或 CA?
贡献者许可协议 (CLA) 和版权转让 (CA)?是的,您需要。基本上,版权转让能够实现知识产权的执行(例如,您希望一个实体来维护项目版权,如有必要)和控制(例如,将来,您可能希望项目更改许可证或采用双重许可)。您可以要求所有贡献者将所有版权转让给您自己,或您信任的其他人或组织(GNU、Apache、Eclipse 等)。当然,如果您将您的权利转让给您自己以外的实体,您就不能再使用双重许可模式了。
8. 玫瑰里面有什么?我需要关心商标和命名吗?
是的,命名很重要。记住,您想吸引人们。商标也很重要;尤其是在您将来想创办一家公司的情况下。有人说 SUN 以 10 亿美元收购 MySQL 的部分原因在于 MySQL 拥有一个成熟的品牌名称。
想想 FSF 如何提出“自由软件”这个术语,它被 OSI 的“开源”这个术语完全冲淡了,原因之一是它对使用它的企业来说似乎“威胁性”较小。(尽管它们并不完全相同,这更多是一个意识形态问题)。
此外,如果您不得不每次都解释“自由如同自由,而非免费啤酒”?这清楚地表明您的命名有问题。
9. 我可以选择不选择许可证,而是发布我的代码,说它是公共领域或类似的东西吗?
对于公共领域,答案是否定的。主要有两个原因:
- 在某些司法管辖区,您不能在没有明确许可证的情况下放弃您的权利。
- 您需要通常的“按原样”/无保证条款来保护自己免受诉讼。
10. 最后,我应该选择哪个许可证?
如果您到现在还没有答案,您应该回到起点。但如果您仍然不确定,这里有 3 个简单且相当不错的选择,取决于您的愿望:
- 我不在乎(而且永远不会在乎),我想把我的软件发布给全世界,就这么简单。除了发布到公共领域,还有什么选择?
选择 X/MIT 许可证 [许可证文本:OSI 标准文本,更多信息:维基百科]
- 它非常简短(因此易于理解并包含在文件中)
- 它具有许可性,但限制了您的责任
- 它兼容 GNU GPL(最常用的许可证)
- 我想贡献,并且我希望社区也回馈。我不想任何人修改和分发我的代码而不回馈社区。
选择 GNU GPL 许可证 [许可证文本:OSI 标准文本,更多信息:维基百科]
- GNU GPL 是最常用的许可证(许多现有项目都有“GPL v2 或更高版本”的说明,最显著的例外是 Linux 内核,它在多年前就被标记为“仅 GPLv2”)
- 新版本 GNU GPLv3 修复了 GNU GPL v2 的一些“错误”,并增加了对软件专利和 DRM 技术滥用的保护。
- 之后,您始终可以通过销售/咨询/打包等方式来赚钱,但您应该意识到,要将 GPL 许可的代码嵌入专有软件而不污染(从而在分发时被迫披露)专有软件的源代码是极其困难的。
注意:Microsoft CodePlex 可能不允许您选择 GPLv3。请选择其他平台。
- 我想贡献,并且我希望社区也回馈。但我还希望有一天能从中建立一个事业。
结论
- 做好您的功课,不要低估您事先需要做的研究工作。
- 请不要争吵,但如果您愿意,可以在下方留下您的评论和意见(也包括赞扬)。
- 我不是律师。如果您有疑问,真的应该咨询一位(事实上是几位)。理想情况下,您需要三类律师在您身边:
- 一位劳动律师
- 一位知识产权律师(许可 + 专利 + 商标)
- 一位婚姻律师:日间工作 + 开源写作 + 社区管理 = ?
祝您好运!:-)