I should first start this blog post with the acronym IANAL (I am not a lawyer). Also the views in this post are mine and not my employer's (a lawyer did ask me to say that part).
Questions on the MariaDB JDBC Driver have already been raised so I wanted to do something similar for the MariaDB C Connector. The JDBC's issues are mostly ethical whereas my C Connector questions are mostly legal.
But first a little history... MySQL 3.23.58 was the last version to include an LGPL licensed connector for MySQL, the connector went GPL (and of course commercial) after this version. Nowadays the connector is GPL with a FLOSS exception, that exception allows you to compile with certain other licensed software. The main reason for this is PHP version 4 switched from a dual-licensed under the GPL to PHP licensed only. The PHP license is incompatible with GPL and LGPL licensed in both directions, this is because clauses 3&4 of the PHP license conflicts with clause 6 of the GPL license (which is also clause 10 of the LGPLv2 license). The FLOSS exception isn't in 3.23.58, it wasn't needed back then.
Why is this relevant? The MariaDB C Connector is based on the LGPL 3.23 connector and is coded-up to have the current features of the MySQL connector. Some of this is based on the PHP licensed MySQLnd connector.
Being LGPL licensed is one of the main selling points of the connector. It means you can dynamically link the library with a commercial application. Something you would have to buy a license for to do with the MySQL connector.
So, my questions are:
1. How can MariaDB's C Connector legally include LGPL and PHP licensed code in the same source under the LGPL umbrella?
2. There are questions around the licensing and availability of the native LGPL SDBC (OpenOffice) driver that other parts of the connector are based on. In the comments of
another blog post it was claimed it that the SDBC code was "... developed by MySQL in 2006 and 2007 and never reached GA – discontinued when Sun Microsystems acquired MySQL AB" but I haven't seen any evidence of this. The only Sun code I can find for SDBC is 2008/2009 and LGPLv3 which can't be re-licensed as LGPLv2. Now there is a newer MySQL SDBC driver which is Apache2 licensed. Where can we find the code MaraDB based their work on?
3. Although not distributed in the packages there are GPL licensed test cases in the bzr source. Can you globally call it LGPL with these in there?
I do hope answers to these can be put to rest so that customers can continue to be happy using the alternative connector.