diary/Kojima/2009-06-29
の編集
http://plamo.linet.jp/?diary/Kojima/2009-06-29
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
[[diary/Kojima]] ・ビルドメモ sed-4.2 の環境で VLC-0.9.9a をビルドしようとすると、 kojima@xeon[/mnt/Srcs/VLC/build]% make make all-recursive make[1]: ディレクトリ `/mnt/Srcs/VLC/build' に入ります Making all in po make[2]: ディレクトリ `/mnt/Srcs/VLC/build/po' に入ります make[2]: ディレクトリ `/mnt/Srcs/VLC/build/po' から出ます Making all in src make[2]: ディレクトリ `/mnt/Srcs/VLC/build/src' に入ります rm -f -- "../include/vlc_about.h.tmp" mkdir -p -- ../include echo "/* Automatically generated file - DO NOT EDIT */" > "../include/vlc_about.h.tmp" echo "static const char psz_license[] =" >> "../include/vlc_about.h.tmp" cat ../COPYING | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }' >> "../include/vlc_about.h.tmp" echo ";" >> "../include/vlc_about.h.tmp" echo "static const char psz_thanks[] =" >> "../include/vlc_about.h.tmp" grep -v '$Id:' ../THANKS | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }'|sed s/"<.*.> "// >> "../include/vlc_about.h.tmp" この最後の行の処理が無限ループになるのか、1時間以上放置していても終了しなかった。 古い 4.1.2 に戻すと kojima@xeon[/mnt/Srcs/VLC/build]% make make all-recursive ... echo "static const char psz_license[] =" >> "../include/vlc_about.h.tmp" cat ../COPYING | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }' >> "../include/vlc_about.h.tmp" echo ";" >> "../include/vlc_about.h.tmp" echo "static const char psz_thanks[] =" >> "../include/vlc_about.h.tmp" grep -v '$Id:' ../THANKS | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }'|sed s/"<.*.> "// >> "../include/vlc_about.h.tmp" echo ";" >> "../include/vlc_about.h.tmp" echo "static const char psz_authors[] =" >> "../include/vlc_about.h.tmp" grep N: ../AUTHORS | cut -d" " -f 2- | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }' >> "../include/vlc_about.h.tmp" echo ";" >> "../include/vlc_about.h.tmp" mv -f -- "../include/vlc_about.h.tmp" "../include/vlc_about.h" make all-recursive make[3]: ディレクトリ `/mnt/Srcs/VLC/build/src' に入ります Making all in . make[4]: ディレクトリ `/mnt/Srcs/VLC/build/src' に入ります /bin/sh ../libtool --tag=CC --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -DSYS_LINUX ... と一瞬で処理が進むので、どうやら sed-4.2 の問題らしい。 気になるので、処理しているデータファイルを調べたら、151行めで無限ループになっているらしい。 Julien Plissonneau Duqu醇Qne - JACK audio input module  パッと見は特に問題なさそうなんだけど、行末に文字化けのせいかエスケープシークエンス風のコードが紛れ込んで、 LANG を ja_JP.eucJP にしているとエスケープシークエンスの終了を待つような状態になってしまう模様。 % od -cd bad-data 0000000 J u l i e n P l i s s o n n e 30026 26988 28261 20512 26988 29555 28271 25966 0000020 a u D u q u 033 , A h 033 ( B n e 30049 17440 29045 7029 16684 7016 16936 25966 0000040 - J A C K a u d i o i n 11552 18976 17217 8267 30049 26980 8303 28265 0000060 p u t m o d u l e 033 , A 033 ( 30064 8308 28525 30052 25964 11291 8257 10267 0000100 B \n \n 2626 10 0000103 LANG を C にしてやれば sed-4.2 でも問題なく通ったので、locale まわりの問題っぽいけど、 最近では ja_JP.eucJP な locale でのバグなんて直す人いるかなぁ。。 -6/28日付でsed-4.2.1がリリースされているようですが? -- [[名倉]] &new{2009-06-29 (月) 21:35:43}; -あれ? sed-4.1.2,sed-4.2,sed-4.2.1のそれぞれで試してみたけど,無限ループにならなかったです。試し方が悪かったかな。 試した内容:bad-dataをTHANKSにリネームして,無限ループになる最後の行を実行。 -- [[tamu]] &new{2009-06-30 (火) 12:14:45}; -そういえばvlc-0.9.9ってhttp://secunia.com/advisories/35558/2/がありましたね。 -- [[名倉]] &new{2009-06-30 (火) 15:12:57}; -これは cut & paste すると化け方が変わる類のデータだと思うので、試すなら元の vlc-0.9.9a 付属の THANKS ファイルを使う方がいいでせう -- [[kojima]] &new{2009-06-30 (火) 15:34:54}; -vlc-0.9.9aを解凍しvlc-0.9.9a/srcに入ってechoから始まるスクリプトをcut & pasteして流してみたら一瞬にして終わりました。まあgcc-4.4.0,glibc-2.10.1,bash-4.0.24な怪しい環境ですが。 -- [[名倉]] &new{2009-07-01 (水) 11:11:42}; #comment
タイムスタンプを変更しない
[[diary/Kojima]] ・ビルドメモ sed-4.2 の環境で VLC-0.9.9a をビルドしようとすると、 kojima@xeon[/mnt/Srcs/VLC/build]% make make all-recursive make[1]: ディレクトリ `/mnt/Srcs/VLC/build' に入ります Making all in po make[2]: ディレクトリ `/mnt/Srcs/VLC/build/po' に入ります make[2]: ディレクトリ `/mnt/Srcs/VLC/build/po' から出ます Making all in src make[2]: ディレクトリ `/mnt/Srcs/VLC/build/src' に入ります rm -f -- "../include/vlc_about.h.tmp" mkdir -p -- ../include echo "/* Automatically generated file - DO NOT EDIT */" > "../include/vlc_about.h.tmp" echo "static const char psz_license[] =" >> "../include/vlc_about.h.tmp" cat ../COPYING | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }' >> "../include/vlc_about.h.tmp" echo ";" >> "../include/vlc_about.h.tmp" echo "static const char psz_thanks[] =" >> "../include/vlc_about.h.tmp" grep -v '$Id:' ../THANKS | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }'|sed s/"<.*.> "// >> "../include/vlc_about.h.tmp" この最後の行の処理が無限ループになるのか、1時間以上放置していても終了しなかった。 古い 4.1.2 に戻すと kojima@xeon[/mnt/Srcs/VLC/build]% make make all-recursive ... echo "static const char psz_license[] =" >> "../include/vlc_about.h.tmp" cat ../COPYING | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }' >> "../include/vlc_about.h.tmp" echo ";" >> "../include/vlc_about.h.tmp" echo "static const char psz_thanks[] =" >> "../include/vlc_about.h.tmp" grep -v '$Id:' ../THANKS | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }'|sed s/"<.*.> "// >> "../include/vlc_about.h.tmp" echo ";" >> "../include/vlc_about.h.tmp" echo "static const char psz_authors[] =" >> "../include/vlc_about.h.tmp" grep N: ../AUTHORS | cut -d" " -f 2- | sed s/'"'/'\\"'/g | gawk '{ print "\""$0"\\n\"" }' >> "../include/vlc_about.h.tmp" echo ";" >> "../include/vlc_about.h.tmp" mv -f -- "../include/vlc_about.h.tmp" "../include/vlc_about.h" make all-recursive make[3]: ディレクトリ `/mnt/Srcs/VLC/build/src' に入ります Making all in . make[4]: ディレクトリ `/mnt/Srcs/VLC/build/src' に入ります /bin/sh ../libtool --tag=CC --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -DSYS_LINUX ... と一瞬で処理が進むので、どうやら sed-4.2 の問題らしい。 気になるので、処理しているデータファイルを調べたら、151行めで無限ループになっているらしい。 Julien Plissonneau Duqu醇Qne - JACK audio input module  パッと見は特に問題なさそうなんだけど、行末に文字化けのせいかエスケープシークエンス風のコードが紛れ込んで、 LANG を ja_JP.eucJP にしているとエスケープシークエンスの終了を待つような状態になってしまう模様。 % od -cd bad-data 0000000 J u l i e n P l i s s o n n e 30026 26988 28261 20512 26988 29555 28271 25966 0000020 a u D u q u 033 , A h 033 ( B n e 30049 17440 29045 7029 16684 7016 16936 25966 0000040 - J A C K a u d i o i n 11552 18976 17217 8267 30049 26980 8303 28265 0000060 p u t m o d u l e 033 , A 033 ( 30064 8308 28525 30052 25964 11291 8257 10267 0000100 B \n \n 2626 10 0000103 LANG を C にしてやれば sed-4.2 でも問題なく通ったので、locale まわりの問題っぽいけど、 最近では ja_JP.eucJP な locale でのバグなんて直す人いるかなぁ。。 -6/28日付でsed-4.2.1がリリースされているようですが? -- [[名倉]] &new{2009-06-29 (月) 21:35:43}; -あれ? sed-4.1.2,sed-4.2,sed-4.2.1のそれぞれで試してみたけど,無限ループにならなかったです。試し方が悪かったかな。 試した内容:bad-dataをTHANKSにリネームして,無限ループになる最後の行を実行。 -- [[tamu]] &new{2009-06-30 (火) 12:14:45}; -そういえばvlc-0.9.9ってhttp://secunia.com/advisories/35558/2/がありましたね。 -- [[名倉]] &new{2009-06-30 (火) 15:12:57}; -これは cut & paste すると化け方が変わる類のデータだと思うので、試すなら元の vlc-0.9.9a 付属の THANKS ファイルを使う方がいいでせう -- [[kojima]] &new{2009-06-30 (火) 15:34:54}; -vlc-0.9.9aを解凍しvlc-0.9.9a/srcに入ってechoから始まるスクリプトをcut & pasteして流してみたら一瞬にして終わりました。まあgcc-4.4.0,glibc-2.10.1,bash-4.0.24な怪しい環境ですが。 -- [[名倉]] &new{2009-07-01 (水) 11:11:42}; #comment
テキスト整形のルールを表示する