科普贴:阻止你变现的,从来都不是开源许可证

原创
01/30 23:16
阅读数 1.3W

之前,《GPL 转闭源?法院判决:一日 GPL 终身 GPL》一文提出一个冷门却又重要的知识点:GPL 许可证之下的开源项目,可以分叉出来闭源吗?从评论可以看出,大家非常关心这类问题,但是却普遍缺乏相应知识。

其实,这算是国内开源的一个弊病 —— 开源知识普及不够。不少实践者因为接触此类知识的途径有限,加上相关意识也不足,很容易犯错,造成误会和麻烦。就比如以上案件中的原告罗盒公司,之所以后期会将 GPLv3 许可证下的开源项目闭源,大概率就是这个原因。又比如,之前被机械妖姬上门索要源码的国内公司,后来其实也很配合地公布了源码,究其根源也是这个原因。

总的来说,许多开发者主要是两个方面知识没有补课到位:第一,在选择开源许可证的时候,不知道该怎么选,更不知道选择这个许可证对项目来说到底意味着什么?第二,选择开源项目变现时的商业模式为了难,不是想闭源 GPL ,就是乱加附加条款。

自打开源诞生,从来都没有拒绝过商业化,只不过需要掌握一些知识和技巧罢了。以下是一些关于开源许可证和开源商业模式的科普知识,都是我在查找资料过程中发现的宝藏文章的节选,有关来源我也一并给出,大家感兴趣可以查看原文,全面掌握。

 

01 开源许可证都会保留版权,差别在于共享权限 

从 RMS(Richard Mattew Stallman)捣鼓出 GPL 开始,开源许可证发展到现在已经有了上百种,但流行的其实并不多。原教旨一些,只有被 OSI (Open Source Intiative)认可才能称之为开源许可证,而其它一些例如 SSPL、Elastic 等都是商业许可证。那些官方认证的开源许可证被罗列在了 OSI 官网上。

OSI 官网将所有其认可的开源许可证分为“流行且广泛使用或拥有强大社区”的许可证、国际许可证、特殊用途许可证、不可重复使用的许可证、被取代的许可证等几大类,详情大家可戳:https://opensource.org/licenses/category

其中,出现频率最高、最常被使用的无非是以下几种:

 

一些科普文章会贴心地为大家画出直观易懂的示意图,最为知名的就是阮一峰老师翻译来而的这张图:

开源许可证虽然五花八门,但共同点都是保留版权,而在商业兼容性或共享权限上体现区别。在一些科普文章中,经常将这些开源许可证分为三大类,这里我们将中国信通院在 2018 年 3 月发表的《开源治理白皮书》中的一段节选出来:

一类是传染型开源许可证 (Copyleft):

传染型开源许可证明确修改版本须以同一许可证发布, 如果一个软件包含该协议下部分代码,完全发布时必须作为整体适用 该协议,GNU General Public License Version 2 或 Version 3 (下 称“GPL V2”或“GPL V3”)作为传染型开源许可证给予任何人自由复制、修改和发布 GPL 代码的权利,但是作为回报,所有以 GPL 协议 发布的源代码的衍生,也必须按照 GPL 发布。

 

第二类是弱传染型开源 许可证 (Weak-Copyleft):

如果一个软件包含该协议下部分代码,完 全发布时某些部分必须适用该许可证,其它部分可在其它协议下发 布,如 LGPL、MPL 等。

 

第三类是获准型许可证:

对已修改代码的许可 方式没有任何要求,如 BSD 要求许可证附上许可证的原文以及所有开 发者的版权资料,它允许原作品及修改版发行不公开源代码或以其它 许可证发行。

广泛使用的开源许可证包括 Apache-2.0、 BSD-3-Clause、BSD-2-Clause、 GPL、LGPL、MIT、MPL-2.0、CDDL-1.0、Eclipse 2.0。

此外,《开源治理白皮书》也罗列一些常用许可证各自的特点:

-- GPL(GNU General Public License,GNU 通用公共许可证): 一种广泛使用的自由软件许可证,保证用户可以自由的运行、学习、分享和修改软件。许可证最初由自由软件基金会 (FSF) Richard Stallman 为 GNU 项目所撰写。GPL 是一个非盈利版权许可证,要求衍生作品只能在相同的许可条款下发布。GPL 的出发点是代码的开源使用和引用代码开源使用,不允许修改后和衍生的代码作为闭源的商业 软件发布和销售。

 

--LGPL (GNU Lesser General Public License,GNU 宽松通用公共许可证): 一种由 FSF 颁布的自由软件许可证,允许开发者或公司在私有软件中使用,不要求使用 LGPL 许可代码的软件以 LGPL 方式发布。与 GPL 的强制性开源方式不同,LGPL 允许商业软件通过类库引用的方式使用 LGPL 类库而不需要开源商业软件的代码。 

 

--BSD (Berkeley Software Distribution): 允许使用者修改和重新发布代码,也允许使用或在 BSD 代码上开发商业软件并发布和销售。

 

--MIT License: 允许开发者任意处置该软件,包括使用、复制、修改、合并、发表、分发、再授权或者销售。唯一的限制是,软件中必须包含许可提示。

 

--Apache License: 一种由 Apache 软件基金会发布的自由软件许可证, 相对比较友好,被授权者可以发布商业化软件。 

 

--MPL (Mozilla Public License 1.1): MPL 协议允许免费重发 布、免费修改,但要求修改后的代码版权归软件的发起者。

 

--CDDL (Common Development and Distribution License): CDDL 开源许可证,是 MPL 的扩展协议,它允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。 

 

--EPL (Eclipse Public License 1.0 ): EPL 允许 Recipients 任意使用、复制、分发、传播、展示、修改以及改后闭源的二次商业发布。 

