Jörn has posted 4 posts at DZone. View Full User Profile

Why GPL? Or How the GPL Eats the Kittens it Protects

09.03.2008
| 10059 views |
  • submit to reddit

The GNU Public License is the best known for its viral aspects. Among the prominent GPL licensed software is of course the Linux core and MySQL. Recent newcomers include the JavaScript framework ExtJS and the application server SpringSource Application Platform. The primary motivation for choosing a viral license like the GPL for people or companys behind the product is to protect their business.

In the case of SpringSource the competitors are now IBM and Oracle (who recently bought BEA). IBM is well known for buildining their own products upon open-source software. If SpringSource would release their Application Platform under the Apache License, like the Spring Framework, there would be nothing to stop IBM from selling a new product that builds upon the Application Platform, without contributing back to the project, be it code or money.

In the case of ExtJS, choosing the GPL license was a vital move for Jack Slocum to protect his works against blatant copies. Again, the motivation was to protect Jack's own business, which should be also in the interest of anyone using ExtJS.

The ugly thing with the GPL are the side-effects, as any strong medicine provides. As a license, the license text must be robust enough to withstand in court. As such, involvement of lawyers is inevitable. Therefore, understanding the license text is, to say the least, difficult. Considering the most common answer of lawyers - it depends! - its not trivial for lawyers either. Eventually a judge has to decide how a certain phrase has to be interpreted, which explains that the GPL is now at version three.

The negative side-effect here is that it's nearly impossible to clearly tell when you are allowed to use GPL licensed software without GPL licensing the software using it. A few examples:

  • Is everyone running a LAMP stack without a commercial license for MySQL breaking the GPL license?
  • What means "using" GPL licensed JavaScript, and when is it more then just using? Is including ExtJS code via script tags in my web application enough to require the application to be GPL licensed? Or writing code that uses GPL code? Or code that loads my script that uses GPL code?
  • What does "distribution" mean in the context of a web application? Is it relevant? Not?

I've met Mike Wiesner of Spring Source yesterday at the Java User Group Cologne event and talked with him about the motivation behind GPL licensing their Application Platform and about using GPL licensed software like MySQL. According to him, MySQL AB, the company behind MySQL, argues that its okay to use MySQL, including the MySQL-JDBC-Driver, in a non-GPL application, as long as the application doesn't use anything specific to MySQL. In other words, as long as you just use the JDBC API for reading and writing data, without anything specific like the LIMIT statement, you're fine. The issue with that: No court has yet decided that this interpretation is correct. While the risk of just using it, like anyone else, is low, it's far from being a desirable situtation.

In the case of the Application Platform Mike argued that just using it as the application server for your application is fine. If you create a product that builds upon it, you need to commercial license to be able to distribut it as part of your product. On the other hand, you can distribute your product without the platform, and let your customer install it himself. Of course that again is just an interpretation that you shouldn't rely on.

I hope this gives a good idea of the more obvious issues with GPL licensed software.

Next up: How to deal with the copyright of external contributions to open-source software.

From bassistance.de

Published at DZone with permission of its author, Jörn Zaefferer.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Guido Amabili replied on Wed, 2008/09/03 - 9:07am

Maybe this can help:

http://www.softwarefreedom.org/resources/2008/compliance-guide.html

guidolx

 

Dean Del Ponte replied on Wed, 2008/09/03 - 1:24pm

[quote]Is everyone running a LAMP stack without a commercial license for MySQL breaking the GPL license?[/quote]

No 

[quote]What means "using" GPL licensed JavaScript, and when is it more then just using? Is including ExtJS code via script tags in my web application enough to require the application to be GPL licensed? Or writing code that uses GPL code? Or code that loads my script that uses GPL code?[/quote]

You can use as much GPL'd code in your web application as you wish.  If you sell your web application to other entities (meaning they get a copy of the code to do what they want with it) then that's considered distribution and your code is now GPL'd. 

[quote]What does "distribution" mean in the context of a web application? Is it relevant? Not?[/quote]

Web applications are not distributed and you do not need to share your code.

 

Mike Noyb replied on Thu, 2008/09/04 - 3:25am

Seems to me you're leaving out the elephant in the room: Sun's use of GPL for Java, and of GPL-incompatible licenses for Solaris, choices made by Sun to appear open, while at the same time subverting what open source actually stands for.

Dean Del Ponte replied on Thu, 2008/09/04 - 10:27pm

