Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

Adopted

This new Jasig Licensing Policy was formally adopted by the Jasig Board of Directors at the board meeting held on August 24, 2009. It is now ready to be implemented across the Jasig websites and project. Comments should be sent to the Jasig public discussion mailing list at jasig-licensing@lists.jasig.org

Moving

This information is all the process of moving to new locations. The first half of this content will go to the main Jasig website and will be at http://www.jasig.org/licensing/ and the rest will go into a more detailed area here in Confluence in the new Licensing space.

These first three sections would be appropriate to put on the public Jasig website. This would mirror the content from the public Apache website.

As a community organization supporting open source software development, Jasig uses a set of licenses, agreements, and policies to manage its software projects and the intellectual property surrounding them. These help us to provide proper governance and sustainability to these projects.

1. Licensing

Jasig has adopted the licensing practices of the Apache Software Foundation. Jasig also follows the ASF in many of its intellectual property management policies and in its community project structures.

Specifically, the default software license for all Jasig projects is the Apache License, Version 2.0. In the absence of an explicit licensing declaration, all software
released by Jasig is implicitly licensed under the Apache License, Version 2.0. More specific information about the Apache License is available in the Apache License and Distribution FAQ.

2. Contributor Agreements

Jasig requires that all project contributors complete a Contributor License Agreement (CLA). The CLA clearly defines the terms under which intellectual property is being contributed, and affords Jasig greater latitude to provide comprehensive governance over the project.

The Contributor License Agreement enables Jasig to update the licensing of its projects, when necessary or desirable, while maintaining the provenance of the code, and the rights of Jasig, as well as those of the contributors and adopters of this code.

The CLA also makes it possible for Jasig, at its corporate discretion, to defend the project, and/or its contributors and adopters, should the project become the subject of any claim or dispute, legal or otherwise.

In all cases, contributors retain full rights to use their original contributions for any other purpose, while providing Jasig and its projects the right to distribute and extend their contributed work.

Individuals must have an Individual Contributor License Agreement (ICLA) on file with Jasig before any significant contributions will be accepted and before commit privileges will be granted on Jasig projects.

Organizations that have tasked employees to work on a Jasig project should also complete a Corporate Contributor License Agreement (CCLA) so intellectual property that may have been assigned as part of an employment agreement can still be properly contributed. Individuals still need to submit an ICLA, even when their organizations has completed a CCLA. Individuals are responsible for making sure their organization has completed a CCLA if their contributions are owned by their employer.

When an individual or corporation donates existing software or documentation to a Jasig project, they need to execute a formal Software Grant License Agreement (SGLA) with Jasig. Incubating projects with preexisting codebases are required to execute the Jasig SGLA prior to formal acceptance as sponsored Jasig project.

Contributor License Agreements may be submitted to Jasig in the following way:

  • Postal Mail
    • Jasig Licensing
    • P.O. Box 351989
    • Westminster, CO 80035-1989
    • USA
  • Fax
    • Attention: Jasig Licensing
    • +1-303-495-3812
  • Email

Historical Note: Some Jasig projects were previously managed under the New BSD License. Contributions to these projects were then accepted under the terms of that license. For historical purposes, the New BSD License is broadly interpreted as the Contributor License Agreement for those contributions, and those projects still honor all the terms of that License. New contributions to any Jasig project are now only accepted with an ICLA, CCLA, or SGLA in place first.

3. Frequently Asked Questions (FAQ)

Q1. Why has Jasig adopted the Apache License?

First, Jasig strongly support the use of mainstream software licenses that have been approved by both the Free Software Foundation and the Open Source Initiative. Jasig also feels that License Proliferation is a problem and that all Free / Open Source Software (FOSS) projects should endeavor to use the widely-adopted, well-understood license that best meets their needs.

Second, since Jasig projects are frequently combined with other open source projects, Jasig wanted to select a license that is widely compatible with those projects and that is generally as permissive as possible. At the same time Jasig wanted to move to a comprehensive license that provides appropriate protections for both contributors and adopters of open source. After reviewing all the mainstream open source licenses, it was clear that the Apache License best fits Jasig's needs.

