65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.59/5 (9投票s)

Mar 23, 2008

GPL3

8分钟阅读

viewsIcon

22957

选择您的开源许可证

引言

如果您在 Google 上搜索“选择开源许可证”,您很快就会发现

  • 最好的网站并不是排在最前面的那些。几乎没有网站提供实际信息。
  • 大多数文章都是比较性质的,但它们都是在 GPLv3 发布之前撰写的。
  • 很少有话题能在各种公告板上引发如此多的激烈讨论和争论。
  • 深入挖掘,您会发现特定的术语使得通过 Google 发现信息变得困难。
  • 大约有80OSI 批准的许可证,还有数百个其他的许可证。

这份单页旨在帮助您做好功课。在继续深入之前,请务必阅读此内容:IANAL TINLA

1. 我应该选择哪个许可证?我可以赚钱吗?我如何阻止“搭便车的人”在我身上赚钱?我可以直接发布它吗?

抱歉,目前这些都不是您应该问的问题。至于赚钱,没有任何东西可以阻止人们通过开源赚钱(例如,提供支持、打包或集成服务)。

许可证问题是最简单的,但也是您最后应该问的问题。最终,3 个关键问题将帮助您做出决定:

  • 这是一个广为人知/广泛使用的许可证吗?
  • 它是否符合我的目标?
  • 它与其他代码兼容吗?

别担心,您将在本文档末尾找到一些直接答案。但首先,先了解基础知识。

2. 我可以在哪里找到可靠的信息来源?

花几个小时浏览这些文档;这将比盲目地在 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. 我可以选择不选择许可证,而是发布我的代码,说它是公共领域或类似的东西吗?

对于公共领域,答案是否定的。主要有两个原因:

  1. 在某些司法管辖区,您不能在没有明确许可证的情况下放弃您的权利。
  2. 您需要通常的“按原样”/无保证条款来保护自己免受诉讼。

10. 最后,我应该选择哪个许可证?

如果您到现在还没有答案,您应该回到起点。但如果您仍然不确定,这里有 3 个简单且相当不错的选择,取决于您的愿望:

  • 我不在乎(而且永远不会在乎),我想把我的软件发布给全世界,就这么简单。除了发布到公共领域,还有什么选择?

选择 X/MIT 许可证 [许可证文本:OSI 标准文本,更多信息:维基百科]

  1. 它非常简短(因此易于理解并包含在文件中)
  2. 它具有许可性,但限制了您的责任
  3. 兼容 GNU GPL(最常用的许可证)
  • 我想贡献,并且我希望社区也回馈。我不想任何人修改和分发我的代码而不回馈社区。

选择 GNU GPL 许可证 [许可证文本:OSI 标准文本,更多信息:维基百科]

  1. GNU GPL 是最常用的许可证(许多现有项目都有“GPL v2 或更高版本”的说明,最显著的例外是 Linux 内核,它在多年前就被标记为“仅 GPLv2”)
  2. 新版本 GNU GPLv3 修复了 GNU GPL v2 的一些“错误”,并增加了对软件专利和 DRM 技术滥用的保护。
  3. 之后,您始终可以通过销售/咨询/打包等方式来赚钱,但您应该意识到,要将 GPL 许可的代码嵌入专有软件而不污染(从而在分发时被迫披露)专有软件的源代码是极其困难的。

注意:Microsoft CodePlex 可能不允许您选择 GPLv3。请选择其他平台。

  • 我想贡献,并且我希望社区也回馈。但我还希望有一天能从中建立一个事业。

选择 GNU Lesser GPL 许可证 [许可证文本:OSI 标准文本,更多信息:维基百科]

  1. 它允许您链接几乎任何软件,包括专有软件,而不会导致 GPL 污染(这解释了为什么 FSF 本身反对其使用)
  2. JBoss 这样的大家伙使用过它 
  3. 在选择商业模式方面,它是最灵活的。GNU LGPL 甚至没有 GNU GPL 的“第 3 条”(反 DRM 内容)。

结论

  • 做好您的功课,不要低估您事先需要做的研究工作。
  • 不要争吵,但如果您愿意,可以在下方留下您的评论和意见(也包括赞扬)。
  • 我不是律师。如果您有疑问,真的应该咨询一位(事实上是几位)。理想情况下,您需要三类律师在您身边:
    1. 一位劳动律师
    2. 一位知识产权律师(许可 + 专利 + 商标)
    3. 一位婚姻律师:日间工作 + 开源写作 + 社区管理 = ?

祝您好运!:-)

blog.milkingthegnu.org

© . All rights reserved.