MacPorts の ffmpeg が新しくなってた

コンテナ

なんとなく古くなった port はあるかな〜?と思って outdated を調べてみたら…

powermac-g5:~ paraches$ sudo port sync
powermac-g5:~ paraches$ port outdated
The following installed ports are outdated:
expat                          2.0.0_1 < 2.0.1_0         
ffmpeg                         0.4.9-pre1_1 < 0.4.9-pre1_2  
sqlite3                        3.3.17_0 < 3.4.0_0        
subversion                     1.4.3_1 < 1.4.4_0         
XviD                           1.1.0_0 < 1.1.2_0         
powermac-g5:~ paraches$ sudo port upgrade expat

という結果に。を! ffmpeg 新しくなってる! という訳で、outdated なものを新しくしてみた。
なんとなく ffmpeg は問題起こしそうだな〜と思ったので、まずはそれ以外をプチプチ手で新しくしていく。

powermac-g5:~ paraches$ sudo port upgrade expat
--->  Fetching expat
--->  Attempting to fetch expat-2.0.1.tar.gz from http://downloads.sourceforge.net/expat
--->  Verifying checksum(s) for expat
--->  Extracting expat
--->  Configuring expat
--->  Building expat with target all
--->  Staging expat into destroot
--->  Deactivating expat 2.0.0_1
--->  Installing expat 2.0.1_0
--->  Activating expat 2.0.1_0
--->  Cleaning expat
powermac-g5:~ paraches$ sudo port upgrade sqlite3
--->  Fetching sqlite3
--->  Attempting to fetch sqlite-3.4.0.tar.gz from http://www.sqlite.org/
--->  Verifying checksum(s) for sqlite3
--->  Extracting sqlite3
--->  Applying patches to sqlite3
--->  Configuring sqlite3
--->  Building sqlite3 with target all
--->  Staging sqlite3 into destroot
--->  Deactivating sqlite3 3.3.17_0+darwin_8
--->  Installing sqlite3 3.4.0_0+darwin_8
--->  Activating sqlite3 3.4.0_0+darwin_8
--->  Cleaning sqlite3
powermac-g5:~ paraches$ sudo port upgrade XviD   
--->  Fetching XviD
--->  Attempting to fetch xvidcore-1.1.2.tar.bz2 from http://downloads.xvid.org/downloads/
--->  Verifying checksum(s) for XviD
--->  Extracting XviD
--->  Configuring XviD
--->  Building XviD with target all
--->  Staging XviD into destroot
--->  Deactivating XviD 1.1.0_0
--->  Installing XviD 1.1.2_0
--->  Activating XviD 1.1.2_0
--->  Cleaning XviD
powermac-g5:~ paraches$ sudo port upgrade subversion
--->  Fetching subversion
--->  Attempting to fetch subversion-1.4.4.tar.bz2 from http://subversion.tigris.org/downloads/
--->  Verifying checksum(s) for subversion
--->  Extracting subversion
--->  Applying patches to subversion
--->  Configuring subversion
--->  Building subversion with target all mucc
--->  Staging subversion into destroot
--->  Deactivating subversion 1.4.3_1
--->  Installing subversion 1.4.4_0
--->  Activating subversion 1.4.4_0
--->  Cleaning subversion
powermac-g5:~ paraches$ 

ここまでは問題なし。さて、肝心の ffmpeg は…?

powermac-g5:~ paraches$ sudo port upgrade ffmpeg    
--->  Fetching ffmpeg
--->  Verifying checksum(s) for ffmpeg
--->  Extracting ffmpeg
--->  Configuring ffmpeg
--->  Building ffmpeg with target all
Error: Target com.apple.build returned: shell command " cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk" && make all " returned error 2
Command output: /opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk/libavcodec/avcodec.h:2501: warning: 'ImgReSampleContext' is deprecated
/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk/libavcodec/avcodec.h:2507: warning: 'ImgReSampleContext' is deprecated
In file included from rtpproto.c:21:
avformat.h:291: warning: 'AVFrac' is deprecated
gcc -I"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk"/libavcodec  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk"/libavutil -O2 -DHAVE_LRINTF -I/opt/local/include -no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare -fomit-frame-pointer -faltivec -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3 -fPIC -DPIC -c -o tcp.o tcp.c
In file included from avformat.h:32,
                 from tcp.c:21:
