计算机世界里的法律:软件使用许可的一些知识
在Internet上的软件一般分为如下四种形式:
(1)公用软件(Public Domain Software)
是指那些版权已经被放弃、不受版权保护、可以进行任何目的的复制、修改并允许在该软件基础上开发衍生软件且可复制和销售的软件。
(2)自由软件(Freeware)
自由软件的开发者(包括修改者)将源代码全部公开,并赋予用户运行、扩散、修改、完善、反向研究等权利,但不提供担保。具体而言它具备以下特征:版权受保护,可为发行而复制,但此时发行不能以赢利为目的;允许和鼓励修改软件;允许反向工程,不必经明确许可;允许和鼓励开发衍生软件,但这一衍生软件也必须是免费的。
(3)商业软件(Business Software)
是指那些受版权保护、允许预防原版软件意外损坏而进行存档复制、不允许进行修改、未经版权人允许不得进行反向工程和在该软件基础上开发衍生软件的一类软件。对商业软件而言,用户获得的只是软件目标代码的所有权及使用权,通常是不包含源程序的。商业软件的版权人一般在协议中声明不得反向工程,但国际上基本已认可用户在合法取得软件之后,为了满足某种特殊需要,用户自己通过反向工程来实现非商业用途的目的。通过反向程获取技术秘密仍被禁止,开发类似的新软件属于不正当竞争。
(4)共享软件(Shareware)
这类软件在软件市场占有重要地位。共享软件代表着软件的一种传播方式,实际上是一种“先试后买”(try before you buy)的商业软件,它打破了商业软件的限制,为计算机用户提供了更多的选择。用户可以先免费使用一段时间,如果不满意可以卸载或放置一边或转给他人试用,试用期满如果想继续使用就必须向作者交纳一定的注册费,一般这种注册费十分低廉,仅相当于同类商业软件的十分之一,极高的性能价格比对用户很有吸引力。注册后可以得到完整的文档和技术支持。共享软件的“先试后买”符合软件商品的特殊性,有利于计算机软件的普及和推广。共享软件虽然来源广泛无全面质量保证,但相比自由软件的“无担保”特点,共享软件打消了注册消费者在质量保障方面的顾虑,把用户承担的风险降低到最低。共享软件并非权利的共享,其著作权归作者所有,未经作者允许,不可披露、修改其文档和源代码,否则便构成侵权。用户可以合法复制该软件,但需要向作者注册,并不可用于商业性营利销售,除非获得许可并另外付费 。
--------------------------------------------
我们常见的一些自由软件的许可如下:(不完全是这些,还有别的好多种)
The BSD License
http://www.opensource.org/licenses/bsd-license.php
The MIT License
http://www.opensource.org/licenses/mit-license.php
The GNU General Public License (GPL)
http://www.opensource.org/licenses/gpl-license.php
GNU Lesser General Public License (LGPL)
http://www.opensource.org/licenses/lgpl-license.php
Apache License, Version 2.0
http://www.opensource.org/licenses/apache2.0.php
--------------------------------------------
最常见的一种自由软件许可:GPL
GPL协议简述:
一般地,您没有必要耐心阅读原版的GPL协议(单击此处阅读简体中文非官方译本),因为 GPL 无非交待了几个原则:
确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。
GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。
无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。
开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。
-------------------------------------------
LGPL 与 GPL 的区别
LGPL最初是Library GPL的缩写,后来改称作Lesser GPL,即为更宽松的GPL。当一个自由软件使用GPL声明时,该软件的使用者有权重新发布、修改该软件,并得到该软件的源代码;但只要使用者在其程序中使用了该自由软件,或者是使用修改后的软件,那么使用者的程序也必须公布其源代码,同时允许别人发布、修改。也就是说,使用GPL声明下的的自由软件开发出来的新软件也一定是自由软件。
LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在LGPL或其它GPL变种的授权下。
----------------------------------------
如何在 GPL 与 LGPL 之间做出选择
GNU计划在使用库时有两个首要的许可证.一个是GNU LGPL(库GPL);另一个是普通的GNU GPL.选择不同的许可有很大的不同:选择LGPL允许在私有程序中使用该库;选择普通的GPL则只允许在自由软件中使用它.
关于哪一种许可证对指定的库是最好的这一问题实际上是一个策略问题,它取决于实际情况.当前,大多数的GNU库被采用LGPL,这意味着我们只使用着其中的一个策略,而忽略了另一个. 所以现在我们在寻求更多以普通的GPL许可证形式发布的库.
私有软件开发者有金钱上的优势;自由软件开发者需要相互之间利用各自的优势.对一个库采用普通的GPL对自由软件开发者的优势要大于对私有软件开发者: 他们可以使用的库对于私有软件开发者是不可利用的.
使用普通的GPL并不是对于所有的库都有好处.在某些情况下更有理由来使用LGPL.最常见的情况就是当一个自由库的特性可以很容易地被私有软件以其他可替代库来实现.在这种情况下,库不能给与自由软件任何特别的优势,因而最好还是为LGPL发布该库.
这也就是为什么我们为GNU C 库选择LGPL.总之,有很多的其他C库;我们使用GPL发布该库,将迫使私有软件开发者不得不使用其它的库--对他们来说这不成问题,而我们则有了麻烦.
然而,当一个库所提供的功能是非常独特的时候,如GNU Readline, 情况就大不一样了. Readline库可实现输入编辑和记录交互式程序操作,这在别处通常是不可多得. 在GPL下发布它并限制它只能在自由程序中使用, 这我们的社团是一个重要的促进.至少今天某个应用程序之所以是自由软件,只是因为它必需要用到Readline.
如果我们收集一些强大的、私有软件中没有相类似东西的、采用GPL的库,它们将提供一系列有用的模块用于新的自由软件的构造. 这对于将来的自由软件开发将是一个显著的优势, 一些项目将为了使用这些库而考虑使软件自由化. 大学的项目是易于被影响的;而且今天,随着某些公司开始考虑使软件自由化, 甚至一些商业项目也会由此受到影响.
私有软件开发者试图否认自由竞争的重要性, 他们会拼命说服作者不要将库使用GPL来发布. 例如,他们会呼吁利己主义,信誓旦旦地说如果我们让他们在私有软件产品中使用代码,将有“更多的用户”用到该库. 流行是一种诱惑,它使一个库开发者倾向于相信这种观点:社会首先需要的是促进一种库的流行;.
但是我们不应该听从这种诱惑,因为如果我们联合起来,我们可以做得更好.我们这些自由软件开发者应该相互支持. 通过发布只能为自由软件使用的库,我们可以互相帮助,使彼此的自由软件包优于其它的私有替代品. 整个自由软件运动将会有更多的机会,因为自由软件作为一个整体将会在竞争中表现更佳.
因为"LGPL(Library GPL)"的称呼传达了关于这一问题的错误观点,我们计划将称呼改为"次级GPL(Lesser GPL)".事实上要更换名称要花一定的时间,但你不必再等--你可以现在就发布应用GPL许可证的库.