M02 开源合规

● 完整 合规 v0.6 · 更新于 2026-10-29

给谁用

使用开源组件的软件公司——尤其是对外宣称「开源」但商业版为专有许可的公司

解决什么问题

组件来源、许可证义务和闭源分发条件缺少可追溯记录时,发布与尽调难以核验

组件清单

可下载内容

M02 可下载文件
文件说明版本下载
开源引入与发布审批表含字段说明、义务分析、Qt 专项、四例模拟填写与变更复评;签字和实际审批日期留空v0.2下载
开源组件与义务台账(SBOM)正式登记、义务矩阵、四例示范、来源记录与自动统计;示例与正式数据分表v0.2下载
开源发布与网络服务核对清单分发和网络服务上线逐项核对,记录适用性、责任人、证据位置与结果v0.1下载

详细说明

开源合规不是给每个组件贴一个「安全/危险」标签,而是把具体组件、具体许可证版本、具体使用行为对应起来:有没有向其他主体交付副本、有没有修改、有没有远程网络交互、以什么方式组合或链接。同一许可证在不同行为下义务不同;同一产品里,不同模块也可能适用不同许可证。本模块的顺序是:先固定事实,再判断触发条件,最后落实可验证的动作和证据。

判断树(先看行为,再看许可证)

0 固定事实:组件、精确版本/提交、许可证表达式、包内 LICENSE/NOTICE、实际使用方式
│
├─ 1 是否选择了商业许可或其他替代授权路径?
│   ├─ 是 → 记录授权文件、覆盖版本与模块;仍核对实际带入的第三方组件许可
│   └─ 否 → 按开源许可证继续分析
│
├─ 2 是否向其他主体交付副本?
│   (安装包、容器镜像、SDK、设备、源码包、浏览器脚本、WASM 均可能是副本)
│   ├─ 是 → 交付/分发成立:核对许可证副本、声明、NOTICE、源码交付方式
│   └─ 否 → 记录主体边界;关联公司、外包、客户现场部署需单独判断
│
├─ 3 是否修改组件?
│   (补丁、改配置生成代码、把组件代码并入自有代码都可能是修改)
│   ├─ 是 → 记录修改文件、日期、对外说明;再判断修改版是否被交付
│   └─ 否 → 仍要判断组合作品和声明义务
│
├─ 4 是否存在远程网络交互?
│   (用户通过网络使用服务,即使不下载任何副本)
│   ├─ 是 → 检查 AGPLv3 §13、服务条款及浏览器端交付物
│   └─ 否 → 网络交互源码义务不适用
│
└─ 5 组合或链接方式是什么?
    (独立进程、IPC、动态链接、静态链接、源码嵌入、聚合、容器镜像)
    ├─ 记录实际方式、调用关系和依据,不按单一标签直接下结论
    └─ 形成结论:许可证路径+受约束范围+履行动作+证据+未完成条件

第 2 问和第 4 问可以同时成立:一个产品可以同时向客户交付安装包,又让客户通过网络使用服务。交付、修改、网络交互是三条可以同时成立的事实轴。反之,仅在公司同一法人内部运行、没有对外交付副本,通常不触发 GPL 系许可证的分发条件;但把副本交给关联公司、外包商或客户,就可能构成向其他主体交付。

先分清三个概念

概念要问的事实常见误区
交付副本(分发/conveying)是否让其他主体能够制作或接收副本?安装包、镜像、SDK、设备、浏览器脚本、WASM 都是副本形态把「没有卖软件」当成没有分发;把内部使用和对外交付混在一起
修改是否改动了组件文件、合并了代码、打了补丁?修改是否随产品对外提供?认为「只要修改就必须公开全部源码」;或认为「没改就不用管」
远程网络交互用户是否通过网络使用服务,即使服务端副本没有交付?把 SaaS 一律当成「不分发所以没有义务」;忽略 AGPLv3 §13

