A Guide to the Legal Documentation for Eclipse-Based Content

Last updated: September 25, 2007

This document is intended to assist the Eclipse committers in fulfilling their obligations to implement the Eclipse IP Policy. In addition to their role as the leading developers on Eclipse projects, Committers are also charged with the responsibility of ensuring that the software distributed by the Eclipse Foundation meets the expectations of the community with respect to intellectual property. This document provides a set of specific checklists for developers on Eclipse Projects to follow regarding the legal documentation required in all source files, builds, and releases. While these checklists should cover most projects, there will obviously be cases where additional advice is needed: if so, please contact the Eclipse Management Organization.

1. Source Code

Every source file must have a Copyright and License Notice. The standard format for these notices can be found in Default Copyright and License Notice. If the source is to be licensed under a license other than the EPL alone, you must ensure that the Eclipse Foundation has approved the notice.

Source files must have the Copyright and License Notice before the files are checked into the eclipse.org source repository.

2. Documentation

The help documentation must have a Legal page with a copyright notice and a link to the About file in the plug-in that contains the help documentation. For example:

Documentation books usually contain a "Legal" page as the last page in the book.

3. Builds

Every build distribution, such as a zip or tar file, must contain a Eclipse Foundation Software User Agreement (known as the "SUA") in the root directory of the distribution in HTML format in a file named "notice.html".

A copy of the Project's primary license(s) must be in the root directory of the distribution in HTML format. In most cases, this will be the Eclipse Public License alone in a file named "epl-v10.html" In exceptional circumstances, the Board may approve the licensing of a project under license terms other than the EPL alone.

What is the Software User Agreement?

The Software User Agreement is the agreement that governs the use of all software distributed by the Eclipse Foundation. The SUA references the Eclipse Public License as the primary vehicle to grant license rights and obligations to use the software. In addition, it also references other legal notices and agreements and describes the potential layout of the legal documentation in the accompanying Content.

The reason for the SUA is that Eclipse-based content is highly modularized to facilitate ease of delivery, extensibility, and upgradeability. A typical Eclipse installation may potentially include plug-ins and features authored and/or distributed by many different parties including the Eclipse Foundation, other open-source organizations, and commercial vendors.

This modularity makes an Eclipse distribution somewhat different from a classical software product delivered with a single license file. The Eclipse Foundation SUA guides the consumer to the various licenses distributed through out the Eclipse Project distribution.

4. Features

A feature is a set of one or more related plug-ins and/or fragments that can be installed and upgraded together. Every feature must have at least three (usually at least four) legal files:

For example:

eclipse (installation root directory)
    features (features directory)
        org.eclipse.sdk_3.0.1 (feature directory)
            license.html (#1 Feature License)
            epl-v10.html (#2 Project's Primary License(s) (typically EPL alone) referenced by Feature License)
            feature.properties (#3 Feature Update License in "license" property)
    plugins (plug-ins and fragments directory)
        org.eclipse.sdk_3.0.1 (plug-in packaged as a directory)
            about.properties (#4 Feature Blurb in "blurb" property)
The first required file is "license.html". This file is required to be the Eclipse Foundation SUA in HTML format (and thus an exact duplicate of the "notice.html" in the root of the distribution). This file is referred to as The Feature License.

The second required file is the Eclipse Public License in HTML format in a file named "epl-v10.html" (and thus also an exact duplicate of the "epl-v10.html" in the root of the distribution).

Each feature has a file named "feature.xml" with a license node. Often the strings in the "feature.xml" file are externalized in a "feature.properties" file. Either way, the license node or property must contain the Eclipse Foundation SUA in PLAIN TEXT format. This text (node or property) is referred to as The Feature Update License.

Each feature has at least one plug-in associated with it which is the "feature plug-in" for that feature. Not surprisingly, this plug-in usually has the same name as the feature. The "about.properties" property named "blurb" contains text that appears in the "About features" dialog in the Eclipse workbench. This is known as a "Feature Blurb." Blurbs often contain copyright notices and any other statements of attribution that may be required by licenses.

Why So Many Copies?

For technical reasons (i.e., this is the way the software works), each of the different copies of the SUA and Project license(s) (e.g., EPL) are shown to the user at different times. We need to make sure that the SUA and Project license(s) are available to the user regardless of which installation and/or browsing mechanism he or she uses, thus the existence of numerous copies of the same legal documents.

What’s the Difference Between These Files?

The difference between the Feature License and Feature Update License is when they are shown to the user. The Feature License is only available once a feature has been installed. The Feature Update License is seen when a user is using the Eclipse Update Manager to install or upgrade a feature and must agree to an agreement before proceeding with the installation. One thing that is important to note is that with the distributed licensing model used by plug-ins, unless a Feature Update License contains an aggregation of all the notices from the plug-ins for a feature, a user will not be able to see these notices before installing the feature.

5. Plug-ins

All plug-in directories must have an "about.html" file describing the license terms of the code and content of the plug-in. The "about.html" file may also contain other information such as whether the content contains cryptographic functionality that may be subject to export controls. These "about.html" are collective known as "Abouts."

Most plug-ins of Eclipse Projects are pure EPL and thus the about.html file will be default about for EPL plug-ins. If a plug-in contains non-EPL content, read more about About files and how to write About files for third-party content.

In JAR’ed plug-ins, any local files linked from an About such as copies of licenses, must be located in a directory called "about_files." The contents of the "about_files" directory are handled specially so that links resolve correctly when the About in a JAR’ed plug-in is viewed in an external browser spawned from the About dialog.

As an example:

eclipse (installation root directory)
    plugins (plug-ins and fragments directory)
        org.apache.ant_1.6.2 (plug-in packaged as a directory)
            about.html About
            asl-v20.txt Apache Software License referenced by about.html
            LICENSE.dom.html W3C License referenced by about.html
        org.eclipse.core.runtime_3.1.0.jar (plug-in packaged as a JAR)
            about.html About
            about_files (directory for any local files linked from about.html)
                asl-v20.txt Apache Software License referenced by about.html

6. Download Web Pages

Any web page that makes builds available must have a link to the SUA with the following wording:

All downloads are provided under the terms and conditions of the Eclipse Foundation Software User Agreement unless otherwise specified.

Appendix A. Viewing All These Files

About Files

Users looking for legal documentation may find the Abouts by browsing the directory structure of an Eclipse installation but the files are also viewable from the "About plug-ins" dialog in the Eclipse workbench. To view the Abouts, go to the menu item Help -> About Eclipse Platform and then click on the button "Plug-in Details" and then select a plug-in and click on the button "More Info."

Feature Blurbs

To view the blurb for each installed feature, go to the menu item Help > About Eclipse Platform and then click "Feature Details" and then select a feature. The blurb will appear in the bottom half of the dialog.