/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk/libavcodec/avcodec.h:2501: warning: 'ImgReSampleContext' is deprecated
/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk/libavcodec/avcodec.h:2507: warning: 'ImgReSampleContext' is deprecated
In file included from tcp.c:21:
avformat.h:291: warning: 'AVFrac' is deprecated
gcc -I"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk"/libavcodec  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk" -I"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk"/libavutil -O2 -DHAVE_LRINTF -I/opt/local/include -no-cpp-precomp -pipe -force_cpusubtype_ALL -Wno-sign-compare -fomit-frame-pointer -faltivec -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3 -fPIC -DPIC -c -o udp.o udp.c
In file included from avformat.h:32,
                 from udp.c:21:
/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk/libavcodec/avcodec.h:2501: warning: 'ImgReSampleContext' is deprecated
/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk/libavcodec/avcodec.h:2507: warning: 'ImgReSampleContext' is deprecated
In file included from udp.c:21:
avformat.h:291: warning: 'AVFrac' is deprecated
udp.c:49: warning: 'udp_ipv6_is_multicast_address' defined but not used
rm -f libavformat.a
ar rc libavformat.a utils.o cutils.o os_support.o allformats.o framehook.o avio.o aviobuf.o raw.o adtsenc.o aiff.o riff.o amr.o apc.o asf.o asf-enc.o au.o avidec.o avienc.o avs.o vocdec.o voc.o bethsoftvid.o c93.o crc.o daud.o dsicin.o dv.o dvenc.o dxa.o electronicarts.o ffm.o flic.o flvdec.o flvenc.o 4xm.o gif.o gifdec.o gxf.o gxfenc.o idcin.o img2.o ipmovie.o matroska.o mm.o mmf.o mov.o isom.o movenc.o mp3.o mpc.o mpeg.o mpegts.o mpegtsenc.o mpjpeg.o mtv.o mxf.o nsvdec.o nutdec.o nuv.o ogg2.o oggparsevorbis.o oggparsetheora.o oggparseflac.o oggparseogm.o ogg.o rtsp.o rm.o idroq.o rtp.o rtp_h264.o segafilm.o smacker.o sol.o psxstr.o swf.o thp.o tiertexseq.o tta.o txd.o sierravmd.o vocenc.o wav.o wc3movie.o westwood.o wv.o yuv4mpeg.o file.o http.o rtpproto.o tcp.o udp.o 
ranlib libavformat.a
gcc -dynamiclib -Wl,-single_module -Wl,-install_name,/opt/local/lib/libavformat.dylib,-current_version,51.1.0,-compatibility_version,51.1.0 -Wl,-read_only_relocs,suppress -Wl,-dynamic,-search_paths_first -L/opt/local/lib -o libavformat.51.dylib utils.o cutils.o os_support.o allformats.o framehook.o avio.o aviobuf.o raw.o adtsenc.o aiff.o riff.o amr.o apc.o asf.o asf-enc.o au.o avidec.o avienc.o avs.o vocdec.o voc.o bethsoftvid.o c93.o crc.o daud.o dsicin.o dv.o dvenc.o dxa.o electronicarts.o ffm.o flic.o flvdec.o flvenc.o 4xm.o gif.o gifdec.o gxf.o gxfenc.o idcin.o img2.o ipmovie.o matroska.o mm.o mmf.o mov.o isom.o movenc.o mp3.o mpc.o mpeg.o mpegts.o mpegtsenc.o mpjpeg.o mtv.o mxf.o nsvdec.o nutdec.o nuv.o ogg2.o oggparsevorbis.o oggparsetheora.o oggparseflac.o oggparseogm.o ogg.o rtsp.o rm.o idroq.o rtp.o rtp_h264.o segafilm.o smacker.o sol.o psxstr.o swf.o thp.o tiertexseq.o tta.o txd.o sierravmd.o vocenc.o wav.o wc3movie.o westwood.o wv.o yuv4mpeg.o file.o http.o rtpproto.o tcp.o udp.o -L"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk"/libavutil -lavutil -lavcodec -L"/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_multimedia_ffmpeg/work/trunk"/libavcodec -lz -la52 -lmp3lame -lm -ltheora -logg -lvorbis -lvorbisenc -logg -logg -lxvidcore -lx264 -lfaac -lfaad  
ld: warning prebinding disabled because dependent library: /opt/local/lib/libavutil.dylib is not prebound
ld: Undefined symbols:
_ff_mpa_decode_header
/usr/bin/libtool: internal link edit command failed
make[1]: *** [libavformat.51.dylib] Error 1
make: *** [lib] Error 2
rm doc/ffserver.pod doc/ffmpeg.pod doc/ffplay.pod

