[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00880] Re: tar file format
- Subject: [FDclone-users:00880] Re: tar file format
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Sun, 20 Jun 2010 20:05:53 +0900
しらいです。
In Message-Id <20100620171650.d4d968a2.riki1017kazu@gmail.com>
Rikito INAKAZU <riki1017kazu@gmail.com>さんwrites:
> 稲員です。
> fix されたのが 1.13.9 で warning を出すようになったのが 1.14 の少し
> 前くらいと、その間 4 年以上の開きがある上に、私のメインの作業環境である
> FreeBSD では、システム標準 tar が GNU tar 1.13.25 あたりを最後に
> BSD tar (本来のではなく、再実装された BSD licensed tar) に置き換
> えられて GNU tar を使う機会もめっきり減ってしまったので、たまたま目に
> する事がなかったんでしょうね。
あれ?GNU tar 1.15.1 では A lone zero block の warning は
吐きませんでしたよ。ChangeLog には載ってないので検証が難しい
ですが、もっと後なのでは?
私がこの warning を見始めたのもここ数年のことだと思うので、
時期的には 1.18 辺りなんじゃないかと思います。
> > どうも FDclone の source には巨大な file が多過ぎるようで
> > す。そう言えば、随分前に似たような理由で BSD な tar はお払い
> > 箱にしたような気もします。
>
> オフトピックにそこまで付き合っていただいてありがとう御座います。
> やはり歴史ある command & format には色々ありますね。
原因は別のところにあったようです。directory ごと tar かけ
て失敗してたんですが、file 単位ならどちらも成功しました。ど
うやら問題は file system にあったようです。
流石に read(2) で directory を読むようなコードにはなってい
ませんでしたが、そもそも tar は Tape ARchive の名のとおりテ
ープにイメージコピーする代物ですからね。
その辺りのコードを今風に書き直したら directory ごとでも失
敗しなくなりました。
で、その結果判ったのは BSD な tar は zero block どころか、
padding を全くしていないということです。
HDD 上のゴミなんだか read buffer のゴミなんだか判りません
が、file 終端はその周辺 file の一部で埋められていて、ぱっと
見では終端が判らない構造になってます。
流石にこういう形式だと GNU tar も warning を吐かずに処理し
てくれますね。
因みにその他の tar ですが、*BSD や Solaris や Mac OS X 等、
どれも 2 つ以上の zero block を作成してくれるようです。POSIX
規格なのかな?
> 自分の昔の版が吐いたアーカイブに自分で文句付けて、さらにそれを黙らせよ
> うとして長大なオプションを新設ってのは「なんだかなー」な感じです。
> わざわざそこまでして表示してる warning なのに、メッセージの内容は
> tar format の詳細を知らなきゃ訳分からんものですし。
いや、そもそも何を忠告したいんだか意図が判りませんね。後続
が欠けている訳ではないことはヘッダ情報から判るし、仕様を厳格
に適用したい場合でもなければ何の問題もないでしょ。
その癖、先の BSD tar のような zero block なしの状況は容認
してるんだから益々意味不明です。何か作り手の独善しか感じられ
ないのですが。
> あと、これ書いてる途中もう一度 GNU tar 1.23 で FD-3.00h.tar.gz を
> 展開してメッセージを見直そうとしたところ、 LANG=ja_JP.eucJP で実行し
> てしまった為に日本語のメッセージが表示されたのですが、翻訳が「7980 に長い
> ゼロブロック」となっており、どうやら "A lone" を "A long" と勘違いして
> 誤訳されてしまっているようで余計に意味不明になってました。
これってずっと前からそうなってますよ。ただ、元の英語も意味
明瞭な訳ではないので、誰も気にしてないだけのことだと思います。
> メンテナの世代交代も進んでるでしょうし、レガシィソフトのメンテに高い
> モチベーションも沸きにくいでしょうから、古い環境やニッチな環境に対する
> 配慮が欠けてくるのは仕方無いんでしょうねー。
free software とは言え、作者には最低限の動議的責任が伴うと
思うんですよ。世間一般に公開する以上、利用者のことを無視して
好き勝手に何でもやっていい訳ではないでしょう。
その辺を考え違いした作者が最近増えてるような気がしますね。
勿論、賠償責任まで問われると困るとは思いますが、タダで使わせ
て貰って文句言うなって考えは筋違いです。なら公開するなって。
GNU なんて、free software の先鋒にいるんだから、そういう点
は特に配慮が求められるんじゃないでしょうか。利用者には利用者
なりの都合がある訳で、必ずしも無視していい訳じゃありません。
昔、知合いに指摘されたことがあるんですが、世の中には特殊な
事情で稼働している computer もあって、その特殊さ故に大量消費
型の proprietary から取り残されることがままあるんです。
毎日電源を落とせないどころか、大きな工場だと再起動に何日も
かかるので、頻繁に更新を要求される Windows なんか論外だそう
ですよ。
そういうところでは未だに MS-DOS やら CP/M やらが現役で活躍
してるんですが、余りに旧式過ぎて大手メーカはどこもメンテして
くれないんだとか。
私は、そういうところまで救済してこその free software だと
思っています。新しい技術やデバイスに追随するばかりではなくて、
たまには後ろも振り向いてあげないとね。
しらい たかし