searchusermenu
点赞
收藏
评论
分享
原创

开源许可证行话(黑话)一览表

2025-12-25 09:43:57
8
0

一、基础概念篇 (Core Concepts)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Copyleft 著佐权 传染性、病毒式许可、左权、强保护 与Copyright(版权/著作权)相对。要求修改后的衍生作品必须使用相同的许可证发布,确保代码及其衍生品保持开源。根据"传染"强度分为强/弱Copyleft。
Permissive 宽松式许可 商业友好、零义务、允许闭源、公共域友好 允许用户任意使用、修改、闭源分发,通常只需保留版权声明和免责条款。是商业化集成首选(如MIT, BSD, Apache-2.0)。
Derivative Work 衍生作品 二开、修改版、魔改、衍生代码 基于原软件修改或组合后形成的新作品。这是判断是否触发Copyleft义务的最关键法律界定,定义常存灰色地带。
Distribution / Conveyance 分发/传播 交付、发布、售卖、传输 触发许可证义务的核心动作。将软件副本(源码或二进制)交给第三方。GPLv3用"Conveyance"更精确地定义此行为。
SaaS Loophole SaaS漏洞 云服务漏洞、ASP漏洞、网络服务漏洞 指通过网络提供服务而不分发软件副本,从而绕过GPL等协议开源要求的漏洞。AGPL专门为此设计
Dual Licensing 双重许可 双轨制、商业/开源双选、开源变现 作者同时提供开源协议(如GPL)和商业协议。用户可选择:遵守GPL开源衍生作品,或购买商业许可以闭源商用。
Public Domain 公共领域 放弃版权、无保留、彻底自由 作者放弃所有权利,任何人可做任何事(如CC0, Unlicense)。但需注意某些法域不承认这种放弃,常用"公共领域等同"许可。
Open Source Definition (OSD) 开源定义 开源十诫 由OSI(开源倡议组织)维护的开源软件必须满足的10条标准,是判断许可证是否为"开源许可证"的黄金准则。
Free Software Definition 自由软件定义 四大自由 由FSF(自由软件基金会)维护的自由软件必须满足的4项自由(使用、学习、分发、改进)。更强调伦理和用户自由。
Source Code vs. Object Code 源代码 vs. 目标代码 源码 vs. 二进制、人类可读 vs. 机器码 许可证通常要求提供"人类可读"的源代码,而不仅仅是机器可执行的二进制文件。这是开源的基础。
License Compatibility 许可兼容性 协议打架、能否混编 指不同许可证的代码能否合法合并发布。基本原则:宽松许可证可并入Copyleft项目,但Copyleft代码不能并入更宽松项目。
Aggregation vs. Combination 聚合 vs. 组合 打包 vs. 融合、独立作品 vs. 衍生作品 关键区分聚合是将独立作品打包在同一媒介分发(如DVD合集),不触发传染;组合是将代码融合成一个作品,可能触发传染。
Propagation 传播 GPLv3的广泛定义 GPLv3中定义的比"分发"更广泛的行为,包括任何使他人能制作或接收副本的活动,旨在覆盖新的技术传播形式。

二、权利与义务篇 (Rights & Obligations)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Grant of Copyright License 版权许可授予 授权、使用许可、法律基础 许可证的法律基础:版权所有者授予他人复制、修改、分发等权利。没有此授权,使用代码即侵权
Attribution / Notice 署名/归属 保留版权声明、贴牌子、鸣谢 几乎所有许可证的最基础义务。要求在使用或分发时,保留原作者的版权声明、许可证文本和贡献者名单。
Source Code Availability 源码提供义务 开源义务、回馈社区、GPL核心 强Copyleft协议的核心要求。分发的形式、获取方式和提供期限(如随分发提供或书面提供)需按许可证规定执行。
State Changes 变更声明 修改记录、修改标注 要求在修改过的文件中明确注明修改内容、日期和修改者。这是GPL等协议的常见要求。
Linkage 链接 静态/动态链接、依赖引用、结合方式 代码结合方式。静态链接通常被视为创建衍生作品;动态链接在LGPL等协议下有特殊豁免条款。
Corresponding Source 对应源代码 完整构建包、GPL的灵魂、构建材料 GPL要求提供的不仅是源码文件,还包括构建脚本、配置文件、接口定义等一切能从源码构建出相同二进制文件所需的材料。
Cure Period 补救期 宽限期、改过自新期、纠正机会 一些现代许可证(如Apache-2.0, GPLv3)规定,违规者在收到通知后有一定时间(通常30天)纠正违规,避免授权被永久终止。
Include Interface 接口包含 Header File、API调用、头文件使用 仅包含头文件或调用API。通常不被视为创建衍生作品(在LGPL或带例外条款的GPL中)。
Collective Work 集体作品 作品集、合集 将多个独立作品集合成一个整体分发,但各作品保持独立。与衍生作品的关键法律区分。
Fair Use 合理使用 法定例外、有限使用 版权法中的例外原则,允许在不经许可的情况下有限使用受版权保护的作品。在开源合规中不能依赖此原则。

