[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00881] Re: tar file format



稲員です。

On Sun, 20 Jun 2010 20:05:53 +0900
Takashi SHIRAI <shirai@unixusers.net> wrote:

>  あれ?GNU tar 1.15.1 では A lone zero block の warning は
> 吐きませんでしたよ。ChangeLog には載ってないので検証が難しい
> ですが、もっと後なのでは?
>  私がこの warning を見始めたのもここ数年のことだと思うので、
> 時期的には 1.18 辺りなんじゃないかと思います。


おやっ?豊田さんによる元の指摘が GNU tar 1.15.1 によるものだった
はずですが、なにが違うんでしょうね?
私は ChangeLog の以下の箇所が該当すると思っていたんですが、実際に
旧版を build して調べたわけではないので違うのかもしれません。
この記述の後 2004-04-04 に 1.13.94 になっています。

> 2004-03-12  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
> 
>         * src/list.c (read_and): Stop processing the archive after
>         encountering a single zero record. Many old archives contain
>         arbitrary garbage after it.
>         The warning is issued anyway.


On Sun, 20 Jun 2010 20:05:53 +0900
Takashi SHIRAI <shirai@unixusers.net> wrote:

>  で、その結果判ったのは BSD な tar は zero block どころか、
> padding を全くしていないということです。
>  HDD 上のゴミなんだか read buffer のゴミなんだか判りません
> が、file 終端はその周辺 file の一部で埋められていて、ぱっと
> 見では終端が判らない構造になってます。


uuencode なんかも半端な分はバッファのゴミをそのまま使いますし、
古き良き時代のスタイルなんでしょう。


>  流石にこういう形式だと GNU tar も warning を吐かずに処理し
> てくれますね。
> 
>  因みにその他の tar ですが、*BSD や Solaris や Mac OS X 等、
> どれも 2 つ以上の zero block を作成してくれるようです。POSIX
> 規格なのかな?


POSIX.1 の pax の仕様の中で記述されています (私が確認したのは SUSv2
ですが、まあほとんど同じでしょう)。テキトー訳だと「最後の block group
は必ず full size 必要で、2 つの zero block の後ならゴミがあっても
かまわない」みたいな記述になってます。

IEEE Std 1003.1-2001 以降の POSIX.1 や SUSv3 ではコマンドとしての
tar の仕様は削除されてしまったようですが、フォーマットとしては pax の
仕様中で言及されているようです。


> > あと、これ書いてる途中もう一度 GNU tar 1.23 で FD-3.00h.tar.gz を
> > 展開してメッセージを見直そうとしたところ、 LANG=ja_JP.eucJP で実行し
> > てしまった為に日本語のメッセージが表示されたのですが、翻訳が「7980 に長い
> > ゼロブロック」となっており、どうやら "A lone" を "A long" と勘違いして
> > 誤訳されてしまっているようで余計に意味不明になってました。
> 
>  これってずっと前からそうなってますよ。ただ、元の英語も意味
> 明瞭な訳ではないので、誰も気にしてないだけのことだと思います。


ええ、多分最初からでしょう。でも、元が明瞭でないからといって誤訳の
ままでも良いとは思えないので、報告して修正してもらいました。
そもそも、私もこんな warning を出す意義を感じないので、元の記述を
書き直そうとまでは思いませんし、だからといって仕様について議論して
までデフォルトでメッセージを出さないようにさせようとも思いませんが。


>  昔、知合いに指摘されたことがあるんですが、世の中には特殊な
> 事情で稼働している computer もあって、その特殊さ故に大量消費
> 型の proprietary から取り残されることがままあるんです。
>  毎日電源を落とせないどころか、大きな工場だと再起動に何日も
> かかるので、頻繁に更新を要求される Windows なんか論外だそう
> ですよ。
>  そういうところでは未だに MS-DOS やら CP/M やらが現役で活躍
> してるんですが、余りに旧式過ぎて大手メーカはどこもメンテして
> くれないんだとか。
> 
>  私は、そういうところまで救済してこその free software だと
> 思っています。新しい技術やデバイスに追随するばかりではなくて、
> たまには後ろも振り向いてあげないとね。


私はそこまで深刻な事情を抱えたことはありませんが、たまにきまぐれで
古い環境を使ったりする時に最新版が未修正で build できて動作も完璧
だと素直に感動しますね。
FDclone もいまだに DOS/V, PC98 版が当たり前のように提供されて
いて、そのモチベーションの高さに感心します。


-- 
Rikito INAKAZU (稲員力士) <riki1017kazu@gmail.com>