Thursday, January 28, 2010

Alfresco Moves to LGPL Licensing for the Community Version

"Big News!" says Nancy Garrity, Director of the Alfresco Community.  And it is.  Yesterday John Newton, CTO and Chairman of Alfresco, announced plans to switch the license used by the Alfresco Community version from GPL to LGPL.  The change is to go into effect for the Alfresco 3.3 release.

(Note that there is some information about licensing presented here, but the caveat is that this is not legal advice.  Always be sure to consult with a lawyer when doing anything related to licensing.)

Also remember that the Enterprise version of Alfresco comes with a standard commercial license.  Open Source licensing is used only with the Community version.

Open Source licensing does tend to be confusing...  Alfresco changed Open Source licenses once before, from Mozilla Public License to GPL in February 2007.  At that time, an article wrote "There are many companies that are afraid of the GPL, Alfresco isn't one of them."  On the current legal FAQ page on the Alfresco site, Alfresco describes the reasons for why they originally moved to GPL.

When Alfresco did move to GPL, version 3 of GPL had not yet been finalized, so Alfresco explicitly called out GPL version 2 when referencing the license in Alfresco code, unsure of what conditions would be included in version 3.  Alfresco source code files now say "version 2 of the License, or (at your option) any later version."  (Alfresco has also considered some complications around trying to combine a GPL-licensed piece of software with other Open Source licenses, and Alfresco has some 'exception' language that describes that.)

First, just what are the differences between GPL and LGPL?
Well, both licenses give you complete access to the source code and the ability to build working software.

The GPL license allows you to use, redistribute and change software, but you're then required to make the source code available to users of the new software, and those users can in turn redistribute and modify the software subject to GPL.  For some commercial software vendors and even at companies where software is being developed in-house, GPL is considered a bit toxic and people avoid it at all costs to make sure that their commercial or proprietary code will not come into contact with GPL and the possibility that their source code would need to be released.

LGPL is similar to GPL but differs in that it allows LGPL software to be treated as a blackbox or as a self-contained library.  It allows you to cordon off a certain set of code as LGPL.  If you change the inner workings of the LGPL piece, then you're pretty much bound to standard GPL and will need to contribute back any changes you make to the code.  The difference comes when there are software pieces that integrate with LGPL and that are outside the scope and code boundaries of the LGPL.  These other pieces are not bound to the same conditions as the LGPL piece.  Because of that, LGPL is sometimes considered to be a bit more friendly, at least to commercial developers.

Second, what will the change enable Alfresco to do?
As John Newton wrote: "What the LGPL license provides over GPL is the ability to link in the Alfresco repository without affecting proprietary software that links it."

John is a strong promoter of the CMIS (soon-to-be) standard.  CMIS will enable many different applications and repositories to interact, and an LGPL license will make people more willingly consider combining Alfresco in solutions composed of a variety of software components.   John wrote:
"We do this in the spirit of making Alfresco available as a CMIS platform and a general ECM platform to build content applications without inhibiting your business opportunities. What we hope is that your applications will build demand for Alfresco services from Alfresco Software, particularly in larger enterprise environments."
I think that this move to looser licensing terms should further encourage activity around the Alfresco ECM platform, and that, of course, is good.

No comments:

Post a Comment