如果我将MySQL Connector/J(GPL)作为我的软件包的一部分包含在内,我是否需要发布我的应用程序?

How*_*ard 6 mysql jdbc

我正在使用MySQL Connector/J(GPL许可证)并将jar捆绑为我的发行版的一部分.

那么我是否还需要在GPL下发布我的申请?

bob*_*nce 11

这一直是一个争议和混乱的问题.MySQL AB的态度没有帮助,他们通常会建议您购买任何商业许可证(免除您的GPL要求),而不是解释他们在GPL允许的情况下的代表性.你没有一个人经营.(好吧,我想,他们不太可能想花很多时间争论自己出售.)

我理解的关键点是,虽然GPL在传统C模型(例如)中的"链接"场景中定义明确并且被广泛理解,但对于像Java这样的解释性语言来说,它的通信和选择却不那么明显.组件之间是流动的,运行时的问题.根据GPLv2第2节的规定,有人可能会认为将.jar放入您的分发文件夹只是在媒体上"聚合",而不是"集体工作"吗?

hnnnnmm ......好吧,也许吧.想在法庭上提出这个论点吗?疑.

无视解释GPL信件的问题(因为我不是律师),GPL意图的精神可以归结为以下问题:Connector/J是您在包装中包含的依赖关系,还是它一个单独的组件,最终用户可以选择安装,然后自己连接到您的包?

如果您不想将您的软件包许可为GPL,或者想要获得支持MySQL的商业许可,请确保后者确实如此:不要将MySQL或连接器与您的软件包捆绑在一起,而不是简单地在同一张光盘上有单独的安装程序.不要制作同时运行它们的安装程序.

最佳:确保您的软件可以与多个不同的数据库后端一起运行,允许用户选择他们将使用它.无论如何,这是一件好事.特定于数据库的代码很糟糕.此外,如果您确实希望提供包含数据库的一键式安装程序并将它们组合在一起,您可以始终使用具有允许它的许可证的安装程序,例如PostgreSQL或SQLite.

[我假设你在这里谈论的是一个商业软件包,而不是一个开源程序,你只想在不同于GPL的许可下提供它.在这种情况下,请参阅EXCEPTIONS-CONNECTOR-J文件以获取许可证,您也可以将其用作FOSS例外.]


pne*_*mec 4

是的,你必须这样做。

但这并不是因为您将 mysql-connector 与您的应用程序一起提供,而是因为您正在链接它。(如果你真的这么做的话)

有关说明和解决方案,请参阅此注释链接文本