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