修改本身不当然产生「再许可义务」。 GPLv3 允许在不对外交付副本时运行和修改(§0、§2);AGPLv3 则在「修改+远程网络交互」时直接触发 §13 的源码提供义务;LGPL 的义务主要落在分发库或组合作品时。是否公开、公开到什么范围,取决于许可证版本、交付行为和网络交互,而不是「改没改」这一个事实。

同样,「静态链接、动态链接、IPC 是否构成衍生作品」在不同许可证和不同法域下并非一句话可以定论。本模块不把「动态链接=安全」「IPC=不传染」写成规则,而要求在审批表和 SBOM 中记录实际组合方式、调用关系、许可证版本和分析依据;结论不明确时升级法务审查,不用标签替代分析。

许可证义务矩阵

许可证类别只说明许可证的典型机制,不等于使用场景的风险等级。GPL 系组件可以用于商业产品,关键在是否满足对应版本的条件;Apache-2.0、MIT 也不是「只留版权声明」这么简单。下表按许可证逐行列出触发条件与动作,详细条款以来源记录中的官方文本为准。

宽松许可(MIT/BSD/Apache-2.0)

许可证触发条件声明与通知源码范围交付方式修改与链接来源
MIT向他人交付软件副本,或交付包含其实质部分的作品在全部副本或实质部分中保留版权声明和许可全文;保留免责声明不要求公开自有源码安装包、镜像、SDK、源码包中附 LICENSE 或第三方声明文件可修改、可再许可、可闭源;无 copyleft;不包含商标许可S11
BSD-2-Clause源码或二进制再分发源码保留版权声明、条件与免责声明;二进制在文档或随附材料中复现同样内容不要求公开自有源码同 MIT,二进制分发须让接收方看到声明可修改、可闭源;不得删除声明S12
BSD-3-Clause源码或二进制再分发在 BSD-2-Clause 基础上,不得用版权人或贡献者名义为衍生产品背书或推广,除非另有书面许可不要求公开自有源码同 BSD-2-Clause可修改、可闭源;注意第 3 条禁止背书S13
Apache-2.0再分发 Work 或 Derivative Works(源码或目标码)向接收方提供许可证副本;修改文件加显著变更标识;源码形式保留版权、专利、商标、署名声明;上游有 NOTICE 时,在 NOTICE、源码、文档或产品展示中包含相关署名不要求公开衍生作品源码;但「不公开源码」不等于「只留版权声明」安装包、镜像、文档中附 LICENSE、NOTICE、修改说明和第三方声明允许修改和闭源分发;就 Work 或其并入的贡献主张直接或帮助侵害专利而起诉(含反诉)时,该 Work 的专利许可终止(§3);§6 除描述来源和复制 NOTICE 的合理惯常用途外不授予商标权S01

Apache-2.0 分发要逐项核对 §4(a)—(d):

  1. §4(a) 许可证副本:每个接收 Work 或 Derivative Works 的主体都要拿到 Apache-2.0 文本,目标码分发也一样。
  2. §4(b) 修改标识:修改过的文件要有显著通知,说明你改过;不要只改代码不留言。
  3. §4(c) 声明保留:在分发的源码形式中保留版权、专利、商标和署名声明,剔除与衍生作品无关的部分。
  4. §4(d) NOTICE:上游分发中包含 NOTICE 时,衍生产品要在 NOTICE 文件、源码或文档、或产品展示中放入其中相关的署名;可以追加自己的署名,但不得改动许可证。
  5. §3 专利与 §6 商标:不要把专利授权当成无条件永久安全;也不要用上游商标做产品背书。

Copyleft(GPL/LGPL/AGPL)

