LinuxでOpenOffice.org 2.0をビルドに関するFAQ

これはOpenOffice.org 2.0のビルドに関するFAQです。主に、日本語版のビルドをする際に起きるエラーの対処方法に関するFAQです。また、ここでは紹介されていないバグについては、すでに最新のマイルストーンでは解決されているかもしれません。まだ解決していない場合もありますが、そのような情報を得たい場合には開発メーリングリストに参加しましょう。ここでは、日々そのような問題について議論されています。

FAQ

EPMはどのようにインストールするのですか?

まず、EPMダウンロードページに行き、"Download From:"より適当なミラーサーバを選択するとダウンロードが開始します。適当なディレクトリに保存してください。ダウンロードが完了したら、まずはソースコードを展開します。

$ tar xvfz epm-3.7-source.tar.gz
$ cd epm-3.7

次にOpenOffice.ortのinstallationプロジェクトから、OpenOffice.orgのビルドのために作られたパッチをダウンロードします。あとは、そのパッチを適用してコンパイルとインストールをmakeにより行うだけです。ちなみに、このパッチをあてないと、正常にビルドができません。

$ wget http://installation.openoffice.org/epm-3.7.patch
$ patch -p2 < ./epm-3.7.patch
$ ./configure
$ make
$ su
# make install

"dmake: Error code 255, while making 'openoffice_ja'"といってビルドできません

issue 36708にあるようなエラーが起こることがあります。これは、helpcontent2をビルドした後に作成されたファイルが正常にsolverにコピーされていないためです。${SRC_ROOT}/helpcontent2/prj/d.lstの

..\%__SRC%\bin\sbasic_ja-JP.zip %_DEST%\pck%_EXT%\sbasic_ja-JP.zip
..\%__SRC%\bin\scalc_ja-JP.zip %_DEST%\pck%_EXT%\scalc_ja-JP.zip
..\%__SRC%\bin\schart_ja-JP.zip %_DEST%\pck%_EXT%\schart_ja-JP.zip
..\%__SRC%\bin\sdraw_ja-JP.zip %_DEST%\pck%_EXT%\sdraw_ja-JP.zip
..\%__SRC%\bin\shared_ja-JP.zip %_DEST%\pck%_EXT%\shared_ja-JP.zip
..\%__SRC%\bin\simpress_ja-JP.zip %_DEST%\pck%_EXT%\simpress_ja-JP.zip
..\%__SRC%\bin\smath_ja-JP.zip %_DEST%\pck%_EXT%\smath_ja-JP.zip
..\%__SRC%\bin\swriter_ja-JP.zip %_DEST%\pck%_EXT%\swriter_ja-JP.zip

となっている部分を

..\%__SRC%\bin\sbasic_ja.zip %_DEST%\pck%_EXT%\sbasic_ja.zip
..\%__SRC%\bin\scalc_ja.zip %_DEST%\pck%_EXT%\scalc_ja.zip
..\%__SRC%\bin\schart_ja.zip %_DEST%\pck%_EXT%\schart_ja.zip
..\%__SRC%\bin\sdraw_ja.zip %_DEST%\pck%_EXT%\sdraw_ja.zip
..\%__SRC%\bin\shared_ja.zip %_DEST%\pck%_EXT%\shared_ja.zip
..\%__SRC%\bin\simpress_ja.zip %_DEST%\pck%_EXT%\simpress_ja.zip
..\%__SRC%\bin\smath_ja.zip %_DEST%\pck%_EXT%\smath_ja.zip
..\%__SRC%\bin\swriter_ja.zip %_DEST%\pck%_EXT%\swriter_ja.zip

というようにja-JPをjaに置換します。これで正常にビルドが行われるはずです。

"openoffice-redhat-menus-1.9.62-1.noarch.rpm"や"openoffice-suse-menus-1.9.62-1.noarch.rpm"が見つかりません

instsetoo_nativeのビルド時に、次のようなメッセージが表示される場合、

*********************************************************************
ERROR: The following errors occured in packaging process:

ERROR: Source for openoffice-redhat-menus-1.9.62-1.noarch.rpm not found!
ERROR: Could not copy to RPMS/openoffice-redhat-menus-1.9.62-1.noarch.rpm
ERROR: Source for openoffice-suse-menus-1.9.62-1.noarch.rpm not found!
ERROR: Could not copy to RPMS/openoffice-suse-menus-1.9.62-1.noarch.rpm
*********************************************************************

rpmコマンドとrpmbuildコマンドのあるディレクトリが異なっている為に、sysuiプロジェクトで上記のrpmパッケージが作成出来ずにこの様なエラーが発生します。

sysuiにあるunxlngi4.pro等(linuxの場合)というディレクトリを削除し、再度sysuiプロジェクトをビルドし直してログをとってみて下さい。

もし、そのログの中に次の様な一文があればまず間違いありません。

--buildroot: unknown option

この場合、rpmコマンドのあるディレクトリにrpmbuildのシンボリックリンクを張ることで回避可能です。

