GNU库通用公共许可证版本2

版本2 SPDX短标识符:仅LGPL-2.0

开放源代码倡议批准的许可证

注:LGPL的许可证管理员自由软件基金会认为此许可证已被LGPL版本3取代。

GNU库通用公共许可证
第2版,1991年6月

版权所有(C)1991 Free Software Foundation,Inc。
美国马萨诸塞州波士顿市富兰克林街51号5楼,邮编:02110-1301
每个人都可以复制和分发原稿
但不允许更改它。

[这是库GPL的第一个发布版本。它是
编号为2,因为它与普通GPL的版本2一起使用。]

序言

大多数软件的许可证设计用于带走您的
分享和改变它的自由。相比之下,GNU公众
许可旨在保证您共享和更改的自由
自由软件&确保软件对所有用户都是免费的。

此许可证,即库通用公共许可证,适用于
特别指定的自由软件基金会软件,以及
作者决定使用它的其他库。您可以将其用于
你的图书馆也一样。

当我们谈到自由软件时,我们指的是自由,而不是
价格。我们的通用公共许可证旨在确保您
有分发自由软件副本的自由(并收取
此服务(如果您愿意),您可以接收或获取源代码
如果您需要,可以更改软件或使用其中的部分
在新的自由项目中;你知道你可以做这些事情。

为了保护你的权利,我们需要做出限制
任何人拒绝你这些权利或要求你放弃这些权利。
这些限制转化为您的某些责任,如果
您可以分发库的副本,或者修改它。

例如,如果您分发库的副本,无论是免费的
或者收取费用,你必须给予接收人我们给予的所有权利
你。您必须确保他们也能接收或获得源代码
代码。如果将程序链接到库,则必须提供
向收件人填写目标文件,以便他们可以重新链接
使用库,在对库进行更改并重新编译后
你必须向他们展示这些条款,让他们知道自己的权利。

我们保护您权利的方法有两个步骤:(1)版权
图书馆,以及(2)向您提供此许可证
复制、分发和/或修改库的权限。

此外,为了保护每个分销商,我们要确保
每个人都知道这是免费的
库。如果库被其他人修改并传递,我们
希望收件人知道他们所拥有的不是原件
版本,这样其他人提出的任何问题都不会被考虑
原作者的声誉。

最后,任何自由程序都会不断受到软件的威胁
专利。我们希望避免公司免费分发的危险
软件将单独获得专利许可,从而生效
将程序转换为专有软件。为了防止这种情况发生,
我们已经明确表示,任何专利都必须为每个人的
免费使用或根本没有许可证。

大多数GNU软件,包括一些库,都包含在普通的
GNU通用公共许可证,专为实用程序设计。这个
许可证,即GNU库通用公共许可证,适用于
指定的库。这张执照与普通执照大不相同
一个;请务必完整阅读,不要以为其中有任何内容
与普通许可证中的相同。

我们对某些库使用单独的公共许可证的原因是
它们模糊了我们通常在修改或添加
程序并简单地使用它。将程序与库链接,而不
更改库,在某种意义上只是使用库
类似于运行实用程序或应用程序。然而,在
从文本和法律的角度来看,链接的可执行文件是一个组合作品
原始库的派生,以及普通通用公共许可
就这样对待它。

由于这种模糊的区分,使用普通将军
图书馆公共许可证并没有有效地推广软件
共享,因为大多数开发人员都不使用库。我们
结论是,较弱的条件可能会更好地促进共享。

然而,非免费程序的无限制链接将剥夺
所有这些程序的用户都可以从
图书馆本身。本图书馆通用公共许可旨在
允许非自由程序的开发人员使用自由库,而
保留您作为此类程序用户的自由,以更改自由
包含在其中的库。(我们还没有看到如何实现
这是关于头文件的更改,但我们已经在
库的实际功能发生变化。)希望是这样
将导致免费图书馆的更快发展。

复制、分发和
随后进行修改。密切关注
“基于库工作”和“使用库的工作”。这个
前者包含从库派生的代码,而后者仅包含
与图书馆合作。

请注意,图书馆有可能被普通
通用公共许可证而不是这个特殊许可证。

GNU库通用公共许可证
复制、分发和修改的条款和条件

0.本许可协议适用于以下任何软件库:
包含版权持有人或其他授权人员发布的通知
一方表示可以根据本图书馆的条款进行分发
通用公共许可证(也称为“本许可证”)。每个持牌人
称呼为“你”。

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

下面的“库”是指任何此类软件库或作品
已根据这些条款分发。A“基于
图书馆”是指图书馆或根据
版权法:也就是说,包含图书馆或
部分,逐字记录或修改和/或翻译
直接翻译成另一种语言。(以下翻译为
包括但不限于“修改”一词。)

作品的“源代码”是指作品的首选形式
对其进行修改。对于库,完整的源代码意味着
它包含的所有模块的所有源代码,以及任何相关的
接口定义文件,以及用于控制编译的脚本
和库的安装。

复制、分发和修改以外的活动
本许可证涵盖的范围;它们超出了它的范围。行为
使用库运行程序不受限制
只有当其内容构成基于作品的内容时,才涵盖此类程序
在库上(独立于库在工具中的使用
写它)。这是否属实取决于图书馆的工作
以及使用库的程序的功能。

1.您可以复制和分发图书馆的逐字副本
在收到源代码时,在任何介质中完成它,前提是
您可以在每个副本上醒目且适当地发布
适当的版权通知和免责声明;保持完好
所有涉及本许可证的通知以及
担保;并将本许可证的副本连同
图书馆。

您可以对转让副本的实际行为收取费用,
您可以选择提供保修保护,以换取
费用。

2.您可以修改图书馆或其任何部分的副本
从而形成以图书馆为基础的作品,并复制和
根据第1节的条款分发此类修改或工作
前提是您也满足所有这些条件:

a) 修改后的作品本身必须是软件库。

