ODOO的版本和协议详解
深度理解Odoo版本的发展历史及开源协议

Odoo的版本

按照商业授权的不同Odoo的版本可分为:“社区版”和“企业版”。社区版提供了Odoo的整体框架和核心功能,企业版以社区版为核心提供一系列的企业专属增强模块来扩展社区版的功能并包含企业专属服务。社区版的代码公开发布在Github上: http://www.github.com/odoo/odoo ,可自由获取。企业版的代码在获得商业授权后,由Odoo公司或Odoo授权合作伙伴提供。根据Odoo官方的说明,为确保Odoo开源社区版本的竞争力,其在社区版和企业版的研发投入比例是80%之于20%。 下图说明了社区版和企业版的区别:

Odoo社区版vs企业版
Figure 1. Odoo社区版与企业版

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版本及时限
Figure 2. Odoo版本及其支持时限

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

下面我们用几个图片来解释各个协议和它们之间的兼容关系:

Odoo的多种协议
Figure 3. Odoo的多种协议

上图解释了之前提到的这三类协议间的关系:

  • 以LGPL协议的Odoo社区版为基础开发包括Odoo企业版在内的商业授权应用是允许的

  • 以商业授权的Odoo企业版为基础开发第三方商业授权的应用是允许的,使用该第三方应用的前提是同时获得Odoo企业版和第三方应用的商业授权

  • 以LGPL协议的Odoo社区版为基础开发使用AGPL协议的开源应用是允许的

  • 以AGPL协议的开源应用为基础开发商业授权应用是不允许

AGPL协议与商业授权协议不兼容
Figure 4. AGPL协议与商业授权协议不兼容

上图说明,不允许以商业授权的Odoo企业版为基础开发AGPL协议的开源应用,但是开发LGPL协议的开源应用则是允许的

AGPL协议与商业授权协议不兼容
Figure 5. 同时使用AGPL和商业授权应用

上图说明,Odoo企业版应用和AGPL开源协议的Odoo应用可以同时使用,前提是他们互相之间没有依赖关系。

免费开源Odoo系统破解企业数字化转型难题