GNU 较宽松公共许可证

版本 2.1,1999年2月

版权所有 (C) 1991, 1999 自由软件基金会,Inc.
美国马萨诸塞州波士顿市寺庙街59号,330室,邮编02111-1307
任何人都被允许复制和分发该许可证文件的逐字副本
但不允许更改该文件。

[这是较宽松GPL的第一个发布版本。它也被视为GNU 库公共许可证第2版的继承者,
因此版本号为2.1。]

前言

大多数软件的许可证旨在剥夺你分享和修改软件的自由。相反,GNU 通用公共许可证旨在保证你共享和修改自由软件的自由 —— 确保软件对所有用户都是自由的。

该许可证,较宽松公共许可证,适用于自由软件基金会及其他选择使用该许可证的作者专门指定的软件包 —— 通常是库。你也可以使用它,但我们建议你首先根据下面的说明仔细考虑,在任何具体情况下是使用该许可证还是普通通用公共许可证更合适。

当我们谈论自由软件时,我们指的是使用的自由,而非价格。我们的通用公共许可证旨在确保你有自由分发自由软件的副本(且如你愿意可为此服务收费);你能得到源代码或可以获得它;你可以修改软件并在新的自由程序中使用其部分代码;并且你被告知你可以做这些事情。

为保护你的权利,我们需设置限制,禁止分发者剥夺你这些权利或要求你放弃这些权利。这些限制转化为如果你分发库的副本或对其进行修改,需承担的某些责任。

例如,如果你分发库的副本,无论是免费还是收费,你必须赋予接收者我们给予你的所有权利。你必须确保他们也能获得源代码。如果你将其他代码与库链接,你必须向接收者提供完整的目标文件,以便他们在修改库后重新链接并重新编译它。你必须向他们展示这些条款,让他们了解自己的权利。

我们用双重方法保护你的权利:(1)我们对库拥有版权,和(2)我们提供此许可证,给予你复制、分发和/或修改库的法律许可。

为保护每个分发者,我们明确指出自由库不提供任何保证。同时,如果库被他人修改并传递,接收者应知道他们获得的不是原始版本,以免影响原作者的声誉。

最后,软件专利对任何自由程序的存在构成持续威胁。我们希望确保公司无法通过获得专利持有者的限制性许可有效限制自由程序的用户。因此,我们坚持任何为库版本获得的专利许可必须与本许可证规定的完全自由使用一致。

大部分GNU软件(包括部分库)受普通GNU通用公共许可证保护。本许可证,即GNU较宽松公共许可证,适用于特定指定的库,与普通通用公共许可证有很大不同。我们为某些库使用此许可证,以允许将这些库链接到非自由程序中。

当一个程序与库链接(静态或共享库方式),两者组合在法律上被视为一个组合作品,是原始库的衍生作品。因此普通通用公共许可证只允许在整个组合作品满足自由条件时进行此类链接。较宽松公共许可证对链接其他代码与库的条件更宽松。

我们称此许可证为“较宽松”通用公共许可证,是因为它对用户自由的保护不如普通通用公共许可证。它也给予其他自由软件开发者相对于非自由程序较少优势。正因为如此,我们为许多库使用普通通用公共许可证。然而,较宽松许可证在某些特殊情况下提供优势。

例如,极少数情况下,可能有特殊需要鼓励某个库被尽可能广泛使用,以使其成为事实上的标准。为实现此目的,必须允许非自由程序使用该库。更常见的情况是某自由库与广泛使用的非自由库执行相同功能。在这种情况下,对自由库仅限自由软件使用的限制意义不大,因此我们采用较宽松通用公共许可证。

其他情况下,允许在非自由程序中使用特定库,可以使更多人使用大量自由软件。例如,允许在非自由程序中使用GNU C库,可以使更多人使用整个GNU操作系统及其变种GNU/Linux操作系统。

尽管较宽松通用公共许可证对用户自由的保护较少,但它确保链接库的程序用户有自由和能力使用库的修改版本运行该程序。