三、特殊条款篇 (Clauses & Compatibility Killers)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Patent Grant 专利授权 专利许可、自带专利防护、法律护甲 明确授予用户使用代码中包含的专利技术的权利(如Apache-2.0第3节)。现代企业级协议的核心优势
Patent Termination 专利终止 专利反制、专利报复条款、核威慑、专利报复 兼容性杀手。规定:若你起诉本项目侵犯专利,则你获得的所有授权(包括专利授权)自动终止。导致与GPLv2等无此条款的协议不兼容。
Warranty Disclaimer 免责声明 后果自负、AS-IS条款、不担保 几乎所有开源协议的标准条款:"软件按'原样'提供,不提供任何明示或默示担保"。
Limitation of Liability 责任限制 免赔条款、责任上限、风险自担 规定作者/贡献者不对因使用软件造成的任何直接、间接损失负责。是商业使用的标准风险分配条款。
Indemnification 赔偿/担保条款 连带赔偿、Hold Harmless、责任转移 兼容性杀手。要求被许可方赔偿许可方因软件使用引发的索赔损失。某些协议因要求单方面过度赔偿而与GPL冲突。
Advertising Clause 广告条款 宣传署名要求、历史包袱 历史遗留兼容性杀手。要求在所有广告材料中提及原开发者(如旧版BSD-4)。已被现代社区抛弃,因其造成"署名堆叠"灾难。
Non-Endorsement 禁止背书 禁止借名宣传、撇清关系、名称保护 禁止未经书面许可使用贡献者名称推广衍生产品。保护项目不被滥用进行商业背书。
Tivoization 替沃化 硬件锁定、反破解、防篡改、设备限制 指硬件厂商使用开源软件,但通过技术手段(如签名校验)阻止用户运行修改后的版本。GPLv3引入"反替沃化"条款,要求提供安装信息。
Installation Information 安装信息 GPLv3的反制武器、修改密钥 GPLv3要求,如果设备预装GPLv3软件,厂商必须向用户提供修改和重新安装软件所需的签名密钥、硬件密钥等信息。
Choice of Law / Venue 法律选择/管辖地 司法管辖条款、专属管辖 兼容性杀手。规定纠纷适用特定国家/州法律或在特定法院诉讼。GPL认为这是额外限制,因此包含此类条款的协议(如CDDL)与GPL不兼容。
Non-Commercial 非商业性 NC条款、禁止商用、限制商业 本身就不符合OSD,因此不被视为开源许可证。限制商业使用,常见于CC-NC系列,与开源理念冲突。
Reciprocity 互惠性 网络互惠、弱化版Copyleft、云传染 一些新兴协议(如SSPL, Elastic License)要求:如果你将软件作为云服务提供,必须开源服务本身的修改部分。争议较大,常被称为"伪开源"。
GPLv2 vs. GPLv3 GPL第二版 vs. 第三版 代际差异、专利条款差异 关键区别:1) GPLv3有明确专利授权;2) 反替沃化条款;3) 与Apache-2.0兼容;4) 更广泛的传播定义。许多项目仍停留在GPLv2。
License Version Auto-Upgrade 许可证版本自动升级 "或任何更新版本"条款、未来兼容 一些许可证允许用户选择"按当前版本或任何后续版本"使用。提供对未来版本的自动兼容,但也带来不确定性。

