如果我在商业许可下分发我自己的客户端应用程序,该应用程序与位于我的服务器上的MySQL社区版(GPLv2)交互,那么我的客户端应用程序需要GPL吗?如何在没有GPL的情况下为我的客户安全地分发我的应用程序?据我所知,只有在嵌入MySQL的分布式时才需要MySQL商业许可证。我的应用程序是否需要GPL才能“与...建立连接”?
答案 0 :(得分:2)
以下是我个人的观点,但不是每个司法管辖区的最终真相:
最安全的解决方案是您自己不分发 MySQL客户端库。如果您不分发它们,则不可能受其许可限制的约束。
只需提供详细说明,说明如何下载和安装所需的库,并让用户这样做。
<强>更新强>
关于您通过网络作为服务提供的数据库:它没有任何区别。
只要您不分发任何GPL代码,您就是安全的。
如果MySQL使用GNU Affero许可证,可能会变得更加复杂,但事实并非如此。
更新2:
如果您使用Google进行“gpl动态链接”并阅读多篇文章,您会发现即使在美国,关于动态链接的问题也不清楚。因此,除非您在您所在的司法管辖区内与甲骨文一起出庭,否则对此问题没有明确的答案。这对他们的销售非常方便,他们会让你害怕。
我不在美国。我不知道你在哪里。在我的司法管辖区,声称只是为图书馆提供兼容的界面(未分发)会产生衍生作品。我想要注意的是,有很多程序与MySQL兼容,你不会发现任何麻烦。
答案 1 :(得分:2)
+1给@snap他的好答案,我将添加另一个具体的例子:
PHP的许可证是新BSD许可证的衍生产品,与GPL不兼容。所以PHP发行版不能包含MySQL客户端库;用户必须单独下载它。这样,PHP和用户都遵守GPL许可证,因为只有MySQL.com 分发 MySQL软件。
几年前,MySQL开发了一个new client library specifically for PHP,它利用PHP内部资源进行资源管理,但更重要的是根据PHP许可证授权,这允许它与PHP发行版捆绑在一起。
这意味着如果您的项目是用PHP编写的,那么您可以在商业项目中使用和分发MySQLnd客户端库 - 事实上,无论如何都应该有很好的技术原因,因为它针对PHP进行了优化。
答案 2 :(得分:0)
一个非常好的选择是MariaDB客户端库,它是根据LGPL 2.0许可的。 见https://downloads.mariadb.org/client-native/