What's wrong with Java being GPL'd with the class path exception?  No problems there.  It's a welcome addition to the open source community.

Asgeir S Nilsen replied on Fri, 2008/09/05 - 2:27am

Have you read the GPL FAQ?  It answers many questions on under what conditions you can use GPL-licensed software alongside proprietary software, and what is considered distribution under its terms.

Jeroen Wenting replied on Fri, 2008/09/05 - 2:51am

the FAQ is not the license. What it says will not be considered when and if someone decides to take you to court for not releasing your product under GPL when it uses, deep down, some library that uses another library that was released under GPL and was pulled into your system by Maven without you realising it.

That's why one should always be extremely cautious and avoid any GPL libraries or other products like the plague when deciding what to base one's own products on.

The classpath extension helps a bit but still leaves big questions.
If I create a new class that calls functionality in a GPL licensed class, it's covered by the classpath extension. But what if I extend that class to add functionality to it? It may still be covered, as long as the extension is based on the binary version of the original. If however it's based on the source it's not covered.
Proving one or the other can be extremely difficult, especially explaining it in such a way that the non-technical people making the decisions in a courtroom (judges and if the court has them jurors) can understand the reasoning.

That's why no GPL licensed libraries will ever appear in products I create, classpath extension or not. I won't download the "openJDK", only the Sun licensed versions which aren't restricted by the GPL in such a way that someone could get me to hand over my life's work to them.
If at some stage the "openJDK" were the only one available I'd freeze my efforts at earlier versions while looking for an alternate development environment.

Asgeir S Nilsen replied on Fri, 2008/09/05 - 3:06am in response to: Jeroen Wenting

I find this "that won't help if they take you to court" argument to be rather useless.  This underlying threat exists no matter what license terms some software is available under.  The copyright holder always has the final say on what the terms are.  

It is true that the GPL license terms might not have been tested in a court, but that is true for many of the licenses that are used.

To say that you are safe from litigation because you don't use the GPL is simply not true.

As for Maven pulling some third party dependency you were not aware of, the project-info-reports plugin has a licensing report that indicates the license for all dependencies, whether direct or transitive. 

Jose Maria Arranz replied on Fri, 2008/09/05 - 4:15am in response to: Dean Del Ponte

[quote]

[quote]What does "distribution" mean in the context of a web application? Is it relevant? Not?[/quote]

Web applications are not distributed and you do not need to share your code. [/quote]

 

I agree, this is the reason AGPL v3 (Affero GNU Public License) was invented for. AGPL is the GPL for web (network based) applications.

Mike Noyb replied on Sun, 2008/09/07 - 10:43am

What's wrong with Java being GPL'd with the class path exception?  No problems there.  It's a welcome addition to the open source community.

What is wrong is that GPL+Classpath is not enough for many commercial users.  You can infer that from the fact that the current commercial users still have their non-GPL licenses.

What is also wrong is that contributors must assign rights to their contributions to Sun so that Sun can then exploit those rights commercially,  and that the current dual licensing scheme makes forking Java impractical.  Of course, that's the point, but it means that, although Java is available under an open source license (which is better than nothing), it's not run as an open source project.

Sun should pick a single license that everybody is bound to, including themselves.  If GPL+Classpath works, that's fine.  But there should be no separate commercial license.  As long as there is a separate commercial license, that tells you that the GPL+Classpath license variant not sufficient for people to have software freedom.

Jeroen Wenting replied on Tue, 2008/09/23 - 5:53am

the GPL actually gives users of Java (and especially those creating software to run on the Java platform) LESS freedom than the commercial license.

The only ones who benefit (in theory) are those who want to fork Java to create their own variant, something Sun wisely made as hard as possible to avoid (or at least delay) fracturing of the platform.

Dean Del Ponte replied on Tue, 2008/09/23 - 6:56pm in response to: Jeroen Wenting

[quote]The only ones who benefit (in theory) are those who want to fork Java[quote]

Or those who wish to modify or redistribute the code.  The GPL ensures these rights are passed on to all users of the code... not just the developers or business entities.  Is that more free?  It's a matter of perspective.  It's more free to the user... less free to the developer/business.

Mike Noyb replied on Sun, 2008/09/28 - 1:41pm in response to: Jeroen Wenting

want to fork Java to create their own variant, something Sun wisely made as hard as possible

Thank you for admitting that Sun made forking hard; that is why Java is open source in name only.  True open source projects should not have legal or license obstacles to forking.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.