四、例外条款篇 (Exceptions & Special Permissions)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Classpath Exception Classpath 例外 GPL链接例外、Java生态基石、模块隔离 对GPL v2的豁免。允许用户将该库与独立的、非衍生的模块进行链接(无论是静态还是动态),而无需将这些模块开源。是OpenJDK等项目的法律基础。
GCC Runtime Library Exception GCC运行时库例外 GCC RLE、编译器例外、C++生态基石 允许用GCC编译的程序链接其运行时库(libgcc, libstdc++等),而不被视为GPL的衍生作品。没有它,几乎所有C/C++程序都要被GPL传染。
LLVM Exception LLVM例外 Apache-2.0兼容补丁、桥梁条款 附加在Apache-2.0上的条款。核心目的:明确允许LLVM/Clang编译器生成的代码不受Apache-2.0许可证约束,并且允许LLVM与GPLv2代码链接。
System Library Exception 系统库例外 GPL的"安全区"、操作系统豁免 GPL中的通用例外:定义"系统库"为与操作系统主要组件一同分发或用于生成可执行文件的通用库。与这些库链接不触发GPL传染
Font Exception 字体例外 嵌入例外、文档友好、显示豁免 常见于GPL发布的字体(如GPL+FE)。规定:将字体嵌入文档(如PDF)用于显示,不会强制该文档开源。保护文档的自由。
Autoconf Exception Autoconf例外 构建工具例外、脚本豁免 规定由Autoconf生成的configure脚本可以按用户意愿分发,不受GPL约束。确保构建工具的产出物不"带毒"。
Bison Exception Bison例外 解析器生成例外、生成代码豁免 类似Autoconf,允许Bison生成的解析器代码(如parser.c)作为用户程序的一部分分发,而不传染用户的业务逻辑代码。
Bootloader Exception 引导加载程序例外 U-Boot例外、启动豁免、硬件启动 允许专有操作系统通过开源的Bootloader(如U-Boot)启动,两者在内存中的交互不被视为创建衍生作品。
Linux Kernel Exception Linux内核例外 系统调用接口豁免、用户空间保护 Linux内核在GPLv2下,但Linus Torvalds明确声明:用户空间程序通过系统调用接口使用内核,不被视为衍生作品。这是整个生态的基石。
Linking Exception 通用链接例外 隔离声明、传染防火墙、边界划定 统称。任何在Copyleft协议后附加的、允许与特定库或按特定方式链接的声明。其核心作用是明确划定"传染"的边界
Firmware Exception 固件例外 硬件微码例外、驱动程序豁免 允许将开源代码与专有的硬件微码(Firmware)捆绑分发,常见于驱动程序场景,承认硬件厂商对底层微码的控制权。
OpenSSL Exception OpenSSL链接例外 库绑定例外、历史兼容补丁 专门用于解决 GPL与OpenSSL(旧版) 不兼容的问题。GPL项目作者显式声明:"允许本程序链接OpenSSL库",从而豁免了OpenSSL广告条款导致的冲突。

五、许可协议篇(Licenses & Families)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
GNU GPL GNU通用公共许可证 最强传染、病毒式许可、Copyleft标杆 由自由软件基金会(FSF)维护的经典Copyleft协议。有v2、v3等版本。核心是"分发即开源"。
GNU AGPL GNU Affero通用公共许可证 最强病毒、堵SaaS漏洞、网络版GPL GPL的"网络版"。核心是:通过网络提供服务(SaaS)即视为分发,必须公开对应源码,彻底封堵SaaS漏洞。
GNU LGPL GNU宽通用公共许可证 库友好、弱传染、链接豁免、动态库保护 为库设计的Copyleft协议。核心是允许通过动态链接的方式与闭源软件结合使用,而不会"传染"主程序。
MIT License MIT许可证 最宽松、极致简单、最流行 宽松许可证的代表。核心义务仅为"保留版权和许可声明",几乎无任何限制,是商业化最友好的协议之一。
Apache-2.0 Apache许可证2.0 带专利护甲的商业友好协议、企业首选 宽松许可证,但比MIT多了明确的专利授权专利反制条款,提供了更强的法律保护,是现代企业首选之一。
BSD Licenses BSD许可证家族 学院派、去广告条款、简洁宽松 宽松许可证家族。主要有三句版(BSD-3-Clause)和二句版(BSD-2-Clause)。现代版本已移除有争议的广告条款
MPL-2.0 Mozilla公共许可证 文件级弱传染、混编友好、Firefox协议 弱Copyleft(或"中Copyleft")代表。传染性以单个源代码文件为边界。允许将MPL代码与专有代码在同一项目中以不同文件的形式混合。
EPL-2.0 / CPL Eclipse / 通用公共许可证 企业级弱传染、Eclipse生态 类似MPL的弱Copyleft协议,由Eclipse基金会和IBM推动。在专利条款和责任限制上可能包含企业偏好的特定表述。
Unlicense / CC0 无条件放弃 极致公共领域、放弃一切权利、彻底自由 不是"许可证",而是作者主动放弃版权及相关权利,将作品置于公共领域的声明/工具。使用前需确认当地法律是否承认这种放弃。
Weak Copyleft Family 弱Copyleft家族 中传染、库友好协议群 包括LGPL、MPL、EPL等。传染性弱于GPL,通常允许与闭源代码以特定方式(如动态链接、文件隔离)结合。
GPL Compatibility Matrix GPL兼容性矩阵 协议兼容表、许可证关系网 FSF和OSI维护的表格,明确显示各许可证与GPLv2/v3的兼容关系。是许可证混编的重要参考。
Source Available Licenses 源码可用许可证 伪开源、限制性源码访问 如BSL、SSPL、Elastic License等,提供源码但不完全符合OSD(通常限制SaaS使用)。不是真正的开源许可证

