このドキュメントではOpenOffice.org 1.1系の日本語版をビルドします。英語によるビルドの方法はBuilding OpenOffice.org under Linuxを参照してください。
必要なものは以下にリストしてありますが、この他にビルドするための時間が必要です。OpenOffice.orgのソースコードは圧縮して約200MBほどになります。このソースコードをダウンロードするのにも時間がかかりますし、解凍するのにもそれなりの時間がかかります。さらに、マシンの性能にもよりますが、OpenOffice.orgのビルドには約20時間かかります。
必要なもの
- glibc 2.1以上
- gcc3.0.x, 3.1.1, 3.2.x, 3.3.xのうちどれか
- X11のヘッダファイルとライブラリ
- JDK 1.4.1(OpenOffice.org 1.1.1系ではJDK 1.4.2ではissue 16626のためビルドできません)
- perl 5
- csh と tcsh
- zip と unzip
- 最低でもIntel Pentium II
- 128MB メモリ
- 3GBのHDDの空き
オプション
- Gtk2 - クラッシュレポータを有効にする場合にgtk2とjpeg/tiffのライブラリが必要です
- Ant - いくつかのJavaで書かれたプログラムをコンパイルするのに必要です
- ccache - コンパイルをする際にキャッシュを利用するので、再ビルドのときなどにコンパイルが速くなります
ソースコードのダウンロード
OpenOffice.org 1.1.1 Source, Solverページの下部にあるミラーの中からお好きなミラーサーバを選択し、OOo_1.1.1p1_source.tar.gzをダウンロードします。ソースコードのアーカイブをダウンロードしたら、適当なところで展開します。
$ tar xvfz OOo_1.1.1p1_source.tar.gz
アーカイブを展開するとoo_1.1.1_srcというディレクトリにソースコードが展開されます。
CVSのアップデート
OpenOffice.orgにはソースコードに多くのエラーがあり、日々解決されています。tarボールのソースコードをダウンロードをした場合には、CVSでソースコードを最新の状態に更新する必要があります。
Branches and Their Descriptionsの表の左側にcws_srx645_ooo111fix3などと記されているのが、OpenOffice.orgのCVSレポジトリのブランチタグというもので、そのDescriptionを見てどれが1.1系の最新ソースコードのブランチタグかを判断してください。以下、CVSブランチタグを${BRANCH_TAG}とします。
そして、CVSによりアップデートを行いますが、CVSによるアップデートは${SRC_ROOT}以下の各ディレクトリごとに行わなければなりません。よって、以下のコマンドを${SRC_ROOT}以下の各ディレクトリごとに行います。
$ cvs update -d -r ${BRANCH_TAG}
また、いちいちカレントディレクトリを切替えるの面倒な場合は、以下のシェルスクリプトを実行すると手間が省けます。(${SRC_ROOT}には絶対パスを指定します。)
for dir in `ls`; do
cd ${SRC_ROOT}
if [ -d ${dir} -a -d ${dir}/CVS ]; then
cd ${SRC_ROOT}/${dir}
cvs update -d -r ${BRANCH_TAG}
fi
done
gpcのダウンロード
OpenOffice.orgはgpcという外部のソースコードを利用しています。OpenOffice.orgをビルドするには、このgpcのソースコードをダウンロードしなければいけません。
General Polygon Clipper Homepageからgpc231.zipをダウンロードします。そしてgpc231.zipを解凍して、$SRC_ROOT/external/gpcにgpc.cとgpc.hをコピーします。
$ wget ftp://ftp.cs.man.ac.uk/pub/toby/gpc/gpc231.zip
$ unzip gpc231.zip
$ cp gpc231/gpc.* ${SRC_ROOT}/external/gpc
日本語のヘルプ
ヘルプを日本語にするためには、別にファイルが必要です。http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/helpcontent/より、(日本語の国際電話の番号は81なので)helpcontent_81_unix.tgzをダウンロードします。ダウンロードしたらまず展開し、次に、$SRC_ROOT/helpcontent/unx/というディレクトリの中を見てください。ここにはcommonやsbasicといったディレクトリがあるので、それぞれのディレクトリ内にjapaneseというディレクトリを作り、さらに、その中に先ほどhelpcontent_81_unx.tgzを展開してできた、sbasic81.zipなどのファイルを$SRC_ROOT/helpcontent/unx/*/japanese/に移動し、さらにそれらのzipファイルをそのディレクトリで解凍します。ちなみに、shared81.zipは$SRC_ROOT/helpcontent/unx/common/japanese/に移動して展開します。
$ wget ftp://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/helpcontent/helpcontent_81_unix.tgz
$ tar xvfz helpcontent_81_unix.tgz
$ mkdir ${SRC_ROOT}/helpcontent/unx/common/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/swriter/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/scalc/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/schart/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/sbasic/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/smath/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/simpress/japanese
$ mkdir -p ${SRC_ROOT}/helpcontent/unx/sdraw/japanese
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/common/japanese shared81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/swriter/japanese swriter81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/scalc/japanese scalc81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/schart/japanese schart81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/sbasic/japanese sbasic81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/smath/japanese smath81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/simpress/japanese simpress81.zip
$ unzip -o -d ${SRC_ROOT}/helpcontent/unx/sdraw/japanese sdraw81.zip
configure
次にconfig_officeディレクトリに移り、./configureを行ないます。このときに適宜./configureにオプションをつけてください。./configureで設定できるオプションは
$ ${SRC_ROOT}/config_office
$ ./configure --help
で見ることができます。必要なものにリストしたプログラムについてはPATHに通しておき、JAVA_HOMEやANT_HOMEも設定しておけば特にオプションをつける必要はないでしょう。また、ccacheを利用するにはあらかじめCC、CXX環境変数を'ccache gcc'などに設定しておきます。
$ export CC='ccache gcc'
$ export CXX='ccache g++'
ただし、日本語版をビルドする際には、--with-lang=JAPNオプションが必要です。この場合、日本語版と英語版の両方がビルドされます。
cd ${SRC_ROOT}/config_office
./configure --with-lang=JAPN
makeする前に
環境変数の設定とビルド環境の構築をします。shやbashを使っているならば$SRC_ROOTにあるLinuxIntelEnv.Set.shを、cshやtcshを使っているならばLinuxIntelEnv.Setを取りこみます。そして、bootstrapをしてdmakeなどのツールを生成させます。
$ cd ${SRC_ROOT}
$ source LinuxIntelEnv.Set.sh (sh, bashの場合)
$ source LinuxIntelEnv.Set (csh, tcshの場合)
$ bootstrap
ビルド開始
これでビルドの準備は整いました。dmakeコマンドでビルドを開始します。
dmake
dmakeを始めたら、あとはただ待つのみです。Pentium III 650MHz, メモリ256Mでだいたい20時間ぐらいかかりました。
ビルドが終了したら
エラー出力がなく、最後までビルドが終ったらあとはインストールセットを作るのみです。ただし、このインストールセットは自動的にできます。$SRC_ROOT/instsetoo/unxlngi4.pro/81/normal以下にできています。
$ cd ${SRC_ROOT}/instsetoo/unxlngi4.pro/81/normal
$ ./setup
とすると、普通にインストールができるようになるはずです。また、これらをアーカイブとして配布するにはnormalディレクトリのみをtar.gz形式にアーカイブ化します。
$ cd ${SRC_ROOT}/instsetoo/unxlngi4.pro/81
$ tar cvf OOo_1.1.1_LinuxIntel_install_ja.tar normal
$ gzip OOo_1.1.1_LinuxIntel_install_ja.tar
こうすると、OOo_1.1.1_LinuxIntel_install_ja.tar.gzというアーカイブができます。ビルドしたバイナリを配布するにはこのアーカイブを配ればよいです。また、アーカイブ名は適宜変更してください。(OOo_1.1.1_LinuxIntel_install_ja.tar.gzというアーカイブ名はOpenOffice.orgが配布しているアーカイブの命名規則に従ったものです。)
一連の作業を楽にするために
自分でOpenOffice.orgをビルドするのはとても大変な作業で、特にソースコードをダウンロードしてからビルドを開始するまでには単純な作業を強いられます。
この単純な作業を自動で行うためのシェルスクリプトja_configure.shを作成しました。${SRC_ROOT}にダウンロードして実行してください。このドキュメントでいうと、(ソースコードをダウンロードして展開した後の)CVSのアップデートから(dmakeをする前の)bootstrapまでの設定を自動的に行ないます。
このシェルスクリプトを利用する前に、このスクリプト内のBRANCH_TAGは適宜変更して利用し、その他の詳細についてはスクリプトを直接見てください。