views:

573

answers:

1

I am evaluating the prospect of developing a commercial java web application using Hibernate as the ORM framework. This application would be installed on a customer's server and would be used by a small number of users. Also I do not want to release my source code since the application is mission critical and it would potentially jeopardize the security of the application.

I'd design the application so if the customer has a enterprise database license already I'd configure Hibernate to use that database. Otherwise, ideally I'd like to provide/recommend a database for them. Based on my current expertise I'd prefer to use MySQL which is dual licensed commercially and under the GPL.

Aside from the Hibernate dialect settings I do not plan to have any MySQL specific code or SQL in my application. Based on information on MySQL's website and many of the conflicting posts I've read online, it would appear that if I want to distribute the application in this manner I would need to purchase a commercial license from MySQL. The cost of a commercial license ($600+ a year from what I understand) would make the software too expensive. I feel that there must be other commercial web applications that allow similar functionality and are not bundled with a database.

That brings me to these two questions:

1.) Are there any known circumstances where you can use MySQL Community Edition with a commercial closed source application without paying a license fee? If so do you know of any commercial applications or companies that legally do this?

2.) Ideally I'd like to use the MySQL connector J driver which I believe is also dual licensed. If I do not bundle this jar in my code and instead instruct the user to download the connector and download and install MySQL Server directly from MySQL's website is this permissible under the GPL?

There are a couple helpful posts already on Stack Overflow (such as http://stackoverflow.com/questions/620696/mysql-licensing-and-gpl) but I am looking for a more specific answer for my case. I realize most of us are not lawyers but any guidance would be helpful so I can get past the legal issues and get started on the actual coding! Thanks.

+2  A: 

Do not make business decisions based on legal advice you get on the internet -- including mine.

My understanding is that if you tell your customer that they are responsible for downloading and installing MySQL and the JDBC connector, you can get around the GPL license terms.

If you distribute GPL software with your application, your software implicitly uses that license too. You would be obligated to allow your customer access to your source code. including the rights to modify it and distribute it themselves.

You could choose as your default RDBMS another popular open-source RDBMS with a more permissive license, such as:

  • PostgreSQL (BSD license)
  • SQLite (public domain)
  • Firebird (InterBase Public License, based on the Mozilla Public License)


Re your question in comment: Confluence is actually not open source, it's a commercial product. They do make source available to commercial license holders, but this doesn't qualify as open-source per the OSI definition.

Confluence uses JDBC, a non-RDBMS-specific API defined by Sun Microsystems. Confluence distributes with a lightweight Java database called HSQL or HypersonicHSQL, which uses a license like the New BSD License. If the customer wants to use Confluence with MySQL he has to install it himself.

See http://confluence.atlassian.com/display/DOC/Database+Setup+For+MySQL where the setup documentation tells you to go download and install MySQL and MySQL Connector/J.

The key to why this works for a non-open-source product like Confluence is that their product doesn't necessarily need to use MySQL, it can use a different JDBC driver (and in fact does so, by default). Since there's no dependency on using MySQL specifically, Confluence doesn't need to comply with the terms of GPL.

If you have other questions about GPL, the GPL FAQ is probably the best place for you to start, instead of StackOverflow. See http://www.gnu.org/licenses/gpl-faq.html

Bill Karwin
@Bill Karwin - Do you know of any commercial applications which take that approach? Legal advice is expensive and i'd like to find as many precedents as possible. The only apps I know of are Bugzilla and Confluence both of which are open source.
blak3r
+1. I agree completely. You simply cannot redistribute MySQL yourself. Many companies solve this by doing the install for their clients, so they charge for the service (act) of downloading and installing MySQL instead of the mysql itself. However, if you are really going from the basis, I suggest you look into Firebird or Postgres (I find SQLite too "lite" and limited)
Milan Babuškov