| Overview | |
| Microsoft Public License (Ms-PL) | |
| Microsoft Reciprocal License (Ms-RL) | |
| Microsoft Reference License |
Over the past five years, Microsoft released more than 150 source code distributions through its Shared Source Initiative. Like most organizations dealing with the licensing of source code, Microsoft used a variety of licenses for these releases.
Based on the experience gained through the Shared Source Initiative, Microsoft drafted three simplified licenses with the following attributes:
| • | Short and easy to understand - The new licenses are typically shorter than a typewritten page and are easy to read and understand. |
| • | Effective and modern - Although simple, Microsoft designed the licenses to be effective and to reflect modern best practices in source code licensing. |
| • | Efficient - By using three simplified licenses, Microsoft streamlined its own internal source code release process, allowing it to more rapidly release its source code. |
| • | Ecosystem-friendly - Using these three simple and well-understood licenses, Microsoft helped to simplify source code sharing throughout various Microsoft software ecosystems, and helped to avoid excessive license proliferation. |
These licenses provide Microsoft and developers a broad spectrum of licensing approaches to facilitate an ever-growing rich set of source code distributions. Microsoft provides generic forms of these licenses to non-Microsoft developers. These non-Microsoft developers have used the Microsoft Shared Source licenses to license more than 700 of their own source-code distributions.
The three licenses are:
| • | Microsoft Public License (Ms-PL) - The Ms-PL is the least restrictive of the Microsoft source code licenses. It allows licensees to view, modify, and redistribute the source code for either commercial or non-commercial purposes. Under the Ms-PL, licensees may change the source code and share it with others. Licensees may also charge a licensing fee for their modified work if they so wish. Microsoft uses this license most commonly for its developer tools, applications, and components. |
| • | Microsoft Reciprocal License (Ms-RL) - The Ms-RL is a license that is best used for collaborative development projects. This type of license is commonly referred to as a reciprocal source code license and carries specific requirements if licensees choose to combine Ms-RL code with the licensee’s original code. The Ms-RL allows for both non-commercial and commercial modification and redistribution of licensed software and carries a per-file reciprocal term. |
| • | Microsoft Reference License - The Microsoft Reference License is a reference-only license that allows licensees to view source code in order to gain a deeper understanding of the inner workings of a given technology. It does not allow for modification or redistribution. Microsoft uses this license primarily for technologies such as its development libraries. |
Source code licensing is an inherently complex topic. There are many possible permutations or interpretations of any given license. It is not our intent to redefine all source code licensing; rather our goal is to simplify the approach taken by Microsoft. Existing Shared Source offerings of Microsoft will remain under the terms and conditions of their existing licenses.
The Shared Source license templates do not apply to the Enterprise Source Licensing Program, Systems Integrator Source Licensing Program, OEM Source Licensing Program, MVP Source Licensing Program, Windows CE Premium Source Licensing Programs, or the Government Security Program.
Microsoft supports the right of a developer to make use of any license for their code, and highly recommends that developers obtain appropriate legal advice regarding their choice of a source code license.
The Microsoft Public License (Ms-PL) is the least restrictive of the Microsoft source code licenses. It allows licensees to view, modify, and redistribute the source code for either commercial or non-commercial purposes. Under the Ms-PL, licensees may change the source code and share it with others. Licensees may also charge a licensing fee for the modified work.
The copyright and patent grants in this license are both royalty free, meaning that licensees do not have to pay anything to licensor to make use of the source code. There is no obligation for licensees to publish any changes they make in either binary or source code form. The licensee is required to keep notices in the code for copyright, patent, trademarks, or other forms of attribution.
Microsoft has created a limited version, the Microsoft Limited Public License (Ms-LPL), of this license to be used for restricting usage to the Windows platform only. The platform restriction is a measure that may be chosen for a particular source code release in order to enable positive interaction with Windows-based developers.
Microsoft cannot provide legal advice on the use or implications of this license. We recommend that developers obtain appropriate legal advice before deciding how to license their source code.
The Microsoft Reciprocal License (Ms-RL) is a license that is best used for collaborative development projects. This type of license is commonly referred to as a reciprocal source code license and carries specific requirements if licensees choose to combine Ms-RL code with their own code. Nearly all current reciprocal licenses are based on the act of distribution to trigger their terms. The Ms-RL seeks to apply the reciprocal terms in a commercially reasonable fashion and to give developers clear guidance as to when the Ms-RL’s reciprocal provisions come into play.
Developers often have a range of architectural options at their disposal when crafting a particular product or solution. They frequently have the option to design a larger work as a series of separate files or components that communicate with each other at runtime on the end user’s computer, as opposed to one monolithic piece of code that is distributed to the end user as a single file. Although these architectural differences may not be obvious to the end user, they may have significant licensing implications for a developer, particularly if the developer uses Ms-RL code in creating a larger work. The Ms-RL (like the Mozilla Public License) works on a “file-by-file” basis. This means that if a developer uses Ms-RL code in a particular file then the entire file that contains the Ms-RL source code (including any other code in that file, no matter who wrote it), must be redistributed in source code form under the terms of the Ms-RL. On the other hand, for any files in larger works that do not contain Ms-RL code, the developer is free to license those files under the terms of their choice. This is true regardless of how these “non-Ms-RL” files interact with or communicate with the Ms-RL files at runtime. In other words, if the developer releases code under the Ms-RL and someone includes it in a file in their project (and then distributes their project to others), they must distribute under the Ms-RL anything that is in the specific file that contains the original developer’s work. While this file-by-file threshold might at first seem arbitrary, it has the benefit of being an easy to interpret, bright-line rule.
Thus, the intent of the reciprocal license is to use licensing as a mechanism to keep certain community-based code “in the community,” while allowing companies to commercialize and license (under terms of their choice) their “value add” code that interacts with the community-based code.
The copyright and patent grants in this license are both royalty free, meaning that licensees do not have to pay anything to the licensor to make use of the source code. The Licensee is required to keep any notices in the code for copyright, patent, trademarks, or other forms of attribution.
Microsoft has created a limited version, the Microsoft Limited Reciprocal License (Ms-LRL), of this license to be used for restricting usage to the Windows platform only. The platform restriction is a measure that may be chosen for a particular source code release in order to enable positive interaction with Windows-based developers.
Microsoft cannot provide legal advice on the use or implications of this license. We recommend that developers obtain appropriate legal advice before deciding how to license their source code.
The Microsoft Reference License is the most restrictive of the Microsoft source code licenses. The license prohibits all use of source code other than the viewing of the code for reference purposes. The intent of this license is to enable licensors to release, for review purposes only, more sensitive intellectual property assets.
Microsoft commonly uses this license for developer libraries where modification is not required to make use of the source code. In these cases, the importance of transparency is based on the need for developers to more deeply understand the inner workings of the source code. In doing so, the licensees will be more effective in writing software that makes use of the licensed source code.
The copyright and patent grants in this license are both royalty free, meaning that the licensee does not have to pay anything to the licensor to make use of the source code. The license limits the source code release to use on the Windows platform only.
Microsoft cannot provide legal advice on the use or implications of this license. We recommend that developers obtain appropriate legal advice before deciding how to license their source code.