b) 您必须使修改后的文件带有显著的通知
说明您更改了文件和任何更改的日期。

c) 你必须使整个作品获得许可
根据本许可条款向所有第三方收费。

d) 如果修改后的库中的设施引用函数或
由应用程序提供的数据表,该应用程序使用
设施,而不是作为设施时传递的参数
则您必须真诚努力确保,
如果应用程序不提供此类功能,或
表中,该设施仍在运行,并执行任何部分
它的目的仍然有意义。

(例如,库中用于计算平方根的函数有
独立于
应用程序。因此,第2d小节要求
应用程序提供的函数或此函数使用的表必须
可选:如果应用程序没有提供,则方块
根函数仍必须计算平方根。)

这些要求适用于整个修改后的工程。如果
该作品的可识别部分并非来自图书馆,
可以合理地认为是独立和独立的工程
则本许可证及其条款不适用于
当您将它们作为单独的作品分发时。但是当你
将相同的部分作为基于作品的整体的一部分进行分发
在图书馆中,整体的分配必须符合以下条件
本许可证,其对其他被许可方的权限延伸至
整个,因此,无论是谁写的,每个部分
它。

因此,本节的目的不是要求权利或抗辩
您完全由自己编写的工作权利;相反,其目的是
行使控制衍生品分销的权利,或
基于图书馆的集体作品。

此外,仅仅是不基于图书馆的其他作品的聚合
图书馆(或基于图书馆的作品)
存储或分发介质不会将其他工作置于
本许可证的范围。

3.您可以选择适用普通GNU公众的条款
对库的给定副本授予许可证而不是本许可证。待办事项
因此,您必须更改所有涉及本许可证的通知
它们指的是普通GNU通用公共许可证,版本2,
而不是本许可证。(如果是比版本2更新的
普通GNU通用公共许可证已经出现,那么您可以指定
如果您愿意,可以改为该版本。)不要在中进行任何其他更改
这些通知。

在给定副本中进行此更改后,对于
该副本,因此普通GNU通用公共许可证适用于所有
随后的副本和由该副本制作的衍生作品。

当您希望复制的部分代码时,此选项很有用
将库转换为非库的程序。

4.您可以复制和分发图书馆(或部分或
根据第2)节以目标代码或可执行形式派生的
根据上述第1节和第2节的条款,前提是您
它具有完整的相应机器可读源代码,其中
必须根据上述第1节和第2节的条款在
通常用于软件交换的介质。

如果目标代码的分发是通过提供副本访问权限进行的
从指定位置复制
来自同一位置的源代码满足以下要求
分发源代码,即使第三方没有
被迫复制源代码和目标代码。

5.不包含
库,但旨在通过编译或
与之相关联的作品称为“使用图书馆的作品”。这样一个
单独而言,该作品不是图书馆的衍生作品,并且
因此不属于本许可证的范围。

然而,将“使用库的作品”与库链接
创建库派生的可执行文件(因为它
包含库的一部分),而不是“使用
库”。因此,可执行文件包含在本许可证中。
第6节规定了此类可执行文件的分发条款。

