2008-01/29 Tue

_ LZMA

lzma対応が今日のテーマ。

  • まず lzma パッケージを 4.32.5 にupdate
  • tar に lzma 対応パッチをあてて commit
    • これで、tar -xf で hoge.tar.lzma が扱える
    • つまりrpmで Source とか、 Patch にて tar.lzma ファイルが使えるようになった

裏話。実は rpm 本体で対応するように書き換えていたのだが、 テストしたら動かなかった...

rpmの開発版 (hg で落としたところ version 4.4.90) では実装されていたので、まあいっか。

rpmに独自パッチ増やしても面倒なだけなので。

Tags: Mo

_ adobe-reader

変な挙動をするといわれたので、 一応前あたっていたパッチをまた当てるようにした。 ちょっと自信はない。

adobe-reader は ATOKX と相性が悪いらしいので、 それを封じ込めるパッチである。

Tags: Mo

_ iasl

importした。

virtualboxが下請けとして使ってたため作ってあった。

virtualbox.spec は作っているが、 suseのカーネルにべたべたに依存してて作れなかったので 絶賛放置中。

Tags: Mo

_ OmoiKondara v2

%NoSource, %NoPatch 廃止のための改造。

Momongaではrpmで %NoSource, %NoPatch という独自マクロを定義して使っていた。

このマクロが spec 内で使用されていると、md5sum を比較してソースの正当性を確かめることができる。

書式はこんな感じ。

%NoSource ソース番号 ソース名 ソースのmd5sum値
%NoPatch パッチ番号 パッチ名 ソースのmd5sum値

マクロの内容を読みたい場合は Momonga の /usr/lib/rpm/macros.momonga を見てくれ。

「この機能は rpm ではなく、ビルドツール側で提供すべき」 という主張が出た。

主な理由としては

  • rpm に独自パッチを当てているとrpm の version up についていけない -> リリース前に大問題となったりする。
  • spec ファイルの移植性が悪い。 FedoraとかCentOS で Momonga の spec がそのまま rpmbuild できない。書き換えメンドイ

というのがある。

このリクエストに答えて nakaya さんにより OmoiKondara v2 に 実装されたのが、

パッケージ名/sources

という名前のファイルにchecksumとファイル名を 書いておいて比較する、というもの。

(ちなみに Fedora の ビルドツールである koji(工事ではなく麹システム)でも同じことやっている。)

hashアルゴリズムの選択は以下の流れ。

  1. md5sum は捨て
  2. sha1sum そろそろやばいかもしれないのでskip
  3. とりあえずSHA2を使うことにしよう
  4. sha512sumは実行速度が遅い。フルビルドにかかる時間が1時間とか延びてしまう
  5. プチ妥協して、sha256sum を使うことにした

詳しい実装は、tools/v2/build.rb の 「# compare sha256sum」 部分を参照。

実効的には、md5sum/sha1sum でも問題ないとは思うが、 将来的にsha???sum に移行すると考えた場合、 どうしても全 sources ファイルの更新が発生するし、 SHA2を使うことで、3年くらいは時間稼ぎできたと思えば まあ充分ではないかと。

Tags: Mo

_ OmoiKondara v1

今後の予定。

  • v1 廃止。 現在 wrapper script を作って実験中。
  • rpm のマクロ廃止。
Tags: Mo