MacPortsでswftools@0.9.2を入れようとしたら失敗した
$ port search swftoolsswftools @0.9.2 (graphics) SWF manipulation and generation tools $ sudo port install swftools [snip] ---> Building swftools Error: org.macports.build for port swftools returned: command execution failed Please see the log file for port swftools for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_swftools/swftools/main.log To report a bug, follow the instructions in the guide: http://guide.macports.org/#project.tickets Error: Processing of port swftools failed
swftoolsを使いたくて、MacPortsにあったから入れようとしてみたら、エラーで失敗しました。
現状
たぶん、依存してるライブラリ、giflibのバージョンの問題っぽい。後述するメーリングリストのログを、流し読みしたところ*1swftools側で近いうちに、新しいgiflibに対応するということになってるっぽいです。
情報源
Changed 4 weeks ago by ryandesign@…
Replying to simon.groenewolt@…:
I've joined the swftools mailinglist and posted a message regarding this error.
Here are the messages in that thread:
#34553 (swftools: Undefined symbols _PrintGifError) – MacPorts
- http://lists.nongnu.org/archive/html/swftools-common/2012-05/msg00038.html
- http://lists.nongnu.org/archive/html/swftools-common/2012-05/msg00039.html
- http://lists.nongnu.org/archive/html/swftools-common/2012-05/msg00055.html
- http://lists.nongnu.org/archive/html/swftools-common/2012-05/msg00056.html
エラーメッセージで示されたMacPortsのログを見て、そこにあるキーワードを元に探してみると、MacPortsのTracに該当するチケットがありました。
> This is not a Mac-specific issue; it affects any user who has
> upgraded to giflib 4.2.0, which is the latest stable version of
> giflib is that has been released by its developers:
>
> http://sourceforge.net/projects/giflib/I was aware of the above, yes. My suggestion of a downgrade to
http://lists.nongnu.org/archive/html/swftools-common/2012-05/msg00056.html
4.1.6 was meant as a temporary solution, not a permanent fox.
MacPortのチケットにswftoolsのメーリングリストのURLが4つ貼ってあります。4個目のURLを見ると、giflib最新の4.2.0だと発生するという報告に対し、とりあえずの対応として4.1.6を使う解決策が出てました。
> The developers of swftools should update swftools to be compatible
> with the latest stable version of giflib by no longer attempting to
> use this function.Now the issue has been flagged, I agree. I am sure the issue will be
http://lists.nongnu.org/archive/html/swftools-common/2012-05/msg00056.html
rectified shortly.
同じメール内には、それなりに色々と書いてあるけど、とりあえず、最後のほうにswftools側で対応する的な事が書かれてました。このメールが2012/05/31の事だけど、今回エラーが出たって事は、まだMacPortsのリポジトリには少なくとも反映されてないみたい。
疑問
回避策として提示されている、giflib 4.1.6を使うという事だけど、この辺の知識が足りなくてやり方がわからない。
Linuxだとldconfig
とかLD_LIBRARY_PATH
とかを、どうにかするんだと思うんだけど、Macにはldconfig
と/etc/ld.so.conf
が無く、どうやら別の仕組みになっているみたい((そもそも一時的な対応なのに、/etc/ld.so.conf
を変えるのは良くないんだろうけど))。
Mac OS Xの標準のバイナリファイルフォーマット(Mach-O)は、Linuxでのバイナリファイルフォーマット(ELF)とは異なっており、共有ライブラリの扱い方も異なっていたと記憶しているので、Mac OS Xにはldconfigは存在しなかった(=必要ない)と思います。
Macでldコマンド、ldconfigコマンドは使用できますか 【OKWAVE】
この辺りいい加減ちゃんと理解しないといけないよなぁ。
MacPortsで入れる代わりに自前でビルドしたライブラリを使ってswftoolsをビルドしてみた - kanonjiの日記
ライブラリ検索パスに入っていない場所に置いてあるライブラリを使って、セルフビルドしてみました。
*1:読み間違ってなければ