The Microsoft Public License (Ms-PL) is an open source software license most frequently associated with .NET projects. As the name suggests, the Ms-PL was developed by Microsoft; it was OSI (Open Source Initiative) approved in 2007.
The Ms-PL falls somewhere between a permissive license and weak copyleft license — the Free Software Foundation (FSF) considers it a weak copyleft license, while other sources view it as permissive.
Regardless of the label, the Ms-PL occupies a somewhat unique place in the licensing landscape for a few reasons, including its requirements around licensing derivative works. We’ll cover that provision — and discuss how the Ms-PL compares to the Microsoft Reciprocal License (Ms-RL) — in this blog.
Microsoft Public License (Ms-PL) Requirements and Permissions
The Microsoft Public License includes several requirements that are commonly found in open source licenses. These include:
- You must retain all copyright, patent, trademark, and attribution notices from the original when distributing a copy or modification of Ms-PL code
- You must include a copy of the full license text when distributing licensed software in source code form
- You are not granted a trademark license — in other words, you don’t have the rights to use contributors' names, logos, or trademarks.
- You can’t hold contributors to the original Ms-PL licensed software liable for damages — as the license text states, “you bear the risk of using it”
Like the weak copyleft Mozilla Public License 2.0 and the permissive Apache License 2.0 (among others), the Ms-PL also includes a defensive termination clause, which reads as follows:
If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
Finally, the Ms-PL includes a provision that governs how copies/modifications/larger works based on the Ms-PL code must be licensed. This is Section 3D of the license text, which reads as follows:
If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
We’ve seen some confusion (and conflicting analyses) of this clause. And, as always, we do recommend you seek legal counsel if you have specific questions about open source license compliance.
But, based on consultation with our legal network, our best interpretation is as follows:
- If you distribute the Ms-PL software, modified or unmodified, in source code form, you can only redistribute under the Ms-PL
- If you distribute the Ms-PL software, modified or unmodified, in binary form, you can use any license that does not conflict with the Ms-PL
- If you distribute a larger work that uses the software in source code form, you can apply any terms you like to the parts other than the Ms-PL software
- If you distribute a larger work that uses the software in binary form, you can apply any terms you like to the whole, as long as they don't conflict with Ms-PL as applied to the Ms-PL software
Microsoft Public License (Ms-PL) Permissions
The Microsoft Public License grants users of the licensed code a range of permissions. These include:
- The ability to use the software for commercial purposes
- The ability to modify the software and create derivative works
- The ability to distribute copies and/or derivative works of the licensed software
Microsoft Public License (Ms-PL) vs. Microsoft Reciprocal License (Ms-RL)
The Microsoft Reciprocal License (Ms-RL) is a weak copyleft license that’s relatively similar to the Ms-PL, but with a source code sharing requirement.
The Ms-RL requires you to disclose source code and include a copy of the license when you distribute any file with Ms-RL licensed code in it. (Though, as with the Ms-PL, you are allowed to license other files that are “entirely your own work and do not contain” Ms-RL-licensed code under the terms/license of your choice.)
Aside from the source code sharing requirement, the licenses are relatively similar. Both require you to retain all copyright, patent, trademark, and attribution notices from the original when distributing any portion of the software. Both have explicit “no trademark license” clauses (i.e. you don’t have the rights to use contributors' names, logos, or trademarks). And both have restrictions on holding authors of the original liable for damages. Plus, if you distribute any portion of the licensed software in compiled or object code form, both the Ms-RL and Ms-PL require you to do so under a license that complies with this license
Additionally, the FSF considers both the Ms-PL and the MS-RL incompatible with the GPL.
Microsoft Public License (Ms-PL): The Bottom Line
As mentioned, the Ms-PL is used on a variety of .NET projects. These include Cscore (a library for recording, decoding, and processing audio), Meta.Numerics (a library for advanced numerical computing), and AvalonDock (WPF Document and Tool Window layout container), among others.
However, although the Ms-PL is relatively popular in the .NET ecosystem, its use across the open source world is much lower than the likes of the MIT License, the LGPL, or a number of others. And, the lack of GPL compatibility coupled with provisions around licensing derivative works does add a level of complexity.
Still, the Ms-PL is very much a license worth tracking. It's OSI-approved, and you may well encounter it, especially if you participate in the .NET ecosystem.
Note: We on the FOSSA Editorial Team are not lawyers. If you are seeking legal advice, we recommend you speak directly with an attorney.