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?

08.19.2008
| 8276 views |
  • 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:
http://forums.java.net/jive/thread.jspa?threadID=41965&tstart=0

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):
https://javacss.dev.java.net/issues/show_bug.cgi?id=1

 "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.)

Tags:

Comments

Jacek Furmankiewicz replied on Mon, 2008/08/18 - 8:18pm

And it's starting to have impact on other projects as well.

Andres Almiray of Groovy GraphicsBuilder fame was trying to integrate Scenegraph as well and had to postpone his efforts at making his library available for general usage:

 

 

Stanley Styszynski replied on Tue, 2008/08/19 - 4:12am

I am afraid You do not understand the whole idea. Sun offers dual licensing. So GPL license is for people who want to build truly opened solutions. The other stack of licenses is for those who work on commercial products. I can't see the problem at all.

Jose Noheda replied on Tue, 2008/08/19 - 4:37am

Sorry, no. The GPL choice is a good example of goodwill from Sun. They don't have to provide any OSS license at all. It seems to me that you want to profit from other people's effort. Just release your sources and you'll be fine.

 Between Sun also releases their projects under CDDL which is more liberal.

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 6:56am

Stanley/Jose:

 a) none of these projects are available under a dual-license scenario. Just pure GPL. And if it is GPL at least it should be GPL with classpath exception, like the OpenJDK

 b) none of these projects are released under the CDDL

c) I *am* releasing my source as open source as well, it's not a case of 'give and no take". I just want my open source project to be able to use their open source project, but for some illogical reason Sun has chosen the only possible open source license that makes this impossible. What is the sense in that? Does this benefit Java in any way? No, quite the opposite.

So my main question is: what is the point of releasing open source libraries if no one can use them?

It's open source in the style of "you can look but you can't use"...that's even worse than Microsoft's attempts at open source.

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 6:51am

For example, I just saw this on TSS:

http://www.theserverside.com/news/thread.tss?thread_id=50394

Open Source
Released under the LGPL and so can be fully integrated or adapted for both commercial and open source projects.

 Now that's an example of someone who wants to see their open source project actually used by someone.

Jose Noheda replied on Tue, 2008/08/19 - 7:05am in response to: Jacek Furmankiewicz

AFAIK the GPL license only forces you to release the sources of your application as long as you are redistributing it. LGPL allows you to keep the sources for yourself. Both can be integrated in either OSS or commercial applications.

If you're contributing your code back the GPL shouldn't be hampering your work in any way. Your code can be licensed as you wish (for example ASL2).

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 7:25am in response to: Jose Noheda

You don't understand.

 My project is Apache. Someone (open source or commercial) wants to use it.  All is OK.

My project links to let's say JavaCSS. As soon as tha that happens (since GPL is a viral license) my project must become GPL as well. Hence my previous user (non GPL-open source or commercial) cannot use my project now either.

It's the viral nature of GPL that is the issue..anything it touches must become GPL as well. That makes no sense for a library.

All the popular Java open source projects/framework are under non-GPL licenses:

Spring: Apache 2.0
Apache Commons: Apache 2.0 (obviously)
Hibernate: LGPL
Joda Date/Time: Apache 2.0
Groovy:  Apache/BSD
Seam: LGPL
Richfaces JSF: LGPL

 

etc, etc.

Jose Noheda replied on Tue, 2008/08/19 - 7:28am in response to: Jacek Furmankiewicz

No, they're all GPL compatible.

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 7:35am in response to: Jose Noheda

Yes, but that's not the issue!Who cares if they're GPL-compatible? The point is that they're not released under the GPL, hence anyone can use them.

if you release a library under the GPL and no other license, then basically no other open source project can integrate with it (unless it's GPL too and that's usually not the first choice for reusable libraries).

 

 

Jose Noheda replied on Tue, 2008/08/19 - 7:43am in response to: Jacek Furmankiewicz

