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
-~----------~----~----~----~------~----~------~--~---

Reply via email to