Loading AI tools
由謀智組織開發的許可免費軟件許可 来自维基百科,自由的百科全书
Mozilla公共许可证(英语:Mozilla Public License,简称MPL)是个自由、开源、详细的软件许可证,由Mozilla基金会开发并维护。该条款融合了BSD许可证和GNU通用公共许可证的特性,追求平衡专有软件和开源软件开发者之间的顾虑。[6]
此条款已有两个版本,[7]最新发布的2.0版以更简洁和更好的兼容其他条款为目标。[8]
MPL用于Mozilla Firefox、Mozilla Thunderbird及其他Mozilla软件的许可,[9]但也被其他产品所用,如Adobe以此为Flex产品线许可,[10]还有LibreOffice 4.0(同时使用LGPL 3+)。[11][12]1.1版还被一些公司特意改编成派生许可证,如Sun Microsystems的通用开发与散布许可证。[13]
MPL既是得到自由软件基金会承认的自由软件许可证[3],也是得到开放源代码促进会承认的开源软件许可证[4]。MPL允许在其授权下的源代码与其他授权的文件进行混合,包括私有许可证。但在MPL授权下的代码文件必须保持MPL授权,并且保持开源。[5]这样的条款让MPL既不像MIT和BSD那样允许派生作品完全转化为私有,也不像GPL那样要求所有的派生作品,包括新的组件在内,全部必须保持GPL。通过允许在派生项目中存在私有模块,同时保证核心文件的开源,MPL同时激励了商业及开源社区来参与帮助开发核心软件。[14]
使用MPL许可的软件不受专利的限制,其可以自由使用、出售,亦可自由的重新发布。带有专利代码的版本仍然可以使用,转让,甚至出售,但未经许可则不能修改代码。此外,MPL不授予用户对于开发者商标的使用权[5]。
为了满足MPL的条款限制,用户必须负担一些“责任”,主要是关于散发使用MPL许可的软件。用户必须确保重新散发的软件所有源代码均以MPL许可,即使是以可执行文件的方式提供或是与其他使用专有软件许可的源代码结合也一样。但若跟以GNU通用公共许可协议、GNU较宽松通用公共许可协议、Affero通用公共许可协议许可的源代码结合则是例外。此时开发者则可选用以上三种更加严格的条款来许可[5]。
1.0版的MPL是由米切尔·贝克在1998年所编写,当时她在网景公司担任律师。网景希望其开放源代码的策略能让网景浏览器可以与微软的Internet Explorer竞争[15]。为了隐藏浏览器真正的源代码,网景公司编写了一份知名的Netscape公共许可证,其中的一个条款允许在这个许可方式下发行的源代码以专有软件的方式重新许可。网景公司只接受可以改变许可方式的第三方源代码,导致当时许多开放源代码社区的批评。
然而,同一时间,贝克正撰写着一份类似Netsape公共许可协议的许可协议,但包含了一些Copyleft的特性,从而使得其他人的贡献能保持开源。它以网景公司新的开放源代码代码库为名,称之为“Mozilla公共许可协议”,虽然它最初只是为了补足一些使用NPL许可的核心模块的不足而撰写,但它很快的就变得比NPL还流行,最后甚至被开放源代码促进会所认可[16]。
不到一年之后,贝克及Mozilla基金会对MPL作了一些更动,因为只是一些小变动,所以只将版本号码微调至1.1[17]。这个修改版本是经由开放的过程所完成,其同时考虑到了团体及个人贡献者的意见。其主要更动是厘清关于专利部分的条款,以及允许多许可的共存。最后这一个特性旨在鼓励与偏好使用GPL许可的开发者合作[18]。除了很多项目都以此派生出他们自己的许可协议,这个版本的结构,法律切合度,以及其对专利权的明确态度都深深的影响了后来流行的许可协议,像是第三版的GPL等[13]。
2010年初,因为经过了十几年的时间都没有对其进行调整以符合随时在变动的法律以及价值观,所以创造MPL第二版的的开放过程便开始进行[19]。大约21个月后,新版的MPL不仅使许可协议更加清晰,更加方便应用,同时也兼容于GPL及Apache许可协议[8]。修订小组由米切尔·贝克监督,路易斯·维拉领导,并获得Gervase Markham及Harvey Anderson的支持[20]。他们发布了三个Alpha版本,两个Beta版本,以及两个发行候选版本在2012年1月3日最终发布前供大众查看并提出修改意见[1]。
不像那些较严格的Copyleft许可协议,使用MPL许可的源代码可以在一个复杂的软件中与任何其他的许可协议相结合,只要仍满足MPL许可协议中3.3节的规定即可[5]。这意味着在一份给定的源文件里面,必须全部的源代码都以MPL许可,否则就所有源代码均以其他方式许可[5]。
MPL第二版与Apache许可协议[8]以及GPL第二版或更新、LGPL2.1版或更新,及AGPL第三版或更新兼容[3]。而1.1版因为有“一些复杂的限制”造成与GPL的不兼容(从而阻止升级到MPL 2.0)。MPL 1.1版虽然也包含了一个可以让开发者在第二个许可(包含GPL及与GPL兼容的许可协议)下撰写代码的条款,但MPL 1.1与GPL却无法“合法的链接”,导致自由软件基金会不鼓励开发者使用MPL 1.1进行许可[21]。因为这个理由,早期的Firefox采用了三重许可:MPL 1.1、GPL 2.0、LGPL 2.1[22]。 Mozilla Application Suite仍采用三重许可。