3

I'm building my first app and have reached a point where I'm considering switching to a MySQL database. However, I noticed the GPL on the Community version of MySQL. So I did some prowling and noticed that it was also the connector supplied to connect MySQL to Python.

If this connector is going into my server's code, the server (surely) has to be under the GPL.

My question, hence is; does my client also have to be under the GPL, or am I free to use a Creative Commons License above C0?

4
  • Have you considered Postgresql? It has a liberal, non-copyleft license. Commented Sep 6, 2016 at 23:13
  • Use the MariaDB client libraries (LGPL).
    – Demi
    Commented Sep 7, 2016 at 4:07
  • @Demetri, thanks for the suggestion. I'll have to read LGPL, as I haven't researched it yet. If it turns out to suit me I may end up using MariaDB. Commented Sep 7, 2016 at 9:43
  • @Robert Harvey, if PostGRESQL works for me it may become the suitable solution. Commented Sep 7, 2016 at 9:43

1 Answer 1

2

There are several connectors between Python and MySQL under various licenses. Here are some of the more popular ones:

  • MySQL Connector/Python (the "official" connector) is dual-licensed the same way as MySQL itself: you can choose a commercial license or GPL-2.
  • MySQL-python is dual-licensed under GPL and the more permissive Python 1.5.2 license (see below).
  • PyMySQL is MIT-licensed.

If you decide to make the server code GPL, does the client also have to be released under the GPL? This is a difficult question and depends on whether the server and client should be considered two parts of the same program that just happen to communicate over the network, or if they're two separate, but interoperable programs. See Can I commerically use GPL licensed software on my server if I am only distributing the client software?

Original answer that explained the dual license of MySQL-python:

The README that comes with the MySQL-python-1.2.3 source states this in the License section:

License
-------

GPL or the original license based on Python 1.5.2's license.

I'm not sure what exactly the "original license based on Python 1.5.2's license" is, however Python 1.5.2 was released under a modified CWI license, which is a permissive non-copyleft license:

Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
The Netherlands.

                        All Rights Reserved

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Stichting Mathematisch
Centrum or CWI or Corporation for National Research Initiatives or
CNRI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.

While CWI is the initial source for this software, a modified version
is made available by the Corporation for National Research Initiatives
(CNRI) at the Internet address ftp://ftp.python.org.

STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
7
  • Hey, Thanks for the answer. However, I am still confused about something, could you clarify this for me: If it says "GPL or ...." does GPL not take precedence, implying that the code written IS copyleft, and use would require me to use a GPL license. Commented Sep 7, 2016 at 9:54
  • Also (sorry it wasn't in one comment), I'm not sure which connector you are looking at, but on the MySQL Webpage:link it states MySQL open source software is provided under the GPL License. OEMs, ISVs and VARs can purchase commercial licenses. If you are referring to a different connector, could you send a link Commented Sep 7, 2016 at 9:56
  • Oh, sorry, did not catch that you were using MySQL Connector/Python. That one is indeed GPL (unless you purchase a commercial license). I was referring to sourceforge.net/projects/mysql-python. Dual-licensing means that you can choose which of the licenses you prefer, and use the software under that license. Commented Sep 7, 2016 at 10:53
  • There's also PyMySQL (github.com/PyMySQL/PyMySQL) which is MIT. Have not used that one yet. Commented Sep 7, 2016 at 10:59
  • The first one is not compatible with Python 3.4 (sorry for not specifying), so it looks like the best option is the second. Thanks for your help. Commented Sep 8, 2016 at 8:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.