OpenJDK again

Mercurial に移行してから一度試して、ようわからんと試していなかったが、再度トライ。前回は hg clone http://hg.openjdk.java.net/jdk7/jdk7 yourjdk7 でほんのちょっとしか
ファイルが落ちていなくて、make してもファイルがないとかエラーになるといった状態だった。Mercurial 自体使ったことなかったし、http://weblogs.java.net/blog/kellyohair/ では hg fclone ... となっていて、fclone は clone のタイポかと勘違いしていた。

fclone は forest extension の clone (ネストした複雑なソースツリーの複製)であり、これを使うためには Mercurial の forest extension を入れないといけない。

結局のところ、forest extension は mercurial のパッケージにはあまり含まれていないようで fclone が動かない場合には自分でインストールする必要がある。

http://www.selenic.com/mercurial/wiki/index.cgi/ForestExtension にいって Download site: public development repository. をクリックすると Mercurial の web ui? が出てくる。どのファイルをどうやってダウンロードするのか面食らってしまったが、サーチしたりしているうちに forest.py へのリンクをみつけた。それをクリックしても色づけされたソースが出てくるので、そのままコピーしても動きそうにない。search で forest.py をサーチして、履歴のもっとも新しいエントリの files: に続く forest.py をクリック、そしてトップメニューの Raw を押すことでやっとダウンロードできた。

forest は .hgrc という Mercurial の設定ファイルに次のような行を追加しないと使えない。

[extensions]
hgext.forest=
# or, if forest.py is not in the hgext dir:
# forest=/path/to/forest.py

そのページによると hgext に forest.py がない場合には hgext.forest= のあとに forest.py へのパスを書く必要があるとあったので Ubuntu 上で /usr/share/python-support/mercurial/hgext にコピーして、上記のままの .hgrc をしようとしたがまだ動かない。結局、ダウンロードした forest.py へのパスを hgext.forst= に続けて書いて、やっとうごいた。

hg fclone http://hg.openjdk.java.net/jdk7/jdk7 yourjdk7

これでやっとダウンロードできたみたい。

実際にビルドしていくには README-builds.html にしたがって、環境設定が必要。開発関連のいろいろなパッケージが入っていないといけないけど、しばらく前にいろいろと入れたのでエラーが出たときにあとで必要に応じて入れることにして OpenJDK 特有の設定を確認。

Bootstrap JDK
これは JDK6 を入れ、そのトップディレクトリを ALT_BOOTDIR に設定する。/usr/jdk/jdk1.6.0_03 に入れておいて JAVA_HOME にしておいたので、ここは export ALT_BOOTDIR=$JAVA_HOME とする。

Binary Plugs
これは JDK の内ソースで配布できないものをまとめたようなものでこれは OpenJDK の Downloads から落とせとあるが、openjdk.java.net を見ても Downloads も Binary Plugs も文字列として見つからないし、このページにサーチ機能もない。なぜにここまで不親切なインストラクションしかないのか憤りを覚えずにはいられなかったが、怒ったところでどうなるわけでもないので、openjdk.java.net のトップページにある Mercurial 移行の blog をチェックしていってやっと見つけた。http://download.java.net/openjdk/jdk7/ に binary plugs の各種プラットホーム用のダウンロードリンクがある。ダウンロードするのは jar ファイルで java -jar jdk-7-ea-plug-b24-linux-i586-04_dec_2007.jar のようにするとインストーラが起動する。ライセンスを確認、アクセプトすると展開先を聞いてくる。そのディレクトリを環境変数 ALT_BINARY_PLUGS_PATH でさすようにする。

FreeType の設定で終わりだが、今日はもうつかれたので明日にしよう。

もうちょっと分かり易くしてくれ〜