Java Enterprise Architect, open source and Linux fan. Jacek has posted 11 posts at DZone. You can read more from them at their website. View Full User Profile

Sun is using the GPL as a weapon...but against whom and for what purpose?

  • submit to reddit

As part of my work on the Java Swing Builder project (which is released under the business-friendly Apache 2.0 license) I've run into at least two cases recently where I could not integrate with particular other useful OSS projects.

This was because both of them were released under a pure GPL license (without any classpath exception), meaning they can be linked to only from GPL programs as well.

Both of these projects are sponsored by Sun.

First one is Project Scenegraph, which is the engine providing all the rich graphics/animation capabilities of JavaFX. It's license is not mentioned anywhere on the site, but you have to open the source and examine it to see that it is under a pure GPL license.

See here for more details:

The second project is the JavaCSS library, which allows you to style Swing components using CSS syntax.
I've had requests from Java Swing Builder users who wanted me to integrate it with my project, but alas the pure GPL license meant it was impossible.

I filed a defect/enhancement request for this and got a very frank and honest reply (which I appreciate):

 "I am a Sun employee and Sun is paying me to create this project; as such it is not as if I can simply pick the license according to my whims. Sun's open-source software is released under the GPL, and so for the time being javacss will remain GPL'ed.".

The author does mention that Sun is considering liberalizing the license in the future, but without any specifics.

By releasing open source libraries under GPL Sun ensures that no one can legally link to them and use them (unless you're GPL too, and 99.9% business apps are not).

So to be honest, I really do not understand what is Sun strategy of releasing open source components with an ultra-prohibitive license that stops anyone from using it in the real world.

At least GPL with classpath exception or LGPL should be the norm in this case and Apache License 2.0 would probably be best. For now, I cannot link/integrate with neither Scenegraph nor JavaCSS, even though there would be a lot of benefits to the users of my project to do so.

Thus, I don't believe Sun's current policy of pure GPL-only open source serves the Java community as well as it could. And I don't see any logical reason or purpose for it.

P.S. My deepest regards to Alex Potochkin from Sun, who released his amazing JXLayer library under the extremely liberal BSD license.  Not surprisingly, a lot of folks started using and experimenting with it right away...that's how open source should work.

Published at DZone with permission of its author, Jacek Furmankiewicz.

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



Jacek Furmankiewicz replied on Wed, 2008/08/20 - 8:54am in response to: John J. Franey

It's an advantage only if you live in a fantasy world like Richard Stallman.

For me, the advantage of open source is that it provides quality "plumbing" base infrastructure software that you can use for writing real end-user apps, commercial or not. I guess I am closer to the Apache way of thinking, rather than GNU.

Either way, since none of these libraries are supposed to end up as pure GPL, I hope Sun can "free" them up now, so we can start using them right away, instead of waiting till JDK 7 (JavaCSS) or compiled JavaFX (Scenegraph).

A strategy of "let's keep it pure GPL until the library hits version 1.0 and then we'll change it to GPL with classpath exception" isn't very logical, IMHO.


John J. Franey replied on Wed, 2008/08/20 - 1:49pm

Closed source vendors use their licensing to compete against you.  If they incorporate your code into their product, they compete against you using your own code.  Thats funny in a sad way.   The fantasy is a belief that a closed-source company would not take advantage of open source software when given the opportunity, and financial motiviation.

A developer who chooses to license original software under pure GPL is well aware that the sofware won't be included in closed source distributions.  The license matches the requirement: "Keep my software out of closed-source distributions!"  This is a real sentiment, which you don't agree with, but is real for the original developer.  The real world exists whether you agree with it or not.

As you say, it seems the issue for these libraries has been clarified to your satisfaction.

I guess that framework type libraries are probably less likely to draw a head-to-head competiton between a closed-source vendor and an open or free source developer.  I also guess that because frameworks publish their interfaces, their isn't much protection given by GPL (closed-source vendors can simply create their own implementation of the interfaces).  And, as you say, there are a set of libraries that are infrastructure, not end funtionality, that have more value because their implementation is shared, even with closed-source vendors.

All that said (and probably more can be), Sun is within its 'right' (shall I say?) to choose to protect any of their libraries with GPL, especially if it thinks that a more liberal license would  'give away' an advantage that Sun wants to maintain over closed-source competitors.  Your opinion is different from Sun's for this particular case, and that's ok in my mind.  You did right to bring it to their attention.

I would expect a company like Sun to be careful about giving away this advantage too early.  Perhaps, the strategists at Sun want to be sure that closed-source entities could not use Sun developed software in competition againts Sun.  Perhaps the software needs some time in the wild to determine its value to closed-source distributers.  This could explain why the pre-1.0 releases are protected by GPL.   This is reasonable to my mind, not make believe.




Comment viewing options

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