许可证触发条件声明要求对应源码范围交付对象与方式修改/链接条件来源
GPLv2分发覆盖作品或基于它的作品;同一法人内部运行通常不触发随附许可证、版权与无担保声明;修改文件显著说明改动及日期;修改后的程序如通常交互读取命令,按 §2(c) 显示公告;上游本身交互但通常不显示公告的例外保留分发目标码时提供完整对应机器可读源码,含修改、接口定义、编译安装脚本;不是要求公开公司全部代码随附源码;或至少三年有效的书面要约(费用不超过物理分发成本);或依收到的要约再分发(仅限非商业);网络下载点同处提供等价源码分发基于作品的整体须整体按 GPLv2 许可;独立作品和单纯聚合一般不纳入;静态、动态链接按实际组合作品分析,不得直接套用 GPLv3 的条款和履行方式S03
GPLv3convey:使其他主体能够制作或接收副本;纯网络交互且无副本转移不构成 conveying(§0);内部修改自用不触发随附许可证;修改版本显著标识;修改版交互界面按 §5(d) 显示 Appropriate Legal Notices(保留上游原本不显示的例外);User Product 情形按 §6 判断 Installation Information 及例外;不得附加额外限制Corresponding Source:生成、安装、运行目标码所需的源码、接口定义、脚本等;系统库等有例外§6(a) 实物附耐用介质源码;§6(b) 实物附至少三年且持续至备件/支持结束的要约;§6(c) 偶尔非商业转递所收到要约;§6(d) 与目标码同处等价取得源码且不另收费(异服务器须清晰指引);§6(e) P2P 告知免费来源分发修改版本按 §5;构成受许可约束的组合作品须整体满足 GPLv3,单纯聚合除外;§10 接收方自动获得下游许可;不得就接收方行使 GPL 权利另收许可费或附加限制;§4 允许为副本、支持或担保收费S02
LGPLv2.1分发库(修改或未修改),或分发与库链接的组合作品显著说明使用了库、库及其使用受 LGPL 约束;附许可证副本;执行时显示版权声明的场合,包含库版权和许可指引分发库目标码须附库的完整对应机器可读源码(§4);组合作品选择 §6(a) 时提供库源码和可重链接的应用目标码/源码;选择 §6(b) 的共享库机制不免除随包分发库本身的 §4 源码义务§6(a) 随附材料;§6(b) 合适的共享库机制;§6(c) 至少三年书面要约;§6(d) 同址提供;§6(e) 已提供证明可用自选条款分发组合作品,但须允许客户为自身使用修改,以及为调试修改进行反向工程;修改库本身须整体按 LGPL 许可;没有 LGPLv3 式的安装信息明文,但仍受重链接条件约束S05
LGPLv3分发库或组合作品(convey)显著说明使用了库、库及其使用受 LGPLv3 约束;附 GPLv3 与 LGPLv3 文本;执行时显示版权声明的场合包含库版权和许可指引§4(d)(0) 提供 Minimal Corresponding Source(排除仅基于应用而非库的部分)+可重链接的 Corresponding Application Code;或用 §4(d)(1) 共享库机制。另行随包分发库目标码时,仍须按纳入的 GPLv3 §6 提供库完整对应源码,即使库未修改§4(d)(0) 提供源码和重链接材料;§4(d)(1) 使用共享库机制:运行时使用用户系统已有的库,接口兼容的修改版可正常工作;§4(e) 在 GPLv3 §6 要求时提供 Installation Information允许闭源应用,但不得限制修改库和为调试而反向工程;静态链接通常需要 §4(d)(0) 材料;动态链接必须真正满足 §4(d)(1),不能只写「动态链接即合规」;合同、EULA、应用商店规则不得限制 LGPL 权利S04
AGPLv3convey(定义与 GPLv3 相同);另 §13:修改程序且支持远程网络交互,即须向所有远程交互用户提供对应源码,不以交付副本为前提AGPLv3 对应条款的声明要求;§13 要求以显著方式向远程用户提供源码获取机会;附许可证修改版本的 Corresponding Source,包含依 GPLv3 并入的部分从网络服务器免费提供,采用标准或惯常的软件复制方式;入口应显著、可访问、无需额外门槛修改+网络交互触发 §13;未修改的 AGPL 服务不因 §13 本身触发,但交付副本仍按 GPL 系分析;与 GPLv3 组合适用 §13 第二段S06

