Microsoft 公共许可证(The Microsoft Public License)是微软为释出开源项目而编写和发布的自由开源软件许可证。如果你用 .NET 开发,你会经常碰见 Ms-PL。在微软的自由开源项目托管地 Codeplex(已寿终正寝,微软已战略转进至 GitHub)上也有不少基于 Ms-PL 的项目。
01
Ms-PL 的条款和条件
你可以自由地复制(再制造,reproduce)和分发(distribute)签署了 Ms-PL 许可证的原始软件或衍生产品。但在使用时不能使用任何贡献者的名字(contributors' name)、Logo 或商标。Ms-PL 许可证通过「不为你所使用的代码提供任何明确的保证(warranties)或承诺(guarantees,一般与质量有关)」来保护作者,因此如果代码在某些情况下无法正常工作,作者也不必承担任何责任。
当你使用 Ms-PL 许可证分发软件(整体或部分)时,无需分发其源代码。你也可以分发对应的源码,但这不属于一种义务。但是你需要:
必须保留该软件最初的所有版权、专利、商标和所有权声明。
此外,如果你以源码的形式分发软件的任一部分,则只能在 Ms-PL 下通过在分发时包含此许可证的完整副本来执行此操作。如果以编译或目标代码(object code)的形式分发软件的任一部分,则只能在符合 Ms-PL 的任何其他许可证下才能执行此操作。
需要注意的是,Ms-PL 条款和条件文档都非常简短清晰,且使用非常连贯的语言编写。微软希望与开源社区保持清晰和直接的关系,这有助于提高许可证的采用率(正如我们从 BSD 许可证中了解到的那样)。
02
Ms-PL 是否版权向左?
版权向左(Copyleft)许可证提供了分发修改品和衍生品的权利,但其前提是这些修改品和衍生品必须为下游接收者们暴露相同的权利与自由。你只能以 Ms-PL 来分发源码形式的 Ms-PL 软件的整体或部分。不过,当你以编译后的软件或目标代码分发 Ms-PL 软件时,你可以选择「符合 Ms-PL 条款的许可证」。
因此,当选择以源码形式分发 Ms-PL 软件的修改品或衍生品时,Ms-PL 的版权向左效应非常明显。而在分发经过编译或目标代码的版本时,即使 Ms-PL 关于这一点的文本讲得非常不清楚,也不需要将相同的权利与自由向下传递给下游接收者。微软(Ms-PL 的管理方)支持这种解释(interpretation)。微软公司坚持认为,开发者可以根据自己的选择分发 Ms-PL 软件的编译版本或目标代码版本,但不能对下游 Ms-PL 软件的接收者授予更多权利。
03
Ms-PL 和 Ms-RL 的区别
Ms-RL(Microsoft Reciprocal License)许可证是比 Ms-PL 更为严格的版权向左许可证。只要 Ms-RL 包含并许可了修改后的源文件,你就可以修改与分发任何 Ms-RL 组件。
不过,你可以对软件中的其他(完全由你写的)文件使用任何其他兼容的许可证。
04
商业产品是否允许使用 Ms-PL?
是的。只要你满足许可的条款和条件,你可以在商业产品中使用 Ms-PL 和 Ms-RL 许可的组件。
05
如何在商业项目中使用 Ms-PL 组件?
如果你正使用 Ms-PL 许可的组件并决定发布你产品的源码,那么你将只能在 Ms-PL 下分发该软件。如果你选择发布已编译的软件或目标代码,则可以选择其他与 Ms-PL 兼容的许可证。
如果你正使用 Ms-RL 许可的组件,那么你需要发布修改后的那部分的源文件代码,这对于商业产品来说是个问题。不过,你可以对剩下的其他属于你自己的文件使用其他许可证。
06
Ms-PL 许可证是否兼容 GNU GPL?
不兼容。Ms-PL 与 GNU GPL 并不兼容,因为 GPL 比 Ms-PL 要严格得多,比如 GPL 分发源码的要求就与 Ms-PL 的条款不符,因为后者可以编译程序而无需释出源码。
即便是版权向左的 Ms-RL 也与 GPL 不兼容。可以确信的是,微软故意将它的许可证设计得与 GPL 不兼容的理由与其他许多商业公司一样——如果你根据此许可证提交代码,那么代码便会陷入专有黑洞( proprietary black hole)之中——它们不喜欢这么做。
07
Ms-PL 与 GPL/LGPL 许可证的不同之处
Ms-PL 更倾向于从商业的角度来创建,体现的是微软这类商业公司的想法。
Ms-PL 与 GPL 之间最大的区别在于,Ms-PL 只要求当你以源码的形式发布软件(或其衍生品)时使用 Ms-PL 许可证;而 GPL 的话,只要你的软件利用到任何 GPL 协议的组件,你就得完整发布你的源代码。只要你将你的专有代码和 GPL 组件(不管是原始 GPL 还是经过修改的 GPL 许可证)结合起来,它们之间就没有什么区别了。
LGPL 是 GPL 的弱版权向左版本,允许专有软件使用或连接到 LGPL 组件,而不必将其专有文件置于 LGPL 许可证之下(也就是说,只需要公开对 LGPL 原始文件作过修改的那部分)。Ms-RL 与 LGPL 有点接近。当你软件使用 Ms-RL 时,你必须使用 Ms-RL 修正来发布所有签署了 Ms-RL 的组件。此外, 对于那些对并没有使用 Ms-RL 的组件,你可以对它们选择不同的许可证。
08
Ms-PL 与 MIT/BSD 许可证的不同之处
MIT 是最宽松的自由软件许可证之一。基本上,你只需要添加原始 MIT 许可证和版权声明副本(copy of the original MIT license and copyright notice),就可以自由使用基于 MIT 许可证的软件组件了。
BSD 许可证是另一个高度宽松的许可证,只要将原始 BSD 许可证副本附加上,就能根据需要随意修改并重分发根据 BSD 许可的软件。
MIT 和 BSD 许可证都不要求你发布软件的源码,也不对与其他许可下的源码混用设任何限制。
但是,对于 Ms-PL 来说,如果你选择发布产品的源码,那么源码就必须使用 Ms-PL。
09
Ms-PL 与 Apache 2.0 的不同之处
Apache 2.0 许可证是一个宽松的开源软件许可证,因此你可以将 Apache 许可的代码进行修改后以任何许可证进行发布(一般来讲会继续使用 Apache 许可证)。
但对于 Ms-PL 来讲,如果你选择分发的是产品的源码,那么就只能选择 Ms-PL 许可证。如果你选择分发的是产品的目标代码,那么你可以选择任何与 Ms-PL 兼容的许可证。
10
是否可销售使用 Ms-PL 的开源软件或代码?
是的。你可以销售任何基于 Ms-PL 的开源软件,不过请先确保没有侵犯任何人的商标(trademark)。
&
至此,我们回答了十个最重要的关于 Ms-PL 的问题。如果你还有其他问题,我们很乐意回答你。
本文的作者和译者均不是律师或法律工作者,因此你不应将本文视作任何形式上的法律建议。本文信息按素材原文原样奉上,未经修改。如需法律咨询,请联系你的法律顾问,或有相关从业资质或经验的律师或其他法律工作者。
原题:Top 10 Microsoft Public License (Ms-PL) Questions Answered
原文:
https://resources.whitesourcesoftware.com/blog-whitesource/top-10-microsoft-public-license-ms-pl-questions-answered
作者:Rami Sass
END
开源许可证相关推荐:
1)一文读懂常用开源许可证
2)一文读懂开源许可证异同
3)一文读懂 Copyleft 开源许可证
4)十问十答 Apache 许可证
5)十问十答 CDDL 许可证
6)十问十答 GPL 许可证
7)十问十答 BSD 许可证