许可证 FAQ
在本文中,我们将解释MariaDB和MySQL服务器和客户端库许可证如何影响其他应用程序,以及您可以采取哪些步骤来遵守GPL或避免不得不修改应用程序以符合GPL。
下面的文本中我们谈论MariaDB。这些指南也适用于MySQL,至少适用于5.1.55,这是写作时最新的稳定版本。
Contents
MariaDB使用的许可证
MariaDB使用GPL许可证第2版进行分发和使用。
新的MariaDB客户端库(C、Java和ODBC)在LGPL许可证第2.1版或更高版本下分发。LGPL许可证允许您自由地与任何应用程序一起分发这些MariaDB客户端库。
随MariaDB服务器提供的MariaDB客户端库也是GPL第2版,但具有FLOSS例外,允许您将其与大多数其他开源软件组合使用,而不会与其许可证冲突,即使该许可证与GPL不兼容。但是,我们建议您对于任何非GPL应用程序都使用新的客户端库。
内部使用是免费的
GPL许可证仅影响您向其他方分发的代码。
组织内部使用完全免费,不受任何条件限制。不存在“内部分发”的事情,这将通过要求将其GPL化来限制您的代码使用。
连接到在后台运行MariaDB(或任何其他GPL软件)的远程服务也是免费的。
对于您拥有所有版权的内部程序,使用GPL软件基本上没有风险。您可以用自己的辩护来证明,如果软件作为分发的一部分变为GPL,作为版权持有人的您可以立即将其部分恢复到其原始版权。即使您已将其与GPL软件内部链接,也没有人有权要求您将其代码公开或重新分发给组织外部!
如果您的律师担心在您的组织内部不同法律实体之间链接GPL库的软件分发,您可以通过分别分发您的组件和GPL软件并让其他实体将它们组合来解决此问题。您也可以切换到使用新的LGPL客户端库。
使用MariaDB连接器/客户端分发应用程序
本节适用于希望使用MariaDB客户端库代码(但不是服务器)与其应用程序一起分发的人。
自由软件/开源应用程序
如果您的应用程序是自由软件/开源软件并使用FLOSS例外中列出的许可证之一,则客户端库中的GPL不会影响您的应用程序。
在其他情况下,我们建议您使用新的LGPL客户端库。
使用非GPL连接器
如果您正在使用非GPL连接器,则仅受该连接器的许可证约束。以下是一些例子:
上述连接器具有允许您自由使用它们的许可证,而不会受到GPL的约束。
使用数据库源独立框架
如果您正在使用允许您动态连接到不同RDBMS系统的框架,则由框架加载的任何GPL许可模块都不会影响应用程序。这样的框架包括:
- ODBC(开放数据库连接)
- JDBC(Java数据库连接)
- Perl
- PHP PDO MySQL驱动程序
在这种情况下,MySQL客户端库中的GPL不会影响您的应用程序,原因是GPL客户端支持标准接口,因此只是许多可选组件之一。您的应用程序可以轻松使用框架连接到除MariaDB或MySQL之外的RDBMS。
任何软件都可以连接到GPL v2许可的MySQL Connector/ODBC,而无需该软件成为GPL。这是因为在GPLed MySQL Connector/ODBC和您的软件之间有一款通用管理软件ODBC管理器。如果任何逻辑要求与MySQL Connector/ODBC接口的软件必须是GPL,则该逻辑也适用于ODBC管理器本身。然而,ODBC管理器在Windows和Linux上都不是GPL。因此,没有人可以为任何事情使用MySQL ODBC驱动程序。
使用MariaDB C客户端库
如果您的应用程序使用的许可证没有被FLOSS例外所覆盖,则应使用新的LGPL C客户端库。
LGPL许可证允许您自由地将这些MariaDB客户端库与任何应用程序一起分发。如果您修改了客户端库,则需要发布新的源代码。
使用MariaDB/MySQL服务器分发专有应用程序
当您将应用程序与MariaDB或MySQL一起分发时,如果以下某些陈述适用,则您会受到(或被某些律师视为受到)GPL的约束:
- 您正在直接使用来自MySQL的GPL代码链接到您的应用程序(例如MySQL GPL客户端库)。
- 您的应用程序需要MariaDB服务器才能工作,如果没有MariaDB服务器,则不会启动或具有非常有限的功能。
通过使用前面提到的解决方案,可以避免客户端库的问题。
如果您的应用程序可以使用许多数据库(本地或通过数据库源无关框架之一),则可以自由地将MariaDB服务器与您的应用程序一起分发,而不受GPL的影响。原因是MariaDB只是软件分发中一个可选的独立组件,而GPL第2条明确允许这样做:
此外,将另一个与程序无关的作品(或基于该程序的作品)与该程序(或基于该程序的作品)仅聚集在存储或分发介质的一个卷上,不会使其他作品受到本许可证的约束。
您还可以选择从Oracle购买MySQL的许可证,以获得其他版权条款下的MySQL。如果您以后想使用MariaDB而不是MySQL,请确保您的许可协议允许您对MySQL代码进行更改!(这是您在所有情况下都应确保的事情,否则您可能会遇到Oracle不会修复的错误,您也不被允许修复,这可能会使MySQL软件对您无法使用!)
您可以从SkySQL申请在应用程序中使用MariaDB代码更改的权利。
法律声明
以上文本由Michael“Monty”Widenius编写,他不是律师,您不应将上述任何声明视为所有情况下的“终极真理”。另一方面,正是David和Monty共同决定使MySQL成为GPL,并公开宣布了这种许可证变更的意图,因此本文中的信息具有一定的价值。
如果您想获得有关此情况下GPL如何工作的第二意见,可以联系Software Freedom Law Center或Free Software Foundation。虽然双方都与本KB文章无关,但它们是您想了解有关GPL或LGPL的更多信息时可以转向的默认权威。