多重許可

多重许可是一种在不同的许可证下发布同一个软件的方式。软件发行方通常采用两个或以上的许可证，或许可集。

当一个软件采用多重许可时，接收者可以选择他们愿意遵守的许可发布衍生品。但软件包或库中存在多个许可证并不意味着接受者可以任选其一。在某些情况下，例如如软件包中有多个以不同许可证发布的软件，则接收者必须遵守所有许可证的条款。多重许可两个常见用途是解决许可证兼容性和开源软件商业化。

 商业模式 

对于商业公司而言，多重许可通常用于支持自由软件的商业化。这种情况下，软件会采用两种许可：专有软件许可证（允许创建专有应用程序）和Copyleft自由软件/开源许可证，软件通常以极低的价格或免费提供社区版本，并通过向商业机构出售专有许可证来获利。这种模式与共享软件相似。  

在大多数情况下，只有版权所有者才能更改许可，因此通常只有完全拥有软件版权的公司才会采用多重许可。若非公司职员为软件增添了新代码，并以更宽松的许可发布它，可能会导致冲突：公司并不拥有新增代码的版权，不能修改代码的许可，因此无法合法地将其合入软件本体中。多数公司会要求社区贡献者提交代码前签署贡献者协议，以避免上述问题。 

自由软件公司可以使用多重许可来提供不同的服务。例如，可以为企业级用户提供个性化服务、提前发布稳定版、授予发布专有作品的权利，同时向所有人提供开源的免费版。这样，软件可以受到来自开源社区用户、黑客的贡献，这些贡献可以是修改源码、提升口碑、对专有许可用户的支持等。但是，若不尊重开源社区的贡献，如在许可证中增设不平等条款、涉嫌窃取开源社区成果等，则可能失去支持。

采用多重许可的软件包括NetBeans IDE 、MySQL、 Asterisk 、Berkeley DB 、 Modelio 、Ice 、 Magnolia CMS 、 JUCE 、 wolfSSL 和Qt开发工具包等。

多重许可的一个典型例子是MySQL。Oracle MySQL 有多个版本，MySQL 企业版、MySQL 标准版、MySQL Cluster 运营商级版需要付费，以每月订阅形式提供许可。其他版本，如 MySQL 经典版、MySQL 社区版等，则可以免费使用，但有一些限制（采用GPL协议、仅提供社区支持等）。 

 许可证兼容性 

多重许可可以保证许可证兼容性 ，即允许用户选择不同许可证，合并不同自由软件的源码，绕过许可证冲突问题。

举例：

 Mozilla早期开发的软件，如Mozilla应用套件、早期的Firefox和Thunderbird等，均采用三重许可分发源码，分别为Mozilla公共许可证（MPL）1.1、GNU通用公共许可证（GPL）2.0和GNU宽通用公共许可证（LGPL）2.1。后续MPL 2.1修改了部分条款，使之与GPL兼容，不再需要使用三重许可。
 Perl采用GPL、艺术许可协议双重许可。
 Ruby的许可证明确包含了对GPL的双重许可。

参考来源

 外部链接
 Dual Licensing information from 
 Article "Does dual licensing threaten free software?" by Glyn Moody
 Article "The Dual-Licensing Model" by Don Marti
 Article "Dual Licensing: Having Your Cake and Eating It Too" by Philip H. Albert
 Article "Dual-Licensing Open Source Business Models" by Heather Meeker
 Article "How to use open source as a power marketing tool" by John Koenig
 Paper "Dual Licensing in Open Source Software Industry" by Mikko Välimäki
 Dual Licensing Schemes
 "Should code be “dual licensed” under the GPL and a permissive license?" by Software Freedom Law Center

Category:軟體授權