BEWARE - MySQL Free, but not as in "Free Beer"

Forum related to MySQL

Moderators: gto, cipto_kh, EgonHugeist

Post Reply
mparak
Senior Boarder
Senior Boarder
Posts: 81
Joined: 12.09.2005, 06:51
Location: Durban South Africa
Contact:

BEWARE - MySQL Free, but not as in "Free Beer"

Post by mparak »

Dear Friends,
We were recently contacted by MySQL (Yes they emailed, then phoned us in South Africa - All the way from the UK)
A really rude wake up call.

They tracked me down using the MySQL forum membership. Is nothing sacred?

It seems that the worlds most popular OPen Source Free Database is not free at all.

We have officially made Firebird our first choice and re-written all MySQL specific code.

PLEASE BEWARE.

Check out this link if you don't believe

http://www.bitboost.com/people/free-sof ... l-license/

Thank God for Zeos and the ability to use alternative databases..

Regards

M
cariad
Junior Boarder
Junior Boarder
Posts: 36
Joined: 20.10.2005, 14:07

Post by cariad »

Hello,

With all due respect, I think you didn't read carefully enough the MySQL license agreement (not that license agreements in general are particularly crystal clear). There's absolutely nothing 'shaddy' or misleading in it, and many other vendor use this kind of double-licensing (the prime example being Qt).

I'm in no way affiliated with MySQL and I might be wrong, but if my understanding of the FLOSS licenses are correct :

- You're free to use and redistribute MySQL with your application (including Zeos) if your application is distributed under the GPL license.

- You're free to support the MySQL backend through Zeos and redistribute the MySQL client DLL free of charge providing you indicate that your application use Zeos which is free software (this is the FLOSS license exception 0.5 from MySQL). BUT your customer MUST purchase a MySQL commercial license if they choose to use this MySQL backend.

- You MUST purchase a MySQL commercial license for you AND each of your customer if you use Zeos, and distribute your closed-source application with the MySQL server.

That being said, thanks indeed to Zeos for supporting multiple backends. We also choose to natively support Firebird out of the box, with the additional MySQL backend support for our customers willing to purchase a MySQL commercial server license.
mparak
Senior Boarder
Senior Boarder
Posts: 81
Joined: 12.09.2005, 06:51
Location: Durban South Africa
Contact:

Post by mparak »

I agree with you in that we did not read the MySQL documents well enough, and are paying the price.

follow the link I provided though and you will see that the case is far from Cut and dried as you imply.

http://www.bitboost.com/people/free-sof ... l-license/

Regards

M
User avatar
mdaems
Zeos Project Manager
Zeos Project Manager
Posts: 2766
Joined: 20.09.2005, 15:28
Location: Brussels, Belgium
Contact:

Post by mdaems »

Hi,

Yesterday I had a little chat on this topic with a mysql support engineer.
Our conclusion:
- When you develop software using zeoslib you do not link your program to any mysql component.
- When releasing the Zeoslib components we can include libmysql.dll as we release the source code of our components.
- When building a program using zeoslib (closed or open source) you can use this dll we provide or any dll version you get from an official mysql source (free or paying licence).
- When publishing/distributing your project under a GPL licence you can include the dll provided by the zeoslib distribution or any other official dll version you like.
- When selling your project without releasing your sources you must buy the necessary licences from mysql to include the dll in your package. Your client does not have to do anything. (In fact he buys part of your licence, I think)
- When selling your project without releasing your sources you can do so when you do not provide the dll as part of your package. In this case your client has to obtain a dll himself (paied or free) and make it available to your program.

This last option is the most difficult one as you will have to document this when releasing your application. And even more important, you can't make sure your client uses a compatible dll.

To make it easier to check what dll and server you are dealing with we added 2 readonly properties to the connection component. These properties are called ClientVersion and ServerVersion.
TZConnection.ClientVersion returns Integer : (MajorVersion * 1000000) + (MinorVersion * 1000) + SubVersion)
TZConnection.ServerVersion returns Integer : (MajorVersion * 1000000) + (MinorVersion * 1000) + SubVersion)

Unfortunately these functions have some problems:
- They only work when a connection has already been established. This is logical for the ServerVersion property, but we'll have to rework it for ClientVersion.
- They are only implemented for mysql.

So is there somebody out there who wants to improve this behaviour?

Mark
Post Reply