Q2. Why not adopt a copyleft license like the GNU General Public License (GPL)?

Jasig support the ideas behind "copyleft" and believe that free software should stay free. However, many of the communities and projects that Jssig regularly collaborates with currently avoid copyleft protection for their projects because they perceive it as a barrier to widespread adoption. Specifically, the "viral" nature of copyleft licenses like the GNU General Public License is viewed negatively by many. In the interests of continued symbiotic relationships with these projects and to promote adoption of Jasig projects as widely as possible, Jasig is not using copyleft licenses.

Jasig does strongly encourage anyone who improves upon a Jasig project to contribute those changes back to the community. This is mutually beneficial since the community gets a better project and the contributor does not have to maintain a diverging codebase.

Q3. Why not adopt the Educational Community License (ECL)?

The Educational Community License v2 (ECL) is identical to the Apache License v2, except for a minor change in section 3 that narrows the conditions of any implicit patent grant. This change was requested by some institutions participating in some key projects specific to higher education. Only the Sakai project and the Kuali projects appear to use the ECL at this time.

Jasig projects have tended to be more infrastructure focused and are not exclusive to the domain of higher education. Jasig did not want to adopt the ECL because its relative obscurity outside higher education would be a barrier to widespread adoption of Jasig projects. Jasig also notes that several other infrastructure projects in higher education, such as Fluid and Shibboleth, have also avoided the ECL and have adopted the Apache License.

Q4. Why not continue to use the New BSD License as previously used by Jasig projects?

The New BSD License is a very simple and straightforward open source license. Its simplicity is both its greatest strength and its greatest weakness. This license simply does not provide enough protection for either contributors or adopters to really understand the terms under which the software is being shared. Jasig wanted to move to a more comprehensive license that fully defined the nature of the agreement and provided clearer protection to all the parties involved.

Q5. Why is Jasig requiring Contributor License Agreements (CLAs)?

There are two main reasons that Jasig requires Contributor License Agreements before accepting contributions to its projects.

The first reason for requiring CLAs is to provide proper legal protection to the contributors and the adopters of the projects. CLAs protect contributors by explicitly making it clear what the terms and conditions are for properly contributing to a project, thereby avoiding any confusion or misunderstandings between the contributor, the project, and the community. CLAs protect adopters of the project by ensuring that the contributions that make up the project are legitimately and appropriate licensed all the way from the contributor to the adopter. Furthermore, CLAs give Jasig better legal standing to defend against violations of the project license, providing protection for both contributors and adopters.

The second reason for requiring CLAs is to allow Jasig to better ensure the sustainability of the project. In the future, there may be unforeseen needs to adjust the licensing of Jasig projects. Without appropriate CLAs in place for all contributions, Jasig would have to seek individual permission from all past contributors in order to make changes to the licensing of the overall project - this could prove impossible in a long-running project with hundreds of contributors. The Mozilla Relicensing effort serves as a cautionary tale as to what can happen to projects that do not have central governance with the ability to adjust project licensing.

Q6. How do CLAs benefit developers?

As mentioned in some of the earlier questions this policy benefits developers in two ways:

  1. The Apache License is a comprehensive license that fully defines the nature of the agreement between the developers of the software and the users of the software and thereby provides clearer protection to all the parties involved, including developers.
  2. The Jasig CLAs provide explicit assertions about the standing of the contributor to make the contribution, the provenance of the contribution, and the terms and conditions under which the contribution is being made to Jasig. This clarity provides better protection to the developers and their contributions.

Q7. How do CLAs benefit users?

As mentioned in some of the earlier questions this policy benefits users in two ways:

  1. The Apache License is a comprehensive license that fully defines the nature of the agreement between the developers of the software and the users of the software and thereby provides clearer protection to all the parties involved, including users.
  2. The Jasig CLAs provide explicit assertions about the standing of the contributor to make the contribution, the provenance of the contribution, and the terms and conditions under which the contribution is being made to Jasig. This clarity provides better protection to the users because there is an explicit licensing chain fully connecting the copyright holders and the end users.

