为什么开源许可证泛滥?

时间:2008-08-22 18:20:35

标签: open-source licensing

开源许可证的扩散是否只是生活在NYI(Not Invented Here)综合症的程序员的另一个例子?我知道一些大型许可证(例如,GPL,Apache,BSD)之间存在一些重大差异,但是当您开始寻找许多项目来创建自己的许可证时。为什么呢?

参考文献:

http://en.wikipedia.org/wiki/Open_source_licenses
http://developer.kde.org/documentation/licensing/licenses_summary.html

8 个答案:

答案 0 :(得分:18)

这是一个众所周知的问题:开源计划有License Proliferation Committee,建议使用“受欢迎且广泛使用或拥有强大社区的八个许可证中的一个。”

  1. Apache License,2.0
  2. 新BSD许可证
  3. GNU通用公共许可证(GPL版本2或3)
  4. GNU Library或“Lesser”通用公共许可证(LGPL版本2.1或3)
  5. 麻省理工学院执照
  6. Mozilla Public License 1.1(MPL)
  7. 共同开发和发行许可证
  8. Eclipse公共许可证
  9. 其他许可证分类为:“冗余”(例如,NCSA许可证与BSD冗余),“特殊用途”或“不可重复使用”(例如,NASA许可证,Apple公共源许可证),“取代“(例如,MPL v1.0),等等。

答案 1 :(得分:5)

拥有自己的许可证(通常是现有许可证的一种变体)可让您完全控制它。我怀疑像GPL2和GPL3之间的巨大变化(特别是如果你处理网络服务)之类的事情会让人们对一个人无法控制的许可表示许可。

答案 2 :(得分:4)

我还认为某些许可证与某些意识形态密切相关。许多知识共享许可用户对版权立法持相同态度。另一方面,GPL在Linux开发方面有着悠久的历史。个人或组织如果不同意通常附有特定许可的哲学,可以选择寻找替代方案。

答案 3 :(得分:3)

  

拥有自己的许可证(通常是   其中一个现有的变体)   让您完全控制它。一世   怀疑像巨大的东西   GPL2和GPL3之间的变化   (特别是如果你处理网络   服务)使人们怀疑   许可协议以外的协议   一个人的控制权。

我认为这在某种程度上是正确的。但是,根据GPL许可时,您可以选择“版本2”,“版本2或更高版本”。如果您对未来许可证的更改方式持谨慎态度,您可以自由地说它是根据该特定版本获得许可的。

答案 4 :(得分:1)

  

开源许可证的扩散是否只是生活在NYI(未发明在这里)综合症的程序员的另一个例子?

恕我直言,是的,绝对的。以Microsoft PL许可证为例。这完全是多余的。不过,我非常喜欢那个,因为它的措辞非常明确,比大多数其他许可证短得多,并提供了很大的自由。

另一方面,制定新许可证充满了风险,因为在实际的法庭上证明其价值之前,不值得撰写论文(如果有的话)。

恕我直言,很少有值得了解和使用的许可证,其中包括GPL(我个人不喜欢),LGPL,BSD和Ms-PL,当然还有Creative Commons许可证,但这些不是适合软件。

答案 5 :(得分:1)

  

我认为这在某种程度上是正确的。但是,根据GPL许可时,您可以选择“版本2”,“版本2或更高版本”。如果您对未来许可证的更改方式持谨慎态度,您可以自由地说它是根据该特定版本获得许可的。

但是,这会打开一种不同的蠕虫病毒。

如果您是根据GPL2 仅发布并且GPL3发布而您喜欢所做的更改,那么理论上您将不得不绕过所有的贡献者和获得他们的一致批准,以更改其代码发布的许可证。所需要的只是其中一个说“不,我只根据GPL2许可我的捐款并且拒绝允许GPL3” - 或者他们可以不回复 - 来破坏你提出的许可证更改。

答案 6 :(得分:1)

我不认为人们会理解您经常无法将代码与不同的许可证链接,例如,您可以将任何GPLv2代码与任何其他GPLv2代码组合在一起。

答案 7 :(得分:0)

  

如果您仅在GPL2下发布并且   GPL3出来了你喜欢的   它的变化,理论上是你   将不得不四处走动   贡献者并获得他们的一致   批准更改他们的许可证   代码发布于。一切都需要   是其中一个说“不,我只   根据GPL2许可我的贡献   并拒绝允许GPL3“ - 或他们   可以不回复 - 破坏你的   建议更改许可证。

这提出了一些其他问题。您是否计划接受外部开发人员的补丁?当您接受补丁时,您是否还需要补丁提交者来移交版权?如果他们不转让版权,那么如何允许您更改自己的许可以供将来考虑。如果有一个拥有自己许可证的项目,我打算向它发布一堆代码,它表示它是根据XYX版本N或任何未来版本获得许可,那么说控制该许可证的人赢了“在未来的版本上完成180,并使其成为完全封闭的源?