【问题标题】:GPL and libmysqlclient [closed]GPL 和 libmysqlclient [关闭]
【发布时间】:2010-01-10 22:19:43
【问题描述】:

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

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

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

编辑2: If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL or a GPL-compatible license?

【问题讨论】:

  • 自己阅读许可证。它可能是 LGPL,但无论如何它是一份法律文件,所以你应该阅读它。 GPL 和 LGPL 的英文很清楚,我敢打赌,很多语言都有很好的翻译。
  • Osmano807,关于您的 EDIT2:是的,我已经在回答中解释了这一点。我还评论了您从 XAPRB 的博客文章中得出的错误结论。就像我说的,请阅读该博客上的前三个 cmets。您可以使用 libmysqlclient 并将其链接到您的程序,即使在您的闭源软件中也是如此。但是,当您分发您的软件时,您必须遵守 GPL 并将您的软件也作为 GPL 发布(或购买非 GPL 许可 - 这就是 MySQL 许可被称为双重许可的原因)
  • 当有 SOCI 时,你到底为什么要使用“libmysqlclient”? SOCI btw 使用真正的免费许可证,这与其他使用 GPL 的库不同。
  • SOCI 链接到 libmysqlclient 所以它也是 GPL
  • 我投票结束这个问题,因为它是关于许可或法律问题,而不是编程或软件开发。 See here 了解详情,help center 了解更多信息。

标签: c++ mysql gpl


【解决方案1】:

围绕这个问题一直存在很多困惑和 FUD。

首先,libmysqlclient 是 GPL 2,不是 LGPL,(这更符合它是一个库的说法)。但是,实际上有一个所谓的 FLOSS 例外,它允许免费和开源项目使用和分发 libmysqlclient,而无需采用 GPL 许可。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 不,如果您不想,GPL 不要求您分发代码。它只是说明如果您要分发您的修改,那么它们必须在兼容的许可证下。
    • 你确定吗?第 3 条似乎非常具体地说明了将衍生作品与源代码一起分发的必要性,或者根据要求提供的报价。
    • @Rob 您需要根据 GPL 许可将您的代码分发给您的用户/客户,如果他们想要的话。(您不必将您的代码分发给您的客户以外的任何人/users,根据要求。收到您的源代码的人当然可以按照他们喜欢的任何方式分发它,只要他们遵守 GPL)
    【解决方案3】:

    libmysqlclient、JDBC 连接器和其他与 MySQL 接口的库是 GPL (GPLv2)。严格阅读许可证会表明您需要根据 GPL 分发源代码。

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 那个网站没有提到 libmysqlclient ......它只是在谈论 MySql 本身。
      • 查看前三个 cmets。而那些只与通过一个很好分离的驱动程序连接有关。在 OPs 的情况下,它更进一步:链接。总结一下:您可以链接(如在编译时引用中)到 GPL 代码,但是一旦您分发了您的工作,您也必须将您的代码分发为 GPL。只要你不分发你的工作,你就可以使用它,即使你的代码不是 GPL。
      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-11-08
        • 1970-01-01
        • 2010-11-18
        • 2012-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-25
        相关资源
        最近更新 更多