【发布时间】:2010-07-12 15:09:00
【问题描述】:
我正在使用 MySQL Connector/J(GPL 许可证)并将 jar 捆绑为我的发行版的一部分。
那么我是否也需要在 GPL 下发布我的应用程序?
【问题讨论】:
我正在使用 MySQL Connector/J(GPL 许可证)并将 jar 捆绑为我的发行版的一部分。
那么我是否也需要在 GPL 下发布我的应用程序?
【问题讨论】:
这总是引起一些争议和混乱。 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 的许可证。]
【讨论】:
【讨论】: