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
------------------------------------------------------------------------
_______________________________________________
Mono-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list