To properly apply Jasig's licensing policy to a project, the following major items must be addressed:
- The License must be properly included with the project
- Notices must be properly maintained for the project
- All Jasig source files must carry a proper source header
- All third-party content must be handled properly
License
Place a plain-text copy of the license into a file named "LICENSE" in the root directory of the software distribution. This applies to both source and binary distributions of any kind. Use the following link for the contents of this file:
http://www.apache.org/licenses/LICENSE-2.0.txt
Notice
In the same directory as the "LICENSE" file (the root of every distribution), place a plain-text file named "NOTICE". This file must also be included in every source and binary distribution of the project.
The top of the NOTICE file must include the following text, suitably modified to reflect the project name and year(s) of distribution of the current and past versions of the project:
Copyright <Year>, JA-SIG, Inc. This project includes software developed by Jasig. http://www.jasig.org/ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. =========================================================================== [additional contributor copyright notices] =========================================================================== [third-party legal notices as required]
The rest of the NOTICE file should contain all required third-party notices.
The NOTICE file may also include copyright notices from contributors, if desired. Contributors should not place individual copyright notices directly into source code files.
Source Header
Every source file (including all code and documentation, excluding the LICENSE and NOTICE files) that is a direct part of the project should include a short license header at the beginning of the file, commented out using the appropriate comment markers for the type of file. This includes all files covered by an ICLA, CCLA, or SGLA. Any third-party files (such as libraries) should not be modified (see the next section).
The following text should be used in the source file header:
Licensed to Jasig under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. Jasig licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Any copyright notices in source files should either be moved to the NOTICE file or removed completely. Once properly modified, there should not be any copyright notices in any of the source files.
If your project is built with Maven you can use the Maven License plugin to generate the correct source headers. The Jasig parent pom contains the correct wording as above.
Third-Party Content
Third-party content (source code, binary artifacts like libraries, documentation, etc.) is anything that was not submitted directly to Jasig or that is not covered under an ICLA, CCLA, or SGLA. Jasig projects can use third-party content as long as the project is in compliance with the license under which the content is acquired, and as long as use of the third-party content does not violate Jasig's own licensing and policies. Use of any third-party content not available under one of the licenses on ASF's "Category A" list must first be reviewed by the project steering committee since it has implications for how the derivative work can be used. See the page on Third-Party Licenses for more details.
Third-party content should be handled much differently from Jasig content. Copyright and license notices inside source files should not be modified and the standard Jasig source header should not be added. Licenses for the third-party content should be included with the distribution and appropriate notices should be included in the NOTICE file. Minor modifications to third-party sources should be licensed under the same terms as the original third-party source, while major modifications to third-party sources should be handed on a case-by-cases by the project's steering committee.
Notes
It is acceptable to name the required files as "LICENSE.txt" and "NOTICE.txt", but the version without the file extensions is preferred.
Automating Project Licensing Compliance
Using Maven with the Jasig Parent POM provides plugins that will automatically update source files with the correct license header and generate the NOTICE file.