民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS BsdTar が Windows 上で異様にコンパイルしやすくなっていた

<<   作成日時 : 2010/11/07 07:10   >>

ナイス ブログ気持玉 1 / トラックバック 0 / コメント 0

何年かぶりに BsdTar のコンパイルに挑戦してみた。
もはや BsdTar という表記が正しいのか、bsdtar が正しいのか分からなくなっていたりするのだが。

GnuWin32 のホームページから、BsdTar へのリンクをたどると、LibArchive のページに出る。これは前と同じ。
http://gnuwin32.sourceforge.net/packages/libarchive.htm
何年か前から、Version は 2.4.12 のまま。Last Change を見ると 2008年6月27日となっている。
以前、コンパイルに苦労したときとほぼ同じじゃないのか? と思いながらダウンロードしてみると、案の定、同じ物。
当時、このブログに自分で書いた記事(http://kzworks.at.webry.info/200808/article_19.html)を見ながら、コンパイルの準備を進めていく。いや、やっぱり修正はこうしたほうがいいな、とか思い直して手を加えながら。

その作業の途中、「後でブログの記事にしなければいけない」と考えて、単にコンパイルするだけでなく、並行して色々と資料を集めていたところ、こういうページを発見。
http://code.google.com/p/libarchive/
libarchive 本家のページがこちらに移転していた。そして、GnuWin32 の成果物がもはや古すぎることも判明。
こちらの Version は 2.8.4 まで進んでいる。しかも、パッチをあてなくても、MinGW でコンパイル可能。
http://code.google.com/p/libarchive/wiki/BuildInstructions#Windows/MinGW

半信半疑で、http://code.google.com/p/libarchive/downloads/list から最新のソースコードをダウンロードし、適当なフォルダに展開。
上の Wiki の指示に従って、cmake(http://www.cmake.org/cmake/resources/software.html)というツールを入手、実行。Configure のボタンをクリックして、コンパイラにMinGWを指定して、そこからの処理に若干時間がかかって心配したが、それもどうやら成功。続いて Generate のボタンをクリックすると、Makefile が生成される。
で、コマンドラインから、mingw32-make とやれば、後は待つだけで完成。
出来上がりを strip してやると、なかなかスリムな bsdtar.exe が出来上がった。

ソースコードを確認したところ、私の心配していたバグはどちらも修正されていた。
標準入力からファイルを流し込んで、bsdtar -xf - < hoge.tar のようなことをやろうとすると例外が発生するバグと、標準入力を Windows 上で テキストモードでオープンしてしまっているバグが GnuWin32 版の BsdTar にはあった。
例外が発生する部分はコードが大きく書き換えられており、テキストモードでオープンしてしまっている部分は、ちゃんとバイナリモードでオープンするようなコードが書き足されていた。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
ナイス

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
BsdTar が Windows 上で異様にコンパイルしやすくなっていた 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる