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”库(一个用来调整旋钮的库)。1990年4月1日副总裁Ty Coon这就是它的全部!