开源类软件许可证简明指南

来源:百度文库 编辑:神马文学网 时间:2024/04/29 06:18:38
开源类软件许可证简明指南2010-03-31 23:49

什么是许可证?

关于许可证的准确含义在理解上存在大量误区。当你对自己的作品授予许可证时,你并没放弃任何权利。你仍然持有作品的原始版权(或者专利权,如果你有的话)。许可证是对使用同一作品的其他人授予特殊的许可。

比起直接公开发布作品和对使用者逐一授权这两种方式来,授予许可证是一个不错的选择。直接公开发布作品,意味着你放弃了一切版权,人们无需提及你是原作者或贡献者。而逐一授权的方式意味着你不得不把更多的设计开发时间耗费在处理个人许可上。

开源许可证使得其他人无需寻求特别的许可就可以方便地为项目添砖加瓦,它也保护了你作为原创者的权利,确保你至少可以因为自己的贡献而获得赞誉,同时防止其他人将你的成果据为己有。

GNU通用公共许可证(GNU General Public License)

GNU通用公共许可证(简称GPL)可能是开源项目最为常用的许可证之一。GPL授予并担保开源项目参与者享有广泛的权利。简单来说,它允许用户合法拷贝、分发和修改软件,这意味着你可以:

  • 拷贝软件

将软件拷贝到你自己的服务器、你客户的服务器、你自己的计算机、以及任何你想要拷贝的地方。拷贝份数不受限制。

  • 以任何方式分发软件

在你的网站上提供下载链接;将软件拷贝到U盘上分发出去;将源码打印出来再从屋顶上扔下去(不过千万别这样做,因为不仅浪费纸张,而且污染环境^_^)。

  • 为分发软件收取费用

你可以因为向某人提供软件、为他人的网站使用软件或者类似的行为而收取费用。但是,你必须同时提供一份GNU GPL授权书,以使他人获晓可以其它途径免费获取该软件。最好使对方提前知情,同时告知你收取费用的原因。

  • 对软件作出任意修改

如果你想增减功能,尽管去做。如果你想将源码的一部分应用到另一项目中,那也没问题,不过另一项目也必须基于GPL发布。

源码的发布和二进制可执行文件的发布截然不同,留意这点非常重要。此外,当许可证和某些软件一起使用、而这些软件的许可证又和该许可证存在彼此依赖的关系时,会产生一些问题和限制。更详细的介绍可参见GPL兼容性实用指南。使用GPL,你需要在软件源码里包含特定的信息,以及一份许可证的拷贝。

GNU宽通用公共许可证(GNU Lesser General Public License)

你应当知道另一种GNU许可证:宽通用公共许可证(Lesser General Public Licence,简称LGPL)。与标准的GPL相比,它授予软件更少的权利。一般而言,LGPL适合那些链接非GPL和非开源软件的库。因为GPL要求包含有部分GPL授权代码的软件以GPL方式发布,这样开发者就无法在收费的专属软件里使用GPL授权代码。 LGPL正好解决了这一问题:它不要求其它使用LGPL授权代码的软件以LGPL方式发布。

BSD许可证(Berkeley Software Distribution License)

BSD许可证指的是一系列宽松的自由软件许可证,它们与其它自由软件许可证(如GNU通用公共许可证)比起来,对分发软件的限制更少。在这一系列许可证的不同版本中,有两种尤为重要:新版(或称修订版)BSD许可证和简版(或称自由版)BSD许可证。这两个版本的许可证已被认证为GPL兼容的自由软件许可证,并已被开源促进会(Open Source Initiative)接纳为开源许可证。

新版(也称“三句版”)BSD许可证规定,只要软件的版权申明和许可证的免责条款得以保存,软件可以以任何目的不受限制地分发。该许可证还包含如下条款:即未经许可,不得以软件贡献者的名字为软件的衍生产品做代言。这一条款正是新版BSD许可证与简版BSD许可证之间的主要区别。

MIT许可证(MIT License)

在所有常用的开源许可证中,MIT许可证最为简短,可能也最为广泛。它的条款非常松散,比起大部分其它许可证来说更加宽松。它的基本前提如下:

  • 该许可免费授予任何获得本软件及相关文档(合称为“软件包”)的人,许可其无限制地应用软件,包括不受限地使用、拷贝、修改、合并、出版、分发、再授权、和/或出售软件的拷贝。被许可者获取软件包提供的权利须基于以下条件:

以上版权声明和本许可声明必须包含在软件包的全部拷贝或实质性部分中。

这意味着:

  • 你可以任意使用、拷贝和修改软件。没人能够限制你将软件用于任何项目、以你喜欢的格式拷贝软件任意多次、或以任何方式收费。
  • 你可以免费分发软件或者出售软件,你分发软件的方式不受限制。
  • 唯一的限制是软件必须附带许可协议。

MIT许可证是限制最少的许可证,它基本上是说,只要附带许可证,任何人都可以利用该许可证授权的软件做任何想做的事。

Apache许可证(Apache License)

Apache许可证(2.0版)授予用户大量权利,这些权利适用于版权和专利权。由于有的许可证只适用于版权、不适用于专利权,Apache许可证的这一灵活性使其成为专利开发者的首选。什么是版权和专利权?这篇文章解释了版权和专利权之间的区别。

以下是有关Apache许可证更为详细的介绍:

  • 权利的永久性

一旦许可证被授予,你就可以无限期使用。

  • 权利的世界性

如果许可证在某一国授予,那么它同时也授予给其它所有国家。例如,如果你在美国,而原始许可证在印度颁发,那么,你在许可证授权下使用代码并无限制。

  • 获取权利的免费性

你不用预先支付任何使用费,也不用为每次使用或基于其它方式而付费。

  • 权利的非排他性

你能使用经授权的软件,任何其他人也能使用。

  • 权利的不可撤回性

权利一旦授予,无人能撤回。换句话说,你无需担心将来的某个时候,当你创造出授权代码的优秀衍生产品时,有人会跳出来说:“抱歉,你再也不能使用这些代码了” (许可证有条款指出,如果你就许可证授权下的任何内容起诉他人,你的许可证授权即告终结。但这仅仅适用于有专利的软件,并且只要你不起诉软件相关的任何人,你就不必担心)。

Apache许可证对分发代码也有特殊要求,主要是有关给予代码作者以适当荣誉,以及保持许可证的一致性。

知识共享(Creative Commons)

知识共享(Creative Commons,简称CC)许可证并非完全的开源许可证,但设计类项目也常常使用。有各种不同的CC许可证可供使用,每种授予特定的权利。一个CC许可证包含四个基本部分,每部分即可单独生效,又可联合使用。简述如下:

  • 署名

必须按照作者指定的方式对作品进行署名。除此之外,作品可被复制、分发、拷贝以及以其它方式使用。

  • 相同方式共享

只能基于相同的CC许可证对作品进行修改、分发等。

  • 非商业性

作品可被修改、分发等,但不得以商业为目的进行。关于什么构成商业行为,许可证条款并未提供清晰的定义,因此你可能需要在自己的项目里给予澄清。比如说,有人认为“非商业”只是简单地意味着你不能出售作品,也有人认为你不能把作品放到一个带广告的网站上,还有人认为只有当牟利发生时才能称为“商业”。

  • 禁止衍生

你可以拷贝和分发授权作品,但你不得以任何方式修改、或基于原作进行创作。

如前所述,CC许可证的各个部分可以联合使用。最为严格的许可证为“署名-非商业-禁止衍生”许可证,即你可以自由分享作品,但不得修改或收费,同时你必须按照作者指定的方式为作品署名。这对那些一方面希望发布作品,另一方面又希望多多少少保留对作品使用方式的控制权的作者来说,颇为不错。限制最少的CC许可证是“署名”许可证,即只要按照作者指定的方式为作品署名,就可以用作品做任何事。

CC许可证在设计类作品中的应用要比在开发中的应用多,但并没有限制你在开发中使用它,只是要清楚各部分条款的细节。

补充资源

  • Creative Commons Licenses
    CC许可证官网。各种CC许可证的描述和法律条文。
  • Open Source Initiative
    开源促进会。一个很棒的网站,包含大多数主流开源许可证的信息。
  • Open Source Licenses Comparison
    开源许可证之比较。一份比较主要开源许可证的表单。
  • Understanding Open-Source Licensing
    理解开源许可证。关于什么是开源许可证以及它们适合做什么的非常全面的概述。
  • HOW TO: Pick an Open Source License