On Thu, 2009-07-16 at 18:06 +0800, Jens Jacobsen wrote: > From the previous discussion: > > >> Maybe I've got it all backwards, but how can DbLinq be licensed under > >> MIT when the MySQL .Net connector (MySql.Data.dll) that ships with > >> DbLinq is licensed under GPL? > >> > >> Because DbLinq does not distribute any database vendor. > > I'm afraid this is wrong. > > Distribution is not a requirement but referencing is. You cannot just > wrap a GPL library in BSD code and then "pretend" it is no longer GPL > unless you have the right to do so.
True, BUT your BSD wrapper code can remain under the BSD license. It's only when distributed that your BSD code would need to be distributed under the GPL. The GPL cannot take away copyright, and it cannot stop me from licensing code under more liberal licenses. It just requires using GPL-compatible licenses. Consequently, if someone rewrites that GPL code under BSD, then the newly written BSD code can be bundled with the old BSD wrapper and distributed as BSD, not GPL. ... > Since DbLinq is designed to load Ingres and MySQL data providers and > interact with them Stop right there, and consider the ramifications of what you've written so far. If you have library A which can load library B, and B is licensed under the GPL, then A must be under a GPL-compatible license. Yet .NET *itself* is most certainly NOT GPL-compatible (unless you take the "system-supplied software" route, in which case you can ponder the equivalent Java case), yet you can load both .NET AND the MySQL data providers into the same address space (in fact, you must do so unless you use Mono). So either: (1) You can't use the MySQL providers AT ALL (because there's no way for the entire process to be GPL compatible). This would be quite silly, but plausibly valid. If this were actually the intention, in order for ANYONE to use the MySQL providers then they would need to have an exception in their licensing, e.g. "this code is GPL AND can be used with .NET." See: http://www.gnu.org/licenses/gpl-faq.html#LinkingOverControlledInterface (2) You can use the MySQL providers via standard ADO.NET interfaces w/o penalty (as .NET would be using the MySQL providers through the standard interfaces). Though whether this qualifies as the "communication between them is limited to invoking the ‘main’ function of the plug-in" case could be debated. The real problem is that we're dealing with this: http://www.gnu.org/licenses/gpl-faq.html#GPLPluginsInNF "Can I apply the GPL when writing a plug-in for a non-free program?" In this case, the non-free program is .NET itself, while the GPL plugin is the MySQL provider. If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means that combination of the GPL-covered plug-in with the non-free main program would violate the GPL. However, you can resolve that legal problem by adding an exception to your plug-in's license, giving permission to link it with the non-free main program. As far as my short searching can tell, MySQL provides no such exception, meaning either (1) you can't ever use it (see above), or (2) you can via standard interfaces (see above). Ignoring the .NET angle, for DbLinq there's answer 3: http://www.mysql.com/about/legal/licensing/foss-exception/ MIT/X11 is listed as a license that gets an exception to the normal GPL requirements of the MySQL provider. Thus DbLinq is in the clear, full stop. Have a nice day. > DbLinq is a GPL program and you have the choice to either: > > 1. Change the license to GPL Again, GPL only covers distribution. It's quite possible, and not uncommon, to license the source under a more liberal license than the final binary distribution. All that matters is that at distribution time you fulfill the GPL, and a more liberal license certainly permits that. - Jon --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DbLinq" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/dblinq?hl=en -~----------~----~----~----~------~----~------~--~---
