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

时间:2010-07-12 15:09:01

标签: mysql jdbc

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

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

2 个答案:

答案 0 :(得分:11)

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

我理解的关键点是,尽管GPL在传统C模型(eg)中的“链接”场景中定义明确并且被广泛理解,但对于解释而言则更少。 Java之类的语言,组件之间的通信和选择是一个流动的,运行时的问题。根据GPLv2第2节的规定,有人可能会认为将.jar放入您的分发文件夹是“仅仅聚合”在媒体上,而不是“集体工作”吗?

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

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

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

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

[我假设你在这里谈论的是一个商业软件包而不是一个开源程序,你只想在不同于GPL的许可下提供它。在这种情况下,请参阅EXCEPTIONS-CONNECTOR-J文件,了解您还可以使用FOSS exceptions作为许可。]

答案 1 :(得分:4)

是的,你必须这样做。

但不是因为你在运行mysql-connector和你的应用程序,而是因为你正在链接它。 (如果你真的这样做)

有关解释和解决方案,请参阅此说明link text