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