Error: Unable to upgrade port: 1

ハイ!やっぱり問題有り。なんか ffmpegって一筋縄でいかないこと多い気がするな〜。

ld: warning prebinding disabled because dependent library: /opt/local/lib/libavutil.dylib is not prebound
ld: Undefined symbols:
_ff_mpa_decode_header
/usr/bin/libtool: internal link edit command failed

ここが怪しいのだけど、良くわからん。リンクされてない?リンクのシンボルが定義されてない?なんだろう???前のバージョンで作ったものと新しいバージョンで作ったものが混ざっておかしくなった?う〜ん。_ff_mpa_decode_header でググっても何もヒットしないし…
というわけで、まずは ffmpeg をきれいさっぱり消して、それからじっくりインストールしなおしてみる事にした。

powermac-g5:~ paraches$ sudo port uninstall ffmpeg
--->  Deactivating ffmpeg 0.4.9-pre1_1+a52+dts+faac+faad+lame+libogg+theora+vorbis+x264+xvid
--->  Uninstalling ffmpeg 0.4.9-pre1_1+a52+dts+faac+faad+lame+libogg+theora+vorbis+x264+xvid
powermac-g5:~ paraches$ sudo port clean ffmpeg
--->  Cleaning ffmpeg
powermac-g5:~ paraches$ 

こんな感じで ffmpeg はアンインストール完了。
次にもう一度 ffmpeg をインストールしてみる。

powermac-g5:~ paraches$ sudo port install ffmpeg +lame +libogg +vorbis +theora +faac +faad +xvid +x264 +a52 +dts
--->  Fetching ffmpeg
--->  Verifying checksum(s) for ffmpeg
--->  Extracting ffmpeg
--->  Configuring ffmpeg
--->  Building ffmpeg with target all
--->  Staging ffmpeg into destroot
--->  Installing ffmpeg 0.4.9-pre1_2+a52+faac+faad+lame+libogg+theora+vorbis+x264+xvid
--->  Activating ffmpeg 0.4.9-pre1_2+a52+faac+faad+lame+libogg+theora+vorbis+x264+xvid
--->  Cleaning ffmpeg
powermac-g5:~ paraches$ ffmpeg
FFmpeg version SVN-r9102, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --prefix=/opt/local --prefix=/opt/local --disable-vhook --mandir=/opt/local/share/man --enable-shared --enable-pthreads --enable-libmp3lame --enable-libogg --enable-libvorbis --enable-libtheora --enable-gpl --enable-libfaac --enable-libfaad --enable-xvid --enable-x264 --enable-liba52
  libavutil version: 49.4.0
  libavcodec version: 51.40.4
  libavformat version: 51.12.1
  built on Jun 21 2007 20:23:10, gcc: 4.0.1 (Apple Computer, Inc. build 5367)
usage: ffmpeg [[infile options] -i infile]... {[outfile options] outfile}...
<省略>

を!今度は問題なくインストールできたぞ!
メデタシメデタシ。