[Mono-list] Recommended MySQL Data Provider?

Marek Habersack grendel at caudium.net
Sun Nov 6 16:12:42 EST 2005


On Sun, Nov 06, 2005 at 01:32:14PM +0000, Alexandre Miguel Pedro Gomes scribbled:
> Please take a look at:
> http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL
> 
> It states:
> «*If a library is released under the GPL (not the LGPL), does that mean that
> any program which uses it has to be under the
> GPL?<http://www.gnu.org/licenses/gpl-faq.html#TOCIfLibraryIsGPL>
> *  Yes, because the program as it is actually run includes the library.» So,
> I guess I was and I am right.
> 
> If I remember right, there is something called FLOSS (or very similar) in
> MySql license that allows you to release your application (the one linking
> to a MySql licensed library) under a license compatible to GPL *and*
> approved by that FLOSS. Not sure what that means but I assume that you can
> do a LGPL library that used .net connector, thus allowing other to link to
> your app with any other license, including closed-source.
> 
> There is a workaround that I was told to work well - to make sure your app
> works with other providers, like postgres, sqlserver, access, etc.... and
> load the provider dynamically, that is, as an addin (using a xml file and
> reflection....). Again, I'm not sure this works, but I believe so.
Qoting the GPL:

---- CUT ----
2. [...]
These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
[...]
---- CUT ----

So, this is true that you can make sure your program doesn't have to abide
by the terms of the GPL by constructing it so that the program is not
entirely dependant on the MySQL connector assembly. Thus, in my
understanding, using the ADO.NET interfaces for your work fulfills that
requirement - you can make your code generic as far as the RDBMS used is
concerned. Also, I think, the other solution you mentioned - using code
that's licensed under a GPL-compatible license should be sufficient. You, as
the author of your application, hold all the rights to the source code and
the license that governs its use. Therefore, you can create a "glue" assembly
(it would have to be a separate DLL referenced by your app) and license it
under (e.g.) MIT _and_ GPL - leaving the user of your code the option to
choose which license applies to the code of the assembly. Your application 
would link to the MIT/GPL assembly, thus "separating" your application code 
from the GPL piece. According to some lawyers I talked to, it would also be
necessary to include a clause in your main application's license, that it
can solely be licensed under the terms of this or that license, or otherwise
your application users could, by implication, assume that since your app
links with a MIT/GPL assembly and they can use one of those licenses, then
your application can be considered GPL-ed if they select GPL instead of MIT
for the glue assembly.
All of this is very blury and unclear, but that's unfortunately what GPL
forces us to do in certain situations and is, IMO, one of the greatest harms
the GPL does to the free software community (this is my personal comment
only, so please ignore it if you don't agree with it and if you really want
to discuss it, please write me off the list)

best regards,

marek
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.ximian.com/pipermail/mono-list/attachments/20051106/bda7a36e/attachment.bin


More information about the Mono-list mailing list