下面详细说明复制、分发和修改的具体条款和条件。请特别注意“基于库的作品”和“使用库的作品”的区别。前者包含派生自库的代码,后者必须与库组合才能运行。

复制、分发和修改的条款与条件

0. 本许可证协议适用于任何包含版权持有者或授权方发表的声明,允许根据本较宽松通用公共许可证(下称“本许可证”)条款分发的软件库或其他程序。每个被许可人称为“您”。

“库”指的是为方便与应用程序(使用其中部分功能和数据)链接以形成可执行文件而准备的一组软件函数和/或数据。

下文中的“库”指任何根据这些条款分发的软件库或作品。“基于库的作品”指库或版权法下的任何派生作品:即包含库全部或部分内容(逐字或经修改及/或直接翻译成另一语言)作品。(下文中,翻译亦包含在“修改”内,无限制。)

作品的“源代码”是指进行修改时所偏好的作品形式。对于库,完整源代码包含所有模块的全部源代码,任何相关接口定义文件,以及控制库编译和安装的脚本。

复制、分发和修改之外的活动不在本许可证涵盖范围。运行使用库的程序不受限制,程序输出仅当其内容构成基于库的作品(独立于使用库的编写工具)时才受限制。是否为基于库作品,取决于库以及使用库程序的作用。

1. 您可以逐字复制并分发库的完整源代码副本,任何介质均可,但必须显著且适当发布版权声明和免责声明,保留所有关于本许可证及无保证的通知,并附带本许可证副本。

您可对传输副本的实体行为收费,并可选择提供收费的质保服务。

2. 您可修改库的副本或其部分,形成基于库的作品,并根据第1条的条款复制和分发这些修改或作品,但须满足以下全部条件:

  • a) 修改后的作品本身必须是软件库。
  • b) 您必须使被修改的文件显著标示您所做的更改及更改日期。
  • c) 您必须使整个作品依据本许可证无偿授权给所有第三方。
  • d) 若修改库中的某个功能或设施依赖调用该设施的应用程序提供函数或数据表(非作为调用参数传递),您必须诚信努力确保若应用程序未提供该函数或数据表,该设施仍能运行并完成其仍具意义的部分功能。

    (例如,库中计算平方根的函数,其功能独立于应用程序。因此,第2d款要求应用程序提供的函数或表必须是可选的:若应用程序未提供,该平方根函数仍应能计算平方根。)

    这些要求适用于整个修改作品。如果确定作品中有部分不是基于库,且合理地被视为独立的分离作品,则当您单独分发这些部分时,本许可证及其条款不适用。但当您作为基于库的整体作品一部分分发这些部分时,整体分发须遵守本许可证,许可权限适用于整个作品及其中每一部分,无论作者是谁。

    因此,本节意图并非要求您对完全由您编写的作品主张权利或对您的权利提出异议;而是为了行使对基于库的衍生或集合作品分发的控制权。

    此外,将非基于库的另一个作品与库(或基于库的作品)聚合于同一存储或分发介质的载体上,并不将该非基于库的作品纳入本许可证范围。

3. 您可以选择将普通GNU通用公共许可证的条款应用于某个库副本。为此,您必须修改所有提及本许可证的通知,使其改为提及普通GNU通用公共许可证第2版(或更高版本,如果已有发行)。请勿修改其他通知内容。

一旦对某个副本做出此变更,该副本即不可逆转地适用普通GNU通用公共许可证,且所有后续该副本的复制及派生作品亦适用该许可。

该选项在您希望将库的一部分代码复制到非库程序中时很有用。

4. 您可以根据上述第1和第2条的条款,以目标码或可执行形式复制和分发库(或其部分或基于该条款的衍生作品),前提是您附带完整相应的机器可读源代码,该源代码必须根据第1及第2条的条款在常用的软件交换介质中分发。

若通过指定地点提供目标代码复制访问,提供等效的源代码复制访问也即满足分发源代码要求,即使第三方不被强制连同目标代码复制源代码。

