從開源的角度看RedOffice事件始末
原創【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 非自主知識產權的問題,與剽竊、抄襲、侵犯版權、不遵守開源協議這些事情根本半點關系都沒有。一些毫無意義的口水戰,應該終止了。
【編輯推薦】