Mark: I'm of the opinion that the FAQ entry _does_not_ agree with Cameron's post.Just to be clear, I wasn't trying to make a definitive statement on the fine points of the license, since IANAL, etc. I do believe in respecting software licenses, and I strongly suggest that people should respect the license terms. I have some questions about the MySQL stance on the subject, though.Mark: The JDBC driver itself is GPL'd. If you link it into your software, then you most likely fall under the ..There are two issues. The first is "linking". My understanding, limited at best, is that linking to MySQL APIs would require the MySQL commercial license (or shipping the product that is linked to MySQL as GPL, based on the terms of the GPL.) However, if an application is linked to JDBC (which is the norm)
IANAL, however the FSF (not MySQL) does take a stand on this.
and thus makes NO USE of MySQL APIs, and does not somehow even manage to munge the MySQL code into the same application binary (or binaries), then one would have to conclude that it is not linked, correct?
The issue is not linking, but whether you've created a 'derivative work'. It is up to a court to decide what a 'derivate work' is, not MySQL and not the FSF.
MySQL provides a driver that implements the JDBC API, and thus applications can use the JDBC API to access MySQL, and the JDBC API is not GPL and has no such GPLish requirements for its use, correct?
If that argument holds water, then if/when Coherence supports JSR-107 will people be able to use it without honoring your license agreement as long as they only use functionality specified in JSR-107, as it is an API?
Commercial JDBC drivers also have license terms that restrict how you use and/or distribute the drivers, even though they implement JDBC as well. There's nothing from a legal standpoint that I know of that states that an open API overrides the copyright or licensing of an implementation of that API.
The second has to do with distribution. My understanding is that one may freely distribute GPL code, as long as the GPL license is included and changes to the sources (if any) are made available. Again, IANAL but I did once stay at a Holiday Inn Express, and I have also read the GPL a few times. Since (according to the explanations in the GPL license) putting GPL products on the same medium as non-GPL products does not imply that the non-GPL products must be GPL'd, it should be possible to ship a commercial software product with a non-GPL license that also has various GPL software on the same medium, including MySQL and its JDBC driver.
True, as long as the commercial product is not a derivative work of any of the GPLd components. Once again, the acid test is 'Is your application a derivative work of any GPL components', not whether it is distributed side-by-side with them.
The grey area is when an application is built to use JDBC, and it is perfectly capable of using any database like MySQL or Oracle (as another example of a database) and the author wishes to distribute the application under a commercial license, and also to distribute the GPL MySQL database and GPL MySQL JDBC driver, with the intent that the application could make use of the MySQL database+driver. It's grey because the application is not explicitly linked to MySQL, and (as mentioned) it's perfectly legit to distribute GPL products, yet MySQL AB (apologies about the earlier "Inc." thing) has clearly stated that they expect to be compensated for this type of use.
The grey area happens because there is no consistent legal definition of 'derivative work' that applies in all courts/jurisdictions/countries,etc. You will need to ask a judge for clarification.
We acknoledge that this a grey area, which is why we provide guidelines for what we believe are 'derivative works' of MySQL.
If you don't agree with those guidelines, then you should probably ask your lawyer for their interpretation.
On the other hand, we also make available a commercial license, which reduces any of the grey areas surrounding 'derivative works', and under that license we can offer things such as indeminty, warranty, etc.
Of course, _all_ contracts have grey areas, but our commercial license is a pretty standard software license agreement that would be similar to anything you've seen when licensing other commercial software components.
So, I guess what I'm wondering is how that grey area is made black and white. Does the "intent" that the MySQL code could be used constitute "linking"? Or is this legit if it doesn't violate the letter of the GPL?I look forward to your answers .. I've been pondering this particular question for a long time
The short answer is that the grey area surrounding the GPL in this case is left up to a judge to decide, as well as how comfortable you or your company is operating under this 'grey area' if you fall under it.
With the recent exceptions we added to allow other products that fall under open source licenses that are traditionally not compatible with the GPL, it basically comes down to 'is your product open source, or not?'
Our intent with the GPL/Commercial licensing of MySQL revolves around 'contribution'. That is if your product/project is open/free (as in speech, not beer) software, then you should be able to use MySQL with your open/free software, as you are contributing to the open/free software ecosystem.
However, if your project is closed-source and/or commercial, then you are not contributing to the open/free software world, and we ask for financial contribution. We value both forms of contribution, as they both lead to a better product.
If you have further questions/comments about our licensing, we are in the process of an open license review, please contact zak at mysql dot com for more details on how to participate. We sincerely want to make our intent clear through our licensing, and not alienate open source products or commercial customers so any and all feedback is appreciated.
....Also, the MySQL JDBC driver used to be non-GPL, correct? Or was that a different MySQL JDBC driver? (I believe that there are multiple.)
The current MySQL JDBC driver is based on MM.MySQL, which _was_ LPGL, but which I was the sole rights holder. MySQL is now the rights holder to the JDBC driver, and licenses it both commercially and under the GPL, which is in line with the licensing of our other client libraries.
In any case, _anyone_ can re-release a LGPLd library as GPL (see the license text of the LPGL for more information).
There used to be other projects that were JDBC drivers for MySQL, but they haven't been under active development for over 2 years or so.