开源代码商用,这些法律雷区千万别踩
开源代码免费≠可商用。GPL 传染性、MIT/Apache 署名义务、商用风险、出海合规,开源代码商用的法律边界。
「开源代码免费拿,为什么不能用?」——很多开发者和企业用开源代码时,第一反应是「反正免费」。但免费≠无义务。违反开源协议,可能可能面临著作权侵权 + 合同违约 + 失去开源保护三重风险。
一、开源协议的本质
开源协议是著作权人发布的「许可合同」:
- 作者保留著作权
- 授予使用者在特定条件下的使用权
- 使用者必须遵守许可条件
- 违反条件 → 许可自动失效 → 构成著作权侵权
换句话说:「开源」不是放弃著作权,而是有条件地授权。
二、主流开源协议概览
宽松型(允许商用、低义务)
MIT License
- 允许商用、修改、闭源、分发
- 义务:保留版权声明 + 许可声明
- 风险等级:低
Apache License 2.0
- 允许商用、修改、闭源、分发
- 义务:保留版权声明、许可声明、修改说明、NOTICE 文件
- 额外:贡献者明确授予专利使用权
- 风险等级:低
BSD License (2-Clause / 3-Clause)
- 类似 MIT
- 3-Clause 限制不得用原作者名义为衍生品背书
- 风险等级:低
弱传染型(修改要开源)
LGPL (GNU Lesser General Public License)
- 允许动态链接商用闭源
- 义务:对 LGPL 代码本身的修改必须开源
- 风险等级:中(注意修改范围)
MPL (Mozilla Public License)
- 允许商用闭源
- 义务:MPL 文件本身的修改必须开源
- 风险等级:中
强传染型(衍生作品必须开源)
GPL v2 / GPL v3
- 允许商用、修改
- 传染性:衍生作品(含 GPL 代码的整体作品)必须以 GPL 协议开源
- 风险等级:高
AGPL (Affero General Public License)
- 比 GPL 更强:网络服务也算分发
- 云服务、SaaS 一旦使用 AGPL 代码 → 服务代码必须开源
- 风险等级:极高
三、关键问题:什么是「传染」?
「传染性」是 GPL 的核心争议点。
判定标准
GPL 协议没有定义「衍生作品」,司法实践和软件行业的的常见理解:
- 静态链接 GPL 代码 → 整个程序被视为衍生作品 → 传染
- 动态链接 GPL 代码 → 争议较大,主流观点:仍然传染(除非是 LGPL)
- 进程内调用(如 RPC、共享内存、API)→ 主流观点:不传染
- 独立进程调用 GPL 程序 → 主流观点:不传染
但具体到个案,仍然存在争议。判断核心:是否构成「基于 GPL 代码的衍生作品」。
实际案例
2021 年某公司被发现其商用软件包含未经修改的BusyBox(GPL v2),被Software Freedom Law Center起诉,最终和解,公司被迫开源相关软件。这是 GPL 传染性的经典案例。
四、商用开源软件的合规清单
使用前
- 识别协议:每个第三方组件的LICENSE 文件是什么?
- 识别依赖:使用工具扫描依赖树(如 FOSSA、Black Duck、Snyk、SPDX 工具)
- 识别传染:依赖中是否有 GPL/?是否传染到我的代码?
- 授权决策:是否能接受传染?是否能替换为宽松协议替代?
使用中
- 在产品中附带第三方许可列表(Third-Party License Notice)
- 履行署名义务:版权声明、修改声明、NOTICE 文件
- 保留许可证副本
- 对GPL 代码的修改,开源修改部分代码
发布时
- 附完整 LICENSE:所有 GPL/依赖 的协议文本
- 提供源码获取方式:或附源代码,或提供下载链接
- 附修改说明(如有修改)
五、企业级开源合规建议
1. 建立开源合规制度
- 开源政策:明确允许/禁止引入的开源协议类型
- 审批流程:技术评审+法务评审
- 软件物料清单(SBOM):记录所有第三方组件及其协议
- 定期合规审计:每季度或每次大版本发布前
2. 工具辅助
- Snyk:依赖扫描 + + 协议识别
- FOSSA:企业级开源合规
- Black Duck:开源协议 + 安全扫描
- SPDX:SBOM 标准
3. 重点审查的协议
- GPL/:除非公司愿意开源,否则避免引入
- 商业协议:注意多重许可(如 MySQL GPL + 商业双许可)
- SSPL(MongoDB 改用):服务代码必须开源
4. 出海特别提示
- 欧盟、日本等地区对开源协议合规越来越重视
- 云厂商对 严防:AWS、Azure、Google Cloud 等大型云厂商明确禁止其 Marketplace 应用使用
- SaaS 服务:即使不「分发」代码,使用 仍可能违反协议
六、违反开源协议的后果
- 著作权侵权诉讼:原作者可起诉
- 合同违约:违反许可条款
- 许可自动失效:违反后不再有使用权
- 被强制开源:法院可能判决公开源代码
- 赔偿损失:实际损失 + 合理开支
- 声誉损失:被开源社区曝光
七、常见误区
- 「我只是内部使用,不算分发」 —— 内部使用一般不构成分发,但分发(提供给客户、SaaS 服务)会构成
- 「我修改了就算自己的」 —— 修改不消除原协议义务
- 「MIT 协议什么都不用做」 —— 必须保留版权和许可声明
- 「GPL 协议就是免费的」 —— GPL 的「免费」是有条件的免费
开源合规不是技术问题,是法律问题。潘杰峰律师为多家科技公司、互联网平台提供开源合规审计、协议风险评估、协议替换建议。咨询微信 13590105082。
