On May 2002, eCos was released under a modified version of the well known GNU General Public License (GPL), making it an official GPL-compatible Free Software License. An exception clause has been added to the eCos license which limits the circumstances in which the license applies to other code when used in conjunction with eCos. The exception clause is as follows:
As a special exception, if other files instantiate templates or use macros or inline functions from this file, or you compile this file and link it with other works to produce a work based on this file, this file does not by itself cause the resulting work to be covered by the GNU General Public License. However the source code for this file must still be made available in accordance with section (3) of the GNU General Public License. This exception does not invalidate any other reasons why a work based on this file might be covered by the GNU General Public License.
The goal of this license is to serve the eCos user community as a whole. It allows all free eCos users to develop products without paying anybody anything, no matter how many developers are working on the product or how many units will be shipped. The license also guarantees that the eCos source code will always be freely available. This applies not only to the core eCos code itself but also to any changes that anybody makes to the core. In particular, it should prevent any company or individual contributing code to the system and then later claiming that all eCos users are now guilty of copyright or patent infringements and have to pay royalties. It should also prevent any company from making some small improvements, calling the result a completely new system, and releasing this under a new and less generous license.
The license does not require developers to release the source code of any applications that includes eCos. However, if you make any changes to code covered by the eCos license, or writes new files derived in any way from eCos code, then the license stipulates that these changes must be made available in source code form to all recipients of binaries based on the modified code, either by including the sources along with the binaries they deliver (or with any device containing such binaries) or with a written offer to supply the source code to the general public for three years.
eCosPro licensed code is naturally excluded from this requirement.
It is perhaps most practical for eCos developers to make the source code available online and inform those who are receiving binaries containing eCos code, and probably also the eCos maintainers, about the location of the code. See the full text of the GPL for the most authoritative definition of the obligations.
Although it is not strictly necessary to contribute the modified code back to the eCos open source project, the eCos maintainers are always pleased to receive code contributions and are responsible for deciding whether such contributions should be applied to the public repository. In addition, a copyright assignment is required for any significant changes to the core eCos packages.
The result is a royalty-free system with minimal obligations on the part of eCos application developers. This has resulted in the rapid uptake of eCos. At the same time, eCos and eCosPro are fully open source with all the benefits that implies in terms of quality and innovation providing a winning combination.
The following queries provide some clarification as to the implications of the eCos license. They do not consititute part of the legal meaning of the license.
Q. What is the effect of the eCos license?
A. In the simplest terms, when you distribute anything containing eCos code, you must make the source code to eCos available under the terms of the GPL.
Q. What if I make changes to eCos, or write new code based on eCos code?
A. Then you must make those changes available as well.
Q. Do I have to distribute the source code to my application? Isn't the GPL "viral"?
A. You do not have to distribute any code under the terms of the GPL other than eCos code or code derived from eCos. For example, if you write a HAL port based on copying an existing eCos HAL in any way, you must make the source code available with the binary. However you would not need to make available any other code, such as the code of a wholly separate application linked with eCos. For guidance see the eCosPro Software Licenses Compliance Guide.
Q. I would rather stick with the RHEPL code, but I updated my anonymous CVS checkout.
A. You can check out the final version of anonymous CVS before the license change using the CVS tag last-rhepl. See the anonymous CVS access page for details.