3.8 KiB
3.8 KiB
License Audit
审计基线:MPV 182fa6ca49f455cadb884858f386e2f00540aeb7。本文件是工程审计记录,不构成法律意见。
当前结论
仓库分离不改变链接后二进制的许可证。第一版按 MPV 默认 GPLv2+ 口径管理,除非后续对 MPV、FFmpeg 及全部链接依赖完成 LGPL-only 的逐文件、逐选项和链接方式审计。MPV 自身 Copyright 明确说明 -Dgpl=false 只是排除已知 GPL-only 文件的辅助开关,并不自动产生 LGPL 授权结论。
Phase 0 尚未生成二进制,因此“最终实际链接库”尚不存在。下表区分计划必需与候选依赖;Phase 1 必须以 link map、readelf -d 和构建配置替换“预计”字段。
| 组件 | 许可证 | 计划链接 | 必需 | GPL-only / 风险 | 依据与状态 |
|---|---|---|---|---|---|
| MPV | 默认 GPL-2.0-or-later;满足完整条件时可 LGPL-2.1-or-later | 动态 libmpv 优先 |
是 | 默认构建含 GPL-only 文件 | 本仓库 Copyright、LICENSE.GPL、LICENSE.LGPL |
| FFmpeg | 默认 LGPL-2.1-or-later;--enable-gpl 后 GPL;--enable-nonfree 不可再分发 |
动态优先 | 是 | 外部库和 configure 选项可改变整体许可证 | FFmpeg LICENSE.md;Phase 1 锁 commit |
| libplacebo | LGPL-2.1-or-later(待锁定版本复核原文) | 静态或动态待定 | 是(当前 MPV Meson 强依赖) | 静态链接影响 LGPL 重新链接义务 | MPV meson.build 要求 >=7.360.1 |
| libass | ISC(待锁定版本复核原文) | 动态优先 | 是 | 还会引入 FreeType、HarfBuzz、FriBidi | MPV meson.build 要求 >=0.12.2 |
| zlib | Zlib | SDK 动态 libz.so 优先 |
可选但建议启用 | 低 | 本机 API 24 SDK 提供头文件和库 |
| TLS 实现 | OpenSSL 3.x 为首选候选,Apache-2.0 | 动态优先 | HTTPS 必需 | FFmpeg GPLv2 模式与 OpenSSL 组合需单独复核;不得同时启用 nonfree 后分发 | 尚未锁版;Harmony libnet_ssl.so 不能直接当作 FFmpeg TLS backend |
| FreeType | FTL 或 GPL 双许可证 | 由 libass 引入 | 字幕必需 | 选择 FTL 口径并保存原文 | NEED VERIFY at pin |
| HarfBuzz | MIT | 由 libass 引入 | 复杂文本必需 | 低 | NEED VERIFY at pin |
| FriBidi | LGPL-2.1-or-later | 由 libass 引入 | 双向文本必需 | 动态链接优先 | NEED VERIFY at pin |
| iconv | 系统 libc 或独立实现许可证 | 系统符号优先 | 字符集处理 | 若引入 GNU libiconv,需审核 LGPL | Phase 1 探测 |
| libcurl | curl license | 默认关闭;网络交给 FFmpeg | 否 | 增加 TLS/HTTP 依赖面 | MPV -Dlibcurl=disabled |
| uchardet | MPL-1.1 / GPL-2.0-or-later / LGPL-2.1-or-later 多许可证 | 默认关闭 | 否 | 需选择许可口径 | NEED VERIFY at pin |
| MuJS | ISC | 默认关闭 | 否 | 低 | JS 功能首版不需要 |
| HarmonyOS Native SDK stubs | SDK/EULA 与各头文件声明并存 | 系统动态库 | 是 | 发行许可由 HarmonyOS SDK 条款约束 | 需在发版前由法务核查 SDK redistributable 边界 |
MPV GPL-only 范围
MPV Copyright 当前列出 JACK、OSS、DVB、CDDA、DVD、CACA、legacy Direct3D、VAAPI VO、VDPAU、X11/Xv 等 GPL-only 文件。HarmonyOS 首版均不需要,但这不等于整个产物自动成为 LGPL。
发版门禁
- 固定全部源码 commit、构建选项、静态/动态链接方式。
- 保存 FFmpeg
configure输出与config.h,确认未启用nonfree,并列出 GPL/version3 状态。 - 保存 MPV
meson configure输出,逐项确认 GPL-only 文件是否进入产物。 - 用
llvm-readelf -d、link map 和 archive 成员清单核对所有实际链接库。 - 补齐许可证正文、版权声明、源码获取方式、修改说明及 LGPL 重新链接材料。
- 商业发布前完成法务复核;未完成前不得宣称“LGPL-only”或“闭源可安全链接”。