tags:

views:

267

answers:

4

I have an application, it uses the libmysqlclient.so I wonder if I need GPL license on this application due to libmysqlclient be GPL or if I can continue the program in closed source

EDIT: According to this site, I can use the libmysqlclient in a closed-source software.

Just do not understand why the GPL "infects" the code so much ...

EDIT2: If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL or a GPL-compatible license?

+1  A: 

There has always been a lot of confusion and FUD around this issue.

First off, libmysqlclient is GPL 2, not LGPL, (which would argueable be more in line with it being a library). However, there is a so-called FLOSS exception in effect, which allows free and open source projects to use and distribute libmysqlclient without having to adopt the GPL license.

In your case, I think you may only link to (and/or distribute) libmysqlclient if your application is also GPL, or goes by another open source license (as per the FLOSS exception)

Roland Bouman
+1  A: 

There are exceptions to this, but GPL usually requires that you open source your project too and use an open source licence that's compatible with GPL. GPL is surprisingly restrictive in that aspect x_x

mingos
No, the GPL does not require you to distribute your code if you don't want to. It merely states that if you were to distribute your modifications, then they would have to be under a compatible licence.
Rob
Are you sure about that? Clause 3 seems to be pretty specific about the necessity of distributing derived works along with the source code or an offer to make it available on request.
mingos
A: 

libmysqlclient, the JDBC connector, and other libraries to interfacing to MySQL are GPL (GPLv2). Strict reading of the license would show that you need to distribute your source code under the GPL.

There is the FLOSS exemption, which allows any open source license to include libmysqlclient, however this does not apply to you.

Sun/Oracle aggressively license the connector libraries and server components, and in my experience are quite expensive. There are some tricks you can use, such as a query proxy server - simply launch a child process which can transform your own SQL commands to libmysqlclient. You will need to ship the source of the proxy, but its a self contained piece.

Yann Ramin
A: 

According to this site, I can use the libmysqlclient in a closed-source software.

Just do not understand why the GPL "infects" the code so much ...

osmano807
That site says nothing of libmysqlclient... it is only speaking of MySql proper.
joshperry
Look at the first three comments. And those only relate to connecting via a nicely separated driver. In the OPs case, it goes a step further: linking. To sum it up: You can link (as in compile time references) to GPL code, but once you distribute your work, you must distribute your code too as GPL. As long as you don't distribute your work, you can use it, even if your code is not GPL.
Roland Bouman