LZ4
Yann Collet
这个库使用 2 个不同的许可证 :- `lib` 目录中的所有文件都使用 BSD 2-Clause 许可证 - 所有其他文件都使用 GPL-2.0 或更高版本的许可证,除非另有明确说明
在每个源文件的顶部提醒相关许可证,并在关联的目录中存在 COPYING 或 LICENSE 文件。
选择此模型是为了强调 `lib` 目录中的文件被设计为包含在第三方应用程序中,而 `programs`、`tests` 或 `examples` 中的所有其他文件都打算作为其预期情景的一部分使用,而无意支持第三方集成用例。
lib/LICENSE 文件 ------------------ LZ4 库版权所有 (c) 2011-2020,Yann Collet 保留所有权利。
在满足以下条件的情况下,无论修改与否,允许源代码形式和二进制形式的再分发和使用:
* 源代码的再分发必须保留上述版权声明、此条件列表和以下免责条款。
* 二进制形式的重新分发必须在文档和/或其他随分发提供的材料中再现上述版权声明、此条件列表和以下免责条款。
本软件由版权持有者和贡献者按“原样”提供,不提供任何明示或暗示的担保,包括但不限于针对特殊用途的适销性和适用性的暗示担保。在任何情况下,对于因使用本软件而以任何方式造成的任何直接、间接、附带、特殊、典型或因果性的损害(包括但不限于:替代商品或服务的采购;使用权丧失、数据丢失或利润损失;或者业务中断),版权持有人和贡献者均不承担任何责任,无论是出于何种原因,也无论是根据何种责任理论,如合同、严格责任或民事侵权行为(包括过失或其他情况),即使已告知有可能发生上述损害也是如此。
-------------------------------------------------------------------------------------------------------------------
程序/COPYING ----------------------- 全名:GNU General Public License v2.0 or later
短标识符:GPL-2.0 或更高版本
文本:GNU GENERAL PUBLIC LICENSE Version 2,June 1991
版权所有 (C) 1989,1991 Free Software Foundation,Inc. 51 Franklin Street,Fifth Floor,Boston,MA 02110-1301,USA
允许每个人复制和分发本许可证文档的逐字副本,但不允许对其进行更改。
前言
大多数软件的许可证旨在剥夺您共享和更改它的自由。相比之下,GNU 通用公共许可证旨在保证您共享和更改自由软件的自由 - 确保该软件对所有用户都是免费的。本通用公共许可证适用于自由软件基金会的大部分软件以及作者承诺使用它的任何其他程序。(其他一些自由软件基金会软件被 GNU 较小的通用公共许可证所覆盖。您也可以将其应用于您的程序。
当我们谈论自由软件时,我们指的是自由,而不是价格。我们的通用公共许可证旨在确保您能够自由地分发自由软件的副本(如果您愿意,并收取此服务的费用),以获得源代码代码或可以得到它,如果你想要它,你可以改变软件或在新的自由程序中使用它的部分;并且你知道你可以做这些事情。
为了保护您的权利,我们需要作出限制,禁止任何人否认您的这些权利或要求您放弃这些权利。如果您分发了软件的副本,或者您修改了软件,这些限制将转化为您的某些责任。
例如,如果您分发此类程序的副本(无论是免费还是付费),则必须向接收者提供您拥有的所有权利。您必须确保他们也接收或可以获取源代码。您必须向他们展示这些术语,以便他们知道自己的权利。
我们通过以下两个步骤保护您的权利:(1) 对软件进行版权保护;(2) 向您提供此许可,以便您获得复制、分发和/或修改软件的法律许可。
此外,对于每个作者的保护和我们的,我们想确保每个人都明白,这个自由软件没有保证。如果软件被其他人修改并传递下去,我们希望它的接收者知道他们所拥有的不是原始的,所以其他人引入的任何问题都不会反映原始作者的声誉。
最后,任何自由程序都不断受到软件专利的威胁。我们希望避免免费程序的再分发者将单独获得专利许可的危险,实际上使该程序成为专有的。为了防止这种情况,我们已经明确表示,任何专利都必须获得每个人的免费使用许可,或者根本没有获得许可。
以下是复制、分发和修改的准确条款和条件。
复制、分发和修改的条款和条件
0. 本许可适用于包含版权持有人发出的通知的任何程序或其他作品,声明其可根据本通用公共许可协议的条款分发。下面的“程序”是指任何此类程序或作品,“基于程序的工作”是指程序或版权法下的任何衍生作品:即包含程序或其一部分的作品,逐字或通过修改和/或翻译成其他语言。(下文在“修改”一语中不加限制地包括翻译。)每个被许可方都使用“您”作为地址。除了复制、分发和修改之外,本许可不涵盖其他活动;它们不在其范围内。运行程序的行为不受限制,并且只有当程序的内容构成基于程序的工作时,该程序的输出才会被覆盖(独立于运行程序)。这是否正确,取决于该计划做什么。
1. 您可以复制和分发该程序的源代码的逐字副本,当您收到它时,在任何媒介中,前提是您明显和适当地在每个副本上发布适当的版权声明和免责声明保证;保持完整的通知,提及本许可和没有任何保证;和给程序的任何其他接收者本许可的副本连同程序。您可对转移副本的实物行为收取费用,并且您可以选择提供保修保护以换取费用。
2. 贵方可修改贵方对本程序或其任何部分的副本或副本,从而形成基于本程序的工作,并根据上文第 1 节的条款复制和分发此类修改或工作,前提是贵方还满足以下所有条件:a) 您必须使修改后的文件携带显著的通知,说明您更改了文件和任何更改的日期。b) 您必须引起您分发或发布的任何工作,这些工作全部或部分包含或衍生自程序或任何其一部分,根据本许可的条款,免费向所有第三方授予整个许可。c) 如果修改后的程序在运行时通常以交互方式读取命令,则必须导致它,当以最普通的方式开始运行此类交互式使用时,打印或显示公告,包括适当的版权声明和没有保证的通知(或者说您提供保证)以及用户可以在这些条件下重新分发程序,并告诉用户如何查看本许可的副本。(例外:如果程序本身是交互式的,但通常不打印此类公告,则您基于程序的工作不需要打印公告。)这些要求适用于整个修改后的作品。如果该作品的可识别部分不是来自程序,并且可以合理地被视为独立和独立的作品本身,那么当您将这些部分作为单独作品分发时,本许可及其条款不适用于这些部分。但是,当您分发相同的部分作为一个整体的一部分,这是基于程序的工作,整体的分发必须根据本许可的条款,其对其他许可人的权限扩展到整个,从而每个部分,无论是谁写的。
因此,本节的意图不是主张权利或质疑您完全由您编写的工作的权利;相反,其意图是行使控制基于本计划衍生品或集体作品分发的权利。
此外,在存储或分销媒介的体积上,仅将非基于程序的其他作品与程序(或基于程序的工作)进行汇总,并不会将其他作品置于本许可的范围内。
3. 您可以按照上文第 1 节和第 2 节的条款,以对象代码或可执行形式复制和分发程序(或基于程序的工作,第 2 节),前提是您也这样做 (a) 附带完整的机器可读源代码,该源代码必须按照上文第 1 和 2 节的规定分发在通常用于软件交换的介质上;或 (b) 附带它与书面报价,有效期至少三年,给予任何第三方,费用不超过您实际执行源分发的成本,相应的源的完整机器可读副本代码,将根据上文第 1 和第 2 节的规定在通常用于软件交换的介质上分发;或者,c) 将其与您收到的关于分发相应源代码的要约的信息一起分发。(此替代方案仅适用于非商业分发,且仅当您根据上文第 b 小节以对象代码或可执行形式收到此类要约的程序时才允许。工作的源代码是指对工作进行修改的首选形式。对于可执行工作,完整的源代码意味着它包含的所有模块的所有源代码,以及任何关联的接口定义文件,以及用于控制可执行文件编译和安装的脚本。但是,作为一个特殊的例外,分发的源代码不需要包含任何通常与运行可执行文件的操作系统的主要组件(编译器、内核等)一起分发(以源代码或二进制形式)的任何内容,除非该组件本身与可执行文件一起运行。
如果通过提供从指定位置复制的访问权限来分发可执行代码或对象代码,则提供从相同位置复制源代码的等效访问权限与源代码的分发计数,即使第三方没有义务复制源代码以及对象代码。
4. 贵方不得复制、修改、再许可或分销程序,除非本许可明确规定。以其他方式复制、修改、再许可或分发本程序的任何尝试均无效,并将自动终止您在本许可下的权利。但是,根据本许可从您那里收到副本或权利的当事人,只要这些当事人仍然完全遵守,其许可将不终止。
5. 您无需接受本许可证,因为您尚未签署该许可证。但是,没有任何其他内容允许您修改或分发程序或其衍生作品。如果您不接受本许可,这些行为将被法律禁止。因此,通过修改或分发程序(或基于程序的任何工作),您表示您接受本许可,以及其复制、分发或修改程序或基于程序的工作的所有条款和条件。
6. 每次您重新分发程序(或基于程序的任何工作)时,收件人都会根据这些条款和条件自动收到原始许可人的许可,以复制、分发或修改程序。贵方不得对接受方行使本协议授予的权利施加任何进一步限制。您不负责执行第三方对本许可的遵守。
7. 如果由于法院判决或专利侵权指控或出于任何其他原因(不仅限于专利问题),对您施加的条件(无论是通过法院命令、协议还是其他方式)与本许可的条件相抵触,则它们不会免除您对本许可的条件。如果您无法分发,以便同时满足您根据本许可证和任何其他相关义务所承担的义务,则因此,您不得分发该程序。例如,如果专利许可不允许所有通过您直接或间接接收副本的人免费重新分发该程序,那么您唯一可以同时满足该许可和本许可的方法就是完全避免分发该程序。如果本节的任何部分在任何特定情况下被认定为无效或不可执行,则本节的余额旨在适用,本节作为一个整体旨在适用于其他情况。
本节的目的不是为了诱使您侵犯任何专利或其他财产权索赔或质疑任何此类索赔的有效性;本节的唯一目的是保护由公共许可实践实施的自由软件分发系统的完整性。许多人依靠该系统的一致应用,对通过该系统分发的广泛软件作出了慷慨的贡献;由作者/捐助者决定他/她是否愿意通过任何其他系统分发软件,被许可人不能强加这种选择。
本节旨在彻底明确什么是本许可证的其余部分的结果。
8. 如果程序的分发和/或使用在某些国家受到专利或受版权保护的接口的限制,根据本许可放置程序的原始版权持有人可以添加明确的地理分布限制,排除这些国家,因此仅允许在未被排除的国家或国家之间进行分发。在这种情况下,本许可证包含了如同在本许可证正文中写下的限制。
9. 自由软件基金会可以不时发布通用公共许可证的修订和/或新版本。这种新版本在精神上与本版本相似,但在解决新问题或关切方面可能有所不同。每个版本都有一个不同的版本号。如果程序指定了适用于该许可证的版本号和“任何更高版本”,则您可以选择遵守该版本或自由软件基金会发布的任何更高版本的条款和条件。如果程序没有指定此许可证的版本号,您可以选择自由软件基金会发布的任何版本。
10. 如果您希望将程序的一部分纳入其他自由程序,其分发条件不同,请写信给作者要求许可。对于受自由软件基金会版权保护的软件,请写信给自由软件基金会;我们有时会对此做出例外。我们的决定将以以下两个目标为指导:维护我们自由软件的所有衍生品的自由地位,并促进软件的共享和重复使用。无担保
11. 由于该程序是免费许可的,因此该程序没有保证,根据适用法律允许的程度。除非另有书面规定,版权持有人和/或其他方按“原样”提供程序,不作任何种类的担保,要么表达或暗示,包括但不限于适销性和适合特定用途的隐含担保。有关该计划的质量和性能的全部风险由您承担。如果程序证明有缺陷,你假设所有必要的维修,维修或更正的成本。
12. 任何情况下,除非适用法律要求或书面同意,否则任何版权持有人或任何其他可能修改和/或重新分发上述程序的人,对因使用而产生的任何一般性、特殊性、附带性或继发性损害负责。无法使用该程序(包括但不限于数据丢失或数据被呈现不准确或由贵方或第三方持续的损失,或该程序未能与任何其他程序一起运行),即使该持有者或其他方已被告知此类损害的可能性。