OpenOffice.org 開發構建常見問題

原文:http://www.openoffice.org/FAQs/build_faq.html

翻譯:Jacky Woo 校對:Chen Lishuang, Sun Jing, Cheng Lin     Aug, 2007

一、 什麼樣的源代碼可以在www.openoffice.org獲得?
二、 OpenOffice是基於什麼操作平台而設計的?
三、 OpenOffice.org是如何構建的?
四、 完全構建openoffice (包括源代碼)需要多少硬盤空間?
五、 構建OpenOffice.org需要多長時間?
六、 在 StarOffice 下,軟件開發員是怎樣工作的?
七、 你們有多少工作項目?
八、 大約有多少源代碼?
九、 發佈中所未包含的(以及為何)?
十、 有人能解釋分支工作空間Child Workspaces是什麼嗎?
十一、 我可以從哪裡獲得幫助?
十二、 還有什麼其它的我們需要瞭解?
十三、 有沒有什麼已知的軟件錯誤?

解答

一、
什麼樣的源代碼可以在 www.openoffice.org 獲得?
OpenOffice.org 的源代碼和用於開發StarOffice的源代碼幾乎完全一樣。那些在 OpenOffice.org 中未能公開的源代碼或者程序插件,全部是 Sun Mircosystems 從第三方取得,並且無權進行公開發佈的。Openoffice.org 中的任何無權發佈的代碼,已經被確認並刪除。另外,為了保證 OpenOffice.org 的順利構建,外部引進代碼的構建方法將可獲得,否則其代碼將被清除。OpenOffice.org 可從這個領域工作中受益。

StarOffice/OpenOffice 的開發人員將繼續提交代碼修改到CVS上,該CVS與www.OpenOffice.org 所能訪問的相同。

回目錄

二、
OpenOffice 是基於什麼操作平台而設計的?
OpenOffice.org 已經可以在 Linux(RedHat 8), Solaris(Sparec 2.6-2.9) 和 Windows NT 上成功構建。

為Mac OS X系統的移植工作正在進行,當前進行的工作可以在CVS目錄下獲得。

對於以前支持的OS/2, HP/UX 和其他的操作平台,源代碼可以獲得,但是還未被構建(譯者註:該FAQ寫於03年,現在這些工作應都已完成)

回目錄

三、
OpenOffice.org是如何構建的?
Sun Microsystems已經對構建環境進行了調整,目的是在其他開發團隊所自行定制和優化的環境中得以構建OpenOffice.org。Openoffice.org盡可能使用開源構建工具,仍有可能使用更多。源代碼對所有構建工具均可獲得。

雖然已經做了很多工作使OpenOffice.org的構建經驗盡可能地接近開源標準,但是鑒於應用程序的複雜性和規模,這些構建經驗還是與開源標準有所不同。更多詳細資料請參閱:

http://tools.openoffice.org#Build

回目錄

四、
完全構建openoffice (包括源代碼)需要多少硬盤空間?
目前的推薦大小是3GB。
源代碼的大小是400MB左右
構建需要大約3GB(包括源代碼)
安裝需要300MB左右
為構建增加debug符號信息還需要佔用大約5G。

軟件開發人員通常因為這個原因,僅在特定的目錄中使用「build debug=true」來進行完全debug構建。

回目錄

五、
構建OpenOffice.org需要多長時間?
依據我們目前的經驗,如果完全構建OpenOffice.org大約需要20個小時(一個奔騰III CPU,內存256MB,操作系統Linux)

使用CC="ccache gcc" CXX="ccache g++" 在一台奔騰1.8Ghz的電腦上完成一次構建大約需要4個小時。

回目錄

六、
在 StarOffice 下,軟件開發員是怎樣工作的?
每週Sun的發佈工程師都會在一個優化的環境下,進行一次Staroffice的完全構建。在成功進行完全構建後,最新的solver目錄(譯者註:solver是編譯構建OpenOffice源代碼中產生的一個目錄名,不需翻譯,開發者都明白)會對所有開發人員公開。開發人員會在當前的solver構建自己的CVS模塊。在代碼修改後,開發人員構建CVS模塊並且「提交」("deliver")一份共享頭文件、共享庫與二進制文件的拷貝到當前solver目錄中,以供測試。

在不同版本的完全創建中,不可兼容的代碼改變是允許的。為了不兼容的工作不混在一起,每個共享庫/DLL的名字包括構建號,該構建號每週增加一。

為了支持OpenOffice.org的社區,Sun計劃提供一個相似的環境。原因是代碼庫過於龐大,而現在的開發人員就在使用它。Sun打算在www.openoffice.org上,為每一個操作平台提供一個solver的tarball。這些被人們稱為「里程碑」(milestone)。