Q8. Who should I contact with questions about Jasig licensing or intellectual property?

Simply send an email to licensing@jasig.org and someone from Jasig will respond to your question as soon as possible. You can also find more information about our licensing policies in our community wiki.

These remaining sections are probably more appropriately maintained in the community wiki (but still publicly accessible), since they are documentation for how to implement this policy.

Implementation

To properly apply Jasig's licensing policy to a project, the following major items must be addressed:

  1. The License must be properly included with the project
  2. Notices must be properly maintained for the project
  3. All Jasig source files must carry a proper source header
  4. 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

Notices

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.

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.

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.

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.

Transition Process

Existing Jasig projects, like uPortal and CAS, will need to transition from their current licensing process to this new process. This must be handled carefully to make sure future intellectual property problems are not created in the process. For each project, there will be two major steps to this process: 1) moving the committers to the new policy and then 2) moving the codebase to the new policy. The project steering committees are responsible for ensuring this process is executed properly.

Committers

First, the project has to make a transition with all the committers. Before the project can change over a codebase to use the new license or issue any releases under the new license, it must get all the current active committers to complete at least an ICLA, and optionally a CCLA.

Getting organizations to complete the CCLA is encouraged, but optional. Individuals are encouraged to get their organization to complete the CCLA since it provides them with better protection for their contributions. But the ICLA is sufficient to provide Jasig and adopters with the protections Jasig is seeking from this process.

Institutions who have previously made meaningful contributions are highly encouraged to complete a CCLA and to specifically include a grant of all previous contributions within the CCLA.

The steering committee will run this process and set a deadline by which active committers must complete an ICLA. Once that deadline is reached, anyone who has not completed an ICLA will have their commit privileges suspended. These privileges will be restored as soon as the ICLA is completed.

Codebase

Second, the project has to make a transition with the codebase. Once the active committers have all completed an ICLA, the project can then make the transition of the codebase to the new license. There are still some important details for how this needs to be done that are different from how Jasig would handle a new project.

All the requirements for the LICENSE and NOTICE files still apply, so those files should be set up accordingly.

Because all of the preceding contributions to Jasig projects were done under the New BSD License and there were no Contributor Agreements in place, Jasig must continue to honor the terms of the New BSD License under which Jasig has rights to the current codebase. Fortunately, the requirements of the New BSD License and the Apache License 2.0 that Jasig is adopting are fully mutually compatible. The Apache Software Foundation itself considers New BSD licensed projects fully compatible with the Apache License and appropriate for inclusion within Apache projects. See the ASF's Legal FAQ for more details on this, specifically the reference to the "Category A list" of licenses.

To continue to honor the terms of the New BSD License, projects simply need to include its required statements in the NOTICE file included with each project. So, the NOTICE file for these projects should contain the following:

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.


Requirements for sources originally licensed under the
New BSD License:

Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the
following conditions are met:

 - Redistributions of source code must retain the above
   copyright notice, this list of conditions and the
   following disclaimer.

 - Redistributions in binary form must reproduce the above
   copyright notice, this list of conditions and the
   following disclaimer in the documentation and/or other
   materials provided with the distribution.

 - Neither the name of JA-SIG, Inc. nor the names of its
   contributors may be used to endorse or promote products
   derived from this software without specific prior written
   permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Any additional notices required from third-party sources should then be added to the bottom of the NOTICE file.

The source header needs to be added to every source file in the codebase. This header should replace any existing header that may already be in the file. If there are copyright notices present in the source files, those should be moved to the NOTICE file and should be placed after the text listed above, but before the third-party notices (which should stay at the end of the file).

Once the LICENSE and NOTICE files are properly in place and all the source headers have been modified accordingly, the codebase is now ready for a first release under the new license.

  • No labels