月別アーカイブ: 2012年6月

libpngのアップデート

FreeBSDのportsにあるgraphics/pngがアップデートされました。libpng.so.5がlibpng15.so.15に変わる大きな変更です。ライブラリバージョンが上がるため、依存しているプログラムは全て再コンパイルが必要なのですが、恐らくこれは一筋縄ではいきません。いろいろと落とし穴があるので、参考になりそうな点を書きたいと思います。

まず、アップデートですが、portmaster -aで概ねアップデートされます。libpngに依存する多くのportsのバージョンアップが行われているため、ほぼ全て再コンパイルされます。

手元で確認した限りでは次のような問題がありました。

1 gtkのコンパイルエラー

日本語仮名漢字変換のためのim-uim.soがインストールされているとgtkのインストールに失敗します。インストールされているim-uim.soをリンクしようとするためですが、im-uim.soが古いlibpngを参照しているためリンクに失敗するものです。

これは/usr/local/lib/gtk-2.0/2.10.0/immodules/im-uim.soを削除することで解決できます。

副作用として uim-gtk のリコンパイル時にバックアップパッケージが作成できない旨のエラーメッセージが表示されますが、ignoreを選択すれば大丈夫です。

2 pkg-configのエラー

gnome関連のパッケージのconfigureでエラーになりました。pkg-configが正常に動作していないようでしたので、portmaster pkg-configで再コンパイルし直すことで治りました。

なお、全てのパッケージが正常にリンクされているかどうかを調べるにはportsのsysutils/bsdadminscriptsをインストールして、pkg_libchkを実行すると調べられます。

古いlibpngを参照しているパッケージがあったらportmaster <パッケージ名> で再コンパイルできます。