六、社区与流程篇 (Community & Processes)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
CLA (Contributor License Agreement) 贡献者许可协议 版权收割机、企业控制工具 贡献者将代码版权授权给项目方(通常是公司),便于项目方统一管理许可证和进行法律维权。
DCO (Developer Certificate of Origin) 开发者原创声明 轻量认证、版权保留、Linux方式 贡献者声明自己有权按项目现有许可证提交代码,更轻量,保留了作者版权。被Linux内核、GitHub等广泛采用。
Inbound=Outbound 流入即流出 许可证一致性原则、贡献策略 社区常见策略:规定所有贡献(Inbound)默认接受,且将按项目的主许可证(Outbound)向外分发。简化了多源贡献的许可证管理。
Copyright Assignment 版权转让 卖身契、彻底转移 比CLA更进一步,贡献者直接将代码的版权所有权转移给项目方(如FSF)。现在已较少使用,DCO成为主流。
License Proliferation 许可证泛滥 选择困难症、协议过多问题 指开源许可证数量过多,导致开发者理解困难、项目兼容性复杂的问题。OSI和FSF都鼓励使用主流许可证。
OSI-Approved OSI认证 官方认证的开源、标准合规 经开源倡议组织审核,符合其"开源定义"的许可证。使用此类许可证是软件被称为"开源"的行业标准。
FOSS / FLOSS 自由与开源软件 统称、大帐篷 Free and Open Source Software 或 Free/Libre and Open Source Software。泛指自由软件和开源软件。
Upstream / Downstream 上游 / 下游 源头与分流、项目流向 上游:指项目的原始社区或主要开发源。下游:指获取上游代码并进行分发、定制或集成的各方(如发行版、商业产品)。许可证义务通常从上游流向下游。
Fork 分叉 另立山头、分裂、独立发展 复制一个开源项目的代码库并独立发展,通常因开发理念、许可证变更或社区分歧导致。分叉后的项目需遵守原项目的许可证。
Contributor vs. Licensor 贡献者 vs. 许可方 代码提交者 vs. 权利授予者 贡献者:提交代码的人;许可方:拥有版权并授予许可的人(可能是贡献者本人或项目法人)。在CLA模式下两者可能不同。
SPDX Identifier SPDX标识符 许可证身份证、机器可读标识 Linux基金会SPDX项目定义的标准许可证短标识符(如MITGPL-2.0-only),用于自动化许可证声明和扫描。
Software Bill of Materials (SBOM) 软件物料清单 成分清单、依赖清单 列出软件所有组件的结构化数据,包含名称、版本、许可证、供应链等信息。是软件供应链安全的基础。

七、合规与风险篇 (Compliance & Risk Management)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Software Audit 软件审计 合规体检、清点家底、许可证扫描 对企业内部使用的软件(特别是开源软件)进行系统性识别、清单管理和许可证合规性检查的过程。
Notice File 声明文件 开源成分清单、NOTICE文件、鸣谢文件 通常指在分发软件时,随附的一个文件(如 NOTICE.txt),其中集中列出了所包含开源软件的版权声明、许可证文本和必要的归属信息。
Source Code Escrow 源码托管 源码保险柜、第三方保管 在某些商业许可中,将源代码交由可信第三方保管,在特定条件(如供应商破产)下释放给客户。与开源的分发义务不同
License Stacking 许可证堆叠 多层许可、组合拳、混合许可证 指一个软件产品中包含了多种不同许可证的开源组件。合规时需要满足所有许可证的要求,取最严格的义务集合。
Implied License / Patent 默示许可 / 专利 法律推定、潜规则、非明示授权 即使许可证没有明确写出,但根据行为或行业惯例,可能被法律推定存在的许可。风险极高,应依赖明示授权
Export Control 出口管制 合规红线、国际制裁 许多开源许可证(如Apache-2.0)会提醒用户,软件可能受国家出口管制条例约束(如美国的EAR)。这是企业必须独立评估的法律义务。
SCA Tools 软件成分分析工具 许可证扫描器、依赖分析工具 自动识别代码中开源组件及其许可证的工具(如Black Duck, FOSSA, Snyk)。是现代开发流程的必备工具。
Compliance Program 合规流程 内控体系、开源治理 企业为确保开源合规建立的制度、工具和流程的统称,包括策略制定、工具链集成、培训、审计等环节。
Ethical Licenses 道德条款许可证 价值观约束、非OSD合规 如Hippocratic License,限制软件被用于侵犯人权等特定用途。不符合OSD,不被认为是开源许可证
Fiduciary License Agreement 受托许可协议 FSF的版权管理 FSF使用的特殊CLA形式,贡献者将版权委托给FSF管理,确保软件永远保持自由。
Community-Oriented vs. Corporate-Oriented 社区导向 vs. 企业导向 理念差异、治理模式 社区导向:强调自由和协作(如GPL);企业导向:强调商业友好和专利保护(如Apache-2.0)。两种不同的开源哲学。
0条评论
0 / 1000
huskar
22文章数
3粉丝数
huskar
22 文章 | 3 粉丝
原创