*** 还有一个知识点值得关注:开源软件的专利该如何处理?这个问题在《写了开源软件没申专利,反被索赔该怎么办?》一文中已经阐述了,大家可以扩展阅读。

 

02 不同许可证适合的商业模式也不一样

开源软件企业如何通过一定的盈利模式来持续获取利润?之前,知乎博主刘博用了一篇大长文《“技术-经济范式”视角下的开源软件演进剖析》来剖析,其中对开源商业模式的总结十分全面。为了大家快速找到重点,我节选了一部分:

 根据开源软件商业模式与软件本身的紧密程度,国内外常见的 10 种商业模式可分为三大类:许可证类、直接配套类、间接配套类以及附属产品类。

其中典型主流的商业模式包括:

a. 销售专业服务模式(selling professional services)

销售专业服务模式是指通过为开源软件提供专业服务获利,比如培训、技术支持或者技术咨询等。许多企业没有资源也没有能力来维护自身的 IT 系统,于是就出现了专门为企业提供基于开源软件的 IT 服务公司。因为开源软件的特性,使得公司有编程能力的工程师可以熟练掌握,并利用专业所长为其他企业提供相应的服务。

在该模式下,免费用户仅能获得开源软件的源代码而不包括可执行的二进制代码,付费用户则可同时获得可执行的二进制代码,并且包括软件编译和打包等商业化服务;此外,还可同时提供物理安装媒体(比如 DVD)。

红帽公司就主要通过订阅模式向客户提供专业服务,逐渐成长为最成功的开源软件公司。

b. 双许可模式(dual-licensing) 

双许可模式是最常见的开源软件商业模式之一,指开发者不仅在开源许可证下提供软件,还在专有软件许可证下提供软件。

在该模式中,产品的源代码主要来源于开源社区或软件厂商,这两部分的源代码共同组成了核心产品,再通过两类许可证(专有许可证和开源的 copyleft 许可证)分别许可给免费用户和付费用户。专有版本的营收将用于下一个版本开源软件的研发中。

双许可模式中,用户在开始阶段被免费的开源版本所吸引,在使用过程中通过不断了解厂商所能提供的商业化技术支持和服务,进而成为购买付费版本的客户。以 MySQL 数据库为例,公司同时推出面向个人的开源版本和面向企业的专有版本两种,所采用的商业模式就是开源 copyleft 许可证(GPLv2)和专有软件许可证的双重许可。

c. 再许可专有化模式(re-licensing under aproprietary license)

 

再许可专有化模式是指在某些宽松许可证下,允许软件厂商将自身的专有软件与宽松许可证下的开源软件进行组合,组合后的软件产品可以不提供源代码。

该模式的软件供应商可以针对最终的软件产品在专有许可证下进行销售,甚至直接对某些开源软件进行修改后进行销售。软件产品是由开源社区和软件供应商两部分开发者开发的软件组合而成(两者所开发的不是同一个软件)。开源社区的开发者们开发的是一款开源软件,并且该开源软件应用了宽松的开源许可证,允许再次许可闭源;而软件供应商开发的是专有软件,软件供应商将该专有软件与开源软件进行组合开发,然后形成一款新的软件产品,并在专有许可证下进行销售。

该商业模式被众多公司采用,以苹果公司操作系统 Mac OS 为代表,该系统就是利用再许可专有化模式来开发其软件产品的,苹果 Mac 个人电脑的系统基于 BSD 操作系统内核进行开发,现为苹果公司专有软件产品进行销售。

 d. 嵌入广告模式(advertising-supported software)

 嵌入广告模式是指依靠开源软件的快速推广而使软件内的嵌入广告得以传播。软件厂商将广告嵌入开发的软件产品中,软件产品即由软件本身和厂商嵌入的广告两部分构成。整个软件产品作为开源软件提供给广大的用户,开源软件的推广会带来越来越多的客户,这样就使得软件中嵌入的广告产生了传播的价值,广告厂商达到了产品推广的效果,更愿意向软件厂商投放广告,而软件厂商获利则会继续投入到开源软件的开发中,形成一个良性循环。

多数开源软件企业倾向于率先采用嵌入广告的商业模式来获得收入、维持经营。例如,Android 平台为 Google 带来了大量的移动广告流量。

随着开源软件的发展,企业由以往采用单一开源软件商业模式的策略向采用多种组合的策略转变,例如 Red Hat 公司不仅提供订阅专业服务,还进行配套专有软件的销售。

此外,结构化分析结果表明,开源软件的不同商业模式所用许可证类别具有很大的差别。

开源许可证管理公司黑鸭子软件数据显示,从 2009 年到 2015 年期间,MIT 许可证的份额上升了 15.7%,Apache 的份额上升了 12.4%,而 GPLv2 和 v3 的份额下降了 21.4%。GitHub 调查数据显示,MIT 以45% 的占有率成为最流行的许可证;与之相比,GPLv2 只有 13%。大多数开源软件商业模式都要求宽松许可证,发展趋势显示,大量软件从限制性许可证转到宽松许可证,与之相关的商业模式也越来越倾向于使用宽松许可证。

 

03 相关链接:

 OSI 官网:https://opensource.org

 阮一峰博客:https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

 中国信通院 2018 年《开源治理白皮书》下载地址:http://www.caict.ac.cn/kxyj/qwfb/ztbg/201804/P020180323313495961952.pdf

 刘博知乎首页:https://www.zhihu.com/people/liu-bo-66-15/posts

展开阅读全文
加载中

作者的其它热门文章

打赏
0
34 收藏
分享
打赏
2 评论
34 收藏
0
分享
返回顶部
顶部