开源许可协议

当你为你的产品签发许可,你就是在出让自己的权利。不过,你仍拥有版权和专利(如果申请了专利)。许可的目的,是向使用你产品的人提供一定的权利。

不管产品是免费分发,还是出售,指定一份许可协议都非常有用。否则,对于免费,你相当于放弃了自己的所有权利,任何人都没有义务表明你的原始作者身份。对于出售,你将不得不花费比开发更多的精力用来处理授权问题。

而开源许可协议是这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可。开源许可协议还可以阻止其它人将某个产品据为己有。



开源许可协议区别


开源许可协议区别




几大开源许可协议




GNU Project

  • GNU是“GNU’s Not Unix”的递归缩写,发音为 /‘gnu:’/;
  • GNU Project,是一个由自由软件集体协作项目,它的目标是创建一套完全自由的操作系统,称为GNU;
  • GNU是一个自由操作系统,其内容软件完全以 GPL 方式发布,它的设计类似于Unix,但它不包含具有著作权的Unix代码。


GPL

GNU(General Public Licence),GNU通用许可协议(简称GPL)是广泛使用的免费软件许可证,也称为 copyleft,与copyright相对应。
GPL保证了所有开发者的权利,同时为使用者提供了足够的复制、分发、修改的权利。

需要注意的是,分发的时候,需要明确提供源代码和二进制文件。

  • 可自由复制: 你可以将软件复制到你的电脑或任何地方,复制份数没有限制;
  • 可自由分发: 可下载后拷贝分发;
  • 可以用来盈利: 你可以在分发软件的时候收费,但必须在收费前向你的客户提供该软件的 GNU GPL许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件以及你收费的理由;
  • 可自由修改: 你过你想添加或删除某个功能,没问题。如果你想在别的项目中使用部分代码,也没问题,唯一要求是使用了这段代码的项目也必须使用 GPL协议。


LGPL

GNU还有另外一种协议,叫做LGPL(Lesser General Public License),它对产品所保留的权利比GPL少。
总的来说,LGPL适合那些用于非GPL或非开源产品的开源类库或框架。因为GPL要求,使用了GPL代码的产品也必须使用GPL协议,开发者不允许将GPL代码用于商业产品。LGPL绕过了这一限制。

GPL和LGPL都属于GNU计划里面的许可证。




BSD

伯克利软件套件(Berkeley Software Distribution,缩写BSD),也被称为伯克利Unix,是一个操作系统的名称,衍生自Unix,也被用来代表一整套软件发行版。

BSD许可证(Berkeley Software Distribution License),是自由软件中使用广泛的许可证。BSD软件就是遵照这个许可证来发布,该许可证也因此而得名。

BSD在软件分发方面的限制比别的开源协议要少,且和GPL兼容,并为开源组织所认可。




MIT

MIT(Massachusetts Institute of Technology),麻省理工学院。
MIT许可协议(The MIT License)是许多软件授权条款中,被广泛使用的其中一种。与其他常见的软件许可协议相比,MIT是相对宽松的软件许可协议,除了必须包含许可声明外,再无任何限制。

MIT许可协议核心条款:

  • 该软件及其相关文档对所有人免费,可以任意处置,包括使用、复制、修改、合并、发表、分发、再授权或销售;
  • 唯一的限制,软件中必须包含上述版权和许可证。




Apache

Apache许可证(Apache License),是一个由Apache软件基金会发布的自由软件许可证。Apache许可证要求被授权者保留版权和放弃权利的声明,但它不是一个反版权的许可证。兼容与GPL。

除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合。

  • 永久权利:一旦被授权,永久拥有;
  • 全球范围的权利:在一个国家获得授权,适用于所有国家;
  • 授权免费,且无版税:前后期均无任何费用;
  • 授权不可撤销:一旦获得授权,没有任何人可以取消。

分发代码方面,要在声明中对参与开发的人给予认可并包含一份许可协议原文。




MPL

MPL是The Mozilla[mɔzilə] Public License的简写,是1998年初Netscape的 Mozilla小组为其开源软件项目设计的软件许可证。
MPL许可证出现的最重要原因就是,Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益。

同著名的GPL许可证和BSD许可证相比,MPL在许多权利与义务的约定方面与它们相同(因为都是符合OSIA 认定的开源软件许可证)。

MPL几个特点:

  • MPL虽然要求对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来,以保证其他人可以在MPL的条款下共享源代码。但是,在MPL 许可证中对“发布”的定义是“以源代码方式发布的文件”,这就意味着MPL允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL 许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。这些,就为借鉴别人的源代码用做自己商业软件开发的行为留了一个豁口;
  • MPL许可证第三条第7款中允许被许可人将经过MPL许可证获得的源代码同自己其他类型的代码混合得到自己的软件程序;
  • 对软件专利的态度,MPL许可证不像GPL许可证那样明确表示反对软件专利,但是却明确要求源代码的提供者不能提供已经受专利保护的源代码(除非他本人是专利权人,并书面向公众免费许可这些源代码),也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利;
  • 对源代码的定义,MPL许可证第3条有专门的一款是关于对源代码修改进行描述的规定,就是要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。




CC

知识共享许可协议(Creative Commons License,简称CC),并非严格意义上的开源许可,是一种公共版权许可协议。它主要用于设计,其允许分发受版权保护的作品。

CC协议主要包含4种基本形式:

  • 署名权:必须为原始作业署名,然后才可以修改、分发、复制;
  • 保持一致:作品同样可以在CC协议的基础上修改、分发、复制;
  • 非商业:不能用于商业用途;
  • 不能衍生新作品:你可以复制、分发、但不能修改,也不能以此为基础创作自己的作品。