2008-11-11 40 views
7

我正在开发一个项目并试图确定要使用的平台。现在,我的第一选择是使用ASP.Net MVC和MySql数据库。我关心的是MySql驱动程序拥有GPL许可证。我正在为一家公司创建这个项目,因此它不能成为一个开源项目。以下是我的问题:从.Net使用MySql - 许可问题

  1. 如果我使用具有GPL许可证的MySql驱动程序,是否必须使整个应用程序为开源?
  2. 有谁知道任何其他MySql驱动程序的限制较少的许可证?
  3. PostgreSql有一个LGPL许可证,我相信应该没问题,但我找不到任何托管站点有ASP.Net和PostgreSql。任何人都知道任何便宜的托管计划(最好是$ 10- $ 20/mo)都可以提供吗?

回答

7

使用MySQL库将GPL代码库。

如果您正在为多个客户编写代码,您将有义务将源代码发布给您的系统给这些客户。 GPL没有义务向公众开放源代码,你根本无法阻止其他人这样做。

让我重复一遍,因为人们对这一点真的不清楚。GPL有义务将您作为分发软件的实体,将源代码仅发布给您实际发布了软件二进制文件的实体。如果你和我有关系,并且我得到了一份你的软件的副本(理想情况下我已经赔偿了你),然后弗兰克出现要求购买这个软件,你没有义务给予(或者出售,或者其他任何东西)该软件给弗兰克。这不是一些“猫”的东西。我可以给他(卖,交易)给他,但你不能阻止我这样做,但你没有承诺自己分发软件,也不支持弗兰克。由于我很可能在轮胎业务,分发软件真的不是我的包,所以我不太可能在某些公共档案上张贴代码。

如果项目是针对单个客户的,那么他们可能有权获得源代码,所以在这种情况下,GPL可能不是问题。

只要您拥有代码的版权,您随时可以更改未来版本的许可证。因此,如果您选择不再使用MySQL,那么您可以在下一个版本中使用“un-GPL”并使用其他许可证,但是您不能“un-GPL”任何发布的软件。

对于定制的垂直软件,GPL确实不是问题,因为大多数公司根本不在软件分销业务中,而作为供应商,您没有义务实际支持任何人而不是实际客户,而不是他们可能也会给出源代码的任何人。主要关心的是商业机密等。

当然,大众市场软件是一个不同的问题。

+0

尽管有一个更正:使用免费提供的(GPL)MySQL驱动程序将GPL代码库。使用商业的不会。 如果您提供软件并且要求客户自己提供数据库驱动程序(基本上可以是任何供应商和任何许可证),我不确定这些机制是什么 – 2008-11-11 16:27:42

1

您不能将MySQL GPL客户端库用于商业产品,它只能用于开源项目。 MySQL根据商业许可提供相同的客户端库,收取合理的费用,您可以将其用于您的目的,您可以了解有关商业许可here的更多信息。

0

@ Jeff-Donnici:我绝对不排除使用SQL Server。我倾向于MySql的两个原因是1)如果它对于共享主机提供商来说太大了,那将是一个更便宜的选择,2)我将需要能够创建多个数据库,并且从我已经看到了共享主机提供商,SQL Server仅限于1或2个数据库,而它们允许使用不少MySql数据库。

2

根据我的理解,如果您不更改,修改或更改GPL'd库,并且您只是使用它们的内容,那么其余代码库将不属于GPL。现在,如果您分发应用程序,则必须提供对这些库的许可证的访问权,并访问您使用过的库的来源。但其他一切都是你的,并且可以根据你的需要进行授权。