jboss 许可证
GNU 通用公共许可证版本 2.1(1999 年 2 月)
[这是 Lesser GPL 的第一个版本。它也算作 GNU 图书馆公共许可证的继承者,版本 2,因此版本号 2.1。
序言:大多数软件的许可证旨在剥夺您共享和更改它的自由。相比之下,GNU 通用公共许可证旨在保证您共享和更改自由软件的自由,以确保该软件对所有用户都是免费的。
这个许可证,较小的通用公共许可证,适用于一些特别指定的软件包,通常是自由软件基金会的库和其他作者决定使用它。您也可以使用它,但我们建议您首先根据下面的解释仔细考虑此许可证或普通通用公共许可证是否是在任何特定情况下使用的更好策略。
当我们谈论自由软件时,我们指的是使用自由,而不是价格。我们的通用公共许可证旨在确保您有分发免费软件副本的自由(如果您愿意,并收取此服务的费用);您收到源代码或者可以得到它,如果你想要它;你可以改变软件,并在新的自由程序中使用它的部分;并且你被告知你可以做这些事情。
为了保护您的权利,我们需要做出限制,禁止经销商拒绝您这些权利或要求您放弃这些权利。如果您分发磁带库副本或修改了磁带库副本,这些限制将转化为某些责任。
例如,如果您分发图书馆的副本,无论是免费还是收费,您必须将我们赋予您的所有权利给予收件人。您必须确保他们也接收或可以获取源代码。如果将其他代码与库链接,则必须向收件人提供完整的对象文件,以便他们在对库进行更改并重新编译后可以将其与库重新链接。您必须向他们展示这些术语,以便他们知道自己的权利。
我们使用两步方法保护您的权利:(1) 我们对图书馆进行版权保护;(2) 我们向您提供该许可,该许可允许您复制、分发和/或修改图书馆。
为了保护每个分销商,我们希望非常清楚地表明,免费图书馆没有保修。此外,如果库被其他人修改并传递,接收者应该知道他们拥有的不是原始版本,因此原始作者的声誉不会受到其他人可能引入的问题的影响。
最后,软件专利对任何自由程序的存在构成持续的威胁。我们希望确保一家公司无法通过从专利持有者那里获得限制性许可来有效地限制自由程序的用户。
因此,我们坚持认为,为库版本获得的任何专利许可必须符合本许可中规定的全部使用自由。
大多数 GNU 软件,包括一些库,都被普通的 GNU 通用公共许可证所覆盖。这个许可证,即 GNU 较小的通用公共许可证,适用于某些指定的图书馆,并且与普通的通用公共许可证完全不同。我们对某些库使用此许可证,以便允许将这些库链接到非自由程序。
当程序与库链接时,无论是静态还是使用共享库,这两者的组合在法律上是组合工作,是原始库的衍生品。因此,只有当整个组合符合其自由标准时,普通通用公共许可证才允许这种联系。
较小的通用公共许可证允许更宽松的标准将其他代码与库链接。
我们将此许可证称为“较少”通用公共许可证,因为它比普通通用公共许可证更少地保护用户的自由。它还提供了其他自由软件开发人员比竞争对手的非自由程序更少的优势。这些缺点是我们为许多图书馆使用普通通用公共许可证的原因。但是,小许可证在某些特殊情况下具有优势。
例如,在极少数情况下,可能需要鼓励尽可能广泛地使用某个库,从而使其成为事实上的标准。要实现此目的,必须允许非自由程序使用该库。更常见的情况是,自由库与广泛使用的非自由库的工作相同。在这种情况下,仅将自由库限制为自由软件几乎没有什么好处,因此我们使用较小的通用公共许可证。
在其他情况下,在非自由程序中使用特定库的权限使更多的人能够使用大量的自由软件。例如,在非自由程序中使用 GNU C 库的权限使更多的人能够使用整个 GNU 操作系统及其变体 GNU/Linux 操作系统。
虽然较小的通用公共许可证对用户的自由保护较少,但它确实确保与库链接的程序的用户拥有使用库的修改版本运行该程序的自由和资金。
以下是复制、分发和修改的准确条款和条件。
请密切注意“基于图书馆的工作”与“使用图书馆的工作”之间的区别。前者包含从磁带库派生的代码,而后者必须与磁带库组合才能运行。
复制、分发和修改的条款和条件
0. 本许可协议适用于包含版权持有者或其他授权方发出的通知的任何软件库或其他程序,该通知声明可以根据本次通用公共许可协议(也称为“本许可协议”)的条款分发。每个被许可方都使用“您”作为地址。
“库”是指编写的软件功能和/或数据的集合,以便与应用程序(使用其中一些功能和数据)方便地链接以形成可执行文件。
下面的“库”是指根据这些条款分发的任何此类软件库或工作。“基于图书馆的作品”是指图书馆或版权法下的任何衍生作品:即包含图书馆或其中一部分的作品,无论是逐字的还是修改的,和/或直接翻译成另一种语言。(下文在“修改”一语中不加限制地包括翻译。)
工作的“源代码”是指对工作进行修改的首选形式。对于库,完整的源代码意味着它包含的所有模块的所有源代码,以及任何关联的接口定义文件,以及用于控制库编译和安装的脚本。
除了复制、分发和修改之外,本许可不涵盖其他活动;它们不在其范围内。使用库运行程序的行为不受限制,仅当该程序的内容构成基于库的工作时,才会涵盖该程序的输出(独立于在编写库的工具中使用库)。这是否正确取决于 Library 的作用和使用 Library 的程序。
-
您可以复制和分发图书馆的完整源代码的逐字副本,当您收到它时,在任何媒介中,前提是您在每个副本上明显和适当地发布适当的版权。声明和保证免责声明;保持完整的所有通知,提及本许可证和没有任何保证;并分发本许可证的副本与库。
您可对转移副本的实物行为收取费用,并且您可以选择提供保修保护以换取费用。
-
您可以修改您对库或其任何部分的副本或副本,从而形成基于库的工作,并根据上文第 1 节的条款复制和分发此类修改或工作,前提是您也满足以下所有条件:
-
修改的工作本身必须是软件库。
-
您必须在修改过的文件中附有明显的声明,表明贵方已更改文件以及已更改文件的日期。
-
您必须根据本许可证的条款,使全部作品免费获得所有第三方的许可。
-
如果修改后的库中的某个工具引用了使用该工具的应用程序要提供的函数或数据表,但调用该工具时传递的参数除外,那么你必须真诚地努力,以确保在应用程序不提供这样的功能或表的情况下,设施仍然运行,并执行其目的的任何部分仍然有意义。(例如,库中用于计算平方根的函数具有完全明确定义的目的,与应用程序无关。因此,第 2d 小节要求此函数所使用的任何应用程序提供的函数或表必须是可选的:如果应用程序未提供它,则平方根函数仍必须计算平方根。)
这些要求适用于整个修改后的作品。如果该作品的可识别部分不是源自图书馆,并且可以合理地认为是独立和独立的作品本身,那么当您将它们作为单独作品分发时,本许可及其条款不适用于这些部分。但是,当您分发相同的部分作为一个整体的一部分,这是基于图书馆的工作,整个分发必须根据本许可证的条款,其对其他许可人的权限扩展到整个,从而每个部分,无论是谁写的。因此,本节的意图不是主张权利或质疑您完全由您编写的工作的权利;相反,其意图是行使控制基于图书馆的衍生或集体作品分发的权利。
此外,仅将非图书馆的另一项工作(或基于图书馆的工作)汇总到存储或分发媒介的卷上,并不会将其他工作纳入本许可的范围。
-
-
您可以选择将普通 GNU 通用公共许可证的条款而不是本许可证应用于库的给定副本。为此,您必须更改所有提及本许可证的通知,以便它们引用普通的 GNU 通用公共许可证,版本 2,而不是本许可证。(如果出现比普通 GNU 通用公共许可证版本 2 更新的版本,则您可以根据需要指定该版本。)不要对这些通知进行任何其他更改。
一旦在给定的副本中进行此更改,对该副本是不可逆的,因此普通的 GNU 通用公共许可证适用于所有后续副本和从该副本制作的衍生作品。
当希望将库的代码部分复制到非库的程序中时,此选项非常有用。
-
您可以按照上文第 1 节和第 2 节的条款,以对象代码或可执行形式复制和分发库(或库的一部分或库的衍生品)只要您随身携带完整的机器可读源代码,这些源代码必须按照上文第 1 和第 2 节的条款在通常用于软件交换的介质上分发。
如果通过提供从指定位置复制的访问权限来分发对象代码,则提供从相同位置复制源代码的等效访问权限可以满足分发源代码的要求,即使第三方没有义务复制该源代码以及对象代码。
-
一个程序不包含任何部分库的衍生品,但被设计为通过编译或与库链接来与库一起工作,它被称为“使用库的工作”。这种工作是孤立的,不是图书馆的衍生作品,因此不属于本许可的范围。
但是,将“使用库的工作”与库链接会创建一个可执行文件,该可执行文件是库的派生项(因为它包含库的某些部分),而不是“使用库的工作”。因此,可执行文件受本许可证保护。第 6 部分介绍了此类可执行文件的分发条款。
当“使用库的工作”使用属于库的头文件中的材料时,工作的对象代码可能是库的衍生工作,即使源代码不是。如果工作可以在没有库的情况下链接,或者工作本身是库,则这是否属实尤其重要。实现这一目标的门槛并不完全由法律界定。
如果这样的对象文件只使用数值参数、数据结构布局和存取器,以及小宏和小内联函数(长度不超过十行),则对象文件的使用不受限制,无论它是否是合法的衍生作品。(包含此对象代码和库部分的可执行文件仍属于第 6 部分。)
否则,如果作品是库的衍生品,则可以根据第 6 节的条款分发作品的对象代码。包含该工作的任何可执行文件也属于第 6 部分,无论它们是否直接与库本身链接。
-
作为上述各节的例外,您还可以将“使用库的工作”与“库”组合或链接,以生成包含以下部分的工作:图书馆,并根据您选择的条款分发该工作,前提是这些条款允许修改工作,供客户自己使用,并进行逆向工程来调试此类修改。
您必须向其中使用的库的每个副本发出突出的通知,并且库及其使用受本许可证保护。您必须提供此许可证的副本。如果执行期间的工作显示版权声明,您必须在其中包含库的版权声明,以及指导用户获得本许可副本的参考。此外,您必须执行下列操作之一:-
与库的完整对应机器可读源代码一起工作,包括工作中使用的所有更改(必须在上文第 1 部分和第 2 部分下分发);如果工作是可执行链接的与库一起,使用完整的机器可读“使用库的工作”,作为对象代码和/或源代码,以便用户可以修改库,然后重新链接以生成包含已修改库的已修改可执行文件。(可以理解的是,更改库中定义文件内容的用户不一定能够重新编译应用程序以使用修改后的定义。)
-
使用合适的共享库机制与磁带库进行链接。合适的机制就是这样一种机制;
-
在运行时使用用户计算机系统上已经存在的库副本,而不是将库函数复制到可执行文件中,并且
-
如果用户安装了磁带库的修改版本,只要修改后的版本与所做工作的版本在界面上兼容,该版本便可正常运行。
-
-
与书面要约一起工作,有效期至少三年,向同一用户提供上文第 6a 小节中指定的材料,费用不超过执行此分配的成本。
-
如果通过提供从指定地点复制的访问权限来分发工作,则提供从同一地点复制上述指定材料的同等访问权限。
-
验证用户是否已收到这些材料的副本,或者您是否已向此用户发送副本。对于可执行文件,所需形式的“使用库的工作”必须包括复制可执行文件所需的任何数据和实用程序。
但是,作为一个特殊的例外,要分发的材料不需要包括任何通常与运行可执行文件的操作系统的主要组件(编译器、内核等)一起分发(以源或二进制形式)的任何内容,除非该组件本身与可执行文件一起运行。
可能会出现此要求与通常不随操作系统一起使用的其他专有库的许可证限制相矛盾。这种矛盾意味着你不能在分发的可执行文件中同时使用它们和库。
-
-
您可以将基于库的库设施并排放置在单个库中,以及本许可证未涵盖的其他库设施,并分发此类合并图书馆,前提是基于图书馆和其他图书馆设施的作品的单独分发在其他地方是允许的,并且前提是您做以下两件事:
-
将合并的磁带库与基于磁带库的相同工作的副本一起使用,不与任何其他磁带库设施结合。这必须根据上述各节的条款分发。
-
给出突出的通知与事实的组合库,其中一部分是基于图书馆的工作,并解释在哪里找到伴随的同一工作的未组合形式。
-
-
贵方不得复制、修改、再许可、与库链接或分发库,除非本许可明确规定。以其他方式复制、修改、再许可、链接或分发库的任何尝试均无效,并将自动终止您根据本许可享有的权利。但是,根据本许可从您那里收到副本或权利的当事人,只要这些当事人仍然完全遵守,其许可将不终止。
-
您无需接受本许可证,因为您尚未签署该许可证。但是,没有任何其他内容允许您修改或分发库或其衍生作品。如果您不接受本许可,这些行为将被法律禁止。因此,通过修改或分发库(或基于库的任何工作),表明您接受本许可,以及其复制、分发或修改库或基于库工作的所有条款和条件。
-
每次您重新分发库(或任何基于库的工作)时,收件人都会根据这些条款和条件自动收到原始许可人的许可,以复制、分发、链接或修改库。贵方不得对接受方行使本协议授予的权利施加任何进一步限制。您对第三方遵守本许可不承担任何责任。
-
如果由于法院判决或专利侵权指控或出于任何其他原因(不仅限于专利问题),对您施加的条件(无论是通过法院命令、协议还是其他方式)与本许可的条件相抵触,则它们不会免除您对本许可的条件。如果您无法分发,以便同时履行本许可证规定的义务和任何其他相关义务,则因此您不得分发该库。例如,如果专利许可不允许所有通过您直接或间接接收副本的人免费重新分发图书馆,那么您唯一可以同时满足它和本许可的方法就是完全避免分发图书馆。
如果本节的任何部分在任何特定情况下被认定为无效或不可执行,则本节的余额旨在适用,并且本节作为一个整体旨在适用于其他情况。
本节的目的不是为了诱使您侵犯任何专利或其他财产权索赔或质疑任何此类索赔的有效性;本节的唯一目的是保护由公共许可惯例实施的自由软件分发系统的完整性。许多人依靠该系统的一致应用,对通过该系统分发的广泛软件作出了慷慨的贡献;由作者/捐助者决定他/她是否愿意通过任何其他系统分发软件,被许可人不能强加这种选择。本节旨在彻底明确什么是本许可证的其余部分的结果。
-
如果图书馆的分发和/或使用在某些国家受到专利或受版权保护的接口的限制,根据本许可放置图书馆的原始版权持有人可以添加明确的地域分配限制,排除这些国家,因此只允许在未被排除的国家或国家之间进行分发。在这种情况下,本许可证包含了如同在本许可证正文中写下的限制。
-
自由软件基金会可以不时发布修订版和/或新版本的较小通用公共许可证。这种新版本在精神上与本版本相似,但在解决新问题或关切方面可能有所不同。
每个版本都有一个不同的版本号。如果库指定了适用于该许可证的版本号和“任何更高版本”,则您可以选择遵守该版本或自由软件基金会发布的任何更高版本的条款和条件。如果库未指定许可证版本号,您可以选择自由软件基金会发布的任何版本。
-
如果您希望将库中的部分内容合并到其分发条件与这些不兼容的其他免费程序中,请写信给作者以请求许可。对于受自由软件基金会版权保护的软件,请写信给自由软件基金会;我们有时会对此做出例外。我们的决定将以以下两个目标为指导:维护我们自由软件的所有衍生品的自由地位,并促进软件的共享和重复使用。
-
无担保
因为图书馆是免费许可的,图书馆没有担保,根据适用法律允许的程度。除非另有书面说明,否则版权持有人和/或其他方在不提供任何形式的担保的情况下“按原样”提供图书馆,要么表达或暗示,包括但不限于适销性和特定用途的适用性的隐含保证。整个风险对图书馆的质量和性能是和你在一起的。如果图书馆证明有缺陷,你假设所有必要的维修,维修或更正的成本。
-
任何情况下,除非适用法律要求或书面同意,否则任何版权持有人或任何其他可能修改和/或重新分发上述许可的图书馆的人,对因使用或后续损坏,包括任何一般的,特殊的,附带的或随后的损坏负责。无法使用库(包括但不限于数据丢失或数据被渲染不准确或由您或第三方持续的损失或库无法与任何其他软件一起运行),即使该持有者或其他方已被告知此类损害的可能性。
条款和条件结束
如何将这些条款应用到你的新库如果你开发了一个新的库,并且你希望它对公众来说是最大的用途,我们建议让它成为自由软件,每个人都可以重新分发和更改。您可以通过允许根据这些条款进行再分发(或者,根据普通通用公共许可证的条款进行再分发)。
要应用这些术语,请将以下通知附加到磁带库。最安全的是将它们附加到每个源文件的开头,以最有效地传达保修的排除;每个文件至少应该有“版权”行和指向完整通知所在位置的指针。一行给出库的名称及其作用的想法。版权所有©作者年名。
此程序库是免费软件;可根据自由 Software Foundation 发布的“GNU 宽通用公共许可证”的条款对其进行重新分发和/或修改;可使用该许可证的 2.1 版本或(可任选)任何更高版本。
希望此程序库的提供对您有所帮助,但该程序库的提供并存在任何保证;且不存在任何对适销性或特定用途适用性的暗示性保证。有关更多详细信息,请参见“GNU 宽通用公共许可证”。
您应当已经收到了该程序库一起的“GNU 宽通用公共许可证”副本一份;若未收到的,请寄的信至 Free Software Foundation,Inc.,51 Franklin Street,Fifth Floor,Boston,MA 02110-1301 USA 也要添加有关如何通过电子邮件和纸质邮件联系您的信息。
您还应该让您的雇主(如果您作为程序员工作)或您的学校(如果有)在必要时签署图书馆的“版权免责声明”。下面是一个示例;请更改名称:
Yoyodyne,Inc. 特此放弃对由 James Random Hacker 编写的“Frob”(用于调整旋钮的图书馆)的所有版权权益。
Ty Coon 的签名,1990 年 4 月 1 日,Ty Coon,副总统,这是一切!