Forums

Home » Liferay Portal » English » x. Miscellaneous

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Hitoshi Ozawa
Liferay Community License
May 23, 2011 11:03 PM
Answer

Hitoshi Ozawa

Rank: Liferay Legend

Posts: 7949

Join Date: March 23, 2010

Recent Posts

This is one of the question in the Japanese Liferay forum.

Would appreciate if some one with legal authority from Liferay would answer this.

Liferay Community edition is licensed under LPGL. If I create an ext plugin, this would not modify the original Liferay binary files, but the ext plugin actually may contain some source code from the original Liferay when overwriting a class. In such circumstances, is it necessary to provide the source code to the ext plugin to everyone the ext plugin is distributed?
Corné Aussems
RE: Liferay Community License
May 24, 2011 2:08 PM
Answer

Corné Aussems

Rank: Liferay Legend

Posts: 1313

Join Date: October 3, 2006

Recent Posts

Liferay’s EXT environment, which allows modification of the behavior of Liferay’s kernel, services, and UI, is now deployable as a plug-in, which in LGPL terms (as long as you follow best practices) will be considered a linked piece of software and therefore not subject to the reciprocity rules of the LGPL.


from liferay-adopting-the-lgpl-license
Hitoshi Ozawa
RE: Liferay Community License
May 24, 2011 3:08 PM
Answer

Hitoshi Ozawa

Rank: Liferay Legend

Posts: 7949

Join Date: March 23, 2010

Recent Posts

Thank you for the answer Corné. The question is about the "best practice". How much Liferay code can be copied to the ext plugin? Theoretically, it's possible to copy all the codes into the ext plugin. Are there a set of written "best practices" on how to write ext plugins?
Mika Koivisto
RE: Liferay Community License
May 24, 2011 3:41 PM
Answer

Mika Koivisto

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1513

Join Date: August 7, 2006

Recent Posts

Personally I've always considered that if I override any existing code then it has to be considered LGPL how ever if I extend the class and wrap it then I can use any license I want with my code.
Hitoshi Ozawa
RE: Liferay Community License
May 24, 2011 4:12 PM
Answer

Hitoshi Ozawa

Rank: Liferay Legend

Posts: 7949

Join Date: March 23, 2010

Recent Posts

Personally I've always considered that if I override any existing code then it has to be considered LGPL how ever if I extend the class and wrap it then I can use any license I want with my code.


So legally, ext plugin should "extend" (or overload?) a class and never "override" it? But still, even when extending a class, if I just want to change a minor functionality (such as sort order) within a statement, most of the codes may be just a copy of the original Liferay code with just a slight modification. That would be in LPGL then?

Furthermore, if I extend a class, I would have to change all the functions to call my class instead of the original Liferay's class. This would seem to imply that I would have to change most of Liferay to do a simple modification.
Mika Koivisto
RE: Liferay Community License
May 24, 2011 5:24 PM
Answer

Mika Koivisto

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1513

Join Date: August 7, 2006

Recent Posts

Many classes can be extended because you can configure which class is used in portal(-ext).properties, struts-config.xml, liferay-portlet.xml, xxx-spring.xml, web.xml etc but there are also classes that you really can't extend easily like Util classes. Now you can copy code to certain extent legally because for some things there really isn't any other way to do it. In many cases it could be interpreted as use of the API. Practically I would say you're pretty safe from being sued unless you go and fork it as another product in which case Liferay might be more interested in investigating for license violations. It's really a fine line when you cross over from using the API to overriding the original and violating the license and that can really only be defined by lawyers.

** DISCLAIMER: These are my own opinions and not those of my employer **
Hitoshi Ozawa
RE: Liferay Community License
May 24, 2011 6:14 PM
Answer

Hitoshi Ozawa

Rank: Liferay Legend

Posts: 7949

Join Date: March 23, 2010

Recent Posts

It's really not my question because I'm making my source code available to those who I distribute a copy, but some other user in Japan is interested in the strict legal terms.

but there are also classes that you really can't extend easily like Util classes. Now you can copy code to certain extent legally because for some things there really isn't any other way to do it. In many cases it could be interpreted as use of the API. Practically I would say you're pretty safe from being sued unless you go and fork it as another product in which case Liferay might be more interested in investigating for license violations. It's really a fine line when you cross over from using the API to overriding the original and violating the license and that can really only be defined by lawyers.


How would I be able to get something written about this fine line. I'm sure the current Liferay management won't go about suing everybody, but never know what will happen in the future - especially after seeing what's happening after Oracle bought Sun. I'm sure almost everybody in this forum is interested about this topic too.
Mika Koivisto
RE: Liferay Community License
May 24, 2011 7:15 PM
Answer

Mika Koivisto

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1513

Join Date: August 7, 2006

Recent Posts

I wouldn't be too worried about Liferay ever getting bought. Not because there isn't interest but because the owners aren't interested in selling. The company has absolutely no venture capital and is 100% staff owned. The whole philosophy behind the company is doing good and giving instead of just increasing profits for the benefit of the owners. That's why I love working for this company over any other tech company.

If you want something concrete then you might want to talk to our community manger James. He can get you in touch with the right people.
Hitoshi Ozawa
RE: Liferay Community License
May 24, 2011 9:20 PM
Answer

Hitoshi Ozawa

Rank: Liferay Legend

Posts: 7949

Join Date: March 23, 2010

Recent Posts

James, can you get something on this?

