eZ Publish / About / FAQ / Licensing
Licensing
These questions and answers help clarify legal issues related to the licensing of the eZ Publish project, and the GNU General Public License.
Our thanks to the Software Freedom Law Center for preparing this information for free software projects like eZ Publish.
- What is the license for eZ Publish?
- Can code licensed under GPL-compatible licenses be included in eZ Publish projects?
- Can eZ Publish projects include GPL-incompatible non-code assets? (e.g. fonts, icons, etc)
- Can eZ Publish projects depend on or link to GPL-incompatible code? (3rd-party libraries, APIs, etc)
- Who holds the copyright for eZ Publish?
- I want to release my work under GPL version 3 or under GPL version 2-only. Can I do so and host it on eZ Publish?
- What is the license for content on eZ Publish?
- The GPL requires that any recipients of a program receive its "source code". What does that mean for a web application?
- If I write a module or design, do I have to license it under the GPL?
- If I write a module or design, do I have to give it away to everyone?
- Can I sell eZ Publish, or a eZ Publish module, or a eZ Publish design?
- Is an agency, or service provider 'distributing code' on behalf of a client when under contract?
- Can I write a "bridge module" to interface between eZ Publish and another system or library?
- Do I have to give my web site's code to anyone who visits it?
- Is eZ Publish going to move to GPL version 3?
- I found a module or design in the contributions repository that says it's only available under version 2 of the GPL or is only under version 3 of the GPL. What should I do?
- I found a module or design in the contributions repository that says it's available under a different license than the GPL (including the LGPL or AGPL). What should I do?
- I have a question that's not answered here. What should I do?
- Why is eZ Publish a registered trademark of Ibexa? Does that mean it's not free?
What is the license for eZ Publish?
eZ Publish, and all contributed files that are derivative works of eZ Publish hosted on eZ Publish, are licensed under the GNU General Public License, version 2 or later. That means you are free to download, reuse, modify, and distribute any files hosted in eZ Publish's Git repositories under the terms of either the GPL version 2 or version 3, and to run eZ Publish in combination with any code with any license that is compatible with either versions 2 or 3, such as the Affero General Public License (AGPL) version 3.
Can code licensed under 'GPL-compatible' licenses be included in eZ Publish projects?
Yes, but it will be relicensed upon distribution from eZ Publish as GPL2 or later.
Can eZ Publish projects include GPL-incompatible non-code assets? (e.g. fonts, icons, etc)
Yes, so long as the maintainer has the right to distribute the non-code assets, they may be packaged and/or distributed "in aggregate" with GPL code. Only works that are derivative of the original work are subject to the GPL license.
Can eZ Publish projects depend on or link to GPL-incompatible code? (3rd-party libraries, APIs, etc)
Yes, the GPL does not restrict the use of code under incompatible licenses, only the packaging or distribution of it with GPL software. eZ Publish cannot host this incompatible code, but installing those dependencies with a tool like Composer is okay.
Who holds the copyright for eZ Publish?
eZ Publish and contributed modules and designs include code written by thousands of different people. All eZ Publish contributors retain copyright on their code, but agree to release it under the same license as eZ Publish. If you are unable or unwilling to contribute a patch under the GPL version 2 or later, do not submit a patch.
I want to release my work under GPL version 3 or under GPL version 2-only. Can I do so and host it on eZ Publish?
No. You can release your work under any GPL version 2 or later compatible license, however, you may only check it into eZ Publish's Git repositories if you are releasing it under the same license as eZ Publish itself, that is, GPL version 2 or later, allowing users to choose between the terms of the GPL version 2 or the terms in any new versions as updated by the FSF. If you are unable or unwilling to do so, do not check it into a eZ Publish Git repository.
What is the license for content on ezpublish.se7enx.com?
All content on the eZ Publish itself is copyrighted by its original contributors, and is licensed under the Creative Commons Attribution-ShareAlike license 2.0. Sample code is also available under the GPL version 2 or later.
The GPL requires that any recipients of a program receive its "source code". What does that mean for a web application?
The "source code" of a file means the format that is intended for people to edit. What that means depends on the file in question.
- For PHP code, the PHP file itself, without any compression or obfuscation, is its own source code. Note that for eZ Publish, template files are PHP code.
- For JavaScript code, the JavaScript file itself, without any compression or obfuscation, is its own source code.
- For CSS code, the CSS file itself, without any compression or obfuscation, is its own source code.
- For images, the "source code" varies. Depending on the image, that could mean the production version of the file as a PNG or GIF, or an original high-resolution JPG, or a Photoshop, Illustrator, or GIMP file. The "source code" is whichever version is intended to be edited by people.
- For Flash files, the source code is the editable FLA and AS files, and any other files needed to build the final SWF. The SWF file itself is the "object code" version, not the source version.
If I write a module or design, do I have to license it under the GPL?
Yes. eZ Publish modules and designs are a derivative work of eZ Publish. If you distribute them, you must do so under the terms of the GPL version 2 or later. You are not required to distribute them at all, however. (See question 8 below.)
However, when distributing your own eZ Publish-based work, it is important to keep in mind what the GPL applies to. The GPL on code applies to code that interacts with that code, but not to data. That is, eZ Publish's PHP code is under the GPL, and so all PHP code that interacts with it must also be under the GPL or GPL compatible. Images, JavaScript, and Flash files that PHP sends to the browser are not affected by the GPL because they are data. However, eZ Publish's JavaScript, including the copy of jQuery that is included with eZ Publish, is itself under the GPL as well, so any Javascript that interacts with eZ Publish's JavaScript in the browser must also be under the GPL or a GPL compatible license.
When distributing your own module or design, therefore, the GPL applies to any pieces that directly interact with parts of eZ Publish that are under the GPL. Images and Flash files you create yourself are not affected. However, if you make a new image based off of an image that is provided by eZ Publish under the GPL, then that image must also be under the GPL.
If you commit that module or design to a eZ Publish Git repository, however, then all parts of it must be under the GPL version 2 or later, and you must provide the source code. That means the editable form of all files, as described above.
If I write a module or design, do I have to give it away to everyone?
No. The GPL requires that if you make a derivative work of eZ Publish and distribute it to someone else, you must provide that person with the source code under the terms of the GPL so that they may modify and redistribute it under the terms of the GPL as well. However, you are under no obligation to distribute the code to anyone else. If you do not distribute the code but use it only within your organization, then you are not required to distribute it to anyone at all.
However, if your module is of general use then it is often a good idea to contribute it back to the community anyway. You can get feedback, bug reports, and new feature patches from others who find it useful.
Can I sell eZ Publish, or a eZ Publish module, or a eZ Publish design?
Yes. However, you must distribute it under the GPL version 2 or later, so those you sell it to must be allowed to modify and redistribute it as well. See questions 6 and 7 above.
Is an agency, or service provider 'distributing code' on behalf of a client when under contract?
No, an agency, freelancer, or other service provider is acting as the customer's agent when assembling a code base, and not distributing the code in the sense intended by the GPL. Therefore service providers can use GPL code together with GPL-incompatible code for a client, but cannot redistribute that code to the public.
Can I write a "bridge module" to interface between eZ Publish and another system or library?
That depends on the other system.
It is possible to distribute a module that communicates with a 3rd party system over HTTP, XML-RPC, SOAP, or some other wire protocol, that leaves the 3rd party system unaffected.Examples of such systems include Flickr, Mollom, or certain legacy systems.
It is possible to distribute a module that integrates with a 3rd party PHP or JavaScript library, as long as the library is under either a GPL or GPL-compatible license. Examples of compatible licenses include BSD/MIT-style "permissive" licenses or the Lesser General Public License (LGPL). The Free Software Foundation maintains a list of popular GPL-compatible licenses.
It is not possible to distribute a module that integrates a non-GPL compatible library with eZ Publish, because it would be a derivative work of both eZ Publish and that other library and would therefore violate either the GPL or the license of the other library.
Please be aware that includes some open source licenses that are incompatible with the GPL for one reason or another, such as the PHP license used for most PEAR packages.
If you wish to contribute a bridge module to a eZ Publish Git repository, please do not check in the 3rd party library itself. Doing so creates a fork of that 3rd party library, which makes it more difficult to maintain and only serves to waste disk space. Instead, provide detailed instructions for users to download and install that 3rd party library for use with your module. If you believe that your module is a special case where it really does need to be included in a Git repository, usually only because you need to make substantial modifications to it in order for it to work, please file an issue with in the eZ Publish Issue Ticket System first to discuss it.
Do I have to give my web site's code to anyone who visits it?
No. The GPL does not consider viewing a web site to count as "distributing", so you are not required to share the code running on your server.
Is eZ Publish going to move to GPL version 3?
Because eZ Publish is licensed under the GPL version 2 or later, eZ Publish may be distributed under GPL version 3. At this time, there are no plans to begin distributing eZ Publish under only version 3 or later. That is an option that may be considered at a later date, however.
I found a module or design in the contributions repository that says it's only available under version 2 of the GPL or is only under version 3 of the GPL. What should I do?
Please file an issue in the individual project queue linking back to this page. If the maintainer is not responsive or does not respond appropriately you can move it to the eZ Publish Issue Ticket System and we will look into the matter.
I found a module or design in the contributions repository that says it's available under a different license than the GPL (including the LGPL or AGPL). What should I do?
Please file an issue in the eZ Publish Issue Ticket System and we will look into the matter.
I have a question that's not answered here. What should I do?
If you have a general question about eZ Publish licensing or other legal issues, please post your question in the Share eZ Publish Forums.
If you have a question about your specific case, please consult with a copyright attorney in your area. We cannot and will not offer legal advice.
Why is eZ Publish a registered trademark of Ibexa? Does that mean it's not free?
The software itself is completely free, under the terms of GPL. However, the name eZ Publish is a registered trademark "to create a level playing field for everyone interested in using the eZ Publish trademark."