开源许可证行话(黑话)一览表

2025-12-25 09:43:57
8
0

一、基础概念篇 (Core Concepts)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Copyleft 著佐权 传染性、病毒式许可、左权、强保护 与Copyright(版权/著作权)相对。要求修改后的衍生作品必须使用相同的许可证发布,确保代码及其衍生品保持开源。根据"传染"强度分为强/弱Copyleft。
Permissive 宽松式许可 商业友好、零义务、允许闭源、公共域友好 允许用户任意使用、修改、闭源分发,通常只需保留版权声明和免责条款。是商业化集成首选(如MIT, BSD, Apache-2.0)。
Derivative Work 衍生作品 二开、修改版、魔改、衍生代码 基于原软件修改或组合后形成的新作品。这是判断是否触发Copyleft义务的最关键法律界定,定义常存灰色地带。
Distribution / Conveyance 分发/传播 交付、发布、售卖、传输 触发许可证义务的核心动作。将软件副本(源码或二进制)交给第三方。GPLv3用"Conveyance"更精确地定义此行为。
SaaS Loophole SaaS漏洞 云服务漏洞、ASP漏洞、网络服务漏洞 指通过网络提供服务而不分发软件副本,从而绕过GPL等协议开源要求的漏洞。AGPL专门为此设计
Dual Licensing 双重许可 双轨制、商业/开源双选、开源变现 作者同时提供开源协议(如GPL)和商业协议。用户可选择:遵守GPL开源衍生作品,或购买商业许可以闭源商用。
Public Domain 公共领域 放弃版权、无保留、彻底自由 作者放弃所有权利,任何人可做任何事(如CC0, Unlicense)。但需注意某些法域不承认这种放弃,常用"公共领域等同"许可。
Open Source Definition (OSD) 开源定义 开源十诫 由OSI(开源倡议组织)维护的开源软件必须满足的10条标准,是判断许可证是否为"开源许可证"的黄金准则。
Free Software Definition 自由软件定义 四大自由 由FSF(自由软件基金会)维护的自由软件必须满足的4项自由(使用、学习、分发、改进)。更强调伦理和用户自由。
Source Code vs. Object Code 源代码 vs. 目标代码 源码 vs. 二进制、人类可读 vs. 机器码 许可证通常要求提供"人类可读"的源代码,而不仅仅是机器可执行的二进制文件。这是开源的基础。
License Compatibility 许可兼容性 协议打架、能否混编 指不同许可证的代码能否合法合并发布。基本原则:宽松许可证可并入Copyleft项目,但Copyleft代码不能并入更宽松项目。
Aggregation vs. Combination 聚合 vs. 组合 打包 vs. 融合、独立作品 vs. 衍生作品 关键区分聚合是将独立作品打包在同一媒介分发(如DVD合集),不触发传染;组合是将代码融合成一个作品,可能触发传染。
Propagation 传播 GPLv3的广泛定义 GPLv3中定义的比"分发"更广泛的行为,包括任何使他人能制作或接收副本的活动,旨在覆盖新的技术传播形式。

二、权利与义务篇 (Rights & Obligations)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Grant of Copyright License 版权许可授予 授权、使用许可、法律基础 许可证的法律基础:版权所有者授予他人复制、修改、分发等权利。没有此授权,使用代码即侵权
Attribution / Notice 署名/归属 保留版权声明、贴牌子、鸣谢 几乎所有许可证的最基础义务。要求在使用或分发时,保留原作者的版权声明、许可证文本和贡献者名单。
Source Code Availability 源码提供义务 开源义务、回馈社区、GPL核心 强Copyleft协议的核心要求。分发的形式、获取方式和提供期限(如随分发提供或书面提供)需按许可证规定执行。
State Changes 变更声明 修改记录、修改标注 要求在修改过的文件中明确注明修改内容、日期和修改者。这是GPL等协议的常见要求。
Linkage 链接 静态/动态链接、依赖引用、结合方式 代码结合方式。静态链接通常被视为创建衍生作品;动态链接在LGPL等协议下有特殊豁免条款。
Corresponding Source 对应源代码 完整构建包、GPL的灵魂、构建材料 GPL要求提供的不仅是源码文件,还包括构建脚本、配置文件、接口定义等一切能从源码构建出相同二进制文件所需的材料。
Cure Period 补救期 宽限期、改过自新期、纠正机会 一些现代许可证(如Apache-2.0, GPLv3)规定,违规者在收到通知后有一定时间(通常30天)纠正违规,避免授权被永久终止。
Include Interface 接口包含 Header File、API调用、头文件使用 仅包含头文件或调用API。通常不被视为创建衍生作品(在LGPL或带例外条款的GPL中)。
Collective Work 集体作品 作品集、合集 将多个独立作品集合成一个整体分发,但各作品保持独立。与衍生作品的关键法律区分。
Fair Use 合理使用 法定例外、有限使用 版权法中的例外原则,允许在不经许可的情况下有限使用受版权保护的作品。在开源合规中不能依赖此原则。