5. 包含库任何部分的衍生作品之外,设计为通过编译或链接与库配合运作的程序称为“使用库的作品”。此类独立作品不属于库的衍生作品,因此不受本许可证限制。

然而,将“使用库的作品”与库链接产生的可执行文件是库的派生作品(因为包含库的部分),而非“使用库的作品”。因此该可执行文件受本许可证保护。第6条规定此类可执行文件分发条款。

当“使用库的作品”使用库中头文件的材料时,即使源代码不是派生作品,其目标代码可能是库的衍生作品。若作品能在无库链接情况下链接,或作品自身为库,则该情况尤为重要。法律上对此阈值无精确定义。

如果该目标文件仅使用数值参数、数据结构布局和访问器,以及小宏和小内联函数(不超过十行),则其使用不受限制,不论其法律地位是否为派生作品。(包含此目标代码及库部分的可执行文件仍受第6条约束。)

否则,如果作品是库的衍生作品,您可依据第6条规定分发作品的目标代码。包含该作品的可执行文件也受第6条约束,无论是否直接链接库。

6. 作为上述各条款例外,您也可将“使用库的作品”与库结合或链接,产生包含库部分的作品,并按您选择的条款分发该作品,前提是条款允许用户自行修改和反向工程进行调试。

您必须在每份作品副本上显著提示包含库并受本许可证约束,附带本许可证副本。如作品运行时显示版权声明,必须包括库的版权声明及指向本许可证副本的引用。且必须执行下列事项之一:

  • a) 伴随作品提供库的完整对应机器可读源代码,包括作品中所用的修改(须依据第1及第2条分发);若作品是链接到库的可执行文件,还应提供完整的机器可读“使用库的作品”部分(目标码及/或源代码),以便用户可修改库后重新链接生成修改版可执行文件。(理解用户修改库中定义文件内容并不必然能重新编译应用程序以使用修改版定义。)
  • b) 使用合适的共享库机制链接库。合适机制应满足:(1)运行时使用用户电脑上已有的库副本,而非将函数复制到可执行文件;(2)若用户安装与制作作品时版本接口兼容的库修改版,仍可正常运行。
  • c) 伴随作品提供书面承诺,有效期至少三年,以不超过分发成本的费用向同一用户提供第6a款指定材料。
  • d) 若通过指定地点提供作品访问复制,应同样在该地提供上述材料的复制访问。
  • e) 核实用户已获得上述材料副本或您已向其发送该资料。

对于可执行文件,“使用库的作品”的规范形式应包括复制该可执行文件所需数据及实用程序。但作为特别例外,分发材料无需包含操作系统主要组成部分(编译器、内核等)通常分发的内容,除非该组件与可执行文件伴随提供。

可能出现此要求与其他专有库许可限制冲突,而这些库通常不随操作系统分发。此类冲突意味着您不能将它们与库一起放入您分发的可执行文件中。

7. 您可将基于库的库设施与其他不受本许可证保护的库设施并置于单个联合库中,并分发该联合库,前提是单独分发基于库的作品及其他库设施均获许可,且满足以下两点:

  • a) 伴随联合库分发一份相同的基于库的作品(未与其他库设施合并),该作品必须按本节规定分发。
  • b) 在联合库上显著提示其部分是基于库的作品,并说明哪里可找到未合并的相同作品。

8. 未经本许可证明确许可,您不得复制、修改、再授权、链接或分发库。否则此类尝试无效,且将自动终止您依据本许可证的权利。但只要相关方完全遵守本许可证,已获得许可的各方的许可不会被终止。

9. 您无需接受本许可证,因为您未签署它。但未获此许可,修改或分发库及其派生作品的行为非法。由此,您修改或分发库(或基于其的作品)即表示接受本许可证及其所有复制、分发、修改的条款和条件。

10. 每次您重新分发库(或基于库的作品)时,接收者自动获得来自原许可方的许可,可根据本条款复制、分发、链接或修改库。您不得对接收者行使权利施加更多限制。您不负责第三方遵守本许可证的监督。

