开源软件许可协议简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开源软件许可协议简介
很多软件开发者和设计者都有将自己的软件作品以开源的形式公之于众的想法。他们希望其他人也可以分享自己的作品,使用自己的作品。开源社区之所以能蓬勃发展就是因为人们有这样的愿望。开源软件如此的丰富,任何你能想到的应用领域里都能找到它们的身影。大部分的设计人员都已经把使用开源软件和开源代码作为日常工作不可缺少的一部分了(WordPress, Drupal 和许多其它的内容管理系统都是开源软件)。
但是很多的软件作者和设计者都对各种不同的开源许可协议的内容和含义不甚了了。当你选择了某种开源许可协议时,你都放弃了哪些权力?在没有能明白各种开源协议的确切含义前,在不知道它们最适用于什么情况下时,软件开发者不可能在关于哪个许可协议最适合自己的软件的问题上做出准确的抉择。
什么是软件许可协议?
关于究竟什么是许可协议的问题上有很多事实而非的说法。当你给软件附上许可证时,意味着你将保留对软件的所有权利。你将对你的作品拥有原创版权(或者是专利权,如果你申请到了)。许可协议用来授权其他人具有某种使用你的作品的权利。
依靠许可协议将你的作品对外开源或者对你的作品的各个方面逐一进行授权,是一个不错的方法。一旦对外开源,你将失去所有对你的作品的版权,别人也没有义务将你标注为作品的原创者或捐献者。而我说的后一种情况里,估计你需要从设计和开发的工作中抽出更多的时间来处理遇到的各种侵权问题。
开源许可协议使人们免去了研究那些专业的许可条款的麻烦,使人们更方便的对开源项目贡献出自己的代码。而且它还能保护你作为作品的原创作者,确保你至少拥有由于贡献参与而带来的署名荣誉。它还能用来阻止其他人企图声明对你的作品拥有所有权的行为。
GNU General Public License 通用公共许可协议
GNU General Public
Licence 通用公共许可协议 (GPL) 可以说是在开源项目中使用最广泛的一种协议来。 GPL 对开发开源软件的开发者们在权利上进行了周详的认可和保障。本质上讲,它允许用户对软件进行合法的拷贝,传播和修改。这意味着你可以:
▪随意复制。
把它拷贝到你自己的服务器上、你的客户的服务器上、你自己的电脑上,基本上任
何你能想到的地方。对你拷贝的数量也没有任何限制。(译者按:中国人用盗版用
惯了,估计对这点会很不以为然。)
▪随意传播。
在你的网站上做一个下载链接进行下载。拷贝到你的移动硬盘里送人。把原代码打
印出来,站在屋顶散发(最好别这样做,会浪费纸,而且影响环境清洁)。
▪收费传播
如果你想通过发放这种软件来收取费用,你可以把它放到你的网站上出售,或者通
过其它你可以做到的方式达到你的目的。但是, 你必须将一份GNU GPL 协议和你
卖出的软件一起给买主,以让买主知道这种软件是可以通过其它途径免费获得的。
最好是事先人知道这些,以及你为什么要出售它们。
▪随意修改。
如果你想增加或删减一些功能,那就干吧。如果你想在其它项目里使用它里的一部
分代码,也是允许的。只是有一点,这个其它项目也必须是使用 GPL 授权的。
请注意一个非常重要的概念:对源代码的传播和对已编译代码的传播是两个完全不同的事情。因此,有些应用程序的许可协议对着两种形式的代码分别进行了不同的使用授权。更多的信息可以参考文章GPL 协议实用手册 (作者@PierreJoye)。要想使用
GPL, 你还必须在代码里添加一些协议相关信息,还要有一份许可协议的副本拷贝。
GNU Lesser General Public License 次通用公共许可协议
你还需要了解另外一种 GNU 许可协议: Lesser General
Public Licence 次通用公共许可协议 (LGPL)。它对作品的使用保留了更少的权利。通常,LGPL 适用于一些类库,它允许这些类库能够被非GPL或非开源软件引用。因为 GPL 要求,要想使用 GPL 保护下的代码,你必须把你的软件也置于 GPL 协议之下。开发者不能够在商业的和具有私有权的软件里使用GPL协议下的程序。而 LGPL 放弃了这些限制,它不要求其它程序也必须使用相同的协议才能使用这些代码程序。
BSD 许可协议
BSD 协议有很多分支,它们都代表了一种宽松的自由软件协议,相对其它协议,例如GPL,来说,它们对软件的传播给予了更少的限制。
在这种协议的各种版本中,有两个版本格外的重要:新 BSD 协议/修订版 BSD 协议和简化BSD 协议/FreeBSD 协议。这两类协议都实现的对 GPL 兼容的自由软件协议,而且被 Open Source Initiative 认可为开源软件协议。
新 BSD 协议(”3-clause license”)无任何限制的允许你以任何目的二次分发这种软件,唯一的要求是必须保留拷贝权的声明和协议里的软件权利放弃条款。这种协议还有一个限制,未经许可不得使用这个作品的所有曾经捐助者的署名。新 BSD 协议和简化 BSD 协议的最主要的区别是后者删除了署名条款。
MIT 许可协议
MIT 协议应该是在流行的开源协议中最简短的、使用最广泛的一种协议。它的条款非常的宽松,而且跟其它协议相比更自由。这种协议最基本的条款 ( the information that it is provided without warranty, which comprises the final paragraph)
如下:
特此授权,任何人都可免费获得这个软件以及相关文档(the “Software”)的拷贝,可以无限制的使用这个软件,包括无限制的权利去使用、复制、修改、合并、发布、附加从属协
议,以及/或者出售软件的拷贝,同时,为了让软件的提供者有权利做到这些,下面的条件必须遵守:
上面的拷贝权声明和许可声明必须包含在所有的这个软件拷贝里和实际分署部分里。
这也就是说:
▪你可以随意使用,复制,修改这个软件。没有人能够阻止你在任何工程里使用它,你可以复制任意次数、以任何形式,或按你的愿望修改它。
▪你可以向外免费发放,或出售。你可以随意的分发它,没有任何限制。
▪唯一的限制是你必须接受协议条款。
MIT 协议是目前最少限制的协议。它基本上就是任何人可以对这个协议下的软件的做任何的事情,只要你能认可这个协议。
Apache 许可协议
Apache 许可协议, 2.0 版本, 授予了用户大量的权利。这些权利可以应用于拷贝权,也可以用于专利权。因为很多许可协议只能适用于拷贝权,不适用于专利权,所以这个灵活性就成了让有专利的开发者们选择许可协议时的一个显著参考因素 (要想明白两者之间的不同,请参考How Stuff Works 上的这篇文章 )。
下面是关于 Apache 许可协议所允许的事项的详细说明:
▪权利永恒。
一旦被授权,权利永久不失。
▪权利无疆界。
在一个国家里被授权,形同于在所有国家被授权。例如,你在美国,但许可权最初
在印度被授予,你同样可以使用这个被授权的程序。
▪授权无需付费和支付酬劳。
你既不需要在使用之前支付任何的费用,也无需在每次使用时支付任何的费用,或
者其它类似情况。
▪权利不排他。
使用这种许可协议下的软件时,不妨碍你使用其它软件。
▪权利不可变更。
权利一旦授予,不可剥夺。也就是说,你在使用这个软件的过程中,你无需担心这
种情况:当你开发出了令人羡慕的基于这种授权软件的衍生产品时,有人突然跳出
来对你说,“抱歉,你将不再被允许使用这个程序。”(在这个协议里有个条款声