GPLv2 与 GPLv3 不能混用

事项GPLv2GPLv3
触发核心distribution(分发)conveying(使他人可制作或接收副本)
网络交互无 AGPL 式远程源码条款无 AGPL 式远程源码条款;纯网络交互且无副本转移不构成 conveying
源码对应完整对应机器可读源码;书面要约至少三年Corresponding Source;§6 列明多种交付方式
安装信息无 Installation Information 条款User Product 场景可能要求 Installation Information
附加限制§6 禁止进一步限制§10、§11 等禁止附加限制,含专利相关安排
兼容性GPL-2.0-only 与 GPLv3 通常不兼容;GPL-2.0-or-later 可依法选择 v3 后再分析组合与 AGPLv3 在 §13 第二段下有组合通道

不要用 GPLv3 的「网络交互不构成 conveying」去解释 GPLv2,也不要把 GPLv3 的 Installation Information 要求套到 GPLv2。 版本不同,条款和履行方式不同。

Qt/PySide6 的三条路径

Qt 的商业许可与开源许可并行。开源侧的主许可证是 LGPLv3,但不是整个 Qt 都只有 LGPL:部分模块只提供 GPL,LGPL 部分通常也可按 GPL 使用;商业路径须按实际所购产品的模块授权范围核对。判断时必须落到具体 Qt 版本、具体模块和实际包来源,不能把「Qt」当成一个许可证。

路径适用场景关键条件需要留存的证据来源
LGPLv3使用提供 LGPL 路径的模块,希望应用保持闭源满足 LGPLv3 全部条件:提供库的完整对应源码(即使未修改);显著声明并附许可证;允许用户修改、重链接和反向工程;按 §4(d)(1) 使用合适的共享库机制,或按 §4(d)(0) 提供重链接材料;在 GPLv3 §6 要求时提供安装信息;不得通过合同或分发渠道限制这些权利Qt 版本与模块清单、库源码包及修改、安装包中的共享库、替换/重链接验证记录、NOTICE 与许可证文本、EULA 审查S07、S08
GPLv3使用仅提供 GPL 的模块,或主动选择 GPL 路径整个应用按 GPLv3 分发:提供 Corresponding Source、许可证、修改标识和安装信息(如适用);GPL-only 模块不能靠「动态链接」绕开模块许可页、完整源码包、构建脚本、许可证与声明S07、S08
商业许可不愿或无法满足 LGPL/GPL 条件,或需要商业支持与特定模块从 Qt Account、Qt Installer 或 qtpip 获取商业包,不使用 pip install pyside6 的社区版;核对 ADP/ADE/DCP/DCE 的覆盖范围(例如 ADP 不含 Qt OPC UA、Qt MQTT、Qt CoAP 的独立 wheel);商业许可不当然覆盖第三方组件订单与授权范围、商业包来源与校验值、模块清单、第三方许可清单S09、S10

Qt 官方明确:LGPL 路径下可以保持应用源码闭源,前提是满足 LGPLv3 的全部要求;部分模块只提供 GPL,使用这些模块会要求应用整体按 GPL 处理。Qt 还说明,分发 LGPL 库时源码即使未修改也要提供,用户应能修改并重链接库(包括反向工程),LGPLv3 §4(e) 在 GPLv3 §6 所定情形要求安装信息,需按 User Product 交易、修改版安装能力及例外逐项判断,封闭设备尤其需要审查。第三方组件仍按各自许可证处理,Qt 6.8 起还提供 SPDX 2.3 格式的第三方组件 SBOM。

