GNU 通用公共许可证,版本 2
版本 2,1991 年 6 月
版权所有 (C) 1989、1991 自由软件基金会,公司。美国马萨诸塞州波士顿富兰克林街 51 号,330 号套房,邮编 02110
任何人都可以复制和分发本许可证文件的逐字副本,但禁止修改。
序言
大多数软件的许可证旨在剥夺您分享和修改软件的自由。相反,GNU 通用公共许可证旨在保证您分享和修改自由软件的自由——确保软件对所有用户都是自由的。本通用公共许可证适用于自由软件基金会的绝大多数软件,以及任何承诺使用它的程序的作者。 (其他一些自由软件基金会的软件受 GNU 库通用公共许可证的约束。) 您也可以将其应用于您的程序。
当我们谈论自由软件时,我们指的是自由,而不是价格。我们的通用公共许可证旨在确保您拥有分发自由软件副本的自由(如果您愿意,可以为此服务收费),您收到源代码或在需要时可以获得它,您可以更改软件或在新的自由程序中使用其中的部分;并且您知道您可以做这些事情。
为了保护您的权利,我们需要制定限制,禁止任何人剥夺您的这些权利或要求您放弃这些权利。这些限制会转化为您分发软件副本或修改软件时的一些责任。
例如,如果您分发该程序的副本,无论是免费的还是收费的,您必须赋予接收者您所拥有的一切权利。您必须确保他们也能收到或获得源代码。并且您必须向他们展示这些条款,以便他们了解自己的权利。
我们通过两个步骤来保护您的权利:(1) 版权保护软件,以及 (2) 向您提供本许可证,该许可证赋予您复制、分发和/或修改软件的合法权限。
此外,为了保护每个作者和我们的利益,我们希望确保每个人都了解该自由软件没有保修。如果其他人修改了软件并传递给他人,我们希望其接收者知道他们所拥有的不是原始版本,以便其他人引入的任何问题都不会反映原始作者的声誉。
最后,任何自由程序都 постоянно受到软件专利的威胁。我们希望避免分发者自由程序单独获得专利许可的危险,从而使该程序具有专有性。为了防止这种情况,我们已经明确规定,任何专利必须为所有人的自由使用而许可,或者根本不许可。
复制、分发和修改的精确条款和条件如下。
复制、分发和修改的条款和条件
0. 本许可证适用于任何包含版权所有者放置的通知的程序或其他作品,声明它可以根据本通用公共许可证的条款进行分发。“程序”是指任何此类程序或作品,而“基于该程序的作品”是指根据版权法,程序或任何衍生作品:也就是说,包含程序或其一部分的作品,无论是逐字引用还是经过修改和/或翻译成另一种语言。(此后,翻译包含在“修改”一词中,没有限制。)每个被许可人被称为“您”。
复制、分发和修改以外的活动不在此许可证的覆盖范围内;它们超出其范围。运行程序不受限制,并且程序的输出仅在程序的输出构成基于该程序的作品(无论是否通过运行程序生成)时才受保护。这取决于程序做什么。
1. 您可以复制和分发程序源代码的逐字副本,如您所收到,以任何媒介,前提是您在每个副本上醒目且适当地发布适当的版权声明和免责声明;保留所有引用本许可证和不存在任何保证的通知;并向程序的任何其他接收者提供本许可证的副本以及程序。
您可以对复制的物理行为收取费用,并且您可以选择自愿提供保修保护以换取费用。
2. 您可以修改程序或其任何部分的副本,从而形成基于该程序的作品,并根据上述第 1 节的条款复制和分发这些修改或作品,前提是您还满足所有这些条件
- a) 您必须使修改后的文件带有醒目的通知,说明您更改了文件以及任何更改的日期。
- b) 您必须使您分发或发布的所有作品,无论全部或部分包含或源自程序或其任何部分,都以免费的方式许可给所有第三方,并受本许可证的条款约束。
- c) 如果修改后的程序通常在运行时以交互方式读取命令,则您必须使其在以最普通的方式启动运行时,打印或显示包含适当版权声明和无保修声明(或者说您提供保修)的公告,并告知用户如何查看本许可证的副本。(例外:如果程序本身是交互式的,但通常不打印此类公告,则您基于该程序的作品不需要打印公告。)
这些要求适用于整个修改后的作品。如果该作品的可识别部分不是源自程序,并且可以合理地被认为是独立的单独作品,那么本许可证及其条款不适用于您将其作为单独作品分发时的这些部分。但是,当您将相同的部分作为基于该程序的作品的整体的一部分分发时,整体的分发必须按照本许可证的条款进行,其对其他被许可人的权限扩展到整个整体,从而扩展到每个部分,无论谁编写它。因此,本节的目的不是声称对您完全由您编写的作品的权利或质疑您的权利;相反,其目的是行使控制基于该程序的衍生或集体作品的分发的权利。
此外,将另一个不基于该程序的作品与程序(或基于该程序的作品)聚合到存储或分发介质的卷上,不会使另一个作品受本许可证的约束。
3. 您可以以目标代码或可执行形式复制和分发程序(或基于第 2 节的作品),并受上述第 1 节和第 2 节的条款约束,前提是您还执行以下操作之一
- a) 附带完整的相应机器可读源代码,该源代码必须根据上述第 1 节和第 2 节的条款分发在通常用于软件交换的介质上;或者,
- b) 附带一份书面要约,有效期至少三年,向任何第三方提供完整的机器可读源代码,以不超过您执行源代码分发的实际成本的费用,该源代码将根据上述第 1 节和第 2 节的条款分发在通常用于软件交换的介质上;或者,
- c) 附带您收到的有关分发相应源代码的信息。(仅允许对非商业分发,并且仅当您以符合上述子节 b 的方式收到以目标代码或可执行形式提供的程序时。)
作品的源代码是指修改作品的首选形式。对于可执行作品,完整的源代码是指其包含的所有模块的所有源代码,以及任何相关的接口定义文件,以及用于控制编译和安装可执行文件的脚本。但是,作为一项特殊例外,分发的源代码不需要包含通常与操作系统的主要组件(编译器、内核等)一起分发的任何内容(无论是源代码还是二进制形式),除非该组件本身伴随可执行文件。如果通过提供从指定位置复制的访问权限来分发可执行或目标代码,则提供从同一位置复制源代码的同等访问权限被视为分发源代码,即使第三方没有被迫将源代码与目标代码一起复制。
4. 您不得复制、修改、再许可或分发程序,除非本许可证明确允许。任何试图复制、修改、再许可或分发程序的行为均无效,并将自动终止您在本许可证下的权利。但是,从您那里根据本许可证收到副本或权利的各方,只要这些方继续完全遵守本许可证,其许可证将不会被终止。
5. 您没有义务接受本许可证,因为您没有签署它。但是,其他任何内容都不会授予您修改或分发程序或其衍生作品的权限。如果您不接受本许可证,这些操作是被法律禁止的。因此,通过修改或分发程序(或任何基于该程序的作品),您表示您接受本许可证以这样做,以及其所有关于复制、分发或修改程序或基于该程序的作品的条款和条件。
6. 每次您重新分发程序(或基于该程序的作品),接收者都会自动从原始许可人处获得许可,可以根据这些条款和条件复制、分发或修改程序。您不得对接收者行使此处授予的权利施加任何进一步的限制。您不负责执行第三方对本许可证的合规性。
7. 如果,由于法院判决或专利侵权指控或任何其他原因(不限于专利问题),对您施加了与本许可证的条款相矛盾的条件(无论是通过法院命令、协议或其他方式),这些条件不免除您遵守本许可证的义务。如果您无法同时满足您在本许可证下的义务和任何其他相关义务进行分发,那么作为结果,您可能根本无法分发程序。例如,如果专利许可不允许所有通过您直接或间接收到副本的人员免费重新分发程序,那么您满足两者唯一的方法就是完全停止分发程序。
如果本节的任何部分在任何特定情况下被认定为无效或不可执行,则该节的其余部分旨在适用,并且该节作为一个整体旨在适用于其他情况。
本节的目的不是诱使您侵犯任何专利或其他财产权利主张,或质疑任何此类主张的有效性;本节的唯一目的是保护通过公共许可实践实施的自由软件分发系统的完整性。许多人对通过该系统分发的各种软件做出了慷慨的贡献,并依赖于该系统的一致应用;作者/捐赠者决定是否愿意通过任何其他系统分发软件,被许可人不能强加这种选择。
本节旨在彻底阐明被认为本许可证其余部分的后果。
8. 如果程序的分发和/或使用在某些国家/地区受到专利或受版权保护的接口的限制,将程序置于本许可证下的原始版权所有者可以添加明确的地理分发限制,排除这些国家/地区,以便仅允许在或在未排除的国家/地区之间进行分发。在这种情况下,本许可证将该限制纳入其中,就好像它写在本许可证的正文中一样。
9. 自由软件基金会可能会不时发布通用公共许可证的修订和/或新版本。这些新版本将与当前版本精神相似,但可能会在细节上有所不同,以解决新的问题或疑虑。
每个版本都赋予一个独特的版本号。如果程序指定了适用于它的本许可证的版本号以及“任何后续版本”,您可以选择遵循该版本或自由软件基金会发布的任何后续版本的条款和条件。如果程序没有指定本许可证的版本号,您可以选择自由软件基金会发布的任何版本。
10. 如果您希望将程序的一部分合并到其他自由程序中,这些程序的分配条件不同,请写信给作者请求许可。对于由自由软件基金会版权的软件,请写信给自由软件基金会;我们有时会对此做出例外。我们的决定将以保持我们自由软件的所有衍生品的自由状态以及促进软件的共享和重用的两个目标为指导。
无保修
11. 由于程序是免费许可的,因此在适用法律允许的范围内,程序没有保修。除非另有书面说明,版权所有者和/或其他方提供程序“按原样”,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性和适用于特定目的的暗示保证。程序的质量和性能的全部风险由您承担。如果程序被证明存在缺陷,您将承担所有必要的服务、维修或更正的费用。
12. 在任何情况下,除非适用法律要求或书面协议规定,任何版权所有者,或任何可能按照上述规定修改和/或重新分发该程序的其他方,均不对您承担任何损害赔偿责任,包括任何一般性、特殊性、偶发性或继发性损害,这些损害源于使用或无法使用该程序(包括但不限于数据丢失或数据变得不准确,或者您或第三方遭受的损失,或者该程序无法与其他程序协同工作),即使该所有者或其他方已被告知可能发生此类损害。
条款和条件结束
如何将这些条款应用于您的新程序
如果您开发了一个新程序,并且希望它对公众具有最大的用处,实现这一目标的最佳方法是使其成为自由软件,允许任何人根据这些条款重新分发和修改它。
为此,请将以下通知附加到程序中。最安全的方法是将它们附加到每个源文件的开头,以最有效地传达免责声明;并且每个文件应至少包含“copyright”行和指向完整通知的指针。
一行用于给出程序的名称和它所做的事情的简要说明。Copyright (C) yyyy 作者姓名
该程序是自由软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它;许可证的版本2,或(根据您的选择)任何更高版本。
该程序分发时带有希望它会有用的想法,但没有任何保证;甚至没有适销性和特定用途适用性的暗示保证。有关更多详细信息,请参阅GNU通用公共许可证。
您应该已经随该程序收到GNU通用公共许可证的副本;如果没有,请写信给自由软件基金会,地址:51 Franklin Street, Suite 330, Boston, MA 02110, USA
还要添加有关通过电子方式和纸质方式联系您如何的信息。
如果该程序是交互式的,请在交互模式下启动时使其输出如下简短通知
Gnomovision 版本 69,Copyright (C) 年份 作者姓名 Gnomovision 绝对没有任何保证;有关详细信息,请键入 `show w'。这是一个自由软件,您可以根据某些条件重新分发它;键入 `show c' 以获取详细信息。
假设的命令 `show w' 和 `show c' 应该显示通用公共许可证的适当部分。当然,您使用的命令可以称为 `show w' 和 `show c' 以外的其他名称;它们甚至可以是鼠标点击或菜单项——任何适合您的程序的方式。
您还应该让您的雇主(如果您是程序员)或您的学校(如果有)签署该程序的“版权声明”,如果需要的话。这是一个示例;更改名称
Yoyodyne, Inc.,特此声明放弃对程序 `Gnomovision'(它试图编译)的所有版权利益,该程序由 James Hacker 编写。
Ty Coon 的签名,1989 年 4 月 1 日 Ty Coon,副总裁
此通用公共许可证不允许将您的程序合并到专有程序中。如果您的程序是一个子程序库,您可能认为允许将专有应用程序与该库链接更有用。如果您想这样做,请使用GNU Lesser General Public License 代替此许可证。