多重許可

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

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

商业模式
对于商业公司而言,多重许可通常用于支持自由软件的商业化。这种情况下,软件会采用两种许可:专有软件许可证(允许创建专有应用程序)和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的双重许可。

参考来源
外部链接

*

评论 (0)

  • 还没有评论,来抢沙发吧。