关于许可:为什么开源许可激增?

关于许可:为什么开源许可激增?

Why the proliferation of open source licenses?

开源许可证的增加仅仅是程序员遭受NYI(此处未发明)综合症的另一个例子吗? 我知道某些大型许可证(例如GPL,Apache,BSD)之间存在一些较大的区别,但是当您开始看到许多项目在创建自己的许可证时,就存在很大的差异。 为什么?

参考文献:

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


这是一个已知的问题:开放源代码计划(Open Source Initiative)拥有一个许可证扩散委员会,该委员会建议使用"流行且广泛使用的社区或有强大社区的"八个许可证之一。

  • Apache许可证,2.0
  • 新的BSD许可证
  • GNU通用公共许可证(GPL版本2或3)
  • GNU库或"更小的"通用公共许可证(LGPL版本2.1或3)
  • MIT许可证
  • Mozilla公共许可证1.1(MPL)
  • 共同开发和发行许可证
  • Eclipse公共许可证
  • 其他许可证分类为:"冗余"(例如NCSA许可证与BSD冗余),"特殊使用"或"不可重复使用"(例如NASA许可证,Apple Public Source许可证),"被取代"(例如,MPL v1.0),等等。


    拥有自己的许可证(通常是现有许可证之一的变体)可让您完全控制它。我怀疑诸如GPL2和GPL3之间的巨大变化(尤其是如果您处理Web服务)之类的事情会使人们对使用超出控制范围的协议的许可持怀疑态度。


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


    Having your own license (usually a
    variant on one of the existing ones)
    allows you full control over it. I
    suspect that things like the huge
    change between GPL2 and GPL3
    (especially if you deal with web
    services) make people leery of
    licensing with an agreement outside of
    one's control.

    我认为这在一定程度上是正确的。但是,当您根据GPL许可时,可以选择说"版本2","版本2或更高版本"。如果您对将来许可证的更改方式不屑一顾,可以随意声明它是在该特定版本下获得许可的。


    我不认为人们会欣赏您通常无法将代码与不同的许可证相互链接,而例如,您可以将任何GPLv2代码与任何其他GPLv2代码结合使用。


    I think this is true to some extent. However, when you license under the GPL, you have the option to say,"Version 2","Version 2 or later". If you're leary about how the license may change in the future, you are free to just say it is licensed under that specific version.

    但是,这打开了另一罐蠕虫。

    如果您仅在GPL2下发布,并且GPL3出现了,并且您喜欢它所做的更改,那么从理论上讲,您将必须与所有贡献者联系在一起,并获得他们的一致批准才能更改其代码所依据的许可。他们所需要做的就是说"不,我只根据GPL2许可了我的捐款,而拒绝允许GPL3",否则他们将无法答复-破坏了您提议的许可证变更。


    Is the proliferation of open source licenses just another example of programmers living NYI (Not Invented Here) syndrome?

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

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

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


    If you released under GPL2 only and
    GPL3 comes out and you like the
    changes it makes, you're theoretically
    going to have to go around to all your
    contributors and get their unanimous
    approval to change the license their
    code is released under. All it takes
    is one of them to say"nope, I only
    licensed my contributions under GPL2
    and refuse to permit GPL3" - or they
    can just not reply - to derail your
    proposed license change.

    这带来了其他一些问题。您打算接受来自外部开发人员的补丁程序吗?当您接受补丁程序时,是否还要求补丁程序提交者移交版权?如果他们不转让版权,那该如何允许您更改自己的许可证以供将来考虑。如果有一个拥有自己许可证的项目,而我打算向其发布一堆代码,则表明该项目是在XYX版本N或任何将来的版本下获得许可的,这意味着控制该许可证的人不会不能在将来的版本中完成180,并使其完全封闭?


    推荐阅读