[Mono-devel-list] ByteFX development
stefanp at cabal1.com
Thu Sep 16 19:36:37 EDT 2004
[ Apologies if this discomforts anyone wrt. yesterday's little flame war
on a similar topic on #mono -- I would have preferred to stay clear of
this thread, but please read for yourself. Of course also: IANAL! ]
Chris Morgan wrote/schrieb/scripsit:
>If you distribute a proprietary application in any way, and you are not licensing and distributing your source code under GPL, you need to purchase a commercial license of MySQL
>Is this really the case? If so, how does ByteFX get away with being called lgpl given that MySQL is using the GPL as the basis for their argument. What about Mono's MySql client?
MySQL have always been trying to befog the requirements for commercial
licensing. Maybe the above statement is a relict from their pre-GPL era,
maybe they are deliberately spreading false information.
Fact remains, the power of the GPL can and does only apply in the
context of the distribution of derivative or combined works. It can not
and does not place any restrictions on the mere use of the Software
itself (clause 0 of the GPL).
Why are derivative or combined works relevant? Because by modifying a
GPL-licensed work ("hacking the source") one creates a derivative work,
or by using code from it ("copy and paste") in another program one
creates a combined work.
This directly affects all of the resulting source code because this
itself if the derivative or combined work, and thus also affects the
binaries built from it.
The workings are a little different when "linking" to GPL libraries.
How does the creation of the derivative or combined work happen there?
It happens when the preprocessor combines other source code with the
headers of the library licensed under the GPL; it happens when the
linker copies object code from the GPL library archive into the
So the resulting binary is a work achieved by combining with a GPL
licensed work and its redistribution must thus be covered by the GPL.
This does not automatically make its source code GPL licensed! However,
there is no way to distribute its binaries without also making its
source code available under the GPL. The author remains free, however,
to also redistribute his own source code, or any other work based on it,
as long as it remains free of other GPL code, under any other license he
may chose. Licensing happens on a per-copy basis.
Coming back to the issue of MySql licensing; the situation is absolutely
clear when including / linking the GPL-licensed mysql client library.
But what if someone uses a client library that does not contain any
source or object code from the MySQL AB libmysqlclient, that does not
contain any GPL code at all? There is a different commercial MySql
client library available for at least the .NET environment, and of
course we have the old ByteFX and older Mono.Data code.
Well what happens to the object or source code of a program free of
MySQL AB or other GPL code when using it to access a possibly
GPL-licensed mysql server over the network is the same that happens
to the source or object code of a proprietary web browser when using
it to access a GPL-licensed web server: absolutely nothing.
Now one might say that by distributing a "product" that uses a non-GPL
mysql client, but also contains a GPL-covered mysql server, one has
already created a combined work. Interpretation of the GPL
(<http://www.gnu.org/licenses/gpl-faq.html#GPLPluginsInNF>) and standard
practice (Linux distributions also containing proprietary software,
appliances containing a Linux OS but running propriatary binaries on top
of it) shows that this is clearly not the case.
More information about the Mono-devel-list