MacPorts で evolution-data-server が原因で gnome のインストールに失敗するのをどうにかする
MacPorts では、libiconv を最初にインストールしとけよ!というお話。
最近 Rabbit を使っていないのは Keynote の修業ってのもあるんだけど、MacBook の ruby-gnome 環境が構築できなかったからでもあったりする。(PowerBook はだいじょうぶ)インストール中に evolution-data-server が libiconv のシンボル衝突でこけるっていう macports ticket#10940 と同じ現象にはまっていた。
依存プログラムの中に、/usr/lib/libiconv と /opt/local/lib/libiconv にリンクしているものがあって、evolution-data-server までくるとそいつらが矛盾してしまうようだ。じゃ、犯人探しだ。
% for lib in `find /opt/local/lib -name \*.dylib -type f`; do otool -L ${lib}; done
この出力結果で /usr/lib/libiconv にリンクしているやつを port deps でたどって、起点になっているものを探す(かなり地味な作業。自動化できると思うけどそれもおっくう)。で、自分の環境では、以下の2つが原因であることがわかった。
- libbonobo
- popt
で、こいつらを構築しなおして、依存プログラムも再コンパイルすれば ok。なはずなのだけど、popt が以前としてアウト。仕方ないので、port edit で popt の Portfile に以下の 1行を追加。
configure.env LDFLAGS="-L${prefix}/lib" CFLAGS="-I${prefix}/include"
で、あとは port -f uninstall で /usr/lib/libiconv にリンクしているものを削除して、evolution-data-server を port install で今度こそ完了。と思ったら、今度は #9162 の後半にある _POA_ のシンボルが衝突。うへえ。
(2007.02.04 追記)1.8.3 の Portfile でインストールできるようになったもよう。