[Mono-devel-list] ByteFX development

Stefan Paletta 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:
>From http://www.mysql.com/company/legal/licensing/
>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 mailing list