销售预装MySQL Community Server的设备是否需公开自有应用源码?
关于预装MySQL Community Server的设备配套自有客户端的开源义务判定
核心结论
如果你的自有MySQL客户端仅通过标准公开的MySQL通信协议与独立运行的MySQL 8.0.27 Community Server进程交互,未直接复用、链接MySQL服务端的GPL授权代码,你无需向购买方公开自有应用的源代码。
判定逻辑
GPL v2许可证的Copyleft传染效力仅约束基于受保护作品产生的衍生作品,对独立运行的分离程序不生效,具体到你的场景:
- 预装的MySQL Community Server属于GPL v2授权的作品,你仅需要针对这部分组件履行GPL义务:向设备购买方提供MySQL服务端对应的完整源代码,或提供不少于3年有效期的源代码获取渠道,同时保留完整的许可证声明,这部分义务不延伸到你的自有客户端。
- 自有客户端只要满足以下所有条件,就属于和MySQL服务端完全独立的作品,不受GPL v2约束:
- 没有直接复制、修改MySQL服务端的源代码片段集成到自有客户端代码中
- 没有和MySQL服务端的静态库直接链接生成单一可执行文件
- 仅通过MySQL官方公开的标准通信协议(本地套接字/网络端口)与独立运行的MySQL服务进程交互
常见风险提示
注意区分客户端连接依赖的许可证:如果你在自有客户端中集成了MySQL官方发布的GPL授权的libmysqlclient连接库,你的客户端会被认定为该连接库的衍生作品,需要履行GPL开源义务。如果要规避该风险,可以选择自主实现MySQL通信协议,或使用LGPL/MIT等宽松许可证的第三方连接库(如MariaDB的LGPL版客户端库、各语言生态下的独立MySQL协议驱动)。
可选合规方案
- 如果要完全消除许可证争议,可以向Oracle购买MySQL商业许可证,替换预装的GPL版本MySQL,无需履行任何GPL相关义务
- 随设备附带的合规文档中,将自有应用和开源组件的声明分开列明,避免用户混淆二者的许可证范围
内容的提问来源于stack exchange,提问作者Srinidhi Sundaravaradhan
相关产品推荐
相关产品推荐

