MySQL licensing and GPL [closed]

2019-01-11 16:54发布

As far as I know, when I build a desktop/server app using any GPL code like MySQL I will have to release the source code of my software under the GPL.

If I want to develop a web-app using MySQL, my code will link against the MySQL libraries. Must I release the sourcecode of my webapp in this situation to be in accordance with the GPL?

10条回答
Melony?
2楼-- · 2019-01-11 17:31

If your distribution includes and installs MySql in the same package, it requires a commercial license.

But if you only distribute your code, with a mere "requires MySql" notice and an installation script (to create/populate the tables), there should be no problem, AFAIK.

IANAL, of course.

查看更多
迷人小祖宗
3楼-- · 2019-01-11 17:33

You must either release the source (under GPL), or pay for a proprietary license to MySQL so that you gain the right to distribute the MySQL binaries under a license that is more amenable to that which proprietary products use. It's best to take this type of question to your lawyer, though.

ETA: Just to clarify a little bit; if you write your own library which talks to MySQL using its wire-line protocol, then you'll always be 100% in the clear. Likewise, if you use a library that has done just that, but is BSD licensed (as an example), then you'd also be in the clear, because you're only talking to MySQL over a socket connection, and not actually calling into GPL'd code. I am not immediately aware of any BSD licensed interfaces to the MySQL protocol, but it's certainly possible that there is one out there somewhere.

查看更多
ら.Afraid
4楼-- · 2019-01-11 17:37

Unless you derive from and/or distribute the GPL'd software, you should be safe.

Linking against the MySQL client library is neither a derivative work, nor distribution.

UPDATE: Come to think about it, how you link (dynamic or static) against the libraries will make a difference. Static linking is distribution, but if you link dynamically and your clients download the connectors themselves, that's not distribution and you should be safe.

Oh, and IANAL.

查看更多
萌系小妹纸
5楼-- · 2019-01-11 17:39

If you're running the web application yourself, and not distributing it as an application, then you don't have to release the source. Allowing access to a web application is not considered distribution.

Edit: if interested you might look at the Affero General Public License, which requires that source be made available to network users of AGPL software (e.g. it would apply to web applications).

查看更多
不美不萌又怎样
6楼-- · 2019-01-11 17:40

First, I am not a lawyer. Talk with one before taking any advice here.

Beyond that, if you do not distribute your web app, you likely do not need to release your changes. You can still make your web app available to be used by others if you host the web app.

查看更多
干净又极端
7楼-- · 2019-01-11 17:43

You don't necessarily have to link against MySQL libraries in order to use MySQL in your application. All you have to do is to "speak" to a MySQL server using the MySQL protocol; in which case, you are connecting to the MySQL server as a client, i.e. as a user, and then you don't need to release your software under the GNU GPL license.

The question is, how can your program speak the MySQL protocol? One possibility is using the official MySQL client library (connector), which is GPL'd. If you do this, you are statically linking your program to a GPL'd library, and thus you need to release your software under the GPL.

Alternatively, you can link against a third party client library, with a different license. For example you can use the MariaDB Client Library, which is LGPL'd (and is thus compatible with proprietary software) and provides the same API of the original MySQL client library. See the MariaDB licensing FAQ, which also applies to MySQL, for more details and advice.

It may be tricky to distribute the MySQL server along with your software: you could simply require your customers to download and install MySQL by their own, or develop a simple downloader to be distributed with your software.

查看更多
登录 后发表回答