views:

36

answers:

1

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?

A: 

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.]

bobince