当“使用库的作品”使用头文件中的材料时
这是库的一部分,工作的目标代码可能是
库的派生工作,即使源代码不是。
如果工作可以
如果作品本身是一个库,则链接不到库。这个
法律并没有对这一点做出准确定义。

如果这样的对象文件只使用数值参数
结构布局和访问者,以及小型宏和小型内联
函数(长度不超过十行),然后使用对象
文件是不受限制的,无论它是否是合法的派生文件
工作。(包含此目标代码和
图书馆仍属于第6节。)

否则,如果该作品是库的衍生作品,您可以
根据第6节的条款分发工作的目标代码。
包含该作品的任何可执行文件也属于第6节,
无论它们是否与库本身直接链接。

6.作为上述章节的例外,您还可以编译或
将“使用库的作品”与库链接,以生成
包含部分库的工作,并分发该工作
根据您选择的条款,前提是条款允许
修改工作供客户自用和反转
调试此类修改的工程。

你必须在每一份作品的副本中突出说明
图书馆在其中使用,图书馆及其使用由
本许可证。您必须提供本许可证的副本。如果工作
在执行显示版权声明期间,必须包括
其中包括图书馆版权声明以及参考
将用户定向到本许可证的副本。另外,你必须做一个
其中包括:

a) 随附完整的相应文件
库的机器可读源代码,包括任何内容
工作中使用了更改(必须根据
第1节和第2节);并且,如果工作是链接的可执行文件
有了图书馆,有了完整的机器可读的“工作
使用库”作为目标代码和/或源代码,以便
用户可以修改库,然后重新链接以生成修改过的
包含修改后的库的可执行文件。(这是可以理解的
更改中定义文件内容的用户
库不一定能够重新编译应用程序
使用修改后的定义。)

b) 随作品附上书面报价,有效期至
至少三年,为同一用户提供材料
上文第6a小节中规定的不再收费
而不是执行此分发的成本。

c) 如果通过提供副本访问权来分发作品
从指定地点提供同等权限复制上述内容
来自同一地点的指定材料。

d) 验证用户是否已经收到这些的副本
材料或您已经向此用户发送了副本。

对于可执行文件,“使用
图书馆”必须包括
从中复制可执行文件。但是,作为一个特殊的例外,
分发的源代码不需要包含任何正常的
分布(以源代码或二进制形式)
操作系统的组件(编译器、内核等)
可执行文件运行的,除非该组件本身附带
可执行文件。

这一要求可能与许可证相矛盾
其他专有库的限制
随操作系统提供。这样的矛盾意味着你不能
在可执行文件中同时使用它们和库
分发。

7.您可以放置基于
库与其他库并排在一个库中
本许可证未涵盖的设施,以及
图书馆,前提是根据
图书馆和其他图书馆设施
允许,前提是您要做以下两件事:

a) 将同一作品的副本附在合并的图书馆中
基于库,与任何其他库取消组合
设施。必须根据
上述章节。

b) 用事实的组合库发出显著的通知
这部分是基于图书馆的作品
在哪里可以找到同一作品的未组合形式。

8.您不得复制、修改、分许可、链接或分发
除非本许可另有明确规定。任何
试图以其他方式复制、修改、再授权、链接或
分发图书馆无效,将自动终止您的
本许可证项下的权利。然而,收到副本的各方,
或您在本许可证下的权利
只要双方仍完全遵守,则终止协议。

9.您不需要接受本许可证,因为您没有
已签名。但是,没有其他内容授予您修改或
分发图书馆或其衍生作品。这些操作是
如果您不接受本许可证,将被法律禁止。因此,通过
修改或分发库(或基于
库),您表示接受本许可证,并且
复制、分发或修改的所有条款和条件
图书馆或基于图书馆的作品。

10.每次你重新发布图书馆(或任何基于
库),收件人自动从
原始许可方复制、分发、链接或修改库
遵守这些条款和条件。你不能再强加
对接收人行使本协议授予的权利的限制。
您不负责强制第三方遵守
本许可证。

11.如果由于法院判决或专利指控
侵权或其他原因(不限于专利问题),
对您施加的条件(无论是法院命令、协议还是
否则)与本许可证的条件相矛盾
请原谅您违反本许可证的条件。如果你不能
分配以同时满足您在本协议项下的义务
许可和任何其他相关义务,因此您
可能根本不会分发库。例如,如果一项专利
该许可证不允许图书馆的免版税再分配
所有直接或间接通过您接收副本的人,那么
您满足它和本许可证的唯一方法是
完全避免分发图书馆。

如果本节的任何部分根据任何
在特定情况下,本节的其余部分将适用,
而本节作为一个整体旨在适用于其他情况。

本节的目的不是诱使您违反
专利或其他产权主张或对任何
此类索赔;本节的唯一目的是保护
自由软件分发系统的完整性
通过公共许可实践实施。许多人已经
为广泛的分布式软件做出慷慨贡献
依靠该系统的一致应用
系统;由作者/捐赠者决定他或她是否愿意
通过任何其他系统分发软件,而被许可方不能
强加这种选择。

本节旨在彻底阐明
是本许可证其余部分的结果。

12.如果图书馆的分发和/或使用受到限制
某些国家通过专利或受版权保护的接口
将库置于本许可之下的原始版权所有者可以添加
明确的地域分配限制,不包括这些国家,
因此,只允许在不这样做的国家内或国家之间进行分配
排除。在这种情况下,本许可证包含如下限制
写在本许可证正文中。

13.自由软件基金会可发布修订版和/或新版本
库通用公共许可证的版本。
这些新版本在精神上与当前版本相似,
但在解决新问题或关注点时,细节可能会有所不同。

每个版本都有一个不同的版本号。如果图书馆
指定适用于本许可证的版本号,以及
“任何更新版本”,您可以选择遵循条款和
该版本或由发布的任何更高版本的条件
自由软件基金会。如果库没有指定
许可证版本号,您可以选择发布的任何版本
自由软件基金会。

14.如果您希望将图书馆的部分内容合并到其他免费的
其分发条件与这些不兼容的程序,
写信给作者征求许可。对于以下软件:
版权归自由软件基金会所有,写信给自由
软件基础;我们有时会对此做出例外。我们的
决定将以保持自由状态的两个目标为指导
我们自由软件的所有衍生产品以及促进共享
以及软件的通用重用。

无担保

15.由于库是免费许可的,因此没有
在适用法律允许的范围内对图书馆进行担保。
除非版权持有人和/或
其他方“按原样”提供库,无任何保证
种类,无论是明示的还是暗示的,包括但不限于
适销性和特定适用性的默示保证
目的。与质量和性能相关的全部风险
图书馆与你同在。你认为图书馆是否存在缺陷
所有必要的维修、修理或纠正费用。

16.在任何情况下,除非适用法律要求或双方同意
任何版权持有人或可能修改的任何其他方
和/或按照上述许可重新分发图书馆,对您负责
损害赔偿,包括任何一般、特殊、偶然或
因使用或无法使用
图书馆(包括但不限于数据丢失或数据存在
您或第三方或
库无法与任何其他软件一起运行),即使
该持有人或其他方已被告知该可能性
损害赔偿。

条款和条件结束

如何将这些术语应用于新库

如果你开发了一个新的库,并且你希望它是最好的
我们建议让它成为免费软件
每个人都可以重新分配和改变。你可以通过允许这样做
根据这些条款重新分配(或者,根据
普通公共许可证)。

要应用这些术语,请在库中附上以下通知。它是
最安全地将它们附加到每个源文件的开头
传达保修除外条款;并且每个文件应至少具有
“版权”行和指向完整通知所在位置的指针。

<一行给出库的名称和它的功能的简要说明。>
版权所有(C)<年份><作者姓名>

这个库是自由软件;你可以重新分配它和/或
根据GNU Library General Public的条款修改
自由软件基金会发布的许可证;任何一个
许可证的版本2,或(根据您的选择)任何更高版本。

这个图书馆是为了有用而发行的,
但无任何保证;甚至没有
适销性或特定用途的适用性。查看GNU
有关更多详细信息,请参阅Library General Public License。

您应该已经收到了GNU Library General Public的副本
此库的许可证;如果没有,请写信给自由软件
Foundation,Inc.,51 Franklin Street,Fifth Floor,Boston,MA 02110-1301 USA美国马萨诸塞州波士顿市富兰克林街51号

还可以添加有关如何通过电子邮件和纸质邮件与您联系的信息。

你还应该找你的雇主(如果你是程序员)或你的
学校(如果有)为图书馆签署“版权免责声明”,如果
必要的。这是一个样品;更改名称:

Yoyodyne,Inc.特此放弃
詹姆斯·兰登·哈克(James Random Hacker)编写的“Frob”库(一个用来调整旋钮的库)。

<Ty Coon的签名>,1990年4月1日
副总裁Ty Coon

这就是一切!