« Get a life, nerd... | Main | Linus chasing the... »

For Java, LGPL is viral.

Andy Oliver: I clarified the LGPL in Java issue with the FSF and posted to poi-dev. According to the FSF, the LGPL is indeed viral towards Java code. Thus, in essence GPL and LGPL are the same for Java. You could still find that the copyright holder of a particular software package held a different view and is willing to state that explicitly, but it looks like the Apache Software Foundation and Sam were right and I was wrong.
That really sucks. Not the part about Andy being wrong, that happens all the time. I'm talking about the now confirmed viral nature of the LGPL when applied to Java. I believe that Roller uses a couple of LGPL components, JSPWiki for example. I guess this means that either those components should be removed or Roller should switch to a dual GPL and APL license.
Comments:

Point out times when I was wrong....They're rare ;-) and far between :-)...sometimes it takes a little while to be proven right though. Actually its WORSE than that for you. Its either all GPL/LGPL or none. Think about it. If you depend on JSPWIKI and cannot run without it, you can't grant someone the right to NOT use the LGPL. It would just confuse the situation. The only thing you could do is have a situation which doesn't link those. There is a workaround so to speak. It's called JMX. JMX allows you to bind things without statically linking them. Meaning you can create a service called "wiki" and load that at runtime regardless of its actual content. You can then assume or identify its operations by name and run them. This could get around the license because you're actually loading a library in the C sense of the word link. The bitch is its a lot more difficult to code without compile-time checks (which is essentially what you're doing).

Posted by andy on July 16, 2003 at 12:38 PM EDT #

Sounds like loading via Class.forName() might also be a workaround. No?

Posted by Dave Johnson on July 16, 2003 at 12:45 PM EDT #

Do you recall when/where I posted a list of the LGPL components we were using?

Posted by Lance on July 16, 2003 at 12:51 PM EDT #

I found it: http://www.brainopolis.com/roller/page/lance/?anchor=roller_and_gpl though I think it is time for another inventory, as that post is from Thursday February 20, 2003.

Posted by Lance on July 16, 2003 at 12:54 PM EDT #

I think somebody needs to stop smoking crack. Sorry, but I'm a little bitter since I wasted the last hour trying to look into this. Here's what I found. Regarding "projects of the ASF are not allowed to link/distribute LGPL programs into Java projects of the foundation." All I could find was this (http://archives.apache.org/eyebrowse/ReadMsg?listName=community@apache.org&msgNo=1398), which says that because no one wanted to go to the trouble of making a decision about lgpl code, you can't use lgpl code in apache software. If you have a link to the apache website that is clearer, please let me know. Second, lets say using a .jar file in your application does cause you to be restricted by the LPGL license of that application, which it appears to. Did anyone actually read Section 6 of the LGPL? (http://www.gnu.org/copyleft/lesser.html) It says: "As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications." You also have to "Use a suitable shared library mechanism for linking with the Library." Yes, that's a .jar file. There are other minor stipulations in this section, but none of them include forcing software to use the lgpl license. Let me know if there are any flaws in what I've said here, but otherwise this is just another "The Sky is Falling" headline. PS Eeeerg. I can't get any linebreaks for this comment.

Posted by Paul Rivers on July 16, 2003 at 03:16 PM EDT #

Uh... As the author of JSPWiki, I can assure that it has not been my intention to cause any virality... In fact, I chose LGPL exactly because it was supposed to allow including JSPWiki to other programs, regardless of their license. I would rather hear this from FSF's mouth directly. Because if this is true (and not just dirt-throwing at FSF), I have no choice but to make JSPWiki available under Apache Public License - or find my own suitable license that allows me to do in spirit what the LGPL is implying.

Posted by Janne Jalkanen on July 16, 2003 at 03:41 PM EDT #

For what it's worth, I posted some comments and questions at http://radio.weblogs.com/0122027/2003/07/16.html#a56.

Posted by Rod Waldhoff on July 16, 2003 at 03:42 PM EDT #

"... provided that the terms permit modification of the work for the customer's own use ..." And if I'm not willing or able to do that?

Posted by Paul Watson on July 16, 2003 at 03:50 PM EDT #

in response to paul rivers' comment on this item: hey, paul: "which says that because no one wanted to go to the trouble of making a decision about lgpl code, you can't use lgpl code in apache software." it doesn't say anything of the kind, and i more than slightly resent your claim that it does and the accompanying insinuation that we couldn't be bothered. it says "until we *do* know, we're playing it safe and not permitting anything that might get us in trouble later." better safe than sorry, particularly since the 'sorry' path could result in hurting a lot of projects. i respectfully request that you refrain from drawing conclusions from incomplete data about conversations to which you aren't even party.

Posted by Rodent of Unusual Size on July 16, 2003 at 03:57 PM EDT #

[Trackback] With this news , a follow up to my earlier "survey" seemed in order... LGPL libraries used by Roller Hibernate Prevayler Ekit Flock (is this really still used?) Jazzy JSPWiki Radeox Couldn't... [Technology, 1163 chara...

Posted by Vanity Foul on July 16, 2003 at 04:32 PM EDT #

I hadn't intended to say anything about the Apache Software Foundation. It's a generally well respected group of people, which is the reason I made my point - Don't let me the mention of the Apache group fool you into thinking that they have taken the position that the LGPL is viral, because they haven't.

Posted by Paul Rivers on July 16, 2003 at 04:50 PM EDT #

I hate software developers...pedants,all of you. Paul, don't read SO much into EVERY single freaking word. Ugh. I don't want to write a 10 paragraph email entailing the HISTORY of Apache in a question about licensing. "ASF interperetation" was short for ken's whole post to this message. Would you answer a question with that much detail? Gosh.

Posted by andy on July 16, 2003 at 10:04 PM EDT #

To be more explicit about how to avoid propagating LGPL outside of its library, would this suffice? 1) write a Java interface, not GPL or LGPL, describing the typing and external behavior of the code. 2) write Java class files, LGPL'd, that implement that interface. 3) access the implementation, however it might be named (jar, classpath, URN, whatever) using Class.forName or its classloader equivalents, preferably with the name obtained in some configurable way so that the moral equivalent of a hard-coded reference is not present in the code (e.g., Class.forName("gnu.lgpled.Library")).

Posted by David Chase on July 18, 2003 at 05:16 PM EDT #

I've been posting this on every java blog discussing the matter, so if you have already seen this 5 times I apologize. - Section 5 of the LGPL clearly states that indirect linking of LGPL code which produces an "executable" that is isolated (meaning contains no LGPL code) is not subject to section 6. Yes I know the FSF licensing guy is going around saying differently. He is completely ignoring section 5. If you read section 6 closely, it only applies if your work contains LGPL code and is distributed. Since Java applications do not contain LGPL code until runtime, and a runtime memory image is not distributed, you are FINE.

Posted by Joe Burks on July 19, 2003 at 03:38 AM EDT #

Post a Comment:
  • HTML Syntax: NOT allowed

« Get a life, nerd... | Main | Linus chasing the... »

Welcome

This is just one entry in the weblog Blogging Roller. You may want to visit the main page of the weblog

Related entries

Below are the most recent entries in the category Java, some may be related to this entry.