You just don't want to hear...If you release your code under Apache license (as it is GPL compatible) you can link/include any GPL'ed code with your application. That doesn't mean that your code needs to be licensed as GPL. You are distributing an application that includes two licenses, one less restrictive for your code and the GPL for the code you don't own. Users of your application, if in turn want to redistribute their work, will need to comply with both licenses requirements.

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 7:51am in response to: Jose Noheda

Well, since the GPL is the more restrictive of the two, that means they have to comply by the GPL, correct?

So, even if my code is Apache, the end result is that only GPL apps can use it.

End result is the same. The viral nature of the GPL wins every time.

P.S. A good example: at my employer, if a library is under nothing but the GPL, we're not even allowed near it.

Jose Noheda replied on Tue, 2008/08/19 - 7:55am

Yes but ONLY IF they're are REDISTRIBUTING it. Not just for using the application. And, chances are, that if they're redistributing the software either they're using an OSS license (which would be GPL compatible 99% od the times) or a commercial one (and they would be profiting from others work without paying which is what the GPL pevents).

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 8:01am in response to: Jose Noheda

Jose, do you understand what the term "viral nature of the GPL" means?

I am sorry to tell you but I think your involvement on the Glassfish team @ Sun means you are defending them at all cost, without regard to whether it's logical or not.

So, I have a very simple challenge for you.

Give me an example of one commonly used open source Java library that is released under the GPL and nothing but the GPL. No other license is allowed.

Give me one example of such a library that is widely used and I will cede the argument to you.

 

Jose Noheda replied on Tue, 2008/08/19 - 8:10am in response to: Jacek Furmankiewicz

No, not really. I do understand its viral nature but I do also understand the desire to profit from your development efforts and that's easier to achieve under the GPL. It allows the use but at the same time disallows the redistribution without the same kind of implication.

That said, for libraries and APIs the GPL is not the license that makes more sense. We agree in that. I prefer ASL2. That's why Sun offers some products under the CDDL. I think the final relaseof JavaFX will probably include a less restrictive license.

And Sun is one of my fav companies no doubt but I wouldn't defend them if I considered they're not in the right track. And I'm not that involved with the Glassfish team :-)

 Regards,

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 8:16am in response to: Jose Noheda

OK, so we agree in the  end :-)

GPL is not the best license for libraries. So why is Sun using it for such critical projects like Scenegraph and JavaCSS? 

P.S. Despite what you may think, Sun is one of my fav companies too..they gave us Java and the JVM after all. if not for that, we would all be working in Visual Basic 8 or something like that.

P.S.S. I guess the term "profit from your open source work" can be understood in many ways. Monetary is just one of them. For me the reward is seeing my project being used by actual users. I would like to make that experience even better for them by integrating with JavaCSS...but alas...

Jose Maria Arranz replied on Tue, 2008/08/19 - 8:48am

I fully agree with Jacek, I can't understand a company like Sun releasing Java libraries as GPL with no alternative commercial license, is silly.

I think this is going to change, Sun after MySQL purchasing is learning how to make money with open source.

Jose M. Arranz

ItsNat, Natural AJAX, dual licensed AGPL/commercial.

 

Joshua Marinacci replied on Tue, 2008/08/19 - 10:55am

It is important to understand that the two projects you mentioned are still under development and have not reached their 1.0 release. They are not yet ready to be used in production applications. We expect the licenses to change once they are ready.  Ethan *did* mention this in his post to the javacss group, but was not quoted in the article above.

Jose Maria Arranz replied on Tue, 2008/08/19 - 11:06am in response to: Joshua Marinacci

Good clarification! It makes sense.

 

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 12:32pm in response to: Jose Maria Arranz

Well, they seemed pretty usable already...it would have been great to be able to integrate with them even now.

A lot of OSS projects are fairly usable even before reaching 1.0 status. I would ask the folks at Sun to avoid using this "use GPL until project is ready" strategy...it does not seem to make much sense.

if the license would be more liberal, you would get more end-user usage, more bug reports, enhancement requests early on, etc.

But either way, thank you for responding here Joshua.

P.S. is there any chance either of them would get their license changed to GPL with classpath exception any time soon?