尚、sysuiにあるunxlngi4.pro等(linuxの場合)というディレクトリを削除して再度ビルドし直さないと、openoffice-redhat-menus-1.9.62-1.noarch.rpmやopenoffice-suse-menus-1.9.62-1.noarch.rpmは作成されません。

"dmake: Error code 255, while making 'do_it_noopt'"というエラーが発生します

m62以前のバージョンではこの投稿にあるようなエラーが起こることがあります。このバグを修正するには、issue 37204にアップロードされたパッチを${SRC_ROOT}/automation/source/server/statemnt.cxxに適用します。

"dmake: Error code 1, while making '../../unxlngi4.pro/slo/animationfactory.obj'"というエラーが発生します

http://tools.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=5379にあるに、m65をビルドしようとすると、animationnodehelper.hxxが無いためにanimationnodefactory.objを作成できないことがあります。

これは、そもそもgraphicsプロジェクトのanimationsというCVSモジュールが、CVSROOT/modulesにエイリアスとして記述されていないことが原因です。(参照:Issue 38615)

このanimationsモジュールを以下のようにして${SRC_ROOT}にCVSからチェックアウトし、ビルドをし直すとうまくいきます。

$ cd ${SRC_ROOT}
$ cvs -d:pserver:anoncvs@anoncvs.services.openoffice.org:/cvs checkout -r ${BRANCH_TAG} -d animations graphics/animations

"dmake: Error code 1, while making '../../unxlngi4.pro/slo/doctempl.obj'"というエラーが起きます

この問題はgccのバージョンが3.3のときのみ起こる問題のようです。このパッチをsfx2/source/doc/doctempl.cxxに適用してください。(参照:Issue 38506)

$ cd ${SRC_ROOT}/sfx2/source/doc
$ wget http://www.openoffice.org/nonav/issues/showattachment.cgi/20203/buildfix-sfx2.diff
$ patch -p3 < buildfix-sfx2.diff

"dmake: Error code 255, while making 'openoffice_en-US'"というエラーが起きます

... languages en-US ...
... analyzing files ...
ERROR: The following files could not be found:
ERROR: File not found: msfontextract
... cleaning the output tree ...

***************************************************************
ERROR: Missing files
in function: remove_Files_Without_Sourcedirectory
Saved logfile: ${SRC_ROOT}/instsetoo_native/unxlngi4.pro/OpenOffice/logging/en-US/log_SRC680__en-US.log
***************************************************************
Tue Dec 21 05:38:47 2004 (00:02 min.)
dmake: Error code 255, while making 'openoffice_en-US'

というようにmsfontextractというファイルが見つからなくて、このようなエラーが起きることがあります。WITH_FONTOOO環境変数が"YES"にデフォルトで設定されていないため、msfontextractモジュールがビルドされません。しかし、ここでWITH_FONTOOO環境変数が設定されていないにも関わらず、instsetoo_nativeをビルド中にmsfontextractを探しにいくためにエラーになります。

対処方法として、msfontexractをビルドしてしまう、という手があります。WITH_FONTOOO環境変数をYESにしてビルドしてみてください。

$ export WITH_FONTOOO="YES"
$ dmake

これによりmsfontextractがビルドされ、問題が解決するでしょう。(参照:issue 32814)

また、

***************************************************************
ERROR: Unknown format: RPM バージョン 4.2 ! Expected: a.b.c
in function: determine_rpm_version
Saved logfile: /home/bluedwarf/data/ooobuild/SRC680_m65/instsetoo_native/unxlngi4.pro/OpenOffice/logging/en-US/log_SRC680__en-US.log
***************************************************************
Tue Dec 21 08:43:07 2004 (02:58 min.)
dmake: Error code 255, while making 'openoffice_en-US'

というようなエラー起きることがあります。これは、ビルドしている環境のrpmのバージョン出力が3桁で無い場合に発生する問題です。上記の例では'rpm --version'でのバージョンの出力が"RPM バージョン 4.2"というように2桁になっているために、エラーが発生します。この問題を解決するには、solenv/bin/modules/installer/epmfile.pmに

--- epmfile.pm.org 2004-11-30 09:27:01.687921184 +0900
+++ epmfile.pm 2004-11-30 09:29:30.618280328 +0900
@@ -945,6 +945,7 @@
push( @installer::globals::logfileinfo, $infoline);

if ( $rpmout =~ /(\d+)\.(\d+)\.(\d+)/ ) { $rpmversion = $1; }
+ elsif ( $rpmout =~ /(\d+)\.(\d+)/) { $rpmversion = $1; }
else { installer::exiter::exit_program("ERROR: Unknown format:
$rpmout ! Expected: a.b.c", "determine_rpm_version"); }

return $rpmversion;

のようなパッチをあてます。これにより、2桁のバージョン出力に対応することができます。(参照:issue 37405)

どうしてRPMが必要なのですか?

EPMがrpmパッケージを作成するのにrpmコマンドを使用しているからです。


制作者:中本崇志, 増冨善幸
デザイン:小浦寛裕
$Id: build_linux_2_0_faq.html,v 1.12 2004/12/21 00:00:40 bluedwarf Exp $