Chapter 3. Licensing

3.1. eCosPro Non-Commercial Public Licence Overview

The eCosPro Non-Commercial Public License applies to elements of eCosCentric's intellectual property within a distribution. Depending on the particular release this may cover various files within the HAL, device drivers, documentation and other components. All these files are clearly marked with a reference to the eCosPro Non-Commercial Public Licence in their headers. Key requirements of the license are:

  • You may only make non-commercial use of these elements, as well as any of their derivatives in any form. Non-commercial use includes the distribution of all formats of these elements.
  • Commercial use and/or distribution requires an eCosPro License

For further clarification of non-commercial use, refer to the Definitions section of the license and its Example Usage appendix.

When distributing code, or derivatives such as object or binary code, under this license, including any hardware or device containing the code or its derivatives, you MUST:

  • give notice that portions of the software, within the device if applicable, is covered by this license and may NOT be used for commercial purposes; and
  • include the text of and/or the URI to, this license; and
  • either (a) include the software source with the distribution or device in machine readable format on a physical medium; or (b) include a note either offering the recipient the sofware source in machine readable format on a physical medium or inform the recipient where the software sources may be accessed from, if necessary providing the server connected to the internet from where the software source may be accessed.

3.2. eCosPro Licence Overview

The eCosPro License removes all of the requirements of the eCosPro Non-Commercial Public License, permitting distribution of binary and object code deriatives without restriction and allowing commercial use of the software. A commercial eCosPro Distribution also includes files within the HAL, device drivers, and other components which are clearly marked with a reference to the eCosPro License in their headers. While binary and object code derivatives of these files may be freely copied, these source files themselves must not be redistributed.

  • You CANNOT distribute any source code provided exclusively under the eCosPro License.
  • Source code provided originally under the eCosPro Non-Commercial Public License and subsequently re-licensed under the eCosPro License does not have to be made available to recipients of binary or object code derivatives. However, you may still choose to make such source code available but may ONLY do so under the under the terms and conditions of the eCosPro Non-Commercial Public License.
  • Although not specifically an eCosPro license issue, you MUST also ensure that you do not redistribute any eCosCentric proprietary applications or information. This includes your licensee file, if provided.

The full eCosPro License is available online at

When shipping a product with eCos or eCosPro, developers and OEMs are encouraged to read the eCosPro Software Licenses Compliance Guide which provides a set of guidelines to follow when releasing products that incorporate software from an eCosPro release. It does not claim to be authoritative, it is still your responsibility to read, understand and comply with the various licenses that apply to different portions of the runtime source code.

3.3.  eCos Licence Overview

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

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 Non-Commercial Public licensed code has similar requirements.

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.

3.3.1. Questions and answers

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.

3.4. Previous eCos License

Prior to May 2002, eCos was released under the Red Hat eCos Public License (RHEPL). The RHEPL required any modifications to eCos code to be made available under preferential terms to Red Hat and was therefore incompatible with code licensed under the GPL. The use of eCos source code which was licensed under the RHEPL is not affected by the switch to the modified GPL for later revisions.

3.5. Documentation License

Most of the HTML and online eCosPro documentation is published under one of three licenses:

The PDF version of the documentation is a collection of these works and is therefore also provided under both of these licenses. The original SGML from which items (partitions, chapters, sections, etc) licensed under the Open Publication License may be downloaded from or is provided as part of your installation of eCosPro. The full text of the Open Publication License may be found at Modification, reproduction or distribution of any documentation published under the eCosPro License in any form is strictly prohibited, while documentation generated from source or derivatives licensed under the eCosPro Non-Commercial Public License may only be published for non-commercial purposes and carries with it requirements to make the sources or derivatives available to its recipients.

HTML and online versions of the documentation each contain a link at the bottom of each page that specifies the license under which it was provided.