Qt 核对顺序:

  1. 以产品实际使用的 Qt/PySide6 版本为准,列出模块清单,而不是只看安装包名称。
  2. 逐模块查 Qt Licensing 页面和对应版本文档,确认该模块是 LGPL、GPL 还是仅商业。
  3. 区分社区包与商业包来源:商业用户不应通过 pip install pyside6 安装社区版;商业 wheel 的获取方式、LTS 版本和模块覆盖要写进审批表。
  4. 核对 Qt for Python 第三方许可页面及包内 NOTICE,确认实际带入的组件及其独立义务。
  5. 购买商业许可后,不再机械套用未触发的 LGPL 条件,但仍要检查商业授权覆盖的版本、模块、包来源和第三方许可。

表单、台账与发布清单如何关联

三份材料分工不同,不能互相替代:

材料作用与其他材料的关系不做什么
审批表 DOCX对单个组件或一组组件作完整事实记录、义务分析和审批结论以组件 ID 关联 SBOM;以审批单 ID 回填 SBOM;附条件通过时把条件写入发布清单不代替法律意见;不把「未知」直接写成「通过」
SBOM 台账 XLSX人工维护的组件与义务底账,按产品版本冻结每个正式组件行对应一个审批单 ID;统计只反映录入状态不自动作法律判断;示例行不计入正式统计
发布清单 Markdown发布前逐项确认义务已落实、证据可追溯引用产品版本、SBOM 版本和审批单 ID;未完成条件在此关闭不替代审批;不把「已勾选」当成内容真实

建议的编号规则(内部管理建议,可按公司习惯调整):

最小追溯链:产品版本 → SBOM 行(组件 ID)→ 审批单(APR ID)→ 发布清单证据位置 → 实际发布产物。任何一环缺失,都不能以「SBOM 已标已审批」代替发布产物核验。

落地 SOP

以下审批层级、复查频率和工具选择是内部管理建议,不是许可证义务;公司可以按依赖变动和实际使用场景简化,但不能省略对触发事实和证据的记录。

步骤动作产出责任建议判断要点
1 组件登记记录组件、精确版本/提交、来源、校验值、依赖关系、许可表达式SBOM 行研发直接和传递依赖都要登记;区分包来源
2 事实初筛确认是否交付副本、是否修改、是否远程网络交互、如何组合或链接审批表「使用事实」研发+产品三条事实轴可同时成立;关联公司、外包、客户现场部署单独判断
3 许可判断核对包内 LICENSE、文件头、NOTICE、上游仓库、官方版本说明;确定许可证版本和所选路径审批表「授权识别」「义务分析」法务+研发冲突不自行择一;未知写「待查」并升级
4 条件落实落实许可证副本、声明、NOTICE、源码交付、重链接/安装信息、合同限制处理声明文件、源码包、验证记录研发+法务附条件通过必须列出未完成条件和期限
5 发布复核按发布清单逐项确认适用性、责任人、证据和结果已签署发布清单产品+法务没有实际产物验证的项目标「未验证」
6 版本归档冻结 SBOM、审批单、声明和源码材料,与发布版本对应版本归档包研发+法务归档版本必须能在发布后追溯
7 变更复查版本、模块、修改、交付对象、部署方式或授权路径变化时重新评估变更记录/新审批单组件责任人不以固定日历替代变更触发

内部审批分层建议(不是许可证义务,按公司授权体系调整):

情形建议审批最低留痕
宽松许可;无修改或修改不对外;无网络源码义务研发负责人确认,法务抽查SBOM 行、许可证与声明检查记录
LGPL/弱 Copyleft;对外交付;需要重链接、安装信息或声明研发+法务会签审批表、替换/重链接验证、EULA 审查
GPL/AGPL;对外交付,或修改+远程网络交互;商业授权与开源路径冲突法务负责人+业务/技术负责人;必要时外部律师完整审批表、源码与声明、发布清单、升级记录

