connector - Non-GPL ADO.NET provider for MySQL?
c# dotnet (5)
I got the perfect answer:
One can use
System.Data.Odbc to get around it.
You can always say, it's generic ODBC, has nothing in particular to do with MySQL, easily replacable.
And whatever you put in the connection string is the problem of your customers.
If the SQL that you send over the ODBC connection works in MySQL/MariaDB only, that's regrettable - but no legal problem ;)
Edit - 2016 Update:
You can use the MIT-licensed MySqlConnector for .NET Core (which also works for .NET) https://github.com/mysql-net/MySqlConnector
Is there any NON-GPL ADO.NET provider for MySQL ?
There is the official one from here
but unfortunately, it's under the GPL, not the LGPL.
I am developing an abstract class for database access.
I don't care whether the abstraction layer is going to be GPL,
but if it uses MySQL (I mean the MySQL ADO.NET provider, not the MySQL database itselfs) it will be GPL, and thus, any application that uses that layer, which is something I don't want...
Oh, and I know about nHibernate/Subsonic/otherORMs, but it doesn't fit my needs.
ADO.NET provider short of using ODBC of course.
Note that by "abstract class for database access", I don't mean write my own universal ADO.NET provider. I mean writing a wrapper class around a set of already existing ADO.NET providers.
There is DevArt's ADO.NET provider for MySQL
Using GPL v2 DLL in application
I found an interesting post on this:
Does the use of GPL'ed DLLs from the GnuWin32 project in your program need you to release your program under GPL too?
There seem to be two different strands of opinion. The FSF holds that dynamic linking creates a derivative work, and so any program designed to run with a GPL-ed DLL, must be GPL itself; see http://www.fsf.org/licenses/gpl-faq.html. The only exception they make is for DLL's that come with the compiler and the kernel, such as the MS VC run-time DLL's; see http://www.fsf.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL. On the other hand some OpenSource lawyers hold that dynamically linking does not make your program GPL. See http://www.nusphere.com/products/library/gpl_0401openmag.pdf and the discussion in http://www.linuxjournal.com/article.php?sid=6366. There is no doubt that programs that link dynamically to DLL's from libraries with the LGPL or with the GPL with special provisions, are GPL free if you decide so.
If you link to a GPL v2 dll and distribute that program, you will have to make your source code available as GPL v2/3.
See http://www.opensource.org/licenses/gpl-2.0.php. The paragraph at the bottom mentions LGPL if linking is allowed without having to make your code GPL-licensed and it also says:
This General Public License does not permit incorporating your program into proprietary programs
You're missing System.Data.SQLite for SQLite. It's open source, and quite reliable from my experience. As far as I know it was one of the first EF providers for databases other than SQL Server