因此,建議的開發過程為:
1. 開發人員下載對應操作平台的里程碑 solver tarball
2. 通過CVS檢出針對同樣里程碑(milestone)的相關項目。
3. 修改代碼
4. 構建(這將基於 solver 內容構建,如果成功,則提交結果到solver)
5. 測試新版本
6. 提交補丁 patch

OpenOffice.org 擁有一個巨大的代碼庫。開發團隊之間將 CVS 作為一個同步系統機制使用。在底層 CVS 模塊中的 API 修改會被檢入,以便更高層的模塊反應這些變化。在不兼容的里程碑(milestone)中構建,通常會出現這樣的情況:API 已經在底層修改,可是並不是所有的使用這些 API 的模塊都已經被相應修改。因此,使用 head revision 的構建不一定總是成功的。

一個新的方法正在被引進中。在短期內,head可以成為一個可構建的主幹工作空間(master workspace)。

回目錄

七、
你們有多少工作項目?
將會為OpenOffice.org創建大約20個項目。這些項目是促進社區溝通與交流的一種嘗試,比如說包括XML Office,Porting,Localization,Applications 和 Build Tools在內的項目。

回目錄

八、
大約有多少源代碼?
OpenOffice.org大約有30,000個代碼文件。

OpenOffice.org有大約9,000,000行代碼。絕大多數代碼是C++。

回目錄

九、
發佈中所未包含的(以及為何)?
一些StarOffice從第三方獲得授權的外部組件的源代碼不能從OpenOffice.org 源代碼中獲取 。這些組件包括:

* L&H International CorrectSpell, Intl. Electronic Thesaurus – 拼寫檢查,國際字典&辭典
* Inso Word for Word - 除MS Office 外的用於文件格式的文檔過濾
* Adabas D – 數據庫引擎

下載無法在 www.OpenOffice.org 上發佈的外部源代碼時會有一些指示。

GPC代碼是一個特例,必須單獨地由 OOo 開發人員獲得。請參閱構建指南。

回目錄

十、
有人能解釋分支工作空間Child Workspaces是什麼嗎?
Child workspaces,即分支工作空間,它的主要內容是:

* 只有完全經過測試的代碼才會進入主要CVS的分支
* 所有的里程碑的快照(snapshot)都接近最終產品質量
* 更快的為開發主幹作出貢獻(因為校對和測試可以在cvs目錄上直接進行)

更多信息在http://tools.openoffice.org上可以查詢到。

回目錄

十一、
我可以從哪裡獲得幫助?
首先,您可以瀏覽dev@openoffice.org的郵件列表文檔來查詢、解決類似的問題。

其次,您還可以在dev@openoffice.org上發佈一封郵件來說明您的問題。如果您有一個更加專業的問題,那麼你將會被引導到另外一個針對你的問題的郵件列表(mail list),比如dev@sw.openoffice.org可以用來查詢您的文字處理問題。

對於一個簡單的問題或者閒聊,您可以通過IRC和別的開發人員聊天。IRC不僅僅是提供給開發人員,然而很多專業問題都能在IRC的討論中給予好的建議。

服務器:irc.freenode.net
頻道: #openoffice.org

簡單介紹如何使用IRC:

首先,為您自己找一個IRC 客戶端軟件:
windows用戶,您可以使用mIRC - http://www.mirc.com
Unix、linux用戶,有很多軟件可以使用,然而我們推薦kvirc - http://www.kvirc.net

如果您的客戶端已經設定完成了,您可以在命令欄中輸入:/SERVER irc.openprojects.net

在您登錄之後可以輸入: /JOIN #OpenOffice.org

回目錄

十二、
還有什麼其它的我們需要瞭解?
大多數評論都是德文的,一部分是英文的。未來,所有的新的評論都是英文的。

要下載和構建 OpenOffice.org 還需要大量的先決條件,請查閱http://tools.openoffice.org#Build來查看完整清單。

回目錄

十三、
有沒有什麼已知的軟件錯誤?
我們有一些構建問題:

* Bison 1.875 - 該版本在發佈時有問題,請嘗試升級版本為bison 1.875a 。
* Xwindows 4.3 – 我知道有人遇到過這個問題,但不清楚是怎麼解決的。讓我們瞭解一下!
* 未定義的符號:_Z16XineramaIsActiveP9_XDisplay

這是一個頭文件問題,在'#include '旁邊添加'extern "C" { }' , 然後通過libvcl644li.so構建。

回目錄

zh.OpenOffice.org
幫助
常見問題
∟各種常見問題