Emacs を入れ替えた。
きっかけは、liblockfile のアップデートに失敗したから。
これ自体は Gentoo Bug #268225 で解決したが、そもそも apple が OS X に付属させている emacs ではこのライブラリを使っていないので依存させない実験をしたかったのだ。
どうせ ebuild をいじってコンパイルし直すなら、23.0.9x にしよう、と。
まず、emacs-cvs パッケージだが、prefix ツリーには 23.0.9999-r1 しかない。
これは CVS から直接チェックアウトして…というもので、スナップショットの 23.0.9x 用は本来別に存在する。
ということで、ecopy =app-editors/emacs-cvs-23.0.93 で Gentoo Linux のツリーから取り込むのが最初。
で、当然、Mac に対応するコードはない。
今度は emacs-22.3-r2.ebuild から関係ありそうな部分を emacs-cvs-23.0.93.ebuild に取り入れて、emerge。
…と素直にいかなかった理由は aqua USE フラグが package.use.mask ファイルでマスクされていたから。
取れる対策は二つ: package.use.mask ファイルを編集してしまう、または aqua でない USE フラグを使う。
後で sync することを考えると後者がいいだろう。
じゃあ carbon で。
emerge してみる。
その途中画面で configure の結果が出るが、GUI 関係のものが何も選ばれていない雰囲気だったので、一度止める。
試しにソースが展開されているディレクトリで configure --help してみたら、--with-carbon の無いことが発覚。
一方 --with-ns に Cocoa が云々との記述が。
時代は Carbon ではなく Cocoa だ、と。
不安だったのでググってもみる。
まあその方向でいいらしい。
ということで、USE フラグを carbon から cocoa に変えて、configure に渡すオプションを --with-carbon から --with-ns に。
--enable-carbon-app はよく解らないのでコメントアウトして、多分こっちがいいだろうと --disable-ns-self-contained を加えておく。
Emacs.app の中に何でもかんでも詰め込まないようにするオプション。
さあこれで、とはいかないのが厳しいところ。
emerge の途中でソースディレクトリの何もかもが消えて無意味なシンボリックリンクだけが残った。
経験のない壊れ方だ。
ebuild コマンドで configure, compile, install と順に実行すると、install でこの現象が起こることが判った。
試しに compile まで済ませた段階から直接 make install をすると、消えない。
DISTDIR=${D} という常套句が余計ってこと?
しばらく悩んで、emake の前に make install しておく、という荒っぽい解決を思いつく。
ひとまず、これで emerge が終了するところまでこぎつけた。
(本当は make install までは必要ないので、後で make install-arch-dep に限定した。)
さて、できあがった Emacs.app は?
と探してみたが見当たらない。
それもそのはずで、ソースを展開したディレクトリのサブディレクトリに作られることになっていた。
そして、このソースを展開したディレクトリは emerge が成功すると削除されてしまうのだ。
それならば、インストールディレクトリを別途指定すればいいはず、という期待も裏切られる。
実は configure スクリプトの中で、Emacs.app の作成場所はソースを展開したディレクトリ下の nextstep に決められてしまっていて動かせない。
さすがに configure.in の編集という方向は気が向かないので、できあがったものを削除される前に移動しておく、という方法を選択した。
長かったが、これで動く emacs-23.0.93 が手に入った。
(ついでに、liblockfile も既に依存から無くなっていたのでその実験は必要なかった。)
いままでの Carbon Emacs とキーバインドが違っていて、meta キーが option に割り当てられている。
今まで meta キーだった command は super?
|