2007年07月12日

HCLを少し改良

Debian HCLの中を少しいじった。具体的には、これまでさぼっていたデータ更新部分。今まではデータを更新するときには、ばっさりdrop tableして再作成するということを行っていた。

今回、ドライバ情報にサポートされ出したカーネルバージョン情報を(大ざっぱでも)入れたいと思ったのだが、ばっさりしちゃうと過去履歴もサヨナラしてしまうわけで、これはよくない(modules.pcimapの差分で追えないこともないが)。

ということで、情報を見比べてデータベースのUPDATE/INSERTをちゃんと行うようにして、modules.pcimapの更新時にはちゃんとカーネルバージョンも入れるようにしてみた。削除についてはまだ考えていないのだが、それほど発生するとは思い難いので、これで当面はよいだろう。とはいえ、サーバー上でこの更新作業をやるとメモリあふれになりそうなので、パワーのあるマシンにデータベースを置き、ここで更新した結果をdumpして、サーバーではやっぱりdropdb/createdb/psqlという荒技になることは変わりなし。ダサイのでもうちょっとなんとかしたい。「'をエスケープするときには\'じゃなくて''とせよ」という警告が出てきたのでそのように対処。

予想していたよりもmodules.pcimapに入っている情報というのはあまり多くなくて、かなりの部分はdiscoverのxmlファイルに頼らなければならないことが多いようだ(usb-uchiとか)。こちらも若干フォーマットが変更されていたので追従を行った。そろそろコードが汚くなってきたので、リファクタリングをかけたいところではある。

2.6.21から始めたので〜2.6.21までの履歴は取れないが、今後カーネルdebファイルが登場するたびに更新をかけていくとそれなりに変化を蓄積できるかな、と期待している。