【51CTO独家特稿】2010年5月初,“核高基”项目(核心电子器件、高端通用芯片及基础软件产品)基础软件测试工作结束,金山WPS和永中Office入围,可能分别获得5000万-6000万的中央财政资金资助,而红旗2000旗下的RedOffice则因为被定性为“非国产”而出局(详见51CTO之前的报道)。接下来有媒体消息进一步证实,原红旗2000总经理胡才勇已经离职,同时红旗2000也发表申明,所有公司的事务由其他人代理,其中时间上的巧合,引起多方猜疑纷纷。
此消息一出,业内各方登时哗然,有关国产、假国产、开源、版权等话题的讨论和口水战掀开了新的篇章。技术本无国界,做为一个纯IT媒体编辑,笔者对于“国产”或“假国产”的定义了解不多;但是有关开源与版权的问题,倒是不妨与大家一起讨论一二。
下面我们便从数个问题入手,从开源的角度来逐步探索RedOffice的事件始末(以下内容大多数收集自互联网,如有问题,欢迎纠正)。
问题1:RedOffice的代码从何而来?
RedOffice是红旗2000的招牌产品。红旗2000公司在2000年创建,并在2001年发布了RedOffice 1.0。RedOffice从最开始便以国内首个基于开源OpenOffice.org(简称OpenOffice或OOo,不过由于OpenOffice这一商标有版权问题,所以正确的缩写应为OOo)的办公软件自居,其代码基于OOo的代码修改而来,修改内容包括控件、插件、中文化等方面,尤其在GUI(图形化界面)方面有极大的改进。
根据红旗2000官方发言人的说法,“OpenOffice的源代码有1000万行左右,而红旗贰仟改写的有几百万行”。据称,现在参与RedOffice开发的团队将近有200人。
目前,RedOffice的最新版本是5.0 Beta(最新稳定版为4.5)。
问题2:RedOffice的代码是否开放?
根据笔者的了解,RedOffice不提供源代码下载。对于这一点,OOo社区的普遍理解为:RedOffice是OpenOffice.org的核,带上一个具有商业性质(commercial)的GUI。
问题3:RedOffice对OpenOffice.org造成侵权了么?
事实上,RedOffice在2006年参与了那一年的OpenOffice.org大会,之后便开始与OOo社区分享代码,并积极参与OOo的年会和社区建设。之后在2007年5月份,Sun(当时OOo的所有者)与红旗2000签署了一份SCA合作协议,协议内容为OpenOffice.org接受红旗2000为合作伙伴,而红旗2000则帮助OOo的中文本地化,并向社区贡献代码(详见OpenOffice.org官网的版权认可合作伙伴页面)。
虽然现下Sun已经被Oracle收购,OOo已属Oracle下的项目,但之前的合作关系并未改变,RedOffice仍是OOo认可的衍生版本。除非Oracle提出异议,否则RedOffice并不构成侵权。
问题4:RedOffice是否违背了开源协议?
2000年OOo项目启动时,同时在LGPL和Sun的SISSL的双重许可协议下发布,源代码完全开放。Sun在2005年宣布要让SISSL退休,于是2008年3.0 Beta版本开始,OpenOffice.org开始采用单一的LGPL v3开源许可协议。
另一方面,RedOffice在早期也遵循SISSL协议,不开放源代码(当时的OOo处在LGPL和SISSL的双重许可协议下)。而根据红旗2000工作人员的说法以及其在2009年公布的一份白皮书,现在的RedOffice已在LGPL开源许可协议下发布。只不过,这则信息并没有在RedOffice的官网之上和RedOffice的软件中注明;而RedOffice安装过程中关于许可协议方面的说明则是“最终用户许可协议”,其中并没有提及LGPL的相关事宜。至于RedOffice的源代码,我们之前也提到了,那就是除了其分享在OOo社区的代码之外,我们是找不到RedOffice的源代码的。
我们先来了解一下上述的这两个许可协议。首先是SISSL:这是一个有点奇怪、自由度很大的许可协议。就以OOo为例,根据笔者对条文的理解,其大意就是,你可以把OOo的源代码拿来随便改,改了之后可以发布你自己的产品。只要在你的产品发布之前的120天内Sun没去踢你的场子,你要开源还是闭源都可以。
另一方面,LGPL v3则是GPL的修改版,强调了“库(Library)”和“应用程序(Application)”之间的区分。“库”所指的就是处于LGPL协议下的作品,而“应用程序”则是对“库”进行了引用,除此接口之外与库无关的作品。简单来说,就是如果你的应用只是对LGPL类库进行了引用,而没有修改库本身的内容,那么你的应用可以不开源,可以作为进行过二次开发的商业软件(参考阅读:四大开源协议比较:BSD、Apache、GPL、LGPL )发布。对LGPL感兴趣的51CTO读者们可以去阅读一下非官方的LGPL条例中文译文以及GPL条例的译文(繁体中文版,Chinese Translation Services翻译)。
所以,LGPL是一个比SISSL更为严格的协议。不过根据定义,如果衍生产品是OOo 3.0 Beta之前版本的代码修改而来,那么仍可遵照SISSL协议,针对库的修改也不用开源;一旦用了OOo 3.0 Beta之后版本的代码库,那么则针对库的代码必须公开,而引用库的二次开发部分则无需开源。
另外需要注意的是,开源许可协议规定的重点仅仅在于“源代码是否公开”以及“衍生产品是否需要遵循同样的开源条例(所谓开源许可的传染性)”,而与产品是收费还是免费毫无关系。收费的开源项目其实也很常见,红帽企业版Linux就是最大的例子。
所以,要明白RedOffice是否违背了开源协议,这有两个层面的意思:
1. RedOffice自称LGPL,可是它的代码公开了么?
2. RedOffice使用OOo代码的方式,是否违反了OOo上LGPL或SISSL许可的规定?
有关第一个问题,根据笔者目前的了解,RedOffice不提供源代码下载。也就是说,RedOffice不能被称之为基于LGPL发布的开源软件,而应被定义为专属软件。
而第二个问题就比较复杂了,即使我们手上有RedOffice的源代码,这也仍然是个十分困难的问题。回顾开源界的历史,曾经有Keith Bostic将AT&T专属的UNIX中的内核和工具代码改写之后发布为开放源代码的BSD(参考UNIX传奇),也不乏像是CentOS社区这样将红帽企业版Linux修改之后另外发布一个开源发行版的情况。到底哪些代码必须公开,哪些代码不能使用,对于每个项目都并不相同,因为许可协议各自不同。根据传统,人们仅仅会在闹到法庭上的时候才去细究这一点。美国法庭处理过UNIX和BSD纠纷一案,当时判定的方法就是,AT&T一方提出有待争议的代码段,由专家进行鉴定,与BSD中的相关代码进行比对。案子一起,数年无法完结,整个过程可谓是麻烦不已。
然而通过目前了解的信息,我们仍可以得出下面几个结论:
◆如果RedOffice 4.5是由OOo 3.0 Beta之前的版本改写而来,则RedOffice没有违背SISSL的规定。
◆如果RedOffice 4.5是由OOo 3.0 Beta或之后的版本改写而来,那么如果RedOffice的二次开发过程中,没有对OOo本身的类库进行改动,则RedOffice没有违背LGPL的规定。
◆如果RedOffice 4.5是由OOo 3.0 Beta或之后的版本改写而来,而且RedOffice在二次开发过程中改动了OOo本身的类库,那么如果这些改动全部在OOo社区或其他地方公开,则RedOffice没有违背LGPL的规定。
也就是说,RedOffice唯一可能在使用OOo代码上违反开源许可的情况,就是改动了OOo的类库而没有公开其代码。在没有证据的情况下,这个问题目前尚无答案。
问题5:在开源界有其他类似RedOffice的情况么?
关于这个话题,我们也不必往开了说:其实单就OpenOffice.org项目而言,其衍生产品便并不止RedOffice一个。话说OOo最先来自于Star软件公司的StarOffice,后来Star被Sun收了,StarOffice的绝大部分代码便都给开了源,OOo就此诞生。之后,StarOffice本身便成为了OOo的一个衍生版本,在OOo的代码之上加入其他的插件、打包软件等。此外,IBM的Lotus Symphony,Planamesa开发的针对Mac的NeoOffice,都是由OpenOffice.org代码修改而来。除了StarOffice是Sun自家之外,其他的项目都和红旗2000一样,是OOo的合作伙伴。
StarOffice是商业软件,不开源,以最终用户许可的方式售卖。在Oracle买了Sun之后,StarOffice改了名,现在叫做Oracle Open Office,但其功能和许可方式均未改变(详见Oracle的官方FAQ)。
Lotus Symphony是专属软件,不开源。
NeoOffice是开源软件,遵循GPL协议。
事实上,在这份列表中的所有公司与个人都与RedOffice的情况类似。现在这个时代,开源许可的选择很多,灵活性很大,一个项目无论是想要传播、想要吸引开发者、想要保留卖钱的手段,都能够找到合适的许可协议。像RedOffice的这种情况,在开源界可说是属于一种常态了。
总结
综上所述,我们可以肯定以下几点:
1. RedOffice是受到OpenOffice.org授权的合作项目,不构成侵权
2. 红旗2000在OpenOffice.org开源社区当中是积极的合作者与奉献者
3. RedOffice不公开提供其源代码,不能算是基于LGPL的开源项目
4. 目前没有证据显示RedOffice因使用OOo代码而违背了LGPL或SISSL协议
开源最大的价值,乃在于世上最多的创新都来自他人;开源发展的动力,来自于自由的共享。从开源的角度看来,RedOffice这次的整个事件,仅仅是国产 vs 非国产,自主知识产权 vs 非自主知识产权的问题,与剽窃、抄袭、侵犯版权、不遵守开源协议这些事情根本半点关系都没有。一些毫无意义的口水战,应该终止了。
【编辑推荐】