商业软件用了开源组件,一定要公开源码吗?先看三项
这是一篇今日头条稿件。为便于检索、归档与阅读,收录于“公开发声”。
商业软件用了开源组件,不是当然要公开源码,也不是当然没有义务;应先核对组件、版本、许可证文本以及分发、提供服务和修改方式,再确定源码、声明或通知要求。
先给结论:商业软件用了开源组件,不是当然要公开源码,也不是当然没有义务。
真正决定结果的,通常不是“商用”两个字,而是四个具体事实:用了什么组件、哪个版本、适用哪份许可证,以及软件如何修改、分发或提供服务。
项目准备交付前,建议先做一张“四栏清单”,不要先争论“开源能不能商用”:
第一栏:组件和版本。
把依赖包、插件、字体、图片、脚本和嵌入式代码逐项列出,记录准确版本、下载来源和是否做过替换。只写“用了某开源框架”不够,因为同一项目不同版本可能适用不同许可证或附加条款。
第二栏:许可证原文。
打开项目随附的 LICENSE、NOTICE 和版权声明,也到 SPDX License List 或 OSI 官方目录核对标准名称和文本入口。不要只看博客里的“宽松许可证”“可商用”标签,具体义务仍以适用的许可证文本为准。
第三栏:修改和使用方式。
记录是原样使用、修改后链接、静态打包,还是把代码与自有代码合并;同时写清是否复制、再分发、交付安装包,或只在服务器端提供在线服务。不同使用方式可能对应不同的源码、声明、通知或保留条件。
第四栏:交付和留痕。
把识别结果落到软件包、源代码提供目录、NOTICE 文件、版权声明、开源清单和客户合同。若许可证要求提供相应文本或源码,交付包里要能找到;若当前事实不足以判断,也应记录待核对项,而不是用一句“开源可商用”替代审查。
《中华人民共和国著作权法》把计算机软件列入作品类型,并规定了著作权许可使用等一般规则。但这部法律本身并没有给出“所有商业软件必须公开源码”或“使用开源组件就完全没有义务”的一刀切答案。
OSI 官方目录说明,许可证需经过其审查流程才会列入 Approved Licenses;SPDX 官方 License List 则提供标准短标识、完整名称、许可证文本和永久链接,并标注例外或弃用信息。这些目录适合做识别索引,不能代替对项目实际许可证文本的阅读。
还要特别注意在线服务场景。软件没有打包交给客户,不等于一定不触发任何许可证要求;是否构成分发、是否修改、是否提供对应源代码或声明,仍要结合具体许可证和服务方式判断。反过来,也不能看到项目用了开源组件,就直接断言必须把全部自有代码公开。
因此,研发、采购和法务在上线或交付前,可以把“四栏清单”一起过一遍:组件版本、许可证原文、修改/使用方式、交付留痕。只要其中一栏说不清,就先暂停扩大分发范围,补齐许可证文本和事实记录后再决定源码、NOTICE 或合同怎么写。
来源:
- 《中华人民共和国著作权法》:http://www.npc.gov.cn/npc/c2/c30834/202011/t20201119_308796.html
- Open Source Initiative Approved Licenses:https://opensource.org/licenses
- SPDX License List:https://spdx.org/licenses/
吕箐翎律师提醒:开源合规是“许可证文本+实际使用事实”的匹配问题,不能把任何单一许可证经验直接套用到全部项目。
本文仅提供一般法律信息,不构成对具体软件、组件或交付安排的法律意见。