MySQL Connector

Posts   
 
    
sgay
User
Posts: 53
Joined: 23-Nov-2006
# Posted on: 23-Nov-2006 11:31:52   

Disclaimer: I understand that what I am considering in this post might imply that my support is terminated, my warantee is voided, and all sorts of disasters happen.

That being said,

Assuming that we want to use LLBLGen over MySQL for an in-house application that we would develop, but we do not want to use CoreLab's driver, and we'd rather use MySQL Connector, because MySQL is supposed to be free.

I have read the various threads regarding the CoreLab Driver vs. MySQL Connector in the forums, the GPL problems, and why you can not ship LLBLGen linked (statically or dynamically) to MySQL Connector, etc.

But what I am wondering is this:

Does the source code that is available to LLBLGen licensees contain enough elements so that we can create a new database driver? In other words, is it technically feasible for an LLBLGen licensee to create and use a driver to MySQL Connector?

On a complexity scale ranging from 0 to 10, where would you put this development task?

Assuming this driver is used internally but never shipped, sold, distributed... what would be our legal situation?

Thanks for your support!

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 23-Nov-2006 11:54:58   

sgay wrote:

Disclaimer: I understand that what I am considering in this post might imply that my support is terminated, my warantee is voided, and all sorts of disasters happen.

We're not THAT rude wink

That being said,

Assuming that we want to use LLBLGen over MySQL for an in-house application that we would develop, but we do not want to use CoreLab's driver, and we'd rather use MySQL Connector, because MySQL is supposed to be free.

I have read the various threads regarding the CoreLab Driver vs. MySQL Connector in the forums, the GPL problems, and why you can not ship LLBLGen linked (statically or dynamically) to MySQL Connector, etc.

But what I am wondering is this:

Does the source code that is available to LLBLGen licensees contain enough elements so that we can create a new database driver? In other words, is it technically feasible for an LLBLGen licensee to create and use a driver to MySQL Connector?

It is technically possible.

You've one problem: the GPL is a distribution license. It describes what a derivative work is and it goes very far in this, i.e. a work which links to the GPL-ed code is considered a derivative work. The MySql provider is GPL-ed. You've to use this provider in the MYSql driver code. This means that that code becomes a derivative work of the mysql provider. As the designer links to the mysql driver, it too becomes a derivative work and so is your .lgp file.

As soon as you distribute ANYTHING, you violate a license: because your driver code has to be GPL-ed, you've to license it under the GPL if you distribute it. If you GPL your code, you run into a problem, as you can't distrbute our code and you have to as it's now a derivative work (I know this is retarded, but this is what you get when you license a LIBRARY under the GPL. MySql Inc. is simply too greedy: they want everyone who doesn't write GPL software to pay for a license for the provider (250+ euro per developer)).

So you can't distribute anything of what you create EVER.

On a complexity scale ranging from 0 to 10, where would you put this development task?

The MySql driver sourcecode for corelab is in the SDK. You could alter it if you want to. You also have to change the DQE for mysql and templates. It's not a hard task given the fact that you likely don't have to change much.

However you're never ever allowed to distribute it, not a single line of code as it's our IP.

Assuming this driver is used internally but never shipped, sold, distributed... what would be our legal situation?

Thanks for your support!

It's not the driver alone. You also have to alter the DQE sourcecode. That's BSD licensed, but the provider will make it GPL-ed, and that makes your own code also GPL-ed. You've to distribute our runtime library code under the GPL. As you're not the copyright holder, you can't re-license it. The sourcecode of the runtime is licensed to you under the BSD2 license so you can make binary changes and distribute the dll to your customers.

Frankly I fail to see why you would go through all this trouble. Core Lab's stuff isn't always great but neither is MySql's stuff.

Frans Bouma | Lead developer LLBLGen Pro
sgay
User
Posts: 53
Joined: 23-Nov-2006
# Posted on: 23-Nov-2006 12:50:15   

Otis wrote:

Frankly I fail to see why you would go through all this trouble. Core Lab's stuff isn't always great but neither is MySql's stuff.

That was purely for financial and practical reasons, like being able to bring a new developer to the team without having to purchase a new CoreLab license.

I understand that I could create a workable LLBLGen solution relying on MySQL Connector but then, the only thing I can do with it is use it internally at my company. I can not, ever, redistribute any part of it.

Now what I find rather scary is that it's not only about LLBLGen. I know of several companies who run in-house developed software, relying on MySQL Connector (well, a patched version fixing old bugs that MySQL does not seem to want to fix), and who would be quite surprised to learn that their software is de-facto covered by the GPL.

Most of these companies picked MySQL just because they needed a free database for small projects, and MySQL seems popular. They could have picked PostgreSQL as well. I don't know if MySQL realizes it.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 24-Nov-2006 10:23:33   

sgay wrote:

Otis wrote:

Frankly I fail to see why you would go through all this trouble. Core Lab's stuff isn't always great but neither is MySql's stuff.

That was purely for financial and practical reasons, like being able to bring a new developer to the team without having to purchase a new CoreLab license.

Yes I can understand that simple_smile

I understand that I could create a workable LLBLGen solution relying on MySQL Connector but then, the only thing I can do with it is use it internally at my company. I can not, ever, redistribute any part of it.

That's correct. It's sad that this is the state of affairs. I've tried high and low to get rid of core lab's provider and move to the mysql one, contacted mysql to negociate licensing but all they wanted to offer was that we became a mysql partner (by paying them money) and that we then could sell our customers licenses for the mysql provider... I don't want to do that of course, I don't want to be associated with MySql Inc. in any way, I just want to compile my code against their stuff.

I know competitors of ours use their provider, and I don't think their customers are aware of the implications: that THEY have to purchase a provider license from MySql unless they've to open their code under the GPL.

Several times in the past 2 years or so we were at the point of dropping MySql support altogether just because of this stupid issue and because Core lab did something silly. After a while they got their act together again and it's struggled on, but it's not smooth. BUt I put all the blame on MySql Inc. It's their stupid greed that you've to pay a lot of money (250+ euro, more than an llblgen pro license) to even CONNECT to their database if you don't want to GPL your own code.

Now what I find rather scary is that it's not only about LLBLGen. I know of several companies who run in-house developed software, relying on MySQL Connector (well, a patched version fixing old bugs that MySQL does not seem to want to fix), and who would be quite surprised to learn that their software is de-facto covered by the GPL.

Exactly.

Most of these companies picked MySQL just because they needed a free database for small projects, and MySQL seems popular. They could have picked PostgreSQL as well. I don't know if MySQL realizes it.

They absolutely do realize it, it's the root of their policy: either force as much software as possible onto the GPL by GPL-ing a necessary library, or earn a lot of money for the non-gpled version. For some projects the GPL is a good license (we'll use it for our forum software as well) but for libraries, it's a bad choice.

Frans Bouma | Lead developer LLBLGen Pro