views:

287

answers:

6

I am working on a project and trying to determine what platform to use. Right now, my first choice would be to use ASP.Net MVC with a MySql database. My concern with this is that the MySql drivers have a GPL license. I am creating this for a company and therefore it can't be an open-source project. Here are the questions I have:

  1. If I use the MySql drivers which have a GPL license, do I have to make the entire application open-source?
  2. Does anybody know of any other MySql drivers that have a less restrictive license?
  3. PostgreSql has a LGPL license which I believe should be ok but I can't find any hosting sites that have ASP.Net and PostgreSql. Anybody know of any cheap hosting plans ($10-$20/mo preferably) that offer both?
+1  A: 

I'm not a lawyer, but MySQL at first is a database engine. So you don't need to release your projet OpenSource because you put data on it.

If you were to update the driver to suite your need, then you would need to put that modification under GPL licence.

David
+1  A: 

You cannot use the MySQL GPL client library for a commercial product, it can only be used for Open Source projects. MySQL offers the same client library under a commercial license for a reasonable fee which you can use for your purposes, you can find out more about the commercial license here.

Robert Gamble
+3  A: 

Are there technical/political reasons you need to use either MySQL or PostgreSQL? The reason I ask is that there are ASP.NET hosts out there in your target price range that provide SQL Server database access. Server Intellect has a $15/mo plan that includes 250MB of SQL database space (note: while I use Server Intellect as a hosting provider, I have no other relationship with them and don't get any benefit out of you choosing to use them).

I read through the GPL (2.0) link on the MySQL .NET Connector page and it's not completely clear to me what impact it would have when using it as-is (unmodified) in a web app. Section 2 seems to only apply if you're modifying the driver... Section 3 seems to say that you can use ("distribute or publish") the binary as-is, provided you also make it (and the source) available.

If you've GOT to go the MySQL route, you'd be wise to consult a GPL expert/attorney.

Jeff Donnici
A: 

@Jeff-Donnici: I have definitely not ruled out using SQL Server. The 2 reasons I'm leaning towards MySql is in that 1) if it ever becomes too big for a shared hosting provider, that would be a much cheaper option and 2) I will need to be able to create multiple databases and from what I have seen of the shared hosting providers, SQL Server is limited to 1 or 2 databases while they allow quite a few MySql databases.

Derek White
+7  A: 

Using the MySQL libraries will GPL your code base.

If you're writing the code for multiple customers, you will be obligated to release the source code to you system to THOSE customers. You have no obligation under the GPL to open the source code to the public at large, you simply can not prevent someone else from doing so.

Let me repeat that, as people get really unclear about this point. The GPL obligates you as the entity distributing the software to release the source code only to those entities you have actually released a binary of the software to. If you have a relationship with me, and I get a copy of your software (and ideally I have compensated you for it), and then Frank shows up asking for the software, you have NO obligation to give (or sell, or anything) the software to Frank. It's not some "Cat out of the bag" thing.

Frank could come to me, and I can give (sell, trade) it to him, and you can not stop me from doing so, but you have no commitment to distribute the software yourself, nor support Frank. Since I may well be in the Tire business, distributing software really isn't my bag, so it's unlikely that I'll be posting code up on some public archive.

If the project is for a single customer, they may well be entitled to the source code anyway, so the GPL in this case is probably a non-issue.

As long as you have copyright to the code, you can always change the license for a future release. So, if you choose to no longer use MySQL later, you can "un-GPL" the next release and use some other license, however you can not "un-GPL" any released software.

For custom, vertical software, the GPL is really a non-issue as most companies simply are not in the software distribution business, and as a vendor you're not obligated to actually support anyone but your actual customers, rather than anyone they might have given the source code too. The primary concern is over trade secrets etc.

Mass market software is a different issue, of course.

Will Hartung
One correction though: Using the freely available (GPL) MySQL drivers will GPL your code base. Using the commercial ones won't.I'm not sure of the mechanics if you deliver software and the customer themselves are asked to provide a database driver, which basically can be any vendors and any license
Olaf
This interpretation of the GPL is incorrect. Use of a GPL driver does not GPL your own code-base. By this logic, hosting web applications in Apache or running your application on Linux would also force you to GPL. The GPL simply prevents people from taking the MySQL drivers, improving them and then not making the improvements available.
krohrbaugh
You're mistaken. Apache isn't GPL at all, so doesn't apply. Linux relies up LGPL C libraries, and that doesn't apply either. Linking in GPL code in to your code base creates a derivative work, and GPLs the entire thing. Otherwise we wouldn't need something like the LGPL.
Will Hartung
+2  A: 

From what I understand, if you do not change, modify or alter the GPL'd libraries, and you're only using them for what they are, the rest of your code base will not fall under the GPL. Now if you do distribute the application, you will have to provide access to the license for the libraries and access to the source of the libraries you have used. But everything else is yours and to license as you want.