Workflow
Practical GPL Compliance
Linux基金会·2025-03-04 11:50

报告核心观点 - 《Practical GPL Compliance》是面向初创企业、小企业和工程师的GPL合规指南 旨在提供实用信息解决常见问题 助力合规团队高效处理开源事务 推动各规模组织解决开源合规问题 [11][234][235] 根据相关目录分别总结 第1章:方法 - 背景:聚焦GPL合规工程 GPLv2是最常用版本 合规工作主要围绕实体产品和固件下载展开 [24][25] - 合规要求:GPLv2要求分发时提供许可证副本 分发二进制代码时提供对应源代码访问途径 [28] - 合规目标:确保产品附带完整对应源代码或提供书面供应提议 确保许可证副本和完整对应源代码可用 [29][30] - 工具包:默认工具为Linux系统及自带工具 分析二进制有BAT、binwalk等工具 分析源代码可用FOSSology等工具 [40][42][47] - 二进制文件分析:“二进制”含义多样 分析可借助BAT或binwalk 但部分二进制文件因混淆或加密无法分析 [49][50][51] - 源代码分析与重建:需查找问题二进制文件、重建源代码并查找许可错误代码 重建要准确描述构建环境和提供完整指令 并验证结果 [55][67][77] 第2章:常见陷阱 - 工具链:工具链常不合规 如GCC和GNU binutils以二进制形式提供却无源代码或供应提议 且嵌入式Linux需提供完整工具链源以重建二进制 [94][95][97] - 安卓和嵌入式设备:安卓预构建工具可能缺少对应源代码或书面提议 安卓部分工具和程序存在许可证文件缺失或错误问题 [99][103] - “树外”Linux内核模块:需查明其许可证和对应源代码情况 可通过modinfo等工具提取相关信息 [107][108][109] - 救援模式/安装模式系统:嵌入式Linux设备的救援分区常被遗忘 需确保所有Linux系统都有完整对应源代码 [114] - 引导加载程序:GPL许可的引导加载程序易被忽视 应提供其源代码 [117] - 缺失构建系统:只发布源代码目录而不包含构建系统会导致源代码不完整 无法成功重建二进制 [119] - BusyBox配置文件错误或缺失:BusyBox配置文件是完整对应源代码的必要部分 常见问题有缺失、错误或多个实例只有一个配置文件 [121] - Linux内核配置文件错误或缺失:类似BusyBox 内核配置文件也常缺失或错误 需查明实际使用的配置 [126] - 固件和源代码存档文件名未包含版本号:文件名无版本和设备名易出错 应使用包含设备名、固件版本等信息的命名约定 [133] 第3章:软件发布场景 - 设备上的软件/离线分发:可随设备提供完整对应源代码或添加书面供应提议 各有优缺点 建议两者结合 [138][139][141] - 网站手动下载:有提供源代码、书面提议、单独下载三种选择 与离线分发优缺点类似 但更易纠错 [143][144] - 自动/空中更新:因源文件大、设备空间有限等问题 实用方案是包含书面提议 并需解决版权和许可文本交付问题 [146][147][148] - 现场工程师应用更新:建议工程师携带CD/DVD并在更新后交给用户 [149] 第4章:软件购买场景 - 上下文:产品推向市场的公司对许可证合规负责 供应链各方应合作预防合规问题 [152][153] - SoC供应商的供应链解决方案:选择标准SDK、积极参与上游项目、让第三方检查审计许可证合规性 [154] - ODM的供应链解决方案:与使用标准SDK或芯片组受标准SDK良好支持的SoC供应商合作等 [161] - 其他方的供应链解决方案:与开源利益相关者合作 选择使用标准SDK的ODM 明确要求使用认证/审计的SDK等 [164][166] 第5章:构建FOSS代码中心 - 背景:公司常设FOSS代码中心 虽能满足用户需求 但不能替代传统合规方法 [171][172][173] - FOSS代码中心作为一项要求:部分公司将其作为事后补充 网站更新时易遗漏 可能导致不合规 [175] - 保持固件和源代码在一起:建议将固件和源代码下载放在一起或在固件下载页面提供对应源代码位置参考 [177] 第6章:跟踪任务和流程 - 检查表:正确使用检查表可有效管理GPL合规任务 小组织通用检查表包括发现FOSS、提供培训等步骤 也可制定特定检查表 [180][181][183] - 流程图:使用流程图可管理GPL合规流程 如Flowchart 0等示例流程图可提供参考 [187][190][191] 附录 - 附录1:开放合规计划:介绍其他开源合规出版物 提供自我评估检查表、通用FOSS政策、批准请求表单等合规模板 [213][219][221] - 附录2:合规标准:Linux基金会项目推动行业制定合规标准 如OpenChain、SPDX规范等 [224][225] - 附录3:专业网络:Linux基金会主办专业网络 帮助合规专业人员交流合作 如TODO Group、合规目录等 [227][228] - 附录4:工具和基础设施:介绍FOSSology、FOSS条形码跟踪器等开源工具和基础设施 助力实现合规 [229][230]