Open Source Licensing at Alfresco
Introduction
Open source is a massive, disruptive force in the global software industry. It is changing the way every software vendor sells, supports, and distributes software, as well as the manner in which enterprises buy/license software. According to Gartner (2005), “Open source software solutions will directly compete with closed-source products in all software infrastructure markets,” with 95% of the Global 2000 organizations employing formal open source acquisition and management strategies by 2008. Today, according to CIO Insight, 81% of companies have deployed or are considering deploying open source applications, with 65% saying that open source has sparked innovation inside their companies.
Despite open source’s impact on the software industry, the legal impact of open source licensing is still not widely understood. The purpose of this white paper is to help users of Alfresco’s open source products better understand how our use of open source software licenses affects them.
Alfresco and Open Source
Alfresco is an open source software company. We license 100% of the source code of our products – Alfresco Enterprise Edition and Alfresco Community Edition – under the GNU General Public License (“GPL”). This does not mean that Alfresco has released its software into the public domain – like any software creator, we own and retain copyrights, trademarks, and patents. Rather, it means that we author software like any software company, but license our software under an open source license that permits and encourages access to our source code, modification of this source code, and redistribution thereof.
Alfresco has developed a content repository system designed to improve the collaboration, control and compliance of business documents and associated business processes, as well as to move content to and manage content within a website. Our mission is to be the custodian of this repository standard, and to propagate this standard throughout the industry. We want to enable any developer to use the Alfresco repository model to maintain and manage content, whether that developer is an open source developer or a commercial developer.
Why We Use the GPL (Plus a FLOSS Exception)
The GPL best helps us achieve this goal. The GPL enables the free software community because it allows developers to re-license our code under the GPL, if they choose to do so. We recognize, however, that many open source projects use different OSI-approved licenses, some of which may not integrate well with GPL-licensed code.
For this reason, we are following MySQL, Linden Labs (Second Life), and others that use a “FLOSS Exception.” Alfresco’s GPL + FLOSS Exception policy gives the open source development community the world’s best content repository, with the freedom to embed it in other open source projects, from Drupal to Jasper Reports to…you name it. The Alfresco FLOSS Exception enables software provided under existing OSI-approved open source licenses to incorporate the Alfresco Community Edition software without having to license the entire software package under the terms of the GPL.
For developers or organizations who wish to embed Alfresco into proprietary software products, we can accommodate this with a commercial license to our software (“Alfresco Enterprise”), which provides the benefits of our software without the requirements of the GPL. While we encourage everyone to use the GPL, we recognize that some prefer not to. For this purpose, we can provide a commercial license to Alfresco Enterprise.
Alfresco’s License Does not “Infect” Your Software
Importantly, as with all open source licenses, the GPL is only triggered upon redistribution of software. If you modify our GPL-licensed Alfresco Community product or integrate it into other software, and you distribute these derivative works outside your organization, you must release these derivative works under the GPL. For the vast majority of Alfresco customers, then, any derivative works/modifications they make to Alfresco’s software remain private to them, as most do not distribute the derivative works outside their organizations.
If you remain concerned about this, Alfresco can provide its Enterprise code to you under a commercial license. Alfresco Enterprise Edition is more rigorously tested than our Community Edition product (as it is intended for the most demanding production environments, while Community Edition is intended as a development platform), with bug fixes going immediately into Enterprise and waiting on our community to implement them for Community Edition; is certified to work with a range of third-party software (Oracle databases, Liferay Portal, Microsoft SQL Server, etc.); and comes with enterprise-class support.
Alfresco Incorporates Apache-licensed Software – Are the Two Compatible?
We agree with the Apache Software Foundation that the two are compatible. However, there is no definitive decision on whether the GPL is compatible with Apache-licensed software. The Apache Foundation believes that it is compatible, while the Free Software Foundation believes that it is not. Both groups are in discussions to resolve this issue. It is believed that GPLv3 has provisions that resolve the apparent incompatibility, as well.
However, as the issue comes down to patents, as the Apache Software Foundation notes (see http://www.apache.org/licenses/GPL-compatibility.html), and as none of the Apache-licensed code that we incorporate into Alfresco has patents on it, this is a non-issue for us. It means that we can integrate Apache-licensed code without running afoul of the apparent incompatibility between the two because the software we incorporate is not patented, which alleged incompatibility arises from conflicting patent provisions in the two licenses.
If we were to incorporate Apache-licensed code that has patents on it, however, we could still incorporate it into our GPL-licensed project provided that we “pass through” those modules under their Apache license. In this case, we would simply license Alfresco Community Edition under the GPL (with a FLOSS Exception) and note that some modules are separately licensed under Apache licenses.
Importantly, this issue only affects our Alfresco Community Edition project. Those using Alfresco Enterprise get our software under a Commercial License, so they do not have to worry about this at all.
Regardless of how we do it, you should feel comfortable using our 100% open source software. We will do whatever necessary to ensure you can use our software under open source licenses, preferably the GPL.
What Does a Customer “Buy” from Alfresco?
Since Alfresco offers its products under an open source license, what is it that customers actually buy from us, given that our source code is freely distributed? In the case of Alfresco’s Community Edition product, the answer is “Nothing.” Community Edition is targeted at developers and serves as a development laboratory for Alfresco, in the same way that Red Hat’s Fedora project feeds into its Red Hat Enterprise Linux commercial distribution.
We provide Community Edition free of charge and offer no support for the product, paid or otherwise, from Alfresco or from our certified partners. We rely on Alfresco’s community of users to support Alfresco Community Edition, including to provide bug fixes. Our expectation is for it to be a true community product – something that is not tightly controlled by Alfresco in the same way our Enterprise product is.
Alfresco Enterprise is licensed differently, though it is also 100% open source and at functional parity with Community Edition. We invest a great deal of effort in certifying third-party applications (e.g., Oracle databases, JBoss Portal, different application servers , etc.) to work with Enterprise. We rigorously test Enterprise to ensure enterprise-class stability and performance, and feed all bug fixes immediately into Enterprise (and allow our user community to support itself by writing its own bug fixes, integrating with third-party software, etc.).
Finally, we provide various levels of support – Gold, and Platinum – for Enterprise. Ultimately, customers who license Alfresco Enterprise are contracting for the right to use a certified, rigorously tested, and supported product. It is not possible to use the Enterprise binaries without purchasing a support contract from Alfresco or one of our certified partners.
What Open Source Means for Alfresco Customers
Once Open, Always Open
Over time, Alfresco (or a company that acquires Alfresco) might decide to streamline our licensing policies to respond to developer needs and to ensure the stability and commercial viability of our products. Any changes to our policy will be posted on our website. Of course, even if we change our policy and you have received a license to our code under the GPL, we will not (indeed, cannot) terminate the rights you have already been granted. Any changes will only apply going forward to new releases of our code. Neither Alfresco nor any potential acquirer of Alfresco can close off access to the software you license from us.
Importantly, open source also provides a perpetual “escrow” mechanism for our customers. Even if Alfresco were to fail as a company, our software would remain forever open source. A large and growing number of systems integrators and other third-party support providers exists for Alfresco, and could continue to service Alfresco’s customers even if we were to go out of business. In open source, the code matters more than the company. The benefits you derive from Alfresco’s software are tied to our code, and not to Alfresco as a corporate entity, giving you maximum IT investment protection.
Who Owns Alfresco’s Software?
The answer to this question is quite easy: We do. At Alfresco, we welcome contributions to our source tree, be they bug fixes, improvements, or other contributions. We also incorporate exceptional open source software packages like Lucene, Hibernate, and Freemarker, which are licensed under disparate open source licenses.
Even so, Alfresco is the sole and final arbiter of all code that becomes part of our source tree. There are no exceptions to this rule, and we hold rights to everything we ship. We require assignment of copyright to Alfresco for any suggested contributions to the core Alfresco product, with safeguards in place to ensure any contributed code is the copyrights, patents, and trademarks of the contributor’s and that he or she has the authority and the power to contribute it.
Of course, Alfresco users may freely modify our source code without contributing anything back to us, provided that they do not distribute these derivative works. If a derivative work is distributed outside the user’s organization the derivative work is subject to the GPL, unless the user contracts with Alfresco for a commercial license to our software. Even in this case, the user that chooses not to assign back derivative works to our commercially-licensed software will need to support its modifications without assistance from Alfresco.
If you modify Alfresco software and release any changes under the GPL, as may be required by that agreement, we appreciate your letting us know, so we can evaluate whether they would benefit the community as a whole. Of course, to maintain the integrity of our products, we will need to exercise discretion as to whether contributions you offer are included in our official source tree.
Why do we require copyright assignment to Alfresco?
If you make contributions and we accept them into our source tree, we want to make sure we have the flexibility to use those contributions under the GPL, other terms we may use in the future, or commercial terms. Of course, nothing will prevent you from making your contributions available under any open source licensing terms you choose. We simply ask that you allow us this flexibility, so our copyrights, patents, and trademarks position does not become too complicated. As a company, we have made a decision to make our copyrights, patents, and trademarks available to the community, so we want to make sure our resources are devoted to making our products the best they can be, rather than fighting legal battles over contributions. Therefore, if you wish to contribute code, we require that you do so under our standard contribution agreement, which gives us this flexibility.
By this mechanism, then, Alfresco is able to indemnify our customers against third-party copyrights, patents, and trademarks infringement claims, and its consequent cost advantages. We own the software we provide to our customers, be it internally developed code or community contributions. Customers licensing our certified, supported product therefore can do so with confidence that they won’t be subject to “SCO”-like lawsuits. Again, we have rights to the code that goes into our product. Every line of it.
What Happens if Alfresco’s Developer Community Disappears?
One of Alfresco’s fundamental advantages over proprietary competitors is the intimacy we enjoy with our customers and partners. Customers, prospective customers, and partners actively contribute code and testing to Alfresco, helping to tailor our product portfolio to their requirements. We rely on our community to help us keep development and quality assurance costs low by leveraging its involvement.
The question naturally arises, however, as to what would happen if interest in Alfresco waned and our community dried up. Today, while Alfresco derives significant benefits from our user community, we (like any other open source or proprietary company) do the vast majority of our core development. A dissipation in our developer community would make it more expensive for us to QA our software and would limit peripheral development and some core development that comes from outside our company, but we would continue to develop the world’s best Enterprise Content Management software, and our customers would benefit there from. We would possibly need to raise our prices, but still nowhere near the levels of our proprietary competitors, as our open source distribution, sales, and marketing models each give us massive cost advantages over our proprietary competitors.
Still, it is important to note that community development is a fundamental priority for Alfresco. We invest significant resources into this area (e.g., our Forge and forums sites), and our user community already exceeds 500,000, with velocity and breadth of development involvement accelerating and expanding daily. There are no signs of a collapse in our community; on the contrary, Alfresco’s user and developer community is booming.
Alfresco’s Trademark and Attribution Guidelines
Copyrights, patents, and trademarks are as important to Alfresco as it is to any proprietary software company. The difference for us is in how we choose to share these rights.
To maximize customer benefit while protecting the investments Alfresco, our partners, and our customers make in Alfresco’s software, we have opted to use the GNU General Public License (“GPL”). We protect our community’s freedom with the GPL and we protect our brand, and the trust that inheres in our brand, with trademarks.
Our trademarks protect us, and the community
While the GPL gives Alfresco users the freedom to change our software, we need to make sure this does not conflict with our responsibility to maintain our trademarks. Our trademarks are important to us as a company, of course, but also to the consuming public, which will associate our trademarks with the quality and reputation of our business. We need to strictly enforce our trademark rights to keep them valid, and to protect the public. This portion of our policy describes what you can do with our trademarks, and when you must seek our permission to use them.
Do not remove or alter our trademarks.
If you use or redistribute our binaries, you must not remove our trademarks from them. When you use our software in the exact form we provide it, we allow – and encourage – you to state that the software is Alfresco software, as long as you include the notices below. However, if you are distributing unmodified copies of Alfresco Community Edition over a Web site, please do this by providing a link directly to our site, rather than offering it on your own server.
If you are redistributing unmodified versions of our software, we would appreciate it if you would use a notice like the following in a prominent place on the packaging and about boxes for your software: “[Your product name] includes the Alfresco [content repository software].”
All this is necessary and/or helpful to be sure that you are using our trademarks correctly to identify us as the source of our software. However, if you have modified our software, we would appreciate it if you would include a notice (in a prominent place on the packaging and about boxes for your software) stating: “[This product includes software used under license from Alfresco Software, Inc., but it is not an Alfresco product and has not been tested, endorsed, or approved by Alfresco Software, Inc. or any of its affiliates].” In this case, you should remove any of our logos from the software. To make this easier for you, our source downloads – as opposed to our binaries – do not include our logos.
In all cases where you use our trademarks – including our name and our logos – you should also follow the guidelines below.
Do not use our trademarks in a way that states or suggests that we sponsor, endorse, or are otherwise affiliated with your project or product, without a formal license from us. We will consider such licenses on a case-by-case basis, but we may not grant you such a license. No formal license agreement is necessary if you wish to make purely informational reference to our trademarks (such as in a product review), but even informational references should follow our trademark guidelines. You must also follow these guidelines if you link to [www.alfresco.com]. However, you must make it clear that you are not endorsed by or affiliated with us, but are simply linking to our site.
Trademark Use Guidelines
The first or most prominent mention of our trademark Alfresco should be accompanied by the letters “TM” in superscript and an asterisk immediately to the right, ALFRESCO™*. Nearby in typeface large enough to read, you should include an asterisk next to the following: “ALFRESCO™ is a trademark of Alfresco Software, Inc., and is used under license.”
We may register our trademarks in the future, at which time it would be appropriate to replace the “TM” symbol with the registered trademark symbol (®). You do not need to use the TM symbol with every use of our name, only on the first and most prominent reference.
Trademarks should only be used as adjectives followed by a generic noun – for instance, ALFRESCO™ software. Our trademark should never be used as a noun, a verb, or in a possessive or plural form – it would be improper to refer to say “Alfrescos” or “ALFRESCO it.” Never vary the spelling and syntax of our trademarks. Please use no abbreviations or acronyms.
Concluding Remarks
Copyrights and trademarks and, in some cases, patents are critical to any software company or project, whether open source or proprietary. The difference lies in how a company makes these rights available to its partners and customers. Open source invites access, modification, and redistribution; proprietary source removes or restricts access, inhibits modification, and proscribes redistribution. Open source is therefore better suited to customers and partners that wish to maintain maximum control over the data and content they manage with software.
As an open source Enterprise Content Management company, Alfresco believes it is critical that our customers own their content. No vendor should use proprietary repositories, formats, or closed “standards” to make it difficult to get content out of its ECM system. Yet this is precisely what proprietary ECM vendors do, effectively controlling the future of sensitive customer content.
At Alfresco, we have opted for a liberal license to maximize customer and partner freedom. We couple this with a support-based business model that charges customers for the help we offer them, and not for big up-front license fees. Our only lock-in, then, is the satisfaction our customers and partners derive from our superior support and service.