Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I need to release my application if I include MySQL Connector/J (GPL) as part of my package?

Tags:

mysql

jdbc

I am using MySQL Connector/J (GPL licence) and bundle the jar as part of my distribution.

So should I need to release my application under GPL also?

like image 797
Howard Avatar asked Jul 12 '10 15:07

Howard


People also ask

Is MySQL Connector necessary?

This is necessary because each make of database server has its own specific protocol for transporting requests to, and results from, the server to application programs.

What is MySQL Connector J used for?

MySQL provides connectivity for client applications developed in the Java programming language with MySQL Connector/J. Connector/J implements the Java Database Connectivity (JDBC) API, as well as a number of value-adding extensions of it. It also supports the new X DevAPI.

Where is MySQL Connector J installed?

jar file at C:\Program Files\MySQL\MySQL Connector J\mysql-connector-java-5.1.

Is MySQL Connector Java open source?

MySQL Connector/J is free for usage under the terms of the specified licensing and it runs on any operating system that is able to run a Java Virtual Machine.


2 Answers

This has always a matter of some controversy and much confusion. This has not helped by the attitude of MySQL AB, who would typically advise you to purchase a commercial license whatever you were doing (exempting you from the requirements of the GPL), rather than explaining their intrepretation of which circumstances it is where the GPL allows you to operate without one. (Well, they're unlikely to want to spend much time arguing themselves out of a sale, I suppose.)

The crunch point as I understand it is that while the GPL is well-defined and widely-understood in the scenario of ‘linking’ in the traditional C model (eg), it is less-so for interpreted languages like Java where communication and choice between components is a fluid, run-time matter. Could one argue that dropping a .jar into your distribution folder is “mere aggregation” on a medium, as opposed to a “collective work”, under the terms of GPLv2 section 2?

hnnnnmm... well, maybe. Fancy making that argument in court? Doubtful.

Disregarding the issue of interpreting the letter of the GPL (as I Am Not A Lawyer), the spirit of the GPL's intent could be summed up with the question: Is Connector/J a dependency you're including in your package, or is it a separate component that an end-user may choose to install and then connect to your package themselves?

If you don't want to license your package as GPL, or pony up for a commercial licence to support MySQL, then make sure the latter really is the case: don't bundle MySQL or the Connector with your package any more tightly than simply having separate installers on the same disc. Don't make an installer that runs both.

Best: ensure your software can operate with multiple different database backends, allowing the user to choose which they'll be using it with. This is a Good Thing to do anyway; database-specific code sucks. Plus, if you do want to provide a one-click installer that includes the database and sets them up together, you can always use one with a license that permits it, such as PostgreSQL or SQLite.

[I am assuming here you're talking about a commercial package rather than an open-source program that you merely want to make available under a different licence than GPL. In that case see the EXCEPTIONS-CONNECTOR-J file for licences you're also allowed to use as FOSS exceptions.]

like image 178
bobince Avatar answered Oct 17 '22 02:10

bobince


Yes, you had to.

But not because you are shiping mysql-connector with you application, but because you are linking against it. (If you really do)

For explanations and solution see this note link text

like image 31
pnemec Avatar answered Oct 17 '22 02:10

pnemec