Alexis MP replied on Tue, 2008/08/19 - 12:46pm in response to: Jose Noheda

For the record, GlassFish is licensed under both CDDL and GPLv2 with ClassPath Exception. A commercial license is also available. Jose, you're free to join the community ;) -AlexisMP, GlassFish Evangelist

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 12:49pm in response to: Alexis MP

Perfect. It shows you actually want someone to use GlassFish in the real world :-)

Alexis MP replied on Tue, 2008/08/19 - 12:53pm in response to: Jose Noheda

For the record, GlassFish is licensed under both CDDL and GPLv2 with ClassPath Exception. A commercial license is also available. Jose, you're free to join the community ;) -AlexisMP, GlassFish Evangelist

Alexis MP replied on Tue, 2008/08/19 - 12:54pm

No, it means they are already using it! :)

Ronald Miura replied on Tue, 2008/08/19 - 12:58pm

@Jose, you are right in that if you use GPL software in your app and don't redistribute it, you don't have to make it GPL too.

But the situation here is that some people want to integrate GPL software into another open source project, which uses a less restrictive license, say, APL2. In this case, their project must be GPL'ed, because they 'link' to GPL software. If the 'classpath exception' was added, then I think it wouldn't be necessary (but I'm not 100% confident saying this).

So, they want to redistribute the software, and don't want to make profit from it (which, or course, would make them really bad, bad, bad people! -sarcasm intended-). The LGPL would be much more friendly here, because it forces LGPL publication only to changes to the original LGPL code, not yours.

GPL is a nice fit to products (databases, application servers, etc.) and SPI implementations (JDBC drivers), because we don't link directly to them, but through standard interfaces (JDBC API, J2EE spec, etc.). But with libraries, it becomes a hindrance, and other licensing schemes would be much more appropriate, because the GPL makes it really difficult to integrate them to both open source and commercial software. I agree with Jacek that even before 1.0, using a little more liberal license would foster community participation.

Oh, and I don't think Sun wants to lock anyone, they are just being a little too precautions, IMHO. I'm not attacking Sun, so you don't have to 'defend' them from me :)

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 1:02pm in response to: Ronald Miura

Thank you. It's exactly how I feel about the whole issue.

I want to use these open source projects. By using them and giving feedback on their current functionality I will participate in making them better and more stable. Everybody wins...

Jose Noheda replied on Tue, 2008/08/19 - 1:38pm in response to: Jacek Furmankiewicz

The thing is we bash Microsoft for not being Open Source. God, I'd like to see a free versions of Visual Studio & XP! But soon that's not enough and we start to bash Sun because we feel that the license for some products does not suit our needs. In the end we are not satisfied with anything but with free (gratis) OSS that we can modify to our will. But the sad truth is OSS is only relevant to developers who in turn try to make a living from software.

I, for one, am happy to see Sun Open Source Netbeans, Java, Open Solaris, Glassfish and have a viable business model. If Sun decides to just use the GPL (in products still in development!!) to protect a little bit more their IP I'm fine with it. I can even encourage it indeed! In fact, the viral nature of the GPL promotes "open sourcing" more than any other license.

The argument about the inclusion of GPL'ed code in other OSS software is only a half true. The compatible license scheme was devised to fulfill that requirement. It can hurt third party users but only in very specific circumstances (which normally involve non OSS).

All in all, I think you should revise your stance. I do prefer the ASL2 license for APIs & libraries but I would politely ask Sun for it rather than write an inflamatory article trashing the company politics (which, in addition, I find well founded). If anything, you can use Eclipse instead of Netbeans, Axis2 instead of Metro, Tomcat for Glassfish..

And enjoy what you currently have! Two years ago we were in a much worse position

Ronald Miura replied on Tue, 2008/08/19 - 3:51pm in response to: Jose Noheda

[quote=xmaniac]The argument about the inclusion of GPL'ed code in other OSS software is only a half true. The compatible license scheme was devised to fulfill that requirement. It can hurt third party users but only in very specific circumstances (which normally involve non OSS).[/quote]

It's half-true, but not because of the 'compatibility' argument. The problem is the ambiguity of the license text, regard of what 'derived work' means (modified code, calling code, statically linked, dynamically linked...). Linus Torvalds clarified the statement explicitly, but this only applies to the Linux kernel code, not for other projects (just like the 'classpath exception' to the openjdk).

But strictly speaking, if you link to GPL, you become GPL. This is what the viral thing is all about. Licenses don't apply only to evil corporations. APL2 is 'compatible' with the GPL in the sense that, if you want to GPL your project, you can link to/include compatible-licensed (APL2, BSD, LGPL, etc.) software (which will be re-licensed as GPL as you do that). This does not apply the other way around. We could say that APL2 is compatible to the GPL, but the GPL isn't compatible to APL2.

[quote=xmaniac]I, for one, am happy to see Sun Open Source Netbeans, Java, Open Solaris, Glassfish and have a viable business model. If Sun decides to just use the GPL (in products still in development!!) to protect a little bit more their IP I'm fine with it. I can even encourage it indeed! In fact, the viral nature of the GPL promotes "open sourcing" more than any other license.

All in all, I think you should revise your stance. I do prefer the ASL2 license for APIs & libraries but I would politely ask Sun for it rather than write an inflamatory article trashing the company politics (which, in addition, I find well founded). If anything, you can use Eclipse instead of Netbeans, Axis2 instead of Metro, Tomcat for Glassfish..[/quote]

Of course, there are alternatives. But I think that a more liberal licensing benefits not only us, users, but the projects themselves, which will have a much more active community, who wouldn't need to fear the viral aspect of the GPL.

Besides, I understand the use of the GPL for Glassfish (a product) and OpenJDK (not a product itself, but related to the Java compatibility certification, which is), but I don't think Sun intends to profit on Project Scenegraph or JavaCSS, and community participation could be of great help in their evolution.

Regards the inflamatory tone of the article, well, I agree it would be better to be more polite, but maybe if it was, it wouldn't attract the attention of Sun employees or create this healthy discussion :)

Jacek Furmankiewicz replied on Tue, 2008/08/19 - 4:54pm in response to: Ronald Miura

[quote=ronaldtm]Regards the inflamatory tone of the article, well, I agree it would be better to be more polite, but maybe if it was, it wouldn't attract the attention of Sun employees or create this healthy discussion :)[/quote]

Bingo! :-)

