MySQL 连接器和许可证

28

我意识到MySQL Connectors(Java和.NET)是GPL许可证。

这是否意味着厂商(不为内部应用程序开发)将不得不通过购买商业许可证来使用这些连接器与MySQL数据库进行专有软件通信?


1
远离GPL,或者付费获取许可证,问题解决。 :P - Kevin Peno
4
我投票关闭此问题,因为它涉及许可或法律问题,而不是编程或软件开发。请参见此处的详细信息,以及帮助页面上的相关内容。 - Kevin Brown-Silva
4个回答

14
如果您在应用程序中链接了MySQL连接器,那么根据GPL许可协议,您的应用程序将被视为“基于该程序工作”。您有两个选择:
  1. 按照GPL兼容许可证对您的应用程序进行许可。

  2. 成为MySQL Ready合作伙伴(免费),并获得您的一个应用程序的MySQL批准。这将授予您使用具有专有代码的连接器的双重许可证。更多信息请参见: https://partner-portal.mysql.com/guide/overview.html

(请注意,连接器为开源项目提供GPL许可证的例外情况。)

1
您可以选择LGPL连接器,以便LGPL连接器不会感染您的软件成为GPL!另一个技巧是支持多个RDMS,这样您的软件就不仅依赖于一个数据库。您的客户可以在多个数据库之间进行选择。您在此遵守GPL条款,即您的软件可能无法启动或功能非常有限,如果没有GPL数据库的话。 - Martin.Martinsson
链接已失效... 新链接为https://www.oracle.com/partners/en/partner-with-oracle/get-started/join-opn/index.html - Clintm
关于添加到连接器许可证的“通用FOSS例外,版本1.0”,您有什么看法?据我所知,根据该扩展,我必须为集成连接器的软件使用免费许可证,但我不需要使用GPLv2,而是可以使用任何其他免费许可证(如GPLv3)。这正确吗? - Silicomancer
我想知道是否有一个漏洞,可以编写一个程序,而不必直接链接MySQL连接器,而是允许动态地链接“任何”连接器dll(使用反射)。然后用户就可以配置应用程序以使用正确的连接器库。 - jahu

0
我不是律师,但在我看来,关键的部分是“不为内部使用开发”,这意味着作为闭源进行分发或销售。在这种情况下,供应商确实需要购买商业许可证。

-3

如果您不修改MySQL连接器,仅仅是将MySQL连接器与您的商业程序一起分发,那么根据gplv2第2节中明确规定的“基于该程序的工作”,您的程序不属于“基于该程序的工作”:

“您可以修改程序或其任何部分的副本,从而形成基于该程序的工作”

但是,您需要随mysql连接器一起分发gplv2许可协议,并以某种方式通知您的客户,商业程序附带的mysql连接器带有gpl许可证。

还请注意gpl许可证的以下部分:

在存储或分发介质的一个卷上,将另一个未基于该程序的作品与该程序(或基于该程序的作品)简单聚合在一起,不会使其他作品适用于本许可证的范围内

由于基于该程序的工作是修改或复制gpl许可程序源代码的工作,因此仅仅分发gpl许可程序与您的商业程序相结合属于聚合,超出了GPL许可证的范围。由于gpl许可程序是免费使用的,因此无论是自由开源还是封闭商业程序使用它都没有关系。

假设您开发了一个会使用MySQL连接器连接数据库的会计应用程序,这并不意味着您的会计应用程序是基于该程序工作的,因为GPL许可证规定,“基于该程序工作”的内容是指复制或修改GPL许可证程序的源代码。因此,简单来说,您的会计应用程序仅仅是在使用GPL许可证程序,并不是基于它工作的。

6
这听起来很对,但我们如何确定这是正确的解释呢? - Gandalf458
7
这是对GPL许可证极为错误的解释,并且不应该有那么多点赞。你的第二个引用并不意味着你认为的那样。考虑到GPL许可证的“作品基于该程序”这个非常首要的条款,你最后一段也是错误的:它意味着任何一个依据版权法律定义的包含该程序或其任何衍生作品(无论是逐字还是经过修改和/或翻译成另一种语言)的作品。如果你不知道自己在说什么,就不要给出具有如此大影响力的法律建议。 - IEatBagels

-5

GPL允许保护作品的商业分发。

例如,如果您分发这样一个程序的副本,无论是免费还是收费,您必须传递给接收者与您收到的同样的自由。您必须确保他们也收到或可以获取源代码。并且您必须向他们展示这些条款,以便他们知道自己的权利。

因此,您必须在您的程序中包含mysql主页或源代码的链接(可能在自述文件中)。

[编辑]

传递非源代码形式。
您可以按照第4和第5条款的规定以目标代码形式传递受保护的作品,前提是您还必须以以下方式之一按照本许可证的条款传递机器可读的相应源代码:
a) 在物理产品中传递目标代码或嵌入其中(包括物理分发介质),并附有固定在耐用物理介质上的相应源代码,该介质通常用于软件交换。
b) 在物理产品中传递目标代码或嵌入其中(包括物理分发介质),并附有书面要约,有效期至少为三年,并在您提供该产品型号的备件或客户支持的时间内有效,向任何拥有目标代码的人提供以下内容之一:(1)该许可证涵盖的产品中所有软件的相应源代码副本,以耐用的物理介质进行软件交换,价格不超过您物理执行此传递的合理成本;或(2)从网络服务器复制相应源代码的访问权,不收取任何费用。
c) 将目标代码的各个副本连同提供相应源代码的副本的书面要约一起传递。此替代方案仅允许偶尔且非商业性地使用,并且仅在您按照第6b款的规定收到目标代码时才允许使用。
d) 通过提供从指定位置访问(免费或收费)来传递目标代码,并以同样的方式通过同一位置免费提供相应源代码的等效访问。您不需要要求接收者随目标代码一起复制相应源代码。如果复制目标代码的位置是网络服务器,则相应源代码可以位于支持等效复制设施的不同服务器上(由您或第三方运营),只要您在目标代码旁边保留清晰的指示,说明在哪里找到相应源代码。无论哪个服务器托管相应源代码,您都有义务确保其可用时间足够长,以满足这些要求。
e) 使用点对点传输传递目标代码,前提是您通知其他节点,在第6d款下向公众免费提供作品的目标代码和相应源代码的位置。

所以,链接、种子、源代码的完整副本都可以,而且它不是一个派生作品。 希望这回答了你的问题。 至少这是我从阅读GPL中得到的。虽然我不是律师,所以你可能不想相信我的话 :)

哦,还有,摘自维基百科:

请注意,版权保护仅适用于软件本身,而不适用于其输出(除非该输出本身是程序的派生作品)。例如,运行经过修改的GPL内容管理系统衍生版本的公共Web门户网站不需要分发其对基础软件的更改,因为其输出不是派生作品。 GPL的GNU Bison的反例:它输出的解析器确实包含其自身的部分,因此是派生作品,如果没有GNU Bison授予的特殊例外,就会受到GPL的约束。

这是否意味着,如果您在程序中使用连接器的输出(基本上是人们所做的),那么在这种情况下许可证不适用,除了分发连接器的副本并因此提供主页链接?


但问题是,连接到mysql .dll或.jar的应用程序是否被认为是派生作品? - leeeroy
3
任何与GPL许可的库相关联的内容都需要兼容GPL许可。 (LGPL是为此目的而创建的)。 - nos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接