弱著佐权(Weak Copyleft)

Mozilla Public License 2.0

只需公开修改过的 MPL 文件,其余代码可以使用任何许可证的文件级著佐权,也可以与 GPL 结合。

SPDXMPL-2.0

许可·条件·限制一览

许可

  • 商业使用原作品及衍生作品可用于商业目的。
  • 修改可以修改代码。
  • 分发可以分发代码。
  • 专利使用贡献者明确授予专利使用权。
  • 私人使用可以在内部使用和修改而不公开。

条件

  • 公开源代码分发时必须提供源代码。
  • 版权与许可声明分发时必须附上许可证副本和版权声明。
  • 相同许可证(文件级)对现有文件的修改部分必须以相同许可证分发。

限制

  • 责任限制明确声明不对损害承担责任。
  • 商标使用明确声明不授予商标权。
  • 无担保明确声明不提供任何担保。

许可·条件·限制分类来源:choosealicense.com(GitHub,MIT 许可证)数据。

这是什么样的许可证

MPL 2.0 由 Mozilla 基金会于 2012 年 1 月发布。Firefox、Thunderbird 等 Mozilla 产品都在使用,其特点是将著佐权的范围限定在文件级别。适用 MPL 的文件(及对该文件的修改)必须以 MPL 公开源代码,但新编写的独立文件可以采用其他许可证,与 MPL 代码合并而成的「Larger Work」(第 3.3 条)整体可以按自己想要的条件分发。它还包含明确的专利许可以及专利诉讼时许可终止的条款。

分发时须遵守的事项

Secondary License 与 GPL 兼容性

MPL-2.0 第 1.12 条将 GPL-2.0、LGPL-2.1、AGPL-3.0 及其以后版本定义为「Secondary License」。根据第 3.3 条,将 MPL 代码与 GNU 许可证代码结合而成的 Larger Work 可以按 GNU 许可证分发。但如果原作者在文件中附加了 Exhibit B(「Incompatible With Secondary Licenses」) 声明,则不适用这一兼容性。MPL-1.1 没有这种机制,因此与 GPL 不兼容,2.0 对此进行了改进。

常见误解

如何应用

建议将原文放在 LICENSE 中,并在每个源文件顶部加上 Exhibit A 声明(「This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0…」)。如果难以放进文件中,也可以放在接收者可能查找的地方,比如该目录的 LICENSE 文件。SPDX 标识符为 MPL-2.0(带有 Exhibit B 时为 MPL-2.0-no-copyleft-exception)。

适用场景

当你希望收回对库或引擎本身的改进、又不想限制使用它的产品的许可证时,这是一个很好的折中方案。它的条件比 LGPL 简单,也没有静态链接问题。2023 年 HashiCorp 将 Terraform 从 MPL-2.0 改为 BUSL 后,社区将 MPL-2.0 版本分叉为 OpenTofu,这也是一个案例。

MPL-2.0 代码能放进其他项目吗?

以下是将以此许可证发布的代码合并到下列许可证的项目中一起发布时的一般判定。 在兼容性检查器中查看其他组合 →

目标项目判定备注
专有(商业)软件 有条件可以MPL 文件须按文件保持 MPL-2.0,并提供这些文件的源代码。其余代码可以使用其他许可证。
MIT 有条件可以MPL 文件须按文件保持 MPL-2.0,并提供这些文件的源代码。其余代码可以使用其他许可证。
Apache-2.0 有条件可以MPL 文件须按文件保持 MPL-2.0,并提供这些文件的源代码。其余代码可以使用其他许可证。
LGPL-2.1 有条件可以MPL-2.0 将 GPL-2.0 及以上、LGPL-2.1 及以上、AGPL-3.0 及以上认定为「Secondary License」,因此组合作品可以按 GNU 许可证发布。但如果原作者附加了「Incompatible With Secondary Licenses」(Exhibit B),则不可以。
LGPL-3.0 有条件可以MPL-2.0 将 GPL-2.0 及以上、LGPL-2.1 及以上、AGPL-3.0 及以上认定为「Secondary License」,因此组合作品可以按 GNU 许可证发布。但如果原作者附加了「Incompatible With Secondary Licenses」(Exhibit B),则不可以。
GPL-2.0 有条件可以MPL-2.0 将 GPL-2.0 及以上、LGPL-2.1 及以上、AGPL-3.0 及以上认定为「Secondary License」,因此组合作品可以按 GNU 许可证发布。但如果原作者附加了「Incompatible With Secondary Licenses」(Exhibit B),则不可以。
GPL-3.0 有条件可以MPL-2.0 将 GPL-2.0 及以上、LGPL-2.1 及以上、AGPL-3.0 及以上认定为「Secondary License」,因此组合作品可以按 GNU 许可证发布。但如果原作者附加了「Incompatible With Secondary Licenses」(Exhibit B),则不可以。
AGPL-3.0 有条件可以MPL-2.0 将 GPL-2.0 及以上、LGPL-2.1 及以上、AGPL-3.0 及以上认定为「Secondary License」,因此组合作品可以按 GNU 许可证发布。但如果原作者附加了「Incompatible With Secondary Licenses」(Exhibit B),则不可以。

本网站内容仅为一般信息,不构成法律意见。实际发布、合同或纠纷的判断,请咨询律师等专业人士。