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

十问十答 Ms-PL 许可证相关推荐

  1. 十问十答 BSD 许可证

    BSD 许可证或原始 BSD 许可证(the original BSD License)及其两个变体--修改的 BSD 许可证(又称 The 3-clause BSD License)和简化的 BSD ...

  2. 十问十答 GPL 许可证

    GPL 是 GNU's General Public License 的缩写,翻译成中文叫 GNU 的通用公共许可证,是最受欢迎的开源许可证之一.它由理查德·斯托曼(Richard Stallman) ...

  3. 十问十答 CDDL 许可证

    今天我们来整理一下通用开发和发行许可证 CDDL 的十大问题清单. 通用开发与发行许可证(Common Development and Distribution License,CDDL)由已被甲骨文 ...

  4. 十问十答 Apache 许可证

    Apache 许可证由 Apache Software Foundation(ASF)发行,是一个由强大社区支持的流行的被广泛部署的许可证.Apache 许可证允许你自由地使用.修改和分发任何 Apa ...

  5. TSQL与PL/SQL的比较

    TSQL与PL/SQL的比较 以前一直用mssql 做开发,最近的项目都Oracle, 1)数据类型 TSQL PL/SQL numeric(p,s) numeric(p,s) or NUMBER(p ...

  6. 哪种开源许可证最适合商业化?

    选择最佳开源许可证是为新项目所做的最重要的决定之一.大多数开发者会选用 MIT.BSD 或 Apache 等流行的宽松许可证(permissive license).对于商业项目而言,这种选择不错,因 ...

  7. ORACLE HANDBOOK系列之六:ODP.NET与复杂的PL/SQL数据类型(Using ODP.NET To Deal With Complex PLSQL Data Types)...

    在开始介绍之前,先给出文章里用到的所有PL/SQL代码: (类型定义) CREATE OR REPLACE TYPE T_Nested_Tab_Str IS TABLE OF VARCHAR2(25) ...

  8. MS SQL 监控数据/日志文件增长

        前几天,在所有数据库服务器部署了监控磁盘空间的存储过程和作业后(MS SQL 监控磁盘空间告警),今天突然收到了两封告警邮件,好吧,存储规划是一方面,但是,是不是要分析一下是什么原因造成磁盘空 ...

  9. 存储过程C语言与PL/pgSQL实现的效率对比

    为什么80%的码农都做不了架构师?>>>    PL/pgSQL已经有不少优化动作,比如 for i in 1..100000 loop null; end loop; 这是可以瞬间 ...

最新文章

  1. 引入yml依赖包_手把手教你发布 Python 项目开源包
  2. iOS 获取self类型
  3. android 根据文件Uri获取图片url
  4. cookie 和session 的区别
  5. 机器人码垛手持式编程_FANUC机器人码垛编程讲解
  6. HTML section元素
  7. 不可小视的贝叶斯(一)
  8. 大航海北斗星导航系统V1.10
  9. FutureMapping:空间人工智能的计算结构
  10. php中间件获取分表数据,分库分表中间件CDS
  11. php实现室内地图导航,叠加室内地图-室内地图-示例中心-JS API 示例 | 高德地图API...
  12. 2908. Annoying painting tool
  13. 【Linux】深入解析Linux proc文件系统
  14. 全球顶级手游开发商向数据极客们发出赛事邀请,用数据分析玩家行为,赢取十万大奖!...
  15. 开头的单词_c开头的英语单词三年级到六年级的英语单词记忆
  16. 伊利洛伊大学厄巴纳-香槟分校计算机专业,申请伊利诺伊大学香槟分校计算机科学专业需要具备哪些条件?看完文章你就清楚了...
  17. 动态规划------走楼梯问题
  18. 用于设定表格样式的附加css,Dreamweaver使用CSS样式表设置网页文本格式
  19. 利用java解一元二次方程
  20. 浅谈磁场中的正则动量

热门文章

  1. 父元素 高度固定,如何使其中的文字垂直居中?
  2. mysql在linux下修改存储路径
  3. 大家注意:升级 win8.1 火狐浏览器 谷歌浏览器 搜狗五笔输入法 都不能用啦
  4. 股市红涨绿跌色系定义真的是中国特色吗?
  5. C语言程序设计实验最短路径,7最短路径C语言程序设计.pdf
  6. canpro脚本_AE/PR脚本-创建编辑导入导出专业字幕脚本 Subtitle Pro 2.8.0 + 使用教程...
  7. 合并Spark社区代码的正确姿势
  8. keepalived 报错 Popt libraries is required
  9. ftp服务器搭建遇到的问题
  10. RIAMeeting第六次开发者交流活动。