11. 若法院判决、专利侵权指控或其他原因(不限于专利问题)对您施加与本许可证条件冲突的条款(无论法院命令、协议等),该等条款不免除您遵守本许可证的义务。若您无法同时满足本许可证和其他相关义务,即不得分发库。例如,若专利许可不允许所有间接受益者免费再分发库,则您须完全放弃分发库以满足本许可证。

本节任何部分在特定情况下被判无效或不可执行,其剩余部分仍适用,本节整体在其他情况下仍适用。

本节目的非引导您侵权或挑战权利的有效性;而仅为保护通过公共许可实践实施的自由软件分发系统的完整性。许多人依赖该系统的一致实施,慷慨贡献了大量软件;是否通过其他系统分发由作者/捐赠者决定,许可方无权强加选择。

本节旨在明确这被视为本许可证其余部分的自然结果。

12. 若库的分发及/或使用因某些国家的专利或版权接口受限,原版权持有者可在本许可证中明确地加入地理分发限制,排除这些国家,仅允许在未被排除的国家或其间进行分发。此类限制视作写入本许可证正文。

13. 自由软件基金会可不时发布较宽松公共许可证的修订版及新版本。新版本精神与现版本相似,但细节可能调整以应对新问题或关注点。

每个版本都有不同编号。若库指定了适用于其的本许可证版本号及“任何后续版本”,您可选择遵守该版本或自由软件基金会发布的任何后续版本条款。若库未指定版本号,您可选择基金会任何发布的版本。

14. 若您希望将库部分纳入其它自由软件,但其分发条款与本许可证不兼容,请联系作者请求许可。自由软件基金会拥有版权的软件,请联系自由软件基金会,我们有时会例外处理。我们的决定以保持自由软件所有衍生作品自由性和促进软件共享与重用为指导。

无担保

15. 由于库为免费许可,根据适用法律范围内不提供任何担保。版权持有人和/或其他方除非另有书面声明,否则均按“现状”提供库,不承担任何明示或暗示的保证,包括但不限于适销性或特定用途适用性的暗示保证。库的质量和性能风险由您自行承担。若库有缺陷,您承担所有必要的维护、修理或纠正费用。

16. 除非适用法律要求或书面约定,版权持有人或任何根据许可修改和/或再分发库的其他方均不对您承担任何损害赔偿责任,包括一般、特殊、偶发或间接损害,无论是否预见此类可能损害,且包括数据丢失、数据不准确或您及第三方的任何损失,或库与其他软件不兼容等情况。

条款及条件结束

如何将这些条款应用于您的新库

如果您开发了新库,想让它对公众使用价值最大化,我们建议使其成为自由软件,允许任何人复制和修改。您可通过允许按照这些条款(或普通通用公共许可证条款)再分发来实现。

要应用这些条款,请将以下通知附加到库中。为了最有效传达免责声明,最好将其附加到每个源文件开头;每个文件应至少包含“版权”声明和完整通知所在的指引。

一行文本说明库的名称及其功能概述。
版权所有 (C) 年份 作者姓名

本库是自由软件;您可以根据自由软件基金会发布的GNU较宽松公共许可证的条款,
重新分发和/或修改它;许可证版本为2.1,或(由您选择)任何更新版本。
本库的发布希望有用,
但不附带任何保证;甚至不包含适销性或特定用途适用性的隐含保证。详见GNU较宽松公共许可证。

您应随本库收到一份GNU较宽松公共许可证副本;如未收到,请写信至自由软件基金会,
地址为美国马萨诸塞州波士顿市寺庙街59号,330室,邮编02111-1307。
还应添加电子邮件及纸质邮件联系方式。
如有必要,您还应让雇主(如果您是程序员)或学校签署本库的“版权免责声明”。以下为范例,请更改姓名:

Yoyodyne公司特此声明对
’Frob’库(一个调整旋钮的库)不享有任何版权。
作者为James Random Hacker。

Ty Coon签名

1990年4月1日

Ty Coon,副总裁
就是这些内容!
by James Random Hacker.

signature of Ty Coon, 1 April 1990
Ty Coon, President of Vice

That's all there is to it!