各种 License

最近想搞一个个人小项目,比较在意版权问题,平时在github上经常看到其他人的项目有各种License,却一直没明白过,今天查阅了一些软件License方面的资料,在此记录一下。

什么是License?

License并不意味着你对你的产品放弃了著作权,一旦你使用了License,则表示你授权给他人以约定的形式来使用你的产品。

几种常用License

GPL (GNU General Public License)

GNU General Public License (GPL)的可能是开源项目最常用的许可证。GPL赋予和保证了开源项目开发者广泛的权利。

它允许用户合法复制,分发和修改软件,甚至在改良版本上收取费用,但必须要写明GPL License,而且要告诉客户原始版本。

LGPL

还有另一个GNU License:GNU Lesser General Public License (LGPL)。比起GPL它授予的权限较少。一般来说,LGPL比较适合连接到非GPL或者非开源文件的库文件。由于GPL的规定,使用到部分GPL代码的软件,必须也使用GPL,开发人员不能使用GPL来开发收费软件或者专有软件。

LGPL不要求使用与部分代码相同的 License。

BSD

BSD License与其他自由软件License相比,如GPL,限制更少。但是请注意到BSD License两种版本之间的差别:New BSD License/Modified BSD License 和Simplified BSD License/FreeBSD License。它们两者都是于GPL兼容的自由软件License。

New BSD License

New BSD License (”3-clause license”) 可以用于任何作为版权声明和保证许可的免责声明的目的,可以通过无限长的再分发来得以维持,也就是说如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协 议。它还有一个特殊限制条款,不用特别的许可就是限制使用派生工作的工作者名字,也就是说不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

New BSD License和Simplified BSD License的主要区别是,后者忽略了非认可条款。

MIT

MIT是和BSD一样宽松的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

  • 你可以修改、复制和使用
  • 你可以出售
  • 但必须附带MIT授权协议

Mozilla Public License 1.1 (MPL)

MPL协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,,它要求基于这种软件得修改无偿贡献版权给该软件。这样,围绕该软件得所有代码得版权都集中在发起开发人得手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。

商业软件可以使用,也可以修改MPL协议的代码,但修改后的代码版权归软件的发起者。

CDDL

CDDL(Common Development and Distribution License,通用开发与销售许可)开源协议,是MPL(Mozilla Public License)的扩展协议,它允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。

商业软件可以使用,也可以修改CDDL协议的代码。

Apache License

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布 (作为开源或商业软件)。

  • 需要给代码的用户一份Apache License
  • 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明
  • 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改
  • 商业软件可以使用,也可以修改使用Apache协议的代码

Eclipse Public License

EPL是一个与CPL相类似的许可证,任何扩展自Eclipse源码的代码也必须是开源的

Creative Commons(CC)

Creative Commons(CC)的许可证不太开放源代码授权,它们通常用于设计项目。 CC许可证有着宽广的定义,每个定义都会授予一定的权利。它有四个基本部分,可以单独或者组合使用。

  • 作者必须是作品的原创者。 除此之外,作品可以修改,分发,复制和以其他方式使用
  • 工作可以修改,分发等等,但必须在一个许可证下
  • 可以修改,分发等,但不用于商业目的。 关于什么是“商业”,说法比较含糊(没有提供明确的定义),因此您可能需要在自己的项目中澄清这一点
  • 禁止修改,这意味着您可以复制和分发许可工作,但你不能以任何方式修改,或在原有的基础开发
  • 商业软件的使用要遵从CC协议的具体规定,最严格的许可证将是“署名,非商业,不能修改”的授权。这意味着你可以自由共享的工作,但不能改变它,你必须把它归功于原创者

Common Public License 1.0

  1. 明确了专利授权。一般的开源软件都明确源代码的版权人将自己的修改权、复制权等版权权利向公众许可,但保留署名权,而Common许可证在此基础上还明确假如源代码中含有专利权,源代码专利权人将复制、使用的专有权利向公众许可。
  2. 规定可以将源代码及修改过的源代码与其他类型的不受本许可证约束的代码结合,以新产品的形式发布,只要其中经该许可证获得的源代码及修改过的源代码能按该许可证的要求发布即可。
  3. 细化了该许可证终止的情形,包括发生专利侵权诉讼。
  4. 明确了一个独立承担责任的原则,就是假如按该许可证使用源代码的使用者将获得的源代码应用于商业使用,那么他就要对在商业应用中出现的由于使用该源代码程序而产生的侵权诉讼承担完全责任。这一条规定是比较特殊的,绝大多数开源软件许可证都不这么要求。
  5. 商业软件可以使用,也可以修改Common协议的代码,但要承担代码产生的侵权责任。