FYI, this is the original post in the Japanese forum:
http://www.liferay.com/community/forums/-/message_boards/message/8922301
James Falkner
RE: Liferay Community License
May 25, 2011 11:50 AM
Answer

James Falkner

Community Moderator

Rank: Liferay Legend

Posts: 1406

Join Date: September 17, 2010

Recent Posts

Ugh, I don't like license discussions :-) There are all these "special cases" that when taken to extremes must ultimately be decided by a Judge in a Court of Law emoticon

According to the LGPL, If you copy the code and modify it, it is then considered a "Work that is derived from the Library (Liferay)" (section 2 of the LGPL) and subject to LPGL. If you write your own code (hook, portlet, whatever) that "links" (either statically, or in the case of Java, dynamically) through a documented or undocumented API (this includes classes that override base Liferay classes and contain your own code), that is considered a "work that uses the Library" (section 5 of the LGPL) and is out of scope for LGPL. "Derived Work" can only be distributed under LGPL, and you must make the source to your modifications available, etc.

So, in this example, if you take the source code to a base Liferay class, copy the source code verbatim, change the class name, make it override the base class (through portal.properties), delete unneeded methods, and then modify the remaining code to do something slightly different, then, according to my interpretation of the LGPL, is a "Derived Work" and subject to LGPL provisions. If, instead, you write a class from scratch that override the base class, and implement the methods as specified in the API, then you're creating a separate work, and not subject to LGPL. But as Mika mentioned, sometimes the "documented API" is the source code itself, intended to be copied and modified (slightly), as in the case of, for example, overriding Liferay services. The LGPL doesn't really cover this case unfortunately.

Also, as others have stated, this is not what prompted Liferay to switch to LGPL and we are not actively searching for people to sue on these grounds.
Hitoshi Ozawa
RE: Liferay Community License
May 25, 2011 2:43 PM
Answer

Hitoshi Ozawa

Rank: Liferay Legend

Posts: 7949

Join Date: March 23, 2010

Recent Posts

This would put most ext plugin as a "derived work" subject to LGPL. I think most developers are copying Liferay's source code to override.

The safest bet is to get an OEM license. It's probably cheaper than writing from scratch.
Corné Aussems
RE: Liferay Community License
May 26, 2011 10:43 AM
Answer

Corné Aussems

Rank: Liferay Legend

Posts: 1313

Join Date: October 3, 2006

Recent Posts

What i always find confusing is if companies are allowed to build a solution on Liferay and market it without mentioning Liferay as a core?
Joshua Asbury
RE: Liferay Community License
May 26, 2011 6:47 AM
Answer

Joshua Asbury

LIFERAY STAFF

Rank: Expert

Posts: 497

Join Date: September 8, 2006

Recent Posts

Corné Aussems:
What i always find confusing is if companies are allowed to build a solution on Liferay and market it without mentioning Liferay as a core?
www.maxxton.com/solutions/cms


I'd be interested to know if they are on Liferay 5.2.x (MIT) or Liferay 6.x (LGPL). Our OEM program is in place to allow our partners to do just that on top of Liferay EE.
Jelmer Kuperus
RE: Liferay Community License
May 26, 2011 10:56 AM
Answer

Jelmer Kuperus

Rank: Liferay Legend

Posts: 1192

Join Date: March 10, 2010

Recent Posts

So how about when you use service builder. The generated code actually includes the lgpl license
Mika Koivisto
RE: Liferay Community License
May 26, 2011 11:38 AM
Answer

Mika Koivisto

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1513

Join Date: August 7, 2006

Recent Posts

You can actually change the generated header by modifying misc/jalopy.xml in plugins sdk.
Corné Aussems
RE: Liferay Community License
May 26, 2011 12:50 PM
Answer

Corné Aussems

Rank: Liferay Legend

Posts: 1313

Join Date: October 3, 2006

Recent Posts

Joshua Asbury:

I'd be interested to know if they are on Liferay 5.2.x (MIT) or Liferay 6.x (LGPL). Our OEM program is in place to allow our partners to do just that on top of Liferay EE.

Let's presume they use MIT. They started out some years ago and were pretty active in the community.
James Falkner
RE: Liferay Community License
May 26, 2011 1:52 PM
Answer

James Falkner

Community Moderator

Rank: Liferay Legend

Posts: 1406

Join Date: September 17, 2010

Recent Posts

jelmer kuperus:
So how about when you use service builder. The generated code actually includes the lgpl license


The output from LGPL'd software is out of scope of its license, according to section 0 of the LGPL:

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.


I don't believe the output of service builder is a "work based on the Library (Liferay)" . It is similar to any other code generator that generates templates of code. You can just change the header (as Mika points out) to whatever you want.
Hitoshi Ozawa
RE: Liferay Community License
May 29, 2011 2:17 AM
Answer

Hitoshi Ozawa

Rank: Liferay Legend

Posts: 7949

Join Date: March 23, 2010

Recent Posts

Joshua Asbury:
Corné Aussems:
What i always find confusing is if companies are allowed to build a solution on Liferay and market it without mentioning Liferay as a core?
www.maxxton.com/solutions/cms


I'd be interested to know if they are on Liferay 5.2.x (MIT) or Liferay 6.x (LGPL). Our OEM program is in place to allow our partners to do just that on top of Liferay EE.


If there a difference? It's possible to a clause in CPAL to make that a requirement, but I don't think MIT and LPGL mandate mentioning putting software name on the label. Nevertheless, I think it's a good practice for users to give credits where it's due.