GNU 通用公共许可协议 v2 – 概述

2014-09-25 07:40:01       855    原创
摘要:发布者:Rowan Wilson  日期:2005-11-10  最近更新:2012-05-14 GNU 通用公共许可协议 v2(简称为“GPL v2”)是最常用的开源许可协议。在软件资源库 Sourceforge 中,约有 70% 的项目使用该GPL v2许可协议。本文旨在将GPL v2的主要功能进行汇编,使其更为清晰易懂,并同时讲述其发展历史和应用的详细信息。许可协议原文可参见http://www.opensource.org/licenses/gpl-license.php。

 GNU 项目(GNU’s 并非UNIX)始于 1984 年,由一个在麻省理工学院(MIT)的程序员Richard Stallman创建,他希望建立一个能够不受专利许可限制,自由散布和改写的软件库但由于分享、使用、改写,这些在软件创建和使用初期著称的文化正在逐渐消失,Stallman对此感到十分沮丧。由于软件起初就被看作可销售的产品,所以其须在禁止用户改写或转发的许可协议下进行散布就显得更加正常。

大多数程序员接受了上述情况,他们认为如果软件产品将要变为一个行业,那么这样的情况是不可避免的。但是,Stallman并不同意。因此,他开始编写代码构建一套完整的操作系统(Hurd)和附加工具集(GNU),希望在一项许可协议下可以准许免费使用、重新散布和修改代码。1985 年,他建立了一个非营利性的组织——自由软件基金会(FSF),其目的是为像Gnu等自由软件项目提供支持,并制定与自由软件运动目标相一致的许可协议。

 

自由软件的说法比开源早十多年。对很多人来说,它是对其所创造的产品的的最佳描述。

虽然自由软件的基本原则早在 GNU 项目中就已建立,但直到 1989 年才被精炼为一项可被所有者轻松应用到任何软件的许可协议。在那之前,每个软件在发布时都会编写专门对应 GNU 的软件许可协议,通常还会直接参考其他已许可的软件,这使得软件的重复使用非常麻烦。GNU 通用公共许可协议 第一版(简称“GPL v1”)通过相关程序解决了这一问题。1991 年,GPL v1 被修订为第二版,然而完全是措辞上的修改而没有任何法律效力变更。同样在 1991 年,自由软件基金会发布了程序库(宽)通用公共许可协议(LGPL)v2.1 来应对一些特殊情况。该许可协议可以很好的适用于自由软件与一些在与GPL v2不兼容许可协议(如专有许可协议)发布的软件之间的互动。自由软件基金会于2007年又发布了GPL第三版。

 

GPL v2 的主要功能

GPL v2 与其他许可协议一样,都是在某些限制条款下予以授权,下文已将它们清楚地列出。GPL v2软件许可协议下的被许可人可完成以下操作:

•复制和散布未改写的程序源代码(第一部分)

•修改程序源代码并将其散布(第二部分)

•满足以下条件时,散布程序已修改编译和未修改编译的版本(第三部分):

•所有散布副本(不论是否已修改)携带版权通知和担保责任免除(第一部分和第二部分)

•所有修改过的副本在 GPL v2 下散布(第二部分)

•程序的所有编译版本都附有相关的源代码,或提供能够利用相关源代码的方式(第三部分)

我们可以从这些授权和限制条款中清楚地看见自由软件协会的目标。他们允许所有人在某些条件下使用、复制、散布和修改软件。但限制条款的意图似乎不那么明显。它们旨在保护软件作者免受各种潜在问题的困扰。例如,有人因为一些重要的目的而使用这个软件,随后却失败了,于是使用者决定起诉软件作者,面对这样的情况,主张担保责任免除极其重要。如果许可协议未主张包含完整的原版权信息,有人可能会假称软件是自己的作品。有人可能在取得程序进行修改(或者未修改),打算以无法自由使用的方式再次许可该程序;为此,许可协议坚持主张,程序本身以及基于它的所有程序,在提供时必须许可在 GPL v2 下。程序的源代码,以及所有修改版本,也必须要同时提供;如若不然,将无法施行授予的修改权限。

 

GPL v2 的其他功能

每位新接受GPL v2许可软的接受者件都可从原许可人(或多名许可人,如果作品由多人修改)那里收到许可协议,而不论软件是从何处获取。正如第六部分明确指出的一样,接收者不可向他人再次许可。

由此以及上文所引述的授权,我们得出结论,不可对 GPL v2 许可的软件设置附加限制。如果您选择将软件传递给第三方,他们将得到与您相同的许可协议。如果您修改了软件,则意味着您已同意在 GPL v2 协议下发布您所做的修改。上述情况带来的结果是,将在 GPL v2 下收到的代码与其他许可协议下收到的代码组合起来会非常困难。如果其他许可协议包含任何 GPL v2 中没有的限制,代码组合就无法合法散布。这种在许可上的问题就意味着,只有很少一部分获准的许可协议真正与 GPL v2 兼容。

GPL v2 的第七部分明确指出许可协议授权条件带来的另一个结果。如果法庭裁定,散布 GPL v2 许可软件的人必须在附加限制下散布软件——例如,使用他人的专利需要付费——这意味着散布者必须彻底停止散布 GPL v2 许可的软件。

 

关于 GPL v2 的普遍传言

围绕 GPL v2 滋生了几大传言。首先,很多人认为,修改 GPL v2 许可软件意味着必须向业界发布其修改版。但这其实不然。GPL v2仅仅声明了,如果您选择发布修改后的代码,您必须要做的事情。您有权以您喜欢的任何方式修改 GPL v2 许可软件,并将修改留作您个人使用。

人们也通常认为,GPL v2 许可软件不能在软件集合中与非 GPL v2 软件捆绑,或者如果可以捆绑的话,所有的软件必须在 GPL v2 下再次许可。这也同样是不正确的。GPL v2 的第二部分指出,这些微小的集合不能整体受到许可协议条件的控制。

最后,人们常听说 GPL v2(以及其他通用许可协议)未与被许可人绑定,因为被许可人与许可人之间没有明确的协议约定。这主要来自人们对通用许可工作方式的误解。GPL v2 的第五部分阐释了这一话题。在 GPL v2 下,散布材料的版权权利属于许可人未得到所有者的许可,潜在的被许可人不可复制、改写或散布材料。如果潜在的被许可人遵守条件,GPL v2 可为其提供合法复制、改写或散布材料的途径。任何人违反条件后会争辩说许可人没有同意他们,或者是他们没有意识到有学许可人的存在,还会争辩说起初他们就不了解这样一个准许他们使用材料的许可协议。

 

GPL v2 的作用

这些项目列表旨在总结 GPL v2 的重点内容,并非其全部特征的完整描述。GPL v2 可提供以下操作:

•确保其许可代码的修改版本保持自由和开源

•尝试通过强制使用 GPL v2 实现 GPL v2 许可代码的分布式修改的方式来传播创意版权

2007 年,自由软件基金会发布了 GPL 的第三版。但是,GPL v2 仍然受到广泛使用。

OSS Watch 发布了一篇文档,着重讲述在开源许可协议下提供代码需考虑的主要法律问题。

 

延伸阅读

链接:

•GNU 项目 [http://www.gnu.org/]

•自由软件基金会 [http://www.fsf.org/]

•开放源代码促进会 [http://www.opensource.org/]

 

本文由 OSS Watch 原创并经由Creative Commons Attribution-ShareAlike 2.0 England & Wales license许可证发布。

沪ICP备15046442号
蝉知1.6