Odoo的版本和协议
-
Odoo的版本
按照商业授权的不同Odoo的版本可分为:“社区版”和“企业版”。社区版提供了Odoo的整体框架和核心功能,企业版以社区版为核心提供一系列的企业专属增强模块来扩展社区版的功能并包含企业专属服务。社区版的代码公开发布在Github上: http://www.github.com/odoo/odoo ,可自由获取。企业版的代码在获得商业授权后,由Odoo公司或Odoo授权合作伙伴提供。根据Odoo官方的说明,为确保Odoo开源社区版本的竞争力,其在社区版和企业版的研发投入比例是80%之于20%。 下图说明了社区版和企业版的区别:
Odoo的技术发行版本使用数字来命名,比如:10.0,11.0,12.0 。这种“X.0”发布版本也称为长期支持版本(LTS)。Odoo的新版本发行周期为1~2年,最近几年的的产品发布都固定在每年10月的第一周。Odoo对所有支持版本提供每日更新及安全支持。支持的版本包括最新的3个LTS版本。比如当前最新的版本为12.0,支持的版本即为:10.0,11.0,12.0,而9.0及以前的版本Odoo官方则不再提供支持,并建议旧版本升级到支持的LTS版本以保证其安全性。在两个LTS版本之间会有多个“saas-X”中间版本,这些中间稳定版在github上也有单独的分支,它们提供了在下一个LTS版本中将要出现的功能特性,但是Odoo官方只对当前使用这些版本的SaaS在线用户提供支持,并不提供长期支持。
Odoo的协议
与Odoo命名的变化相同,Odoo的开源协议也经历了从GPL到AGPL再到现在的LGPL协议。Odoo社区版从9.0开始采用LGPL协议(准确的说是LGPLv3)。与采用过的其它开源协议相比,LGPL协议是比较宽松的开源协议。它意味着您或者您的合作伙伴开发的Odoo应用可以使用商业授权,不必开源。换言之,如果您希望能开发自己商业授权的应用请避免使用9.0以前的Odoo版本。Odoo的企业版模块则采用的是OEEL(Odoo Enterprise Edition License)协议,它是一个商业授权协议。企业版模块的使用必须获得商业授权。
Odoo的双协议再加上第三方,比如Odoo开源联盟OCA(Odoo Community Association)所推荐使用的AGPLv3协议,使得清楚理解各协议范围,防止协议冲突造成法律风险变得非常的重要。
GPL协议,全称为GNU通用公共许可证(GNU General Plublic License)。当前的最新版本为v3,所以最新版本的协议通常表示为:GPLv3。简单理解,该协议要求所有对基于该协议的软件的修改,封装,调用,演绎,再发布等等都应遵循GPL协议开放源代码。该协议有两个变种:AGPL和LGPL。AGPL是更加严格的开源协议,在该协议下即使不发布软件包,只是提供Web服务,其提供Web服务的软件需按要求开放源代码。而LGPL,全称GNU Lesser General Public License,则是比较宽松的开源协议。具体请参见:https://www.gnu.org/licenses/licenses.zh-cn.html
下面我们用几个图片来解释各个协议和它们之间的兼容关系:
上图解释了之前提到的这三类协议间的关系:
- 以LGPL协议的Odoo社区版为基础开发包括Odoo企业版在内的商业授权应用是允许的
- 以商业授权的Odoo企业版为基础开发第三方商业授权的应用是允许的,使用该第三方应用的前提是同时获得Odoo企业版和第三方应用的商业授权
- 以LGPL协议的Odoo社区版为基础开发使用AGPL协议的开源应用是允许的
- 以AGPL协议的开源应用为基础开发商业授权应用是不允许的
开发时商业协议与AGPL协议互斥:
上图说明,不允许以商业授权的Odoo企业版为基础开发AGPL协议的开源应用,但是开发LGPL协议的开源应用则是允许的
使用多种协议共存的应用:
上图说明,Odoo企业版应用和AGPL开源协议的Odoo应用可以同时使用,前提是他们互相之间没有依赖关系。 -
刚无意中又看到这贴,逻辑严谨,个人观点认为可以放到教程中,
谢谢分享。又去翻了下在用的OCA的模块,好像还真都是AGPL 协议的,
另外,想起有朋友问过协议方面问题,按此贴我的理解是:
基于Odoo社区版LGPL可以发布自己的商业版!
如果此商业版中 用到的 OCA AGPL的模块,
则此模块 则需要 单独沿用OCA 的AGPL 协议,
如果有 模块是依赖于 AGPL 协议的,则 还是需要按AGPL来,
换句话说:“自己的 商业版也可以加 OCA 的模块,只要保持此模块的 协议不变。”
关键是:别把本来 AGPL 的模块改成 LGPL 。对吧?