版本 2,1991 年 6 月
Copyright (C) 1991 Free Software Foundation, Inc. <https://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.]
大多数软件的许可证旨在剥夺您共享和更改它的自由。相比之下,GNU 通用公共许可证旨在保证您共享和更改自由软件的自由——确保软件对所有用户都是自由的。
本许可证,即库通用公共许可证,适用于一些特别指定的自由软件基金会软件,以及任何作者决定使用它的其他库。您也可以将它用于您的库。
当我们谈论自由软件时,我们指的是自由,而不是价格。我们的通用公共许可证旨在确保您有自由分发自由软件的副本(如果您愿意,可以为此服务收费),您可以收到源代码,或者如果您需要,可以获得源代码,您可以更改软件或在新自由程序中使用它的片段;并且您知道您可以做这些事情。
为了保护您的权利,我们需要设置限制,禁止任何人剥夺您的这些权利或要求您放弃这些权利。如果您分发该库的副本,或者如果您修改它,这些限制会转化为您必须承担的某些责任。
例如,如果您分发该库的副本,无论是免费还是收费,您都必须将我们给予您的所有权利给予接收者。您必须确保他们也收到或可以获得源代码。如果您将一个程序与该库链接,您必须向接收者提供完整的对象文件,以便他们可以在更改该库并重新编译后将其与该库重新链接。并且您必须向他们展示这些条款,以便他们了解自己的权利。
我们保护您权利的方法有两个步骤:(1)版权该库,以及(2)向您提供本许可证,该许可证授予您复制、分发和/或修改该库的法律许可。
此外,为了保护每个分发者的利益,我们希望确保每个人都明白,这个自由库不提供任何担保。如果该库被其他人修改并传递下去,我们希望其接收者知道他们拥有的不是原始版本,以便他人引入的任何问题都不会反映在原始作者的声誉上。
最后,任何自由程序都不断受到软件专利的威胁。我们希望避免这种情况发生:分发自由软件的公司单独获得专利许可,从而实际上将该程序转换为专有软件。为了防止这种情况,我们明确规定,任何专利都必须获得许可供所有人免费使用,或者根本不获得许可。
大多数 GNU 软件,包括一些库,都受普通的 GNU 通用公共许可证的约束,该许可证是为实用程序设计的。本许可证,即 GNU 库通用公共许可证,适用于某些指定的库。本许可证与普通的许可证有很大不同;请务必完整阅读,不要认为其中的任何内容与普通许可证中的内容相同。
我们为某些库单独制定公共许可证的原因是,它们模糊了我们通常在修改或添加到程序和简单使用程序之间所做的区分。将程序与库链接,而不更改库,在某种意义上只是简单地使用该库,并且类似于运行实用程序或应用程序。但是,从文本和法律意义上讲,链接的可执行文件是一个组合作品,是原始库的衍生品,普通的通用公共许可证将其视为此类。
由于这种模糊的区分,对库使用普通的通用公共许可证并没有有效地促进软件共享,因为大多数开发人员没有使用这些库。我们得出结论,较弱的条件可能更好地促进共享。
但是,无限制地链接非自由程序将剥夺这些程序的用户从自由库本身的自由状态中获得的所有好处。本库通用公共许可证旨在允许非自由程序的开发人员使用自由库,同时保留您作为此类程序用户的自由,以更改其中包含的自由库。(我们还没有看到如何实现标题文件中的更改,但我们已经实现了库实际函数中的更改。)希望这将导致自由库的更快开发。
以下是复制、分发和修改的精确条款和条件。请密切注意“基于该库的作品”和“使用该库的作品”之间的区别。前者包含从该库派生的代码,而后者仅与该库一起工作。
请注意,库有可能受普通的通用公共许可证而不是本特殊许可证的约束。
0. 本许可协议适用于任何包含版权持有者或其他授权方声明可以根据本库通用公共许可证(也称为“本许可证”)的条款分发的软件库。每个被许可人都被称为“您”。
“库”是指一组软件函数和/或数据,其准备方式是方便地与应用程序(使用其中一些函数和数据)链接以形成可执行文件。
以下“库”是指根据这些条款分发的任何此类软件库或作品。“基于该库的作品”是指该库或版权法下的任何衍生作品:也就是说,包含该库或其一部分的作品,无论是原样还是经过修改和/或直接翻译成另一种语言。(此后,“修改”一词包含翻译,不受限制。)
作品的“源代码”是指用于对其进行修改的首选形式。对于一个库,完整的源代码是指它包含的所有模块的所有源代码,加上任何相关的接口定义文件,以及用于控制库的编译和安装的脚本。
复制、分发和修改以外的活动不在本许可证的范围内;它们超出其范围。运行使用该库的程序不受限制,并且此类程序的输出只有在其内容构成基于该库的作品时才受约束(独立于在用于编写它的工具中使用该库)。这是否属实取决于库的功能以及使用该库的程序的功能。
1. 您可以复制和分发您收到的库的完整源代码的逐字副本,以任何介质,前提是您在每个副本上显眼且适当地发布适当的版权声明和免责声明;保持所有引用本许可证和不存在任何担保的声明完整无缺;并随库分发本许可证的副本。
您可以收取传输副本的实际费用,并且您可以选择提供担保保护以换取费用。
2. 您可以修改您的库的一个或多个副本或其任何部分,从而形成基于该库的作品,并根据上述第 1 节的条款复制和分发此类修改或作品,前提是您还满足所有这些条件
(例如,库中计算平方根的函数具有完全明确的、独立于应用程序的目的。因此,第 2d 小节要求此函数使用的任何应用程序提供的函数或表必须是可选的:如果应用程序不提供它,平方根函数仍然必须计算平方根。)
这些要求适用于整个修改后的作品。如果该作品的可识别部分不是从该库派生的,并且可以合理地被认为是独立的和单独的作品,那么当您将它们作为单独的作品分发时,本许可证及其条款不适用于这些部分。但是,当您将同一部分作为基于该库的作品的整体的一部分分发时,整个作品的分发必须符合本许可证的条款,本许可证对其他被许可人的许可扩展到整个作品,从而扩展到每个部分,无论谁编写了它。
因此,本节的目的不是声明权利或质疑您对完全由您编写的作品的权利;相反,其目的是行使控制基于该库的衍生作品或集体作品分发的权利。
此外,仅仅将另一个不基于该库的作品与该库(或基于该库的作品)在存储或分发介质的卷上进行聚合,并不会使其他作品处于本许可证的范围之内。
3. 您可以选择对库的给定副本应用普通的 GNU 通用公共许可证的条款,而不是本许可证的条款。为此,您必须更改所有引用本许可证的声明,以便它们引用普通的 GNU 通用公共许可证,版本 2,而不是本许可证。(如果出现了比版本 2 更新版本的普通 GNU 通用公共许可证,那么如果您愿意,可以指定该版本。)请勿对这些声明进行任何其他更改。
一旦在给定的副本中进行了此更改,该更改对于该副本是不可逆转的,因此普通的 GNU 通用公共许可证适用于从该副本制作的所有后续副本和衍生作品。
当您希望将库的部分代码复制到不是库的程序中时,此选项很有用。
4. 您可以根据上述第 1 节和第 2 节的条款复制和分发库(或其一部分或衍生品,根据第 2 节)的对象代码或可执行形式,前提是您随附相应的完整机器可读源代码,该源代码必须根据上述第 1 节和第 2 节的条款在通常用于软件交换的介质上分发。
如果通过提供从指定位置复制的访问权限来进行对象代码的分发,那么提供从同一位置复制源代码的等效访问权限即可满足分发源代码的要求,即使第三方没有义务将源代码与对象代码一起复制。
5. 一个不包含库的任何部分的衍生品,但设计为通过与其编译或链接来使用该库的程序,称为“使用该库的作品”。这种单独的作品不是库的衍生作品,因此不属于本许可证的范围。
然而,将“使用库的作品”与库链接会创建一个可执行文件,该可执行文件是库的衍生品(因为它包含库的部分内容),而不是“使用库的作品”。因此,该可执行文件受本许可证约束。第 6 条规定了分发此类可执行文件的条款。
当“使用库的作品”使用库的头文件中的材料时,即使源代码不是,该作品的目标代码也可能是库的衍生作品。如果该作品可以在没有库的情况下链接,或者该作品本身就是一个库,则这一点尤其重要。法律没有精确定义此为真的阈值。
如果这样的目标文件仅使用数值参数、数据结构布局和访问器,以及小的宏和小内联函数(长度为十行或更少),则目标文件的使用不受限制,无论它是否在法律上是衍生作品。(包含此目标代码和库部分内容的可执行文件仍将属于第 6 条的约束。)
否则,如果该作品是库的衍生品,您可以根据第 6 条的条款分发该作品的目标代码。任何包含该作品的可执行文件也属于第 6 条的约束,无论它们是否直接与库链接。
6. 作为上述各节的例外,您还可以编译或链接“使用库的作品”与库,以生成包含库部分内容的作品,并根据您选择的条款分发该作品,前提是这些条款允许修改该作品供客户自己使用,并允许进行逆向工程以调试此类修改。
您必须在每份作品副本中醒目地声明该作品中使用了该库,并且该库及其使用受本许可证的约束。您必须提供本许可证的副本。如果该作品在执行期间显示版权声明,您必须在其中包含该库的版权声明,以及指示用户查阅本许可证副本的参考。此外,您必须执行以下操作之一:
对于可执行文件,“使用库的作品”的所需形式必须包括从该可执行文件复制该可执行文件所需的任何数据和实用程序程序。但是,作为一项特殊例外,分发的源代码不必包括通常与可执行文件运行所在的操作系统主要组件(编译器、内核等)一起分发的任何内容(以源代码或二进制形式),除非该组件本身随可执行文件一起分发。
可能发生这种情况,该要求与通常不随操作系统一起提供的其他专有库的许可限制相矛盾。这种矛盾意味着您不能在您分发的可执行文件中同时使用它们和库。
7. 您可以将基于库的作品的库设施与本许可证未涵盖的其他库设施并排放在一个库中,并分发这种组合库,前提是基于库的作品和其他库设施的单独分发在其他方面是允许的,并且您执行以下两件事:
8. 除非本许可证明确规定,否则您不得复制、修改、再许可、链接或分发库。任何其他尝试复制、修改、再许可、链接或分发库的行为均无效,并将自动终止您在本许可证下的权利。但是,根据本许可证从您那里收到副本或权利的各方,只要这些方保持完全遵守,其许可证就不会终止。
9. 您没有义务接受本许可证,因为您没有签署它。但是,如果没有本许可证,其他任何东西都不能授予您修改或分发库或其衍生作品的许可。如果您不接受本许可证,这些行为将被法律禁止。因此,通过修改或分发库(或任何基于库的作品),您表明您接受本许可证这样做,以及复制、分发或修改库或基于库的作品的所有条款和条件。
10. 每次您重新分发库(或任何基于库的作品)时,接收者都会自动从原始许可方获得许可,可以根据这些条款和条件复制、分发、链接或修改库。您不得对接收者行使本文授予的权利施加任何进一步的限制。您不负责强制第三方遵守本许可证。
11. 如果由于法院判决或专利侵权指控或任何其他原因(不限于专利问题),对您施加了与本许可证条件相矛盾的条件(无论是通过法院命令、协议还是其他方式),它们都不能免除您遵守本许可证的条件。如果您无法同时满足本许可证和任何其他相关义务下的义务进行分发,那么作为结果,您可能根本不能分发库。例如,如果专利许可不允许所有通过您直接或间接接收副本的人免版税重新分发库,那么您唯一能够同时满足它和本许可证的方法是完全不分发库。
如果本节的任何部分在任何特定情况下被认定为无效或不可执行,则本节的其余部分旨在适用,并且本节整体旨在在其他情况下适用。
本节的目的不是诱使您侵犯任何专利或其他财产权主张或质疑任何此类主张的有效性;本节的唯一目的是保护通过公共许可证实践实施的自由软件分发系统的完整性。许多人已经对通过该系统分发的各种软件做出了慷慨的贡献,这依赖于该系统的一致应用;作者/捐赠者有权决定他或她是否愿意通过任何其他系统分发软件,并且被许可人不能强加该选择。
本节旨在彻底阐明人们认为本许可证其余部分的结果。
12. 如果库的分发和/或使用在某些国家/地区受到专利或受版权保护的接口的限制,则将库置于本许可证下的原始版权所有者可以添加明确的地理分发限制,排除这些国家/地区,以便仅允许在或在未因此排除的国家/地区之间进行分发。在这种情况下,本许可证将限制纳入,如同写入本许可证正文中一样。
13. 自由软件基金会可能会不时发布修订版和/或新版本的库通用公共许可证。此类新版本在精神上将与当前版本相似,但可能在细节上有所不同,以解决新的问题或疑虑。
每个版本都有一个区分版本号。如果库指定了适用于它的本许可证的版本号和“任何后续版本”,您可以选择遵循该版本或自由软件基金会发布的任何后续版本的条款和条件。如果库未指定许可证版本号,您可以选择自由软件基金会发布的任何版本。
14. 如果您希望将库的部分内容合并到其他自由程序中,而这些程序的发行条件与这些条件不兼容,请致信作者请求许可。对于由自由软件基金会拥有版权的软件,请致信自由软件基金会;我们有时会为此做出例外。我们的决定将以维护我们所有自由软件衍生品的自由状态以及促进软件的共享和重用这两个目标为指导。
无担保
15. 由于本库是免费授权的,在适用法律允许的范围内,本库不提供任何担保。除非另有书面声明,否则版权所有者和/或其他方按“原样”提供本库,不提供任何明示或暗示的担保,包括但不限于对适销性和特定用途适用性的暗示担保。关于本库的质量和性能的全部风险由您承担。如果本库被证明存在缺陷,您将承担所有必要的维修、修理或更正的费用。
16. 在任何情况下,除非适用法律要求或书面同意,否则任何版权所有者或任何其他可能按照上述允许修改和/或重新分发本库的方,均不对您因使用或无法使用本库而造成的损害承担责任,包括任何一般性、特殊性、偶然性或后果性损害(包括但不限于数据丢失或数据被呈现为不准确,或您或第三方遭受的损失,或本库无法与任何其他软件一起运行),即使此类持有者或其他方已被告知可能发生此类损害。
如果您开发了一个新的库,并且希望它能为公众带来最大的便利,我们建议将其设为每个人都可以重新分发和更改的自由软件。您可以通过允许根据这些条款(或者,也可以根据普通通用公共许可证的条款)重新分发来实现。
要应用这些条款,请将以下声明附加到库中。最安全的方法是将它们附加到每个源文件的开头,以最有效地传达免责声明;每个文件应至少包含“版权”行以及完整声明所在位置的指针。
one line to give the library's name and an idea of what it does. Copyright (C) year name of author This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, see <https://gnu.ac.cn/licenses/>.
此外,请添加有关如何通过电子和纸质邮件联系您的信息。
如果需要,您还应让您的雇主(如果您是程序员)或您的学校(如果适用)签署本库的“版权免责声明”。这是一个示例;请修改名称
Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. signature of Moe Ghoul, 1 April 1990 Moe Ghoul, President of Vice
就是这样了!