工具可以辅助生成依赖清单(如 Syft、Trivy),但工具输出只是底账,不替代许可证文本核对和使用事实判断。本模块不要求在 CI 中建设自动法律门禁。

许可义务与沟通话术

本模块的约束来自许可证条款本身,不是另行谈判出来的标准合同条款,因此不另造一套通用合同条款库;需要合同文本时用 M01,需要商业软件许可条款时用 M03。下面三组话术用于把许可证义务落成可核对的事实和动作,属于内部管理建议,不是法律意见;对外承诺前仍由法务复核。

向研发收集事实(首次登记或变更时)

请按组件逐个确认:①名称、精确版本或提交号、下载来源和校验值;②包内 LICENSE/NOTICE 和上游仓库地址;③是否改过文件、打过补丁,或把组件代码并入自有代码;④交付形态(安装包、镜像、SDK、设备、浏览器脚本、WASM);⑤是否存在远程网络交互;⑥与自有代码的组合方式(独立进程、动态链接、静态链接、源码嵌入、聚合)。不确定的写“待查”并注明下一步,不要直接写“没有”。

附条件审批(不能直接写“通过”时)

结论为附条件通过:条件【…】、责任人【…】、完成日期【…】、证据位置【…】。条件关闭前不发布;条件无法完成的,回到审批表重新选择路径(商业许可、替换组件、隔离架构或停止使用),不得用“先发布后补”替代。

发布前补证(发布清单发现缺口时)

发布目录缺少【许可证副本/NOTICE/修改标识/对应源码/重链接或安装信息】,请于【日期】前补齐,并给出实际文件路径和校验值;无法补齐的,暂停该版本发布并评估回退。仅把 SBOM 标成“已审批”不算证据,验收看的是实际发布产物。

四个模拟案例(EX-01—EX-04)

以下四例均为模拟,不对应任何真实公司、产品、客户或交易;事实、结论和证据要求与审批表附录、SBOM「四例示范」、发布清单逐项对应。业务主体、产品和使用事实为虚构;EX-03 引用真实的 Qt/PySide6 名称和版本作为假设选型,不表示已检查实际安装包或运行过替换库测试。

EX-01 Apache-2.0 组件随闭源安装包分发

EX-02 GPLv3 工具仅在同一法人内部修改运行

EX-03 LGPLv3 库随闭源客户端动态链接交付

EX-04 修改 AGPLv3 网络服务并允许远程使用

适用边界

来源与核对记录

核对方法:执行阶段于 2026-10-29 通过 HTTPS 获取官方页面全文,验收阶段逐条复核条款;未取得全文的条目不登记为「已核对」。Qt 义务说明未标注版本;滚动文档 Qt Licensing 当前显示 Qt 6.12,不能代替 EX-03 所用 Qt 6.8 分支的模块核对。验收时 GNU 官网请求返回 403/超时,已按执行阶段保存的官方全文复核 S02—S06,未将本次请求失败记为重新获取成功。链接和条款可能随官方更新,发布前应重新打开确认。

编号文件/页面版本/适用范围官方链接具体条款支持的判断核对日期核对状态
S01Apache License 2.02.0(2004-01)ASF 官方文本§3、§4(a)—(d)、§6专利授权及终止;许可证副本、修改标识、声明保留、NOTICE;商标边界2026-10-29已核对(全文)
S02GNU General Public License v3.0v3(2007-06-29)GNU 官方文本§0、§1、§2、§4—§6、§10conveying 定义;Corresponding Source;非交付使用;源码与目标码交付;下游权利2026-10-29已核对(官方全文存档)
S03GNU General Public License v2.0v2(1991-06)GNU 官方文本§0—§3、§6、§9使用、修改和分发条件;目标码交付的三种方式;不得套用 GPLv32026-10-29已核对(官方全文存档)
S04GNU Lesser General Public License v3.0v3(2007)GNU 官方文本§0—§2、§4库修改;Combined Works;§4(d)(0)、§4(d)(1)、§4(e)2026-10-29已核对(官方全文存档)
S05GNU Lesser General Public License v2.1v2.1(1999-02)GNU 官方文本§2、§4—§6库修改、库分发、链接作品的 §6(a)—(e) 条件2026-10-29已核对(官方全文存档)
S06GNU Affero General Public License v3.0v3(2007-11-19)GNU 官方文本§0、§1、§4—§6、§13修改版本的远程网络交互与源码获取机制2026-10-29已核对(官方全文存档)
S07Qt Open Source Obligations页面现行版本(未标注版本号)Qt 官方说明「Developing with LGPL」全节;第三方许可说明LGPL 路径闭源条件、库源码、替换与重链接、安装信息、声明、第三方组件2026-10-29已核对(页面未标注版本,具体以所用 Qt 版本为准)
S08Qt Licensing滚动 Qt 6 文档(核对时显示 6.12)Qt Licensing许可选项、模块差异、第三方代码、Qt 6.8+ SPDX SBOM不得把整个 Qt 一概认定为 LGPL;部分模块仅 GPL2026-10-29已核对(页面说明)
S09Qt for Python Commercial UseQt for Python 6 文档Commercial Use商业版包来源、ADP/ADE/DCP/DCE、社区版安装提示社区版与商业版包来源、授权范围和适用版本2026-10-29已核对(页面说明)
S10Licenses Used in Qt for PythonQt for Python 6 文档Licenses Used in Qt for Python第三方组件列表及说明实际带入的第三方组件及其独立义务2026-10-29已核对(页面说明)
S11MIT License标准文本MIT许可授予与声明保留条件保留版权声明和许可全文2026-10-29已核对(全文)
S12BSD-2-Clause License标准文本BSD-2-Clause第 1、2 条源码与二进制分发的声明保留2026-10-29已核对(全文)
S13BSD-3-Clause License标准文本BSD-3-Clause第 1—3 条在前述条件上增加禁止背书2026-10-29已核对(全文)
S14Qt 6.8 模块许可Qt 6.8 分支文档(页面当前显示 6.8.9;不是 6.8.3 包审计)QtCore、QtGui、QtWidgets各模块页许可章节这三个模块存在 LGPLv3 路径;实际包、绑定及传递依赖须另核对2026-10-29已核对(模块文档)

组件级核对还应查看:具体版本包内 LICENSE/COPYING、源文件头、NOTICE、上游仓库对应 tag、官方版本说明或商业合同。上述材料与官方文本冲突时,登记冲突并升级审查;不采用「只以包内 LICENSE 为准」或「只以官网声明为准」的单一规则。

本版纠正的旧判断

旧表述本版处理
「修改即产生再许可义务」删除。修改本身不当然产生义务;结合许可证版本、是否交付副本、是否远程网络交互判断
「传染性」改为「受许可约束的作品范围/对应源码范围」,并要求记录实际组合方式和分析依据
「MIT/BSD/Apache 保留版权声明即可」按许可证逐项展开;Apache-2.0 明确核对 §4(a)—(d) 和 §3、§6
「LGPL 动态链接即可闭源合规」改为附条件结论:核对库源码、声明、替换与重链接机制、安装信息、合同限制;静态链接另按 §4(d)(0) 分析
「30 人以下季度扫描即可」删除无依据阈值;流程简化依据依赖变动和实际使用场景
「只以包内 LICENSE 为准」删除绝对表述;包内文本、文件头、NOTICE、上游仓库、官网说明和商业合同交叉核对,冲突升级
「PSF 属宽松许可」的概括删除未经展开的概括;具体组件按实际许可证文本核对
「超过 20 人日自动升级」删除。审批层级作为内部管理建议,不写成许可证义务

变更日志

本站内容为方法与示例,不构成法律意见。