Java Forum / Databases / May 2004
MySQL JDBC driver - implications for non-GPLed apps
Alex Molochnikov - 12 May 2004 07:50 GMT I cannot get an answer to a seemingly simple question: what happens to a closed-sourced application that makes use of the GPLed MySQL JDBC driver?
Here I am talking about using the driver "as is", without altering it in any way.
The application in question is our Report Generator that currently supports 5 databases; none of their JDBC drivers requiring it to become an open-soruced code. So, it seems inconceivable to me that adding support for another database by using its driver makes the entire application a "derived work" of the database #6. And yet, this is what the GPL clause seems to imply.
Can anyone clarify this to me? And while I am at it, what about distributing ("aggregating") MySQL driver with the commercial apps instead of instructing the users to download the driver separately from MySQL website and then copy it into the proper location in the classpath?
We are at a crossroads on this issue; if adding support to MySQL means that we have to change the status of our entire project, then I guess we will just have to do without MySQL.
Thanks for any info.
Alex Molochnikov Gestalt Corporation www.gestalt.com
Lutz Horn - 12 May 2004 08:06 GMT Hi,
> So, it seems inconceivable to me that adding support for > another database by using its driver makes the entire application a "derived [quoted text clipped - 5 lines] > the users to download the driver separately from MySQL website and then copy > it into the proper location in the classpath? Take a look into the GPL FAQ[1], especially the question "I'd like to incorporate GPL-covered software in my proprietary system. Can I do this?"[2]
Lutz
[1] http://www.gnu.org/licenses/gpl-faq.html [2] http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem
Alex Molochnikov - 12 May 2004 08:32 GMT Hello Lutz,
Thank you for the speedy answer. Unfortunately, the section in the FAQ that you pointed me to (2) is vauge on exactly what constitutes the separation of GPLed and non-GPLed parts.
For example, at some point the client app must make a call to java.sql.DriverManager to instantiate the driver, and identify the driver by its name. Is this an "arms-length" communication, or tight coupling?
I can give you an example of how another GPLed database handles this situation, namely McKoi SQL. According to their interpretation of the GPL as applied to the issue of JDBC driver, the client application that hardcodes the driver name as a string literal comes under the GPL. However, if the same client application loads the driver name from an external source (a file) and can show that it is capable of working with other databases, so that the end users have freedom to edit the file and thus switch to another driver, then there is no dependency on McKoi, and the client remains outside of the GPL. Distributing the database binary code (server + JDBC driver) in this case is called an "aggregation" and does not bring the commercial app under GPL.
It is somewhat convoluted, but at least they provided a detailed explanation of the terms of use and distribution of their product.
I have not found anything similar (in the sense of clarity of explanation) on MySQL website.
Regards,
Alex.
> Hi, > [quoted text clipped - 16 lines] > [1] http://www.gnu.org/licenses/gpl-faq.html > [2] http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem Axel Hallez - 12 May 2004 09:24 GMT If the reasoning of McKoi is valid, then it should be valid for MySQL too. Anyway if you change your app to support the use of the MySQL JDBC driver, but don't include the driver in your distribution, there is no problem.
Axel Hallez
> Hello Lutz, > [quoted text clipped - 60 lines] >>[1] http://www.gnu.org/licenses/gpl-faq.html >>[2] http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem Alex Molochnikov - 12 May 2004 16:08 GMT > If the reasoning of McKoi is valid, then it should be valid for MySQL > too. I do not know if the reasoning provided by McKoi's developers is applicable to MySQL. This depends on the interpretation of the GPL by a particular title-holder, and MySQL does not provide any clarification.
> Anyway if you change your app to support the use of the MySQL JDBC > driver, but don't include the driver in your distribution, there is no > problem. Yes, there is. The problem is that the users of the closed-sourced app will have to:
1. be instructed on how the JDBC driver can be obtained (downloading, unpacking etc.), 2. told where it should be placed so that the app can have access to it.
Additionally, the app developers will have to make sure that it is compatible with future versions of the driver, as the new release can come at any time, without the developers being aware of it, or having sufficient time to test it. Being able to distribute the driver allows the developers to "freeze" it in time, and thus avoid unwanted surprises, pretty much like bundlig the JRE ensures that the application will run in a tested environment.
Alex.
Carlo Pellegrini - 12 May 2004 09:26 GMT > I cannot get an answer to a seemingly simple question: what happens to a
> closed-sourced application that makes use of the GPLed MySQL JDBC driver? You can't release a closed-sourced application that uses a GPLed library.
But you can revert to the 2.0 version of the driver, which is covered by the LGPL license, that allows linking to a closed-source application.
CarloP.
Alex Molochnikov - 12 May 2004 15:54 GMT > You can't release a closed-sourced application that uses a GPLed library. The point of the matter is that JDBC driver is not linked to the calling app. It is loaded dynamically by the DriverManager following the request from the app; the request is made in the form of a driver name passed as a String to the manager. There is nothing in the calling app that is dependent on a particular JDBC driver, including import statements.
One could argue that hardcoding the driver name in the closed-sourced app constitutes "linking", but this can be (and is) easily overcome by placing the name in a separate ASCII file that can be edited by the users.
> But you can revert to the 2.0 version of the driver, which is covered by the > LGPL license, that allows linking to a closed-source application. I am aware of this. Whether it is feasible depends on the level of SQL functionality supported by this version of the driver, which I haven't explored yet. In any case, the LGPL aspect is important only to those apps that have built-in dependencies on the library, which is not the case with JDBC drivers.
Alex.
Paul Schmidt - 12 May 2004 15:51 GMT > I cannot get an answer to a seemingly simple question: what happens to a > closed-sourced application that makes use of the GPLed MySQL JDBC driver? [quoted text clipped - 13 lines] > the users to download the driver separately from MySQL website and then copy > it into the proper location in the classpath? You want to stay as far away from the driver as possible, without eliminating the possibility. You have no control over what database and driver a particular user wants to implement. Two things to keep in mind:
When in doubt on a legal matter, seek legal advice, if you have a IP lawyer available, send him a copy of the GPL, and ask for his professional opinion on how this applies. You don't call a carpenter to fix your plumbing, you call a plumber.
Contact MySQL and see if you can licence the database and driver without using the GPL version. One of the nice things about the GPL is that it allows the original vendor to also licence the software in other ways. However then you look at it, is the value of the driver and database worth the licencing cost. The higher the cost, the more likely they are to seek retribution if you use a GPL version in a unusual way,
Paul
> We are at a crossroads on this issue; if adding support to MySQL means that > we have to change the status of our entire project, then I guess we will [quoted text clipped - 5 lines] > Gestalt Corporation > www.gestalt.com Alex Molochnikov - 12 May 2004 16:30 GMT > You want to stay as far away from the driver as possible, without > eliminating the possibility. You have no control over what database and > driver a particular user wants to implement. Actually, I do. The users can only work with the databases supported by the report generator. The JDBC drivers for most of them (with the exception of Miscrosoft's SQL Server 2000 driver) can be (and are) distributed with the application.
> When in doubt on a legal matter, seek legal advice, if you have a IP > lawyer available, send him a copy of the GPL, and ask for his > professional opinion on how this applies. You don't call a carpenter to > fix your plumbing, you call a plumber. A costly option. Not economically feasible for providing support to a free third-party software when the industry heavyweights (Oracle, Sybase and, to a limited degree, Microsoft) make it easy and simple - and most importantly, care to provide a clear-cut explanation as part of their license agreement.
> Contact MySQL and see if you can licence the database and driver without > using the GPL version. I did. They chose not to respond.
> One of the nice things about the GPL is that it > allows the original vendor to also licence the software in other ways. > However then you look at it, is the value of the driver and database > worth the licencing cost. The higher the cost, the more likely they are > to seek retribution if you use a GPL version in a unusual way, No, it is not worth the cost. Most database vendors realize that third-party tools that work with their databases promote their products and try to facilitate the market penetration by removing (or at least lowering) barriers for the developers. This includes not only the JDBC drivers, but the databases in their entirety - Oracle, Sybase, Mimer and partially Microsoft provide free developer licenses for their products. McKoi is free altogether.
Simply put, the onus is on the database vendors to attract third-party developers, which are not the end users of the database. I am getting an impression that MySQL does not share this attitude with the rest of the industry.
Alex.
Mark Matthews - 12 May 2004 19:43 GMT >> You want to stay as far away from the driver as possible, without >> eliminating the possibility. You have no control over what database and [quoted text clipped - 9 lines] >> professional opinion on how this applies. You don't call a carpenter to >> fix your plumbing, you call a plumber. That is the best advice one can be given about the GPL and how it applies to a given situation. MySQL AB does not purport to be our customers' lawyer.... If you're unsure about the GPL and how it applies to your situation, you will be better served by talking with an attorney rather than appealing to usenet for legal advice ;)
You will find that other vendors will not give you a legal opinion on their license either. In any case such as this, it is best to consult an IP attorney, as _all_ licenses whether open source or not have provisions that you might not be aware of, or legally comfortable with.
> A costly option. Not economically feasible for providing support to a free > third-party software when the industry heavyweights (Oracle, Sybase and, to > a limited degree, Microsoft) make it easy and simple - and most importantly, > care to provide a clear-cut explanation as part of their license agreement. I certainly hope you have had someone with a legal mind look at those license agreements for the other vendors' drivers as well, there are terms in their stock agreements that can be pretty onerous.
>> Contact MySQL and see if you can licence the database and driver without >> using the GPL version. > > I did. They chose not to respond. Alex, you responded to my e-mail response to your usenet posting 4 days ago, with a holiday weekend in between...It does take some time to get this stuff in the right people's hands.
If you don't hear back from our sales team soon, please let me know, as they have your information, and I want to make sure you get an answer.
>> One of the nice things about the GPL is that it >> allows the original vendor to also licence the software in other ways. [quoted text clipped - 14 lines] > impression that MySQL does not share this attitude with the rest of the > industry. That's not true, we'd like to continue to see a large ecosystem surrounding MySQL (there already is quite a large ecosystem surrounding MySQL, both open source and commercial).
We're working out how to best do ISV licensing, and our sales team will work with you, we just don't currently have a published policy as we work out what terms for ISVs should be.
Regards,
-Mark
 Signature Mr. Mark Matthews MySQL AB, Software Development Manager, J2EE and Windows Platforms Office: +1 708 332 0507 www.mysql.com
MySQL Guide to Lower TCO http://www.mysql.com/it-resources/white-papers/tco.php
Alex Molochnikov - 12 May 2004 20:28 GMT > Alex, you responded to my e-mail response to your usenet posting 4 days > ago, with a holiday weekend in between...It does take some time to get > this stuff in the right people's hands. > > If you don't hear back from our sales team soon, please let me know, as > they have your information, and I want to make sure you get an answer. Mark,
I will respond to your post in a private e-mail. I did not know there were holidays in your locality, and assumed that there was merely not enough interest on your part to keep the communication channel open.
Regards,
Alex.
Paul Schmidt - 13 May 2004 15:44 GMT >>You want to stay as far away from the driver as possible, without >>eliminating the possibility. You have no control over what database and [quoted text clipped - 38 lines] > impression that MySQL does not share this attitude with the rest of the > industry. There is your answer, it's too costly to do it right, so you should probably not do it. If you want to support a good, but still free database, try Firebird (www.firebirdsql.org), it's covered by a more open licence, is more in league with Oracle, Sybase and Microsoft product lines. There is a JDBC driver, which I am in the process of testing right now, and there is good user community support. It's based on Interbase 6, and there is good documentation for that.
Paul
Alex Molochnikov - 13 May 2004 19:19 GMT > There is your answer, it's too costly to do it right, so you should > probably not do it. If you want to support a good, but still free [quoted text clipped - 3 lines] > testing right now, and there is good user community support. It's based > on Interbase 6, and there is good documentation for that. The only reason I looked at MySQL is because someone else suggested that he might be interested in testing of Report Generator if it supported MySQL. So, I checked their website and tried to figure out their terms of use - with no success so far. However, I expect them to contact me shortly, perhaps I will get the answers I seek.
Anyways, I agree with you; if we cannot support MySQL without coming under GPL, then we certainly won't. We've been asked about support for Firebird before, so this is a possibility.
Regards,
Alex.
Paul Schmidt - 14 May 2004 16:42 GMT >>There is your answer, it's too costly to do it right, so you should >>probably not do it. If you want to support a good, but still free [quoted text clipped - 13 lines] > GPL, then we certainly won't. We've been asked about support for Firebird > before, so this is a possibility. If you need any beta testing done in a Linux with Firebird and Java environment, let me know....
Paul
Alex Molochnikov - 14 May 2004 20:57 GMT > If you need any beta testing done in a Linux with Firebird and Java > environment, let me know.... The only version of Linux that we currently support is Red Hat v9. Will that be OK?
Alex.
Chris Smith - 13 May 2004 20:14 GMT > I cannot get an answer to a seemingly simple question: what happens to a > closed-sourced application that makes use of the GPLed MySQL JDBC driver? Alex,
Be very careful here! It's safest to just avoid deploying with MySQL at all. There are a few questions you might be asking:
1. You could be asking what you're legally allowed to do. That's a question for a lawyer, and anyone who gives you advice without being a licensed lawyer is being deceptive, and possibly illegal depending on their place of residence.
2. You could be asking what typical interpretations of the GPL allow you to do. You are allowed to write software that does not include the GPLed library when it is compiled. This means that it's entirely legitimate to interact with MySQL JDBC drivers via the JDBC interface. So long as the compiler does not interact with MySQL JDBC driver code when you compile (and so you could remove the MySQL driver from your system without changing the action of the compiler at all), you are allowed to distribute your own code without any restrictions from the GPL license on the driver.
(As a qualification to #2, obviously examining and copying portions of the MySQL driver violates their copyright, and is not allowed.)
3. You could be asking what the MySQL governing organization interprets the GPL to say. Their interpretation is IMHO ludicrously stretching the intent of the GPL license, but that doesn't prevent a court from agreeing with them.
They seem to strongly believe that you must purchase a commerical license in at least the following additional situations, which would otherwise require complying with the GPL to distribute your commercial code:
3a. You distribute MySQL (at all) with your commercial application 3b. You instruct a customer to download MySQL for a commercial app 3c. You inform a customer that your commercial app works with MySQL
Though I can't get a clear answer from them, they seem to also want you to purchase a license if you write an application that you test with MySQL even if you never mention MySQL to a customer. It's possible they think you should also pay them if you, entirely by coincidence, happen to write an application that works with MySQL... even if you aren't aware of that fact.
4. You could be asking what the FSF thinks. It's difficult to get an answer from them, but there are comments flying around that they support the MySQL governing organization's interpretation. Nevertheless, there are comments from their own web site contradicting the MySQL view. For example, case (3a) above is the very definition of "mere aggregation", which is clearly allowed between GPL and non-GPL software. The FSF web site is also clear that the GPL pertains only to distribution, not to use... but the MySQL governing organization insists that "distribution" means some things that it clearly doesn't mean, in order to get around that particular loophole.
 Signature www.designacourse.com The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Alex Molochnikov - 13 May 2004 21:26 GMT Chris,
First of all thank you for the detailed and insightful opinion. I appreciate your input.
> Be very careful here! It's safest to just avoid deploying with MySQL at > all. There are a few questions you might be asking: The application in question is a Report Generator. In other words, it is a tool that produces reports from the content of the existing database. It does not need to distribute MySQL database (any database, for this matter), since such distribution would have no use for the customers: they already have the database, filled with the data that they need to report on.
> 1. You could be asking what you're legally allowed to do. That's a > question for a lawyer, and anyone who gives you advice without being a > licensed lawyer is being deceptive, and possibly illegal depending on > their place of residence. I was asking the vendor of the product. If they cannot tell me what their own license does and does not permit, no lawyer will help.
> 2. You could be asking what typical interpretations of the GPL allow you > to do. You are allowed to write software that does not include the [quoted text clipped - 5 lines] > allowed to distribute your own code without any restrictions from the > GPL license on the driver. This is actually the case. The application is isolated from the driver by Java's JDBC layer, and calls are made against that layer. In other words, no MySQL-specific method calls, casts or imports in the code. However, there is one point that needs clarification from the vendor, as I explained elsewhere in this thread: the application must identify the JDBC driver by its name. Certainly, the mere presense of a String object with "abc" in it does not mean that the code must have the "abc.jar" somewhere in the compiler's classpath in order to compile.
So why did I ask the question in the first place? From my earlier experience with McKoi, which is another GPLed product. Same questions about the impact of GPL on the non-GPLed client calling McKoi JDBC driver were asked, and - unlike MySQL - McKoi's developers cared to explain in detail how the client could avoid coming under the GPL while still making use of McKoi. In their case, the client had to remove the driver's name from its code and place it in the editable ASCII file, so that it could be set by the users.
Perhaps, one could simply go by the standard GPL text and ask for no interpretaition from the vendor, which in the case of McKoi would mean that they are asking for something not really required by the GPL. However, I felt that it is better to try and satisfy the requirements of the vendor rather than "throw a book" at him - provided, of course, that the vendor takes care to explain in clear terms where exactly he stands.
> (As a qualification to #2, obviously examining and copying portions of > the MySQL driver violates their copyright, and is not allowed.) I assume you really mean "copying", since "examining" of the open-sourced product should not violate anything by definition.
> 3. You could be asking what the MySQL governing organization interprets > the GPL to say. Their interpretation is IMHO ludicrously stretching the [quoted text clipped - 9 lines] > 3b. You instruct a customer to download MySQL for a commercial app > 3c. You inform a customer that your commercial app works with MySQL I am not sure where these points come from. I looked at the standard GPL text (http://www.gnu.org/licenses/gpl.txt); their items 3a-c look quite different. In any case, 3a and 3b obviously do not apply. 3c would make sense if the commercial app worked _only_ with MySQL and therefore was dependent on it. But in the case of a general-purpose Report Generator, that already supports 5 databases, there is nothing that "marries" it to a particular database, MySQL or any other.
> Though I can't get a clear answer from them... So far, our experiences match.
> ...they seem to also want you > to purchase a license if you write an application that you test with > MySQL even if you never mention MySQL to a customer. It's possible they > think you should also pay them if you, entirely by coincidence, happen > to write an application that works with MySQL... even if you aren't > aware of that fact. Now, this is something that I do not see anywhere in the standard GPL text. Anyway, if this is true, then they are even farther away from the rest of the industry than I thought. The last part would be be really stretching it beyond breaking point. Consider this: MySQL provides a JDBC driver. Scribe (our Report Generator) communicates with databases through the JDBC layer. In theory, an end user can add the driver's .jar file into the app's classpath, change one of the configuration files (they are in the XML format and can be easily edited) to refer to the driver, and voila - we owe MySQL something. And if this were true, I can imagine a lineup of other database vendors, each wanting a pound of our flesh just because their products happened to be compatible with Scribe through the agency of the database-independent layer provided by Java.
> 4. You could be asking what the FSF thinks. It's difficult to get an > answer from them, but there are comments flying around that they support [quoted text clipped - 6 lines] > means some things that it clearly doesn't mean, in order to get around > that particular loophole. I think the final answer is really simple, as another poster already suggested: if the vendor makes it too problematic for other parties to support their product, then... well... so long. They are not the only game in town.
However, I am still awaiting some clarification from them, so maybe it is not all that bad.
Regards,
Alex.
Chris Smith - 14 May 2004 03:44 GMT > > (As a qualification to #2, obviously examining and copying portions of > > the MySQL driver violates their copyright, and is not allowed.) > > I assume you really mean "copying", since "examining" of the open-sourced > product should not violate anything by definition. Yes, I could have been clearer here. I did, essentially, just mean copying. The problem is that if you were to write your own code while making constant reference to theirs, there would be a good argument that you're essentially copying but making a few intentional changes to the copy. That would form a derivative work. So I'd probably be careful not to reference MySQL code at all during the exercise, to avoid creating the impression that copying occurred.
Then again, I'd probably avoid the exercise altogether, because I don't want to be sued.
> > They seem to strongly believe that you must purchase a commerical > > license in at least the following additional situations, which would [quoted text clipped - 6 lines] > > I am not sure where these points come from. They are my own organizational structure. The statements of interpretation come mainly from MySQL's web site, and a bit from conversations I've had with their representatives when I was pursuing this same question with regard to my own company's database-independent application.
For what it's worth, we decided to not advertise that the application works with MySQL, not test with MySQL, and recommend strongly against any of our customers using MySQL (though we can't, of course, reasonably prevent them from doing so)... and figure that any remaining complaints they might have are silly enough to not worry about.
Of course, this is also for business reasons, since the last time I looked their database broke a few advanced features of our application due to an incomplete implementation of the ANSI SQL92 standard. I don't recall if we still use EXISTS subqueries or not. This is supposed to change, though, with their upcoming now-alpha release.
> > ...they seem to also want you > > to purchase a license if you write an application that you test with [quoted text clipped - 6 lines] > Anyway, if this is true, then they are even farther away from the rest of > the industry than I thought. The point is, I don't know. When I gave up on communicating with them, I couldn't get anyone to agree that this *didn't* violate their license... but I believe it was unique in that they didn't say it did.
> I think the final answer is really simple, as another poster already > suggested: if the vendor makes it too problematic for other parties to > support their product, then... well... so long. They are not the only game > in town. Yes. It's a shame, though, that MySQL has gained so much, in terms of free development work *and* good name, by licensing under the GPL, and now they intend to threaten and browbeat everyone out of using the code in a way they are entitled to use it. As someone who has contributed to and led several open-source software projects, that really gets under my skin. I know I wouldn't want a bunch of greedy executives taking advantage of me like that. (Who knows? For all I know, there may be some of my code in MySQL, copied from other GPL projects in a way that would be completely fine and admirable if they intended to actually give people the rights promised by the GPL).
Just makes me upset, that's all.
 Signature www.designacourse.com The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Carl Rosenberger - 14 May 2004 10:27 GMT > Yes. It's a shame, though, that MySQL has gained so much, in terms of > free development work *and* good name, by licensing under the GPL, and [quoted text clipped - 6 lines] > would be completely fine and admirable if they intended to actually give > people the rights promised by the GPL). As far as I am informed, the MySQL people have written all the source code themselves. If this is the case, I think it's perfectly O.K. that they decide on the conditions, how they want to license their product.
On the legal side: If MySQL is supplied under the GPL, the GPL applies to the product, no matter what the MySQL executives tell you. It should be perfectly legal to fork the MySQL source code, to modify whatever you wish and to supply it as your own "YourSQL" product under the GPL.
As long as your product is built against a standard abstraction layer like JDBC, there should be no worries about the database engines that can be used underneath, as long as you don't use any functionality that is proprietary to one specific product. With all the SQL dialects around, this can be difficult since hardly any product supplies clean ANSI SQL92.
The situation can become a little paradox: You don't have to worry about supplying special SQL code in your product for commercial database engines. You do have to worry about breaking GPL rules, if you produce code that makes your product work with a specific GPL product. I wonder what this implies for non-GPL O-R mapping tools that provide functionality for MySQL.
 Signature Carl Rosenberger db4o - database for objects - http://www.db4o.com
Chris Smith - 14 May 2004 14:04 GMT > As far as I am informed, the MySQL people have written all > the source code themselves. If this is the case, I think > it's perfectly O.K. that they decide on the conditions, how > they want to license their product. Possibly so. I don't know what the situation is with authorship of their code, as I've never tried to submit a patch to MySQL. I'm having a hard time believing they'd ignore it, though. And just as hard a time believing that a prominent open-source project like MySQL has not received patches from open-source developers. More likely, they do as GNU does, asking the submitter to assign them copyright, so that they retain the legal ability to switch licensing. In that case, they have the legal right to do as they like, but they are violating the trust of the community they claim to be a part of.
> On the legal side: > If MySQL is supplied under the GPL, the GPL applies to the > product, no matter what the MySQL executives tell you. > It should be perfectly legal to fork the MySQL source code, > to modify whatever you wish and to supply it as your own > "YourSQL" product under the GPL. Sure, the universally accepted interpretation of the GPL makes it quite legal to do that... but that doesn't prevent MySQL from making people's lives hell because MySQL has more money than the average open-source developer. It's similar to buying a smart card reader: common sense tells you that of course it's legal, but that hasn't prevented DirecTV from browbeating millions of dollars in out-of-court settlements out of people who have bought smart card readers. It's a power game, and most people don't have the financial resources to play, so they are out of the game.
So, in the end, the actual GPL doesn't matter to most of us because of a company that is aggressively pursuing its abuse and twisting the GPL text to their own desires. So, in the end, we end up warning people to stay away from MySQL.
 Signature www.designacourse.com The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Chris Smith - 14 May 2004 16:20 GMT [Mark Matthews copied me by mail on this post and the article didn't seem to reach my news server. So my apologies for kludging the references headers, but I can't correct them by hand in my newsreader.]
Mark Matthews wrote:
> Just to clear something up...We don't 'lift' code from GPL products. > We require clear IP to all of the code in our products so that we can > also license it commercially, so in fact almost all of it is written > by MySQL employees. I'm certainly in no position to disagree with you. Perhaps you have a perfect process of verifying the copyright ownership of anything that comes your way. It's certainly worth giving the benefit of the doubt.
As you yourself say, though, there's nevertheless a good bit of development effort being put into supporting MySQL on the assumption that it's a GPL product. And legally, of course, it is... *if* the organization using it has the staff lawyers to prove that.
> Considering one of our company values is "Make superior database > software available to all", and given our actions (because they speak [quoted text clipped - 5 lines] > that's how you see us, I'd like to help rectify that image (feel free > to contact me personally if you want to discuss it further). I don't see how you'll rectify that image without ceasing the use of legal threats to prevent people from using code in ways that they are permitted to use it. I don't care to claim inside knowledge about the motivations behind your adoption of the GPL as a license for MySQL. From my perspective, it appears to be largely for historic and PR reasons, but I could be wrong. Nor do I care to even speculate on the wisdom of choosing this license.
Nevertheless, to continue to claim that MySQL is licensed under the GPL -- while using legal threats to prevent people from exercising the rights you claim to give them -- is downright deceptive.
> However, what we're really trying to get at with the licensing (and > still working on getting there, but it takes careful consideration), [quoted text clipped - 4 lines] > GPL)...if your application is closed source, then MySQL is closed > source. Which is, unfortunately, not what the GPL is about. The GPL is about preventing *derivative works* from being *distributed* under a closed- source license.
If you're concerned about people making a profit via the use within a company of closed-source software with MySQL or even derivative databases based on the MySQL code; or by writing software that contains no MySQL code but interacts with MySQL through standard interfaces that you did not write, or prevents a commercial entity from recommending that a customer of theirs download and install MySQL for use with a product, then someone within the MySQL AB is probably capable of writing a license that expresses this. The MySQL AB has every right to do this if, as you quite plausibly say, you have clear IP to all the code in MySQL.
But that won't happen. It won't happen because such a license would not be the GPL, and because the OSI wouldn't even consider certifying such a license as an open-source license. Instead, MySQL continues to tell everyone that the code is licensed under the GPL, and then use legal threats to ensure that no one exercises those rights when if conflicts with the profits of the MySQL AB. That's exploiting an economic advantage, pure and simple.
> That last bit is really not much different than other commercial > vendors Exactly. But my claiming that your code is licensed under the GPL, you're claiming not to be a commercial vendor. That's a lie. The issue is not whether MySQL should get money for doing work; it's whether MySQL should lie about the rights they grant to other people, and then threaten lawsuits against people who try to exercise those rights.
The result is that there is mass confusion, when we have to explain to customers why despite what they've heard about MySQL being GPL software just like Linux is, they can use Linux with our commercial product free of charge but they can't use MySQL in the same way. Basically, it comes down to "technically, your rights are the same, but Linus Torvalds isn't threatening frivolous legal action against Linux users".
> MySQL is working on an ISV/VAR option for the client libraries for > comemrcial licensees, if you have input on how you think this should > work, please let us know. I think before you could begin such a task, you'd need to decide whether MySQL is free software or not, and admit your answer to the world. If it's not free software, then charging for licenses to *use* MySQL makes a lot more sense than charging for licenses to write applications that can use it, especially since 90% or more of database applications interact through interfaces that are not specific to a given DBMS vendor, so there's just no sensible definition of when someone has written an application that might use MySQL (except, perhaps, if they've included MySQL's non-standard CREATE TABLE syntax to make foreign keys and transactions work on a table, or avoided SQL subqueries, or coded around other nuances of the software).
 Signature www.designacourse.com The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Carl Rosenberger - 14 May 2004 19:27 GMT > Possibly so. I don't know what the situation is with authorship of > their code, as I've never tried to submit a patch to MySQL. I'm having [quoted text clipped - 5 lines] > the legal right to do as they like, but they are violating the trust of > the community they claim to be a part of. I see this a little different:
The community gets back a free stable GPL version.
Developers that produce closed source themselves get a stable fast database engine at a fair price.
> Sure, the universally accepted interpretation of the GPL makes it quite > legal to do that... but that doesn't prevent MySQL from making people's [quoted text clipped - 5 lines] > people don't have the financial resources to play, so they are out of > the game. This is a problem of the U.S. legal system: If you are sued, it will cost you money, even if the other party comes up with something completely ridiculous.
Here in Germany things are slightly different: The party that looses the court case is liable for all costs and that includes the fees for all lawyers.
 Signature Carl Rosenberger db4o - database for objects - http://www.db4o.com
Chris Smith - 14 May 2004 20:50 GMT > I see this a little different: > > The community gets back a free stable GPL version. > > Developers that produce closed source themselves get a stable fast > database engine at a fair price. This hinges on the false dichotomy that there are open source developers and closed source developers, and never the twain shall meet. That's clearly not true. Though there are certainly idealogues in the world who would never touch a piece of closed-source software, there are a whole lot more practical commercial software developers who contribute to open-source projects.
That makes it far less clear that it's fair to charge for software developed under the GPL. The same people who are paying MySQL for the privilege of writing their tools are people who are likely involved in other open source software (though, according to the comments in this thread, probably not involved in developing MySQL itself).
Besides, if this is so fair and ship-shape, why use a free license deceptively, instead of writing a license to give the rights you want people to have?
> This is a problem of the U.S. legal system: > If you are sued, it will cost you money, even if the other party comes > up with something completely ridiculous. That doesn't prevent anyone from validly blaming organizations that abuse the legal system for personal profit.
 Signature www.designacourse.com The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Carl Rosenberger - 15 May 2004 10:53 GMT > Besides, if this is so fair and ship-shape, why use a free license > deceptively, instead of writing a license to give the rights you want > people to have? The GPL is one of the most popular licenses.
If you use the GPL, - developers will understand what they are allowed to do, - it is easier for potential business customers to evaluate, whether or not they need a commercial license, - there are no costs to set up your own license, - you can be halfway sure about the outcome of court cases. There are precendents and even some lawyers and judges have heard about the GPL.
In my opinion the GPL is the best choice for dual licensing.
The GPL only is a template for a license, isn't it? What is deceptive about using the license and adhering to the terms?
> > This is a problem of the U.S. legal system: > > If you are sued, it will cost you money, even if the other party comes > > up with something completely ridiculous. > > That doesn't prevent anyone from validly blaming organizations that > abuse the legal system for personal profit. "(Ab)using the legal system for personal profit", isn't that what capitalism is all about?
Developer communities have a lot more social sense for fair behaviour than the average of our society but as soon as business people take over a company, decisions tend to get profit-oriented.
 Signature Carl Rosenberger db4o - database for objects - http://www.db4o.com
Chris Smith - 16 May 2004 17:01 GMT > > Besides, if this is so fair and ship-shape, why use a free license > > deceptively, instead of writing a license to give the rights you want [quoted text clipped - 12 lines] > > In my opinion the GPL is the best choice for dual licensing. Well, it's the best choice if you want what the GPL says. But of course, that's a non-statement. Any legal text is the best choice if you want to do what that text does.
In the case of MySQL, though, it seemed clear (until Alex posted his experience) that they don't want to give people the rights that the GPL offers from a common-sense glance, and given the shared understanding of the entire open-source community. Now I'm not entirely sure. It appears that they want to give people those rights when it appears helpful to them (such as when the application's applicability to MySQL might help them sell more MySQL licenses)... but withhold some of them when it appears to them that they might lose money from it. But that's a vague hunch, and obviously not very precisely defined.
The point is, if *any* organization (and MySQL AB is the obvious example here) claims to be releasing code under the GPL and then twists things to prevent ordinary GPL use, then they aren't helping anyone understand what they are allowed to do. Instead, they are casting doubt on what people are allowed to do... not just in their own product, but in others as well. The last thing we need is to have people wonder whether they are *really* allowed to (for example) sell management appliance systems with Linux preinstalled solely to run their proprietary binary-only management applications. Clearly, that's allowed... but if we apply MySQL's interpretation of the license, then they would be obliged to contact Linux Torvalds and hundreds of other Linux-kernel authors to obtain express permission to do so and perhaps negotiate licensing fees.
That's why I'd rather see MySQL write a new license to clarify what rights they do and don't want others to have. It's far better than claiming GPL and then appealing to vague moral standards and legal threats to condemn people who do what MySQL seems to have invited them to do. Note that I have no qualms with MySQL making money, or charging for commercial use. It's the misleading claim to be GPL that I have problems with. The license they want is not the GPL, and it would not meet the OSI criteria for an open-source license. That's fine, if they'd just admit it.
> The GPL only is a template for a license, isn't it? No, it's a license. In fact, the FSF holds a copyright on the GPL, and would probably not give you permission to use a modified version of it if you asked.
> What is deceptive about using the license and adhering to the terms? Nothing, of course.
> "(Ab)using the legal system for personal profit", isn't that > what capitalism is all about? Unfortunately, more and more people seem to think so.
 Signature www.designacourse.com The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Carl Rosenberger - 17 May 2004 15:46 GMT > In the case of MySQL, though, it seemed clear (until Alex posted his > experience) that they don't want to give people the rights that the GPL > offers from a common-sense glance, and given the shared understanding of > the entire open-source community. I doubt that they can do that. GPL is GPL, no matter what anyone from MySQL says.
> The point is, if *any* organization (and MySQL AB is the obvious example > here) claims to be releasing code under the GPL and then twists things > to prevent ordinary GPL use, then they aren't helping anyone understand > what they are allowed to do. I suppose that the FAQ on the GNU site are well researched: http://www.gnu.org/licenses/gpl-faq.html
> The last thing we need is to have people wonder whether they > are *really* allowed to (for example) sell management appliance systems > with Linux preinstalled solely to run their proprietary binary-only > management applications. Clearly, that's allowed... I am not a legal expert but in my opinion there is in fact room for interpretation. http://www.gnu.org/licenses/gpl-faq.html#MereAggregation
The GPL has an exception for the operating system:
(3. first paragraph after 3a,b,c) "However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable."
A conclusion that I would draw from this clause: The operating system is not considered part of a program so there should be no worries about the GPL.
The GPL terms are not too accurate what a "derived work" is:
(2. first paragraph after 2a,b,c) "If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works."
"reasonably" is not a legal term so it's up to judges to decide, how to understand this paragraph.
I can see two completely different interpretations for "independant":
(1.) The proprietary program does most of what it's supposed to, without the GPL program or library. (2.) The propietary program provides ALL of it's functionality, if the GPL program or library is not present.
> > "(Ab)using the legal system for personal profit", isn't that > > what capitalism is all about? > > Unfortunately, more and more people seem to think so. Some people tend to think that this world is fair and friendly, while they live in a country that is at war and that does not give a damn about exploiting this planet (Kyoto boycott).
 Signature Carl Rosenberger db4o - database for objects - http://www.db4o.com
John Beardmore - 21 May 2004 20:30 GMT >"(Ab)using the legal system for personal profit", isn't that >what capitalism is all about? I thought it was about being able to sell your goods / services in an open market at the going rate.
But since when was the GPL about capitalism ? And for that matter, all though what goes around tends to come around, why should a capitalist ethos have to drive the GPL, and why must the GPL be interpreted in a capitalist light ?
I'm not a lawyer, but as far as I can see the GPL imposes a license to use agreed items of software in a particular way.
I'm not sure that it is generally seen as a template - rather as something that you release under or not.
It you want to base your own license n the GPL, that may be all well and good, but your derivative work won't be the GPL.
Cheers, J/.
 Signature John Beardmore
Mark Matthews - 14 May 2004 15:06 GMT [snip]
>> I think the final answer is really simple, as another poster already >> suggested: if the vendor makes it too problematic for other parties to [quoted text clipped - 11 lines] > would be completely fine and admirable if they intended to actually give > people the rights promised by the GPL). Chris,
Just to clear something up...We don't 'lift' code from GPL products. We require clear IP to all of the code in our products so that we can also license it commercially, so in fact almost all of it is written by MySQL employees.
I would also venture to say that MySQL AB is far from a bunch of 'greedy executives', the company is mostly full of technical people who care very passionately about open source.
Considering one of our company values is "Make superior database software available to all", and given our actions (because they speak louder than words), which include making _every_single_ product we have available under the GPL, including technology that was expensive to create and/or acquire such as MySQL Cluster, as well has having _no_ feature differences between our open source and commercial software, I find it hard to paint us with that brush. However, if that's how you see us, I'd like to help rectify that image (feel free to contact me personally if you want to discuss it further).
What we do get from the open source community is connectivity pieces to 'esoteric' languages that wouldn't be commercially viable to support, open source applications that support MySQL and a vibrant community of testers, authors and community support. We are _very_ thankful for this support from the community, which is why we do make everything we create available under an open source license.
However, what we're really trying to get at with the licensing (and still working on getting there, but it takes careful consideration), is the notion of 'quid-pro-quo'...i.e. if your application is open source, then MySQL is open source (in fact, there's a GPL license exception for MySQL software that allows you to use it with OSI-certified licenses that are historically incompatible with the GPL)...if your application is closed source, then MySQL is closed source.
That last bit is really not much different than other commercial vendors, if you take a look at Alex's issue and how he's distributing connectivity components for his report generator, you will see that in almost all of those client licenses that the end user is _eventually_ required to _purchase_ a license for the database server software to run it in anything but test environments. The connectivity doesn't come for 'free', because legally you can't use it unless you're using a license for the server that was _paid_ for, which ultimately pays for the connectivity bits as well.
MySQL is working on an ISV/VAR option for the client libraries for comemrcial licensees, if you have input on how you think this should work, please let us know.
You could also investigate using a dual license model such as MySQL's, SleepyCat's or TrollTech's, where you _could_ use MySQL under the GPL and commercial licenses when you were generating revenue with commercial sales.
-Mark
 Signature Mr. Mark Matthews MySQL AB, Software Development Manager, J2EE and Windows Platforms Office: +1 708 332 0507 www.mysql.com
MySQL Guide to Lower TCO http://www.mysql.com/it-resources/white-papers/tco.php
Alex Molochnikov - 14 May 2004 19:48 GMT Mark,
I have seen many posts in this thread, some from you. You seem to be willing to spend enough time to write about MySQL's commitment to the concepts of GPL, "superior database software" and all such. I am not questioning the sincerity of your statements, only this:
Why is it so difficult for you or anyone else from MySQL to answer simple questions regarding concrete licensing situations (see below) which would take only a few lines of text, yet possible to spend time writing e-mails, arranging phone calls (which, in my case, haven't come yet), posting in this thread etc.?
Here are the questions:
1. Can a commercial, non-GPLed application make calls on MySQL database server, using the JDBC connectivity layer, and having no built-in MySQL dependencies, without coming under GPL itself?
Note that the standard GPL text leaves no doubt as to the status of such commercial application. The question can therefore be rephrased as: is MySQL governed by this license, or does it have its own variety of GPL?
2. Can a commercial, non-GPLed application be distributed with MySQL's JDBC driver (GPLed or LGPLed) based on the "mere aggregation" clause found in the standard GPL text and reproduced on MySQL's website (http://dev.mysql.com/doc/mysql/en/GPL_license.html). If not, why not?
Anything short of answering these questions may create an impression of MySQL being intentionally evasive on this critical issue.
Also note that there are only so many tries one can attempt before drawing a conclusion that cooperation from MySQL should not be expected, and simply giving up.
Regards,
Alex.
Alex Molochnikov - 14 May 2004 22:37 GMT A quick follow-up to my previous post: I just had a telephone conversation with MySQL Senior Sales Manager. Here are the answers to my questions:
> 1. Can a commercial, non-GPLed application make calls on MySQL database > server, using the JDBC connectivity layer, and having no built-in MySQL > dependencies, without coming under GPL itself? Yes. (MySQL database itself is not distributed with the application).
> 2. Can a commercial, non-GPLed application be distributed with MySQL's JDBC > driver (GPLed or LGPLed) based on the "mere aggregation" clause found in the > standard GPL text and reproduced on MySQL's website > (http://dev.mysql.com/doc/mysql/en/GPL_license.html). If not, why not? No. Have the end-users download and install the drivers to avoid possible confusion over the distribution of MySQL.
I think it is a fair deal: we provide the end-users with a commercial app that helps stimulate the use of MySQL (and helps deepen its market penetration), and the users are responsible for all interaction with MySQL vendor, including the licensing issues.
At least, this is how I see it after talking to the Sales Manager.
Alex.
Chris Smith - 14 May 2004 23:46 GMT > > 1. Can a commercial, non-GPLed application make calls on MySQL database > > server, using the JDBC connectivity layer, and having no built-in MySQL > > dependencies, without coming under GPL itself? > > Yes. (MySQL database itself is not distributed with the application).
> > 2. Can a commercial, non-GPLed application be distributed with MySQL's JDBC > > driver (GPLed or LGPLed) based on the "mere aggregation" clause found in the [quoted text clipped - 3 lines] > No. Have the end-users download and install the drivers to avoid possible > confusion over the distribution of MySQL. This is very good news. I happen to think they got the second answer technically wrong, but the intent appears to be decent enough, and there is of course a different between what the actual license says and what legal interpretations will come out. Given MySQL's propensity toward litigation, it's probably best to play it safe anyway.
It's a shame that my prior communications with them, and the information on the licensing section of their web site, are not equally clear.
 Signature www.designacourse.com The Easiest Way to Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Alex Molochnikov - 15 May 2004 00:41 GMT > This is very good news. I happen to think they got the second answer > technically wrong, but the intent appears to be decent enough, and there > is of course a different between what the actual license says and what > legal interpretations will come out. Given MySQL's propensity toward > litigation, it's probably best to play it safe anyway. I, too, think that the concept of "mere aggregation" is quite clear in wording and intent, but frankly I do not want to spend time arguing back and forth the meaning of it with MySQL; this can take forever.
In our case, we will simply have to tell the users where to get the JDBC driver from, and where to place the file once Scribe is installed. Not as convenient as "run the installer, then launch the app", and not as safe, but most of MySQL users should be able to handle this.
> It's a shame that my prior communications with them, and the information > on the licensing section of their web site, are not equally clear. I am somewhat surprised that they did not give you the answer. Are you sure you asked the right questions? All questions that I asked are here in this thread, and in the private e-mail communications I only restated the same questions, in the same wording. My telephone conversation with the Sales Manager covered a lot more ground than my posts here, but the nature of the questions was still the same.
Anyway, it's time to get back to work, to transform the "yes" from MySQL into something tangible. :-)
Regards,
Alex.
Carl Rosenberger - 14 May 2004 19:56 GMT > I would also venture to say that MySQL AB is far from a bunch of 'greedy > executives', the company is mostly full of technical people who care > very passionately about open source. Although this may be true, there is no guarantee that the situation will stay the same forever. Your website states that you are financed with venture capital since 2001. Usually venture captial companies take at least one board seat, so they get a lot of influence on a company.
What would happen if you go through another round of venture capital and the VCs get 2 seats out of 3?
Maybe your company could make more money by sueing illegal MySQL users than with license sales? What would happen if the VCs decide to cash in before MySQL gos public?
If I understand the GPL correctly, every single non-GPL product that provides a special "MySQL-driver" (this may be just one single SQL-statement or patch that is intended for compatibility with MySQL only) and does not come with a commercial MySQL-license could be sued with a good chance to succeed.
What would happen if your company is sold? If Oracle decides to bid 1 billion tomorrow, will you decline? IBM bought Informix for a billion, and isn't MySQL a much bigger threat to Oracle's revenues? Maybe Oracle would care a lot less to offend the community? Hey, in fact that could be a good deal: Buy MySQL for a billion and cash in one billion from "pirate" users.
Please don't misinterpret my comments. GPL dual-licensing sure is an excellent business strategy and it's very fair to everyone. It may just not yet be understood by the community completely so you may loose some sympathy, if people feel cheated (which they aren't).
 Signature Carl Rosenberger db4o - database for objects - http://www.db4o.com
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|