十问十答 Ms-PL 许可证

news/2024/12/3 1:25:28/

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 许可证


http://www.ppmy.cn/news/688139.html

相关文章

STM32-自学笔记(10.使用GPIO和SysTick定时器实现按键扫描)

按键抖动的原因: 通常按键所用的开关都是机械弹性开关。当按键触点闭合或者断开时,由于机械触点的弹性特点,一个按键开关在闭合时不会马上就稳定的接通。在断开时也不会一下子就彻底断开。而是在闭合和断开时伴随了一系列抖动。 按键消抖的方…

fpc : 调用 MS TTS 读中英文

这个例子是 free pascal 在Windows XP 调用 MS TTS 读中英文 tts2.pas Program space2; {$mode objfpc}{$H}usesClasses,SysUtils,Process,Variants,ComObj,RegExpr,ShellApi;var Sp: Variant;re: TRegExpr;i : Integer; beginif Assigned(InitProc) thenTProcedure(InitProc)…

气压计 MS5611-01BA03 数据读取

1、简介及注意事项 气压计MS5611-01BA03 采用24位的气压和温度AD转换值,SPI、IIC接口协议读取,采用256、512、1024、2048和4096的过采样率提高采样精度。256的过采样率最低转换时间为0.5ms。   该气压计仅仅只有5个基本指令:复位、读ProM校…

飞控开发--气压计MS5611

ms5611简介: 官方给出的最大分辨率:10cm 工作电压: 1.8v ~ 3.6v 气压 AD 精度:24位 工作环境:-40 ~ 85C,10 ~ 1200mbar(毫巴 = 百帕) 通讯接口: I2C/SPI (PS:1 - I2C ; P…

基于STM32标准库的MS5837程序移植

基于STM32标准库的MS5837程序移植 一、准备工作1. 硬件电路2. 新建工程 二、开始移植1. IIC底层模拟2. MS5837移植3. 主函数编写4. 代码调试结果 三、源代码下载 一、准备工作 1. 硬件电路 典型电路图: 实际硬件图: 2. 新建工程 基于标准库建立MDK…

STM32实现水下四旋翼(七)传感任务3——MS5837水深传感器读水深(超详细)

目录 一. MS5837-30BA水深传感器解读1. 简介2. 性能参数3. 典型电路4. 深度数据解算算法(1) 一阶算法(2) 二阶算法 5. IIC读数据的寄存器与时序 二. STM32读取水深传感器驱动程序三. 传感任务增加读水深的应用程序 一. MS5837-30B…

内网渗透---ms14068

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、MS14-068的利用条件?二、利用步骤1.查看服务器是否打补丁2.获取用户的sid值3.删除系统票据4.生成票据5.导入票据6.提权利用 总结 前言 ms14-06…

MS5607 气压计调试记录

MS5607气压计调试过程记录 采用 SPI通讯方式驱动MS5607,主控用的是STM32F777 程序是利用STM32CUBEMX生成的 驱动 根据芯片手册和一些参考资料自己写的,数据暂时看是没问题的。 没有测试环境 没有系统测试过,数值验证没问题。 1,上…