Jose Maria Arranz replied on Wed, 2008/08/20 - 2:43am in response to: Jose Noheda

Jose: In the end we are not satisfied with anything but with free (gratis) OSS that we can modify to our will. But the sad truth is OSS is only relevant to developers who in turn try to make a living from software.

Jose, "tocayo", I think the software is divided on the following categories:

1) "Don't touch my code!" a.k.a. closed source

2) "Money for nothing" a.k.a GPL licensed software, no closed source can be built.

3) "I'm living in the age of Aquarius" a.k.a open source software with liberal licenses allowing closed source derivatives.

4) "Bring my money back!" or "Pay if you earn" a.k.a dual licensing (A)GPL/some custom commercial license for closed source derivatives.

If you are developing or using software you must understand what is your place in the world, as you can see 2,3,4 cases are open source based but they are very different "attitudes".

In the case of a company like Sun with a very strong involvement on software, cases 1, 3 and 4 make sense but not 2.

 

John J. Franey replied on Wed, 2008/08/20 - 8:45am

 

First, as a matter of fact, this page lists open source licenses are compatible with GPL.  http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses  It says that Apache License 2.0 is compatible with GPL 3.0, but alas, not GPL 2.0.

 

Second: I guess you are familiar with:  http://www.gnu.org/licenses/why-not-lgpl.html

A main point of this article is that pure GPL license builds and protects an advantage to open source software against closed-source software.  A valueable pure GPL'ed library could not be used in a closed-license project and so the GPL'ed software becomes a tool exclusive to free source developers.

This advantage of GPL is attacked when GPL is called 'viral'.

Regards,

John

 

 

 

Comment viewing options

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