中田真秀(なかたまほ)のブログ

研究について、日常について、その他。

OpenOffice.org on FreeBSD:フリーのjavaでビルドできるまで(I)

2010-04-25 08:34:14 | 日記
ちょっとこの話は曲がりくねっている。
OpenOffice.orgがFreeBSD上でフリーなツールのみを用いてビルドできるようになるまでの軌跡だが、話の流れは
  • FreeBSDでのJavaサポート、苦難と喜びの始まり。
  • FreeBSDでのJavaの公式バイナリ配布で好転。
  • FreeBSDでのGNUによるjavaでのコンパイル、ビルド、これが苦労の割に酬われず。
  • FreeBSDでのopenjdk6でのビルドで救われた。

というふうになっている。

LinuxよりFreeBSDの方が、フリーに関する実質的な利害が大きい(あくまで実質的だが)。なぜならば、Linux版のソフトでバイナリでしかリリースされないソフトについてはLinux ABI(Application Binary Interface;互換機能)を用いて動かす。それでも動かないソフトについて動かす必要があれば、Linuxに乗り換える必要がある可能性があるからだ。Linuxは広く認知されたからかもしれないが、バイナリ配布のみのソフトも多いし、カーネルも様々に進んできた。

FreeBSDではjavaのサポートが弱かった、といってもずいぶん前の話だが。一番ふるい話で私に関係がありそうなのは、FreeBSD 4でJava 1.4が動いたとかそういう話である。ここから苦悩(ずっと移植し続ける)と喜び(OpenOffice.orgが動く)がはじまるわけだ。もちろん私が移植に関わったわけではないが、openoffice.org1.1以降をビルドするにはJava 1.4が必要だったのだ。(語弊がある。OOo 2.0近くまで、1.3でもビルド可能のはずで、パッチを送ったらokだったはずだが、結局開発スピードには全然ついてゆけず、1.4でビルドせざるを得なかった。手伝ってもらったこともある。そして Issueも書いて#i42305#となったが、今度はFreeBSD側の問題でペンディングになって諦めた)

FreeBSDでの状況は、公式版が2006/4/5にJava1.5が出たことで「公式バイナリ」が出たためかなり好転したが、それまでの状況は良くなかった。

それを説明しよう。公式サポートがないと、ソースからコンパイルせねばならない。まあその手間はよいとしても、致命的な問題がある。
  • ソースの入手可能性、ライセンスの問題ソースはライセンス(比較的厳しい)をアクセプトする必要があった。再配布は当然できない。ソースも突然消されて文句は言えなかった。これは厳しかったのだ。
  • ビルドの問題:JavaはJavaでかかれており、卵が先か、鶏が先かというbootstrapの問題を抱えている。つまり、ソースのみの状態でビルドできないのだ。従って、Linux版のjavaを使ってビルドせねばならなかった。
  • めんどくさいのでどうしても利用者が減ったりする。まあLinux版のJavaやOpenoffice.orgをFreeBSDでそのまま使えば良いのだがこれも倒錯してる気がする。

という状況であった。

Java 1.5の公式サポートがあったとしても所詮好転であった。なぜならば、バイナリパッケージのみの配布で
  • 比較的複雑な手法でダウンロードしなければならない。
  • OSのバージョンアップとバイナリが必ずしも追従しない、また新しいまたは古いバージョンのOSを使えなくなるかもしれない。特に前者は開発者にとっては致命的である。

などの理由があるからだ。


したがって、Richard Stallmanをして、一般的にJava trapといわしめるほど、OpenOffice.orgには問題があったのだ。また、この点については、Richard Stallman自身からメールをもらったこともある。

ということで、フリーのJava実装には興味があった。もちろんOpenOffice.orgをやりながら、というのは不可能なので見守っているだけだった。またFreeBSDはリソースが少ない。Linuxコミュニティの皆さんの仕事を待たざるを得なかったのだ。

続く。