GPL和libmysqlclient

时间:2010-01-10 22:19:44

标签: c++ mysql gpl

我有一个应用程序,它使用libmysqlclient.so 我想知道我是否需要在此应用程序上使用GPL许可证,因为libmysqlclient是GPL或者我可以在封闭源代码中继续该程序

编辑: 根据{{​​3}},我可以在闭源软件中使用libmysqlclient。

只是不明白为什么GPL“感染”这么多代码......

EDIT2: this site

5 个答案:

答案 0 :(得分:3)

围绕这个问题一直存在很多混乱和FUD。

首先,libmysqlclient是GPL 2,不是 LGPL(可以说它更像是一个库)。但是,有一个所谓的FLOSS异常,它允许免费和开源项目使用和分发libmysqlclient而无需采用GPL许可。

在您的情况下,我认为如果您的应用程序也是GPL,或者通过其他开源许可证(根据FLOSS例外),您可能只链接(和/或分发)libmysqlclient

答案 1 :(得分:1)

这有例外,但GPL 通常要求您也开源项目并使用与GPL兼容的开源许可证。 GPL在该方面具有令人惊讶的限制性x_x

答案 2 :(得分:0)

libmysqlclient,JDBC连接器以及与MySQL接口的其他库是GPL(GPLv2)。严格阅读许可证表明您需要在GPL下分发源代码。

有FLOSS免除,允许任何开源许可包含libmysqlclient,但这不适用于您。

Sun / Oracle积极许可连接器库和服务器组件,根据我的经验,这是非常昂贵的。您可以使用一些技巧,例如查询代理服务器 - 只需启动一个子进程,它可以将您自己的SQL命令转换为libmysqlclient。您需要发送代理的来源,但它是一个自包含的部分。

答案 3 :(得分:0)

根据this site,我可以在闭源软件中使用libmysqlclient。

只是不明白为什么GPL“感染”这么多代码......

答案 4 :(得分:0)

libmysqlclient确实是GPLv2,您需要GPL调用此库的代码,或者从Oracle购买商业许可证。

但是,如果使用ODBC,则可以将应用程序编写为非GPL的ODBC API。然后,您的客户可以选择安装MySQL ODBC驱动程序或任何其他驱动程序。