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

[debian-devel:09171] <bin package>_<version>_<arch>.deb ファイルの等価性



岡@奈良先端です。

 # 昨日は weekly news から辿ってきたブラジルのポルトガル語喋
   り(?)らしき方の返事に四苦八苦してました。御覧の通り僕の文
   章は「英語もどき」なので伝わったかどうか怪しいです;-)

さて、本題「<bin package>_<version>_<arch>.deb ファイルの等価性」
に入ります。前置きを以下に書きます。

パッケージの信頼性を確保するメカニズムという観点からその流れ
を追っていきます:

   <src package>_<version>.orig.tar.gz +
   <src package>_<version>.diff.gz

     ↓ <src package>_<version>.dsc

   <bin package>_<version>_<arch>.deb

     ↓ <src package>_<version>.changes

ちょっと書き方が変かもしれませんが、「↓」に付随するファイル
によってそれより上のファイルとそのファイル自身の信頼性を確保
しているわけですね。内部的には tar, gzip のチェックから始ま
り、 md5sum による個々のファイルのチェック、PGP による作成/
ビルドしたメンテナの保証を行っているということになります。

ここに、翻訳物の添付を差し込むわけですが、本来はソースパッケー
ジレベルの control ファイル附属の Description を抽出して翻訳
する方法が望ましいと考えていました。しかしながら、これはバイ
ナリパッケージビルドなみの「計算+二次記憶領域」が必要になり
ます。高々翻訳のためにそこまでしたくありませんよね。

そこで、不本意ながら、*.deb ファイルから、dpkg-deb -f によっ
て得た情報から翻訳しようという事にしてみたのですが、いろいろ
問題点が出てきました:

  * バイナリパッケージごとになるので、マルチバイナリビルドな
    場合は *.deb ごとに個別に翻訳しなければならない。

    # これについては、今回の所は些細な問題として無視します。
    # むしろ利点も見出せるかもしれませんし。

  * <arch> 毎に沢山の *_<arch>.deb が出来るが、信頼の証を印
    す時に、<arch> 依存にならないようにできるのか?

今回は、後者の方を解決したくメールを書いています。

*_<arch>.changes は当然の事ながら <arch> 毎に別々で、さっき
の怪しげな図を追ってみると、ここで枝分かれしている事が分か
ります。例えば <bin package>_i386.deb に対して日本語の翻訳を
行って <bin package>_<version>_ja.trans (*1) なるファイルを
作成したとき、今迄のパッケージ関連ファイル全部と、このファイ
ルと、自分自身を保証するファイルを作りたいのです(*2)。

 (*1) こんな名前でいいのかな。パッケージツーリーに加える時に、
      これら全部が Translation_ja.gz みたいなのに集約される
      とお考え下さい(今の所は)。

 (*2) 別に新しい考えではありません。dsc や changes がやって
      いるように、

         <bin package>_<version>_<arch>.deb
         <bin package>_<version>_<arch>.changes
         <bin package>_<version>_<lang>.trans

      の md5sum 値等と、それらの翻訳者の PGP サインで構成さ
      れたファイルです。この <arch> が問題です。

ところが枝分かれが起きてしまっているために、別のアーキティク
チャの使用では信頼性を保証したことにはなりません。これを解消
したいというのが今回の悩みです(どっかの法律相談みたい)。

# おそらくは、もっとソースパッケージを体系化して(むろんビ
  ルド時の依存関係記述もその一つ)、低コストで情報を取り出せ
  るようにしておき、ソースパッケージレベルで翻訳するのが正
  解だと思います。
--
岡 充 (Mitsuru Oka)
奈良先端科学技術大学院大学