三、特殊条款篇 (Clauses & Compatibility Killers)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Patent Grant 专利授权 专利许可、自带专利防护、法律护甲 明确授予用户使用代码中包含的专利技术的权利(如Apache-2.0第3节)。现代企业级协议的核心优势
Patent Termination 专利终止 专利反制、专利报复条款、核威慑、专利报复 兼容性杀手。规定:若你起诉本项目侵犯专利,则你获得的所有授权(包括专利授权)自动终止。导致与GPLv2等无此条款的协议不兼容。
Warranty Disclaimer 免责声明 后果自负、AS-IS条款、不担保 几乎所有开源协议的标准条款:"软件按'原样'提供,不提供任何明示或默示担保"。
Limitation of Liability 责任限制 免赔条款、责任上限、风险自担 规定作者/贡献者不对因使用软件造成的任何直接、间接损失负责。是商业使用的标准风险分配条款。
Indemnification 赔偿/担保条款 连带赔偿、Hold Harmless、责任转移 兼容性杀手。要求被许可方赔偿许可方因软件使用引发的索赔损失。某些协议因要求单方面过度赔偿而与GPL冲突。
Advertising Clause 广告条款 宣传署名要求、历史包袱 历史遗留兼容性杀手。要求在所有广告材料中提及原开发者(如旧版BSD-4)。已被现代社区抛弃,因其造成"署名堆叠"灾难。
Non-Endorsement 禁止背书 禁止借名宣传、撇清关系、名称保护 禁止未经书面许可使用贡献者名称推广衍生产品。保护项目不被滥用进行商业背书。
Tivoization 替沃化 硬件锁定、反破解、防篡改、设备限制 指硬件厂商使用开源软件,但通过技术手段(如签名校验)阻止用户运行修改后的版本。GPLv3引入"反替沃化"条款,要求提供安装信息。
Installation Information 安装信息 GPLv3的反制武器、修改密钥 GPLv3要求,如果设备预装GPLv3软件,厂商必须向用户提供修改和重新安装软件所需的签名密钥、硬件密钥等信息。
Choice of Law / Venue 法律选择/管辖地 司法管辖条款、专属管辖 兼容性杀手。规定纠纷适用特定国家/州法律或在特定法院诉讼。GPL认为这是额外限制,因此包含此类条款的协议(如CDDL)与GPL不兼容。
Non-Commercial 非商业性 NC条款、禁止商用、限制商业 本身就不符合OSD,因此不被视为开源许可证。限制商业使用,常见于CC-NC系列,与开源理念冲突。
Reciprocity 互惠性 网络互惠、弱化版Copyleft、云传染 一些新兴协议(如SSPL, Elastic License)要求:如果你将软件作为云服务提供,必须开源服务本身的修改部分。争议较大,常被称为"伪开源"。
GPLv2 vs. GPLv3 GPL第二版 vs. 第三版 代际差异、专利条款差异 关键区别:1) GPLv3有明确专利授权;2) 反替沃化条款;3) 与Apache-2.0兼容;4) 更广泛的传播定义。许多项目仍停留在GPLv2。
License Version Auto-Upgrade 许可证版本自动升级 "或任何更新版本"条款、未来兼容 一些许可证允许用户选择"按当前版本或任何后续版本"使用。提供对未来版本的自动兼容,但也带来不确定性。

