Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning
titlePublic Review DraftAdopted

This is a public review draft for the new Jasig Licensing Policy . It has not yet been was formally adopted by Jasig and is subject to further changes. We are requesting comments on this draft until August 5, 2009the 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

...

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). This agreement clearly defines the terms under which intellectual property is being contributed and gives Jasig broader capabilities to provide proper governance over the project. This makes it possible for Jasig to properly defend the project, its contributors, and its adopters in the case of a legal dispute of some kind. It also allows Jasig to update the licensing of its projects over time as circumstances may dictate.

...

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 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.

Info

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 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).

...

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.

...

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.

...