As of May 2002, eCos is released
under a modified version of the well known GNU General Public License
(GPL), now 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 the license is to serve the
eCos user community as a whole. It allows
all 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 users to
release the source code of any applications that
are developed with eCos. However, if
anybody makes any changes to code covered by the
eCos license, or writes new files derived
in any way from eCos code, then we believe
that the entire user community should have the opportunity to benefit
from this. 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 you 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. 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,
we are always pleased to receive code contributions and hope that
developers will also be keen to give back in return for what they
received from the eCos project completely
free of charge. The eCos maintainers 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 application developers. This has resulted in the rapid
uptake of eCos. At the same time,
eCos is fully open source with all the
benefits that implies in terms of quality and innovation. We believe
that this is 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.
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.