Lately we have been getting feedback from users of our open source product, MantaRay, saying that our open-source license is not very business friendly. Our product is a serverless messaging middleware, in other words MantaRay is a JMS provider. Applications import our manta.jar and work with it as if they had a messaging server (broker) while actually they are working purely peer-2-peer. All the logic that was in the server is distributed and embedded in the edge applications.

MantaRay is released under the General Public License (GPL). GPL is contagious, meaning that if you embed a GPL library in your code you must release your own code under the GPL license as well. The situation is different when your code is decoupled from the GPL code; if your application is decoupled from the GPL code then you do not have this constraint. Take sugarCRM for example, it utilizes a GPL Database called MySQL but is released under the Mozilla Public License. It is up to the user that uses sugarCRM to install and configure the MySQL DB.

Some of our users are saying that GPL libraries are not really useable because of this viral nature of GPL, they suggest that we release MantaRay under the LGPL license which is a more business friendly license for Java libraries. On the other hand GPL is by far the most popular open-source license. Moreover, an interesting article by one of the people in the Free Software Foundation suggests that “Proprietary software developers have the advantage of money; free software developers need to make advantages for each other. Using the ordinary GPL for a library gives free software developers an advantage over proprietary developers: a library that they can use, while proprietary developers cannot use it.”, I guess this is not a clear-cut decision.

Should Open source Java libraries be released under the GPL license?