我有一个应用程序,它使用 libmysqlclient.so 我想知道我是否需要此应用程序的 GPL 许可证,因为 libmysqlclient 是 GPL,或者我是否可以在封闭源代码中继续该程序
编辑:根据这个站点,我可以在闭源软件中使用 libmysqlclient。
只是不明白为什么 GPL 如此“感染”代码......
EDIT2: 如果一个库是在 GPL(而不是 LGPL)下发布的,这是否意味着任何使用它的程序都必须在 GPL 或 GPL 兼容许可证下?
我有一个应用程序,它使用 libmysqlclient.so 我想知道我是否需要此应用程序的 GPL 许可证,因为 libmysqlclient 是 GPL,或者我是否可以在封闭源代码中继续该程序
编辑:根据这个站点,我可以在闭源软件中使用 libmysqlclient。
只是不明白为什么 GPL 如此“感染”代码......
EDIT2: 如果一个库是在 GPL(而不是 LGPL)下发布的,这是否意味着任何使用它的程序都必须在 GPL 或 GPL 兼容许可证下?
围绕这个问题一直存在很多困惑和 FUD。
首先,libmysqlclient 是 GPL 2,而不是LGPL(这更符合它是一个库的说法)。但是,实际上有一个所谓的 FLOSS 例外,它允许免费和开源项目使用和分发 libmysqlclient,而无需采用 GPL 许可证。
在您的情况下,我认为您只能链接到(和/或分发)libmysqlclient 如果您的应用程序也是 GPL,或者通过另一个开源许可证(根据 FLOSS 例外)
这也有例外,但 GPL通常要求您也开源您的项目并使用与 GPL 兼容的开源许可证。GPL 在这方面令人惊讶地限制 x_x
libmysqlclient 确实是 GPLv2,您要么需要 GPL 调用此库的代码,要么从 Oracle 购买商业许可证。
但是,如果改用 ODBC,您可以将应用程序写入不是 GPL 的 ODBC API。然后,您的客户可以选择安装 MySQL ODBC 驱动程序或任何其他驱动程序。
libmysqlclient、JDBC 连接器和其他与 MySQL 接口的库是 GPL (GPLv2)。严格阅读许可证会表明您需要在 GPL 下分发源代码。
有 FLOSS 豁免,它允许任何开源许可证包含 libmysqlclient,但这不适用于您。
Sun/Oracle 积极地授权连接器库和服务器组件,根据我的经验,价格相当昂贵。您可以使用一些技巧,例如查询代理服务器 - 只需启动一个可以将您自己的 SQL 命令转换为 libmysqlclient 的子进程。您将需要发送代理的来源,但它是一个独立的部分。
根据这个站点,我可以在一个闭源软件中使用 libmysqlclient。
只是不明白为什么 GPL 如此“感染”代码......