四、例外条款篇 (Exceptions & Special Permissions)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Classpath Exception Classpath 例外 GPL链接例外、Java生态基石、模块隔离 对GPL v2的豁免。允许用户将该库与独立的、非衍生的模块进行链接(无论是静态还是动态),而无需将这些模块开源。是OpenJDK等项目的法律基础。
GCC Runtime Library Exception GCC运行时库例外 GCC RLE、编译器例外、C++生态基石 允许用GCC编译的程序链接其运行时库(libgcc, libstdc++等),而不被视为GPL的衍生作品。没有它,几乎所有C/C++程序都要被GPL传染。
LLVM Exception LLVM例外 Apache-2.0兼容补丁、桥梁条款 附加在Apache-2.0上的条款。核心目的:明确允许LLVM/Clang编译器生成的代码不受Apache-2.0许可证约束,并且允许LLVM与GPLv2代码链接。
System Library Exception 系统库例外 GPL的"安全区"、操作系统豁免 GPL中的通用例外:定义"系统库"为与操作系统主要组件一同分发或用于生成可执行文件的通用库。与这些库链接不触发GPL传染
Font Exception 字体例外 嵌入例外、文档友好、显示豁免 常见于GPL发布的字体(如GPL+FE)。规定:将字体嵌入文档(如PDF)用于显示,不会强制该文档开源。保护文档的自由。
Autoconf Exception Autoconf例外 构建工具例外、脚本豁免 规定由Autoconf生成的configure脚本可以按用户意愿分发,不受GPL约束。确保构建工具的产出物不"带毒"。
Bison Exception Bison例外 解析器生成例外、生成代码豁免 类似Autoconf,允许Bison生成的解析器代码(如parser.c)作为用户程序的一部分分发,而不传染用户的业务逻辑代码。
Bootloader Exception 引导加载程序例外 U-Boot例外、启动豁免、硬件启动 允许专有操作系统通过开源的Bootloader(如U-Boot)启动,两者在内存中的交互不被视为创建衍生作品。
Linux Kernel Exception Linux内核例外 系统调用接口豁免、用户空间保护 Linux内核在GPLv2下,但Linus Torvalds明确声明:用户空间程序通过系统调用接口使用内核,不被视为衍生作品。这是整个生态的基石。
Linking Exception 通用链接例外 隔离声明、传染防火墙、边界划定 统称。任何在Copyleft协议后附加的、允许与特定库或按特定方式链接的声明。其核心作用是明确划定"传染"的边界
Firmware Exception 固件例外 硬件微码例外、驱动程序豁免 允许将开源代码与专有的硬件微码(Firmware)捆绑分发,常见于驱动程序场景,承认硬件厂商对底层微码的控制权。
OpenSSL Exception OpenSSL链接例外 库绑定例外、历史兼容补丁 专门用于解决 GPL与OpenSSL(旧版) 不兼容的问题。GPL项目作者显式声明:"允许本程序链接OpenSSL库",从而豁免了OpenSSL广告条款导致的冲突。

五、许可协议篇(Licenses & Families)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
GNU GPL GNU通用公共许可证 最强传染、病毒式许可、Copyleft标杆 由自由软件基金会(FSF)维护的经典Copyleft协议。有v2、v3等版本。核心是"分发即开源"。
GNU AGPL GNU Affero通用公共许可证 最强病毒、堵SaaS漏洞、网络版GPL GPL的"网络版"。核心是:通过网络提供服务(SaaS)即视为分发,必须公开对应源码,彻底封堵SaaS漏洞。
GNU LGPL GNU宽通用公共许可证 库友好、弱传染、链接豁免、动态库保护 为库设计的Copyleft协议。核心是允许通过动态链接的方式与闭源软件结合使用,而不会"传染"主程序。
MIT License MIT许可证 最宽松、极致简单、最流行 宽松许可证的代表。核心义务仅为"保留版权和许可声明",几乎无任何限制,是商业化最友好的协议之一。
Apache-2.0 Apache许可证2.0 带专利护甲的商业友好协议、企业首选 宽松许可证,但比MIT多了明确的专利授权专利反制条款,提供了更强的法律保护,是现代企业首选之一。
BSD Licenses BSD许可证家族 学院派、去广告条款、简洁宽松 宽松许可证家族。主要有三句版(BSD-3-Clause)和二句版(BSD-2-Clause)。现代版本已移除有争议的广告条款
MPL-2.0 Mozilla公共许可证 文件级弱传染、混编友好、Firefox协议 弱Copyleft(或"中Copyleft")代表。传染性以单个源代码文件为边界。允许将MPL代码与专有代码在同一项目中以不同文件的形式混合。
EPL-2.0 / CPL Eclipse / 通用公共许可证 企业级弱传染、Eclipse生态 类似MPL的弱Copyleft协议,由Eclipse基金会和IBM推动。在专利条款和责任限制上可能包含企业偏好的特定表述。
Unlicense / CC0 无条件放弃 极致公共领域、放弃一切权利、彻底自由 不是"许可证",而是作者主动放弃版权及相关权利,将作品置于公共领域的声明/工具。使用前需确认当地法律是否承认这种放弃。
Weak Copyleft Family 弱Copyleft家族 中传染、库友好协议群 包括LGPL、MPL、EPL等。传染性弱于GPL,通常允许与闭源代码以特定方式(如动态链接、文件隔离)结合。
GPL Compatibility Matrix GPL兼容性矩阵 协议兼容表、许可证关系网 FSF和OSI维护的表格,明确显示各许可证与GPLv2/v3的兼容关系。是许可证混编的重要参考。
Source Available Licenses 源码可用许可证 伪开源、限制性源码访问 如BSL、SSPL、Elastic License等,提供源码但不完全符合OSD(通常限制SaaS使用)。不是真正的开源许可证

六、社区与流程篇 (Community & Processes)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
CLA (Contributor License Agreement) 贡献者许可协议 版权收割机、企业控制工具 贡献者将代码版权授权给项目方(通常是公司),便于项目方统一管理许可证和进行法律维权。
DCO (Developer Certificate of Origin) 开发者原创声明 轻量认证、版权保留、Linux方式 贡献者声明自己有权按项目现有许可证提交代码,更轻量,保留了作者版权。被Linux内核、GitHub等广泛采用。
Inbound=Outbound 流入即流出 许可证一致性原则、贡献策略 社区常见策略:规定所有贡献(Inbound)默认接受,且将按项目的主许可证(Outbound)向外分发。简化了多源贡献的许可证管理。
Copyright Assignment 版权转让 卖身契、彻底转移 比CLA更进一步,贡献者直接将代码的版权所有权转移给项目方(如FSF)。现在已较少使用,DCO成为主流。
License Proliferation 许可证泛滥 选择困难症、协议过多问题 指开源许可证数量过多,导致开发者理解困难、项目兼容性复杂的问题。OSI和FSF都鼓励使用主流许可证。
OSI-Approved OSI认证 官方认证的开源、标准合规 经开源倡议组织审核,符合其"开源定义"的许可证。使用此类许可证是软件被称为"开源"的行业标准。
FOSS / FLOSS 自由与开源软件 统称、大帐篷 Free and Open Source Software 或 Free/Libre and Open Source Software。泛指自由软件和开源软件。
Upstream / Downstream 上游 / 下游 源头与分流、项目流向 上游:指项目的原始社区或主要开发源。下游:指获取上游代码并进行分发、定制或集成的各方(如发行版、商业产品)。许可证义务通常从上游流向下游。
Fork 分叉 另立山头、分裂、独立发展 复制一个开源项目的代码库并独立发展,通常因开发理念、许可证变更或社区分歧导致。分叉后的项目需遵守原项目的许可证。
Contributor vs. Licensor 贡献者 vs. 许可方 代码提交者 vs. 权利授予者 贡献者:提交代码的人;许可方:拥有版权并授予许可的人(可能是贡献者本人或项目法人)。在CLA模式下两者可能不同。
SPDX Identifier SPDX标识符 许可证身份证、机器可读标识 Linux基金会SPDX项目定义的标准许可证短标识符(如MITGPL-2.0-only),用于自动化许可证声明和扫描。
Software Bill of Materials (SBOM) 软件物料清单 成分清单、依赖清单 列出软件所有组件的结构化数据,包含名称、版本、许可证、供应链等信息。是软件供应链安全的基础。

七、合规与风险篇 (Compliance & Risk Management)

名称 (Term) 中文名称 社区/领域专业术语 描述 (Description)
Software Audit 软件审计 合规体检、清点家底、许可证扫描 对企业内部使用的软件(特别是开源软件)进行系统性识别、清单管理和许可证合规性检查的过程。
Notice File 声明文件 开源成分清单、NOTICE文件、鸣谢文件 通常指在分发软件时,随附的一个文件(如 NOTICE.txt),其中集中列出了所包含开源软件的版权声明、许可证文本和必要的归属信息。
Source Code Escrow 源码托管 源码保险柜、第三方保管 在某些商业许可中,将源代码交由可信第三方保管,在特定条件(如供应商破产)下释放给客户。与开源的分发义务不同
License Stacking 许可证堆叠 多层许可、组合拳、混合许可证 指一个软件产品中包含了多种不同许可证的开源组件。合规时需要满足所有许可证的要求,取最严格的义务集合。
Implied License / Patent 默示许可 / 专利 法律推定、潜规则、非明示授权 即使许可证没有明确写出,但根据行为或行业惯例,可能被法律推定存在的许可。风险极高,应依赖明示授权
Export Control 出口管制 合规红线、国际制裁 许多开源许可证(如Apache-2.0)会提醒用户,软件可能受国家出口管制条例约束(如美国的EAR)。这是企业必须独立评估的法律义务。
SCA Tools 软件成分分析工具 许可证扫描器、依赖分析工具 自动识别代码中开源组件及其许可证的工具(如Black Duck, FOSSA, Snyk)。是现代开发流程的必备工具。
Compliance Program 合规流程 内控体系、开源治理 企业为确保开源合规建立的制度、工具和流程的统称,包括策略制定、工具链集成、培训、审计等环节。
Ethical Licenses 道德条款许可证 价值观约束、非OSD合规 如Hippocratic License,限制软件被用于侵犯人权等特定用途。不符合OSD,不被认为是开源许可证
Fiduciary License Agreement 受托许可协议 FSF的版权管理 FSF使用的特殊CLA形式,贡献者将版权委托给FSF管理,确保软件永远保持自由。
Community-Oriented vs. Corporate-Oriented 社区导向 vs. 企业导向 理念差异、治理模式 社区导向:强调自由和协作(如GPL);企业导向:强调商业友好和专利保护(如